Re: SQLFunctionCache and generic plans
Alexander Law <exclusion@gmail.com>
From: Alexander Lakhin <exclusion@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alexander Pyhalov <a.pyhalov@postgrespro.ru>,
Pavel Stehule <pavel.stehule@gmail.com>,
Alexander Korotkov <aekorotkov@gmail.com>,
pgsql-hackers@lists.postgresql.org, Ronan Dunklau <ronan.dunklau@aiven.io>
Date: 2025-04-04T22:00:01Z
Lists: pgsql-hackers
05.04.2025 00:47, Tom Lane wrote: > Alexander Lakhin<exclusion@gmail.com> writes: >> I've stumbled upon another defect introduced with 0dca5d68d: >> CREATE FUNCTION f(VARIADIC ANYARRAY) RETURNS ANYELEMENT AS $$ SELECT x FROM generate_series(1,1) g(i) $$ LANGUAGE SQL >> IMMUTABLE; >> SELECT f(1); >> SELECT f(1); > Hmm, I see > > regression=# CREATE FUNCTION f(VARIADIC ANYARRAY) RETURNS ANYELEMENT AS $$ SELECT x FROM generate_series(1,1) g(i) $$ LANGUAGE SQL IMMUTABLE; > CREATE FUNCTION > regression=# SELECT f(1); > ERROR: column "x" does not exist > LINE 1: SELECT x FROM generate_series(1,1) g(i) > ^ > QUERY: SELECT x FROM generate_series(1,1) g(i) > CONTEXT: SQL function "f" statement 1 > regression=# SELECT f(1); > ERROR: unrecognized node type: 2139062143 > CONTEXT: SQL function "f" statement 1 > > Did you intend the typo? The "unrecognized node type" does indicate > a problem, but your message doesn't seem to indicate that you're > expecting a syntax error. > Yes, the typo is intended. With Valgrind, I get the "column does not exist" error on the first call and the Valgrind complaint on the second one. Best regards, Alexander Lakhin Neon (https://neon.tech)
Commits
-
Fix performance issue in deadlock-parallel isolation test.
- 837cc73af29c 18.0 landed
-
functions.c: copy trees from source_list before parse analysis etc.
- 0f43083d16f4 18.0 landed
-
Fix oversight in commit 0dca5d68d.
- dbd437e670b8 18.0 landed
-
Change SQL-language functions to use the plan cache.
- 0dca5d68d7be 18.0 landed
-
Reordering DISTINCT keys to match input path's pathkeys
- a8ccf4e93a7e 18.0 cited