The previous code to detect a zero-length identifier when using
Unicode identifiers such as
exec sql select u&"";
did not work. This fixes that.
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/
82fafa79-331c-9d65-e51b-
8b5d1b2383fc%40enterprisedb.com
}
<xui>{dquote} {
BEGIN(state_before_str_start);
- if (literallen == 2) /* "U&" */
+ if (literallen == 0)
mmerror(PARSE_ERROR, ET_ERROR, "zero-length delimited identifier");
/* The backend will truncate the identifier here. We do not as it does not change the result. */
base_yylval.str = psprintf("U&\"%s\"", literalbuf);