> + if (copyable_characters_length)
> + {
> + /* flush copyable characters */
> + appendBinaryStringInfo(
> + lex->strval,
> + s - copyable_characters_length,
> + copyable_characters_length);
> +
> + }
> break;
>
> I wonder why copyable_characters_length is not reset after flushing.
It breaks from the loop right after. So copyable_characters_length isn't used
again and thus resetting is not necessary. But I agree this could use a comment.