Re: Emitting JSON to file using COPY TO
| От | jian he |
|---|---|
| Тема | Re: Emitting JSON to file using COPY TO |
| Дата | |
| Msg-id | CACJufxEuM1pa-8m+-iDQ8KQRzPV=sCEG-_DhtW=SnaA-19N=LA@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: Emitting JSON to file using COPY TO (Joe Conway <mail@joeconway.com>) |
| Ответы |
Re: Emitting JSON to file using COPY TO
|
| Список | pgsql-hackers |
On Tue, Jan 9, 2024 at 4:40 AM Joe Conway <mail@joeconway.com> wrote: > > On 1/8/24 14:36, Dean Rasheed wrote: > > On Thu, 7 Dec 2023 at 01:10, Joe Conway <mail@joeconway.com> wrote: > >> > >> The attached should fix the CopyOut response to say one column. > >> > > > > Playing around with this, I found a couple of cases that generate an error: > > > > COPY (SELECT 1 UNION ALL SELECT 2) TO stdout WITH (format json); > > > > COPY (VALUES (1), (2)) TO stdout WITH (format json); > > > > both of those generate the following: > > > > ERROR: record type has not been registered > > > Thanks -- will have a look > > -- > Joe Conway > PostgreSQL Contributors Team > RDS Open Source Databases > Amazon Web Services: https://aws.amazon.com > > > In the function CopyOneRowTo, I try to call the function BlessTupleDesc again. +BlessTupleDesc(slot->tts_tupleDescriptor); rowdata = ExecFetchSlotHeapTupleDatum(slot); Please check the attachment. (one test.sql file, one patch, one bless twice). Now the error cases are gone, less cases return error. but the new result is not the expected. `COPY (SELECT g from generate_series(1,1) g) TO stdout WITH (format json);` returns {"":1} The expected result would be `{"g":1}`. I think the reason is maybe related to the function copy_dest_startup.
Вложения
В списке pgsql-hackers по дате отправления: