Re: BUG #16631: postgres_fdw tries to insert into generated columns
От | Etsuro Fujita |
---|---|
Тема | Re: BUG #16631: postgres_fdw tries to insert into generated columns |
Дата | |
Msg-id | CAPmGK16h+YBidb3MXdZWbJQYNL0AsHT7+0-H5Or0_QwksORh=A@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: BUG #16631: postgres_fdw tries to insert into generated columns (Peter Eisentraut <peter.eisentraut@enterprisedb.com>) |
Ответы |
Re: BUG #16631: postgres_fdw tries to insert into generated columns
|
Список | pgsql-bugs |
On Tue, Jul 13, 2021 at 5:36 AM Peter Eisentraut <peter.eisentraut@enterprisedb.com> wrote: > On 07.07.21 17:54, Tom Lane wrote: > > Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes: > >> On 07.07.21 09:20, Etsuro Fujita wrote: > >>> * Modified nodeModifyTable.c and copyfrom.c so that they don't compute > >>> generated columns for FDWs anymore. > > > >> I don't agree with that change. What is the point of declaring a > >> generated column on a foreign table if you ignore it? Then you might as > >> well prohibit declaring such columns in the first place. > > > > Maybe what we need here is some documentation clarifying exactly what > > the point of a generated column on a foreign table actually *is*. > > When would you do it, and what relationship if any has it got to the > > generation status of the underlying remote column? > > The behavior is explained here: > https://www.postgresql.org/docs/current/sql-createforeigntable.html > > If you have a foreign table with a column "a" and a column "b" generated > as (a * 2), and say the underlying storage is a flat file, then the > generated value is computed by the server and written to the file. The > file behaves essentially analogous to the regular table heap file. > > The way I understand this bug report is, what if the underlying storage > is another SQL database with its own generated columns. Then how do we > manage it so that IMPORT FOREIGN SCHEMA can mark the foreign table > column as "column exists to be read, but don't write to it". The > proposal was to repurpose the generated column syntax for that, but that > breaks the flat-file use case above. I think this may also depend on the FDW implementation. > The follow-up proposal was to let the FDW implementation decide. I > don't think that is always the right thing either. What if I want the > foreign-table node to do the computations, because it has access to > special parameters or something. The follow-up proposal was mainly for consistency with the handling of constraints on foreign tables; they are not enforced on the local PG server at all, as noted in the above documentation. > There might be multiple possibilities of what is appropriate here. But > that's not something we can just change around as part of a bug fix. I agree on this part. The changes I made to the core side would go beyond a fix for the reported issue. I'll remove it in the next version of the patch. Best regards, Etsuro Fujita
В списке pgsql-bugs по дате отправления: