Re: Missing Column names with multi-insert

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: Missing Column names with multi-insert
Дата
Msg-id 94986e14-de79-62f4-c7e9-043c25a2b057@2ndQuadrant.com
обсуждение исходный текст
Ответ на Missing Column names with multi-insert  (Liz Frost <web@stillinbeta.com>)
Список pgsql-hackers
On 2/18/19 2:34 PM, Liz Frost wrote:
> Hello all,
>
> I'm working on a foreign data wrapper that uses INSERT, and I noticed
> some odd behaviour. If I insert just one row, the
> TupleDesc->attr[0]->attname.data has the column names in it. However,
> in a multi-row string, all those are empty strings: 
>
> I added this debugging code to BeginForeignInsert
> in https://bitbucket.org/adunstan/blackhole_fdw on postgres 10.
>
> int i;
>   FormData_pg_attribute *attr;
>   TupleDesc tupleDesc;
>
>   tupleDesc = slot->tts_tupleDescriptor;
>
>   for (i = 0; i < tupleDesc -> natts; i++) {
>     attr = tupleDesc->attrs[i];
>     elog(WARNING, "found column '%s'", attr->attname.data);
>   }
>
> Now with a single row insert, this works as you'd expect:
>
> liz=# INSERT INTO bhtable (key, value) VALUES ('hello', 'world');
> WARNING:  found column 'key'
> WARNING:  found column 'value'
> INSERT 0 1
>
> But with a multi-row, all the column names are empty:
> liz=# INSERT INTO bhtable (key, value) VALUES ('hello', 'world'),
> ('goodmorning', 'world');
> WARNING:  found column ''
> WARNING:  found column ''
> WARNING:  found column ''
> WARNING:  found column ''
> INSERT 0 2
>
> It doesn't seem unreasonable to me that this data wouldn't be
> duplicated, but there's no mention of how I would go about retriving
> these column names for my individual rows, and most foreign data
> wrappers I can find are write-only.
>
>


There are numerous writable FDWs, including postgres_fdw in contrib, and
a whole lot more listed at <https://wiki.postgresql.org/wiki/Fdw> That
should supply you with plenty of example code.


cheers


andrew



-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Delay locking partitions during INSERT and UPDATE
Следующее
От: Andres Freund
Дата:
Сообщение: Re: Delay locking partitions during INSERT and UPDATE