Improve plpgsql's error messages for incorrect %TYPE and %ROWTYPE.
commit2a6b47cb50eb9b62b050de2cddd03a9ac267e61f
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 28 Feb 2024 21:05:17 +0000 (28 16:05 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 28 Feb 2024 21:05:28 +0000 (28 16:05 -0500)
tree1333375a44271b4ea324de3432eae93d98615e54
parent363eb059966d0be0a41c206cee40dfd21eb73251
Improve plpgsql's error messages for incorrect %TYPE and %ROWTYPE.

If one of these constructs referenced a nonexistent object, we'd fall
through to feeding the whole construct to the core parser, which would
reject it with a "syntax error" message.  That's pretty unhelpful and
misleading.  There's no good reason for plpgsql_parse_wordtype and
friends not to throw a useful error for incorrect input, so make them
do that instead of returning NULL.

Discussion: https://postgr.es/m/1964516.1708977740@sss.pgh.pa.us
src/pl/plpgsql/src/expected/plpgsql_misc.out
src/pl/plpgsql/src/pl_comp.c
src/pl/plpgsql/src/pl_gram.y
src/pl/plpgsql/src/sql/plpgsql_misc.sql