Обсуждение: [HACKERS] What is the point of setrefs.c's is_converted_whole_row_reference?

Поиск
Список
Период
Сортировка

[HACKERS] What is the point of setrefs.c's is_converted_whole_row_reference?

От
Tom Lane
Дата:
AFAICS, setrefs.c's special treatment of "converted whole row references"
is completely pointless.  Why aren't they just treated by the regular
"non var" code paths, thus saving code space and cycles?
        regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Re: [HACKERS] What is the point of setrefs.c's is_converted_whole_row_reference?

От
Robert Haas
Дата:
On Thu, Oct 19, 2017 at 2:56 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> AFAICS, setrefs.c's special treatment of "converted whole row references"
> is completely pointless.  Why aren't they just treated by the regular
> "non var" code paths, thus saving code space and cycles?

Here's what one of Ashutosh's commit messages for one of the patches
in the stack said:

===
set_join_references() turns off outer side's has_non_vars to handle
expressions involving nullable side. Hence we can not use has_non_vars
to handle ConvertRowtypeExprs. Instead the patch adds
has_conv_whole_rows, which is set when there exist one or more of
ConvertRowtypeExprs described above.
===

I think that's referring to this comment:
        * Now we need to fix up the targetlist and qpqual, which are logically        * above the join.  This means
theyshould not re-use any
 
input expression        * that was computed in the nullable side of an outer join.  Vars and        * PlaceHolderVars
arefine, so we can implement this
 
restriction just by        * clearing has_non_vars in the indexed_tlist structs.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers