Thread: [BUGS] BUG #14834: quote_literal and composite types,different behaviour between sql and plpgsql
[BUGS] BUG #14834: quote_literal and composite types,different behaviour between sql and plpgsql
From
dvd@gnx.it
Date:
The following bug has been logged on the website: Bug reference: 14834 Logged by: David Mugnai Email address: dvd@gnx.it PostgreSQL version: 9.4.7 Operating system: Linux Description: I found that `quote_literal` behaviour is wrong when used in a plpgsql function over a null composite type, let me show: create type t as (x text); create function f(val t default null) returns text as $$select quote_literal(val); $$ language sql stable; create function f2(val t default null) returns text as $$ declareo text; beginselect quote_literal(val) into o;return o; end $$ language plpgsql; dvd@[local]/dvd> select f() union all select f2(); f --------(null)'()' (2 rows) If I do not mistake the both the functions should returns NULL; -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
Re: [BUGS] BUG #14834: quote_literal and composite types, different behaviour between sql and plpgsql
From
Tom Lane
Date:
dvd@gnx.it writes: > I found that `quote_literal` behaviour is wrong when used in a plpgsql > function over a null composite type, let me show: No, there's nothing wrong with quote_literal. Your example is showing that plpgsql converts a "null" composite value into a row-of-nulls, when dealing with a variable of a named composite type (in this case, the variable is the parameter "val"). This is arguably wrong, but plpgsql has been doing that for a mighty long time so people are hesitant to change it. regards, tom lane -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs