pgsql: Fix parsetree representation of XMLTABLE(XMLNAMESPACES(DEFAULT.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Fix parsetree representation of XMLTABLE(XMLNAMESPACES(DEFAULT.
Дата
Msg-id E1g1x8e-0007qA-10@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix parsetree representation of XMLTABLE(XMLNAMESPACES(DEFAULT ...)).

The original coding for XMLTABLE thought it could represent a default
namespace by a T_String Value node with a null string pointer.  That's
not okay, though; in particular outfuncs.c/readfuncs.c are not on board
with such a representation, meaning you'll get a null pointer crash
if you try to store a view or rule containing this construct.

To fix, change the parsetree representation so that we have a NULL
list element, instead of a bogus Value node.

This isn't really a functional limitation since default XML namespaces
aren't yet implemented in the executor; you'd just get "DEFAULT
namespace is not supported" anyway.  But crashes are not nice, so
back-patch to v10 where this syntax was added.  Ordinarily we'd consider
a parsetree representation change to be un-backpatchable; but since
existing releases would crash on the way to storing such constructs,
there can't be any existing views/rules to be incompatible with.

Per report from Andrey Lepikhov.

Discussion: https://postgr.es/m/3690074f-abd2-56a9-144a-aa5545d7a291@postgrespro.ru

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/07a3af0ff81d8ac6d2e787e13ca10de36313aa51

Modified Files
--------------
src/backend/executor/nodeTableFuncscan.c |  6 +++++-
src/backend/parser/parse_clause.c        | 15 ++++++++-------
src/backend/utils/adt/ruleutils.c        |  6 +++---
src/include/nodes/execnodes.h            |  4 ++--
src/include/nodes/primnodes.h            |  7 +++++--
5 files changed, 23 insertions(+), 15 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Remove dead code from pop_next_work_item().
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: pgsql: Allow concurrent-safe open() and fopen() in frontend codefor Wi