Re: Command Triggers, patch v11

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Command Triggers, patch v11
Дата
Msg-id 18353.1332095370@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Command Triggers, patch v11  (Andres Freund <andres@anarazel.de>)
Ответы Re: Command Triggers, patch v11
Re: Command Triggers, patch v11
Re: Command Triggers, patch v11
Список pgsql-hackers
BTW, I've been looking through how to do what I suggested earlier to get
rid of the coziness and code duplication between CreateTableAs and the
prepare.c code; namely, let CreateTableAs create a DestReceiver and then
call ExecuteQuery with that receiver.  It appears that we still need at
least two bits of added complexity with that approach:

1. ExecuteQuery still has to know that's a CREATE TABLE AS operation so
that it can enforce that the prepared query is a SELECT.  (BTW, maybe
this should be weakened to "something that returns tuples", in view of
RETURNING?)

2. Since ExecuteQuery goes through the Portal machinery, there's no way
for it to pass in eflags to control the table OIDs setup.  This is
easily solved by adding an eflags parameter to PortalStart, which
doesn't seem too awful to me, since the typical caller would just pass
zero.  (ExecuteQuery would also have to know about testing
interpretOidsOption to compute the eflags to use, unless we add an
eflags parameter to it, which might be the cleaner option.)

In short I'm thinking: add an eflags parameter to PortalStart, and add
both an eflags parameter and a "bool mustReturnTuples" parameter to
ExecuteQuery.  This definitely seems cleaner than the current
duplication of code.
        regards, tom lane


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

Предыдущее
От: Noah Misch
Дата:
Сообщение: Re: Cross-backend signals and administration (Was: Re: pg_terminate_backend for same-role)
Следующее
От: Dimitri Fontaine
Дата:
Сообщение: Re: Command Triggers, patch v11