Clean up some edge cases in plpgsql's %TYPE parsing.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 5 Jan 2024 19:32:34 +0000 (14:32 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 5 Jan 2024 19:32:34 +0000 (14:32 -0500)
commit43b46aae12b220b7eca8250c6c361083f35985a0
treed2f836af558bfad6399747af55dc53390d818fa7
parentdbad1c53e92e364e2675f1246e443b95545d4070
Clean up some edge cases in plpgsql's %TYPE parsing.

Support referencing a composite-type variable in %TYPE.

Remove the undocumented, untested, and pretty useless ability
to have the subject of %TYPE be an (unqualified) type name.
You get the same result by just not writing %TYPE.

Add or adjust some test cases to improve code coverage here.

Discussion: https://postgr.es/m/716852.1704402127@sss.pgh.pa.us
src/pl/plpgsql/src/expected/plpgsql_record.out
src/pl/plpgsql/src/pl_comp.c
src/pl/plpgsql/src/sql/plpgsql_record.sql
src/test/regress/expected/plpgsql.out
src/test/regress/sql/plpgsql.sql