Improve error report for PL/pgSQL reserved word used as a field name.
Tom Lane <tgl@sss.pgh.pa.us>
Improve error report for PL/pgSQL reserved word used as a field name. The current code in resolve_column_ref (dating to commits 01f7d2990 and fe24d7816) believes that not finding a RECFIELD datum is a can't-happen case, in consequence of which I didn't spend a whole lot of time considering what to do if it did happen. But it turns out that it *can* happen if the would-be field name is a fully-reserved PL/pgSQL keyword. Change the error message to describe that situation, and add a test case demonstrating it. This might need further refinement if anyone can find other ways to trigger a failure here; but without an example it's not clear what other error to throw. Author: Tom Lane <tgl@sss.pgh.pa.us> Reviewed-by: Pavel Stehule <pavel.stehule@gmail.com> Discussion: https://postgr.es/m/2185258.1745617445@sss.pgh.pa.us
Files
| Path | Change | +/− |
|---|---|---|
| src/pl/plpgsql/src/expected/plpgsql_misc.out | modified | +22 −0 |
| src/pl/plpgsql/src/pl_comp.c | modified | +12 −7 |
| src/pl/plpgsql/src/sql/plpgsql_misc.sql | modified | +16 −0 |
Discussion
- Sanding down some edge cases for PL/pgSQL reserved words 11 messages · 2025-04-25 → 2025-06-30