Re: Emitting JSON to file using COPY TO

From: Joe Conway <mail(at)joeconway(dot)com>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>, Davin Shearer <davin(at)apache(dot)org>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Emitting JSON to file using COPY TO
Date: 2023-12-06 16:15:39
Message-ID: 56ad15e3-624d-4a22-921f-82129d31bfaa@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

On 12/6/23 10:32, Andrew Dunstan wrote:
>
> On 2023-12-06 We 08:49, Joe Conway wrote:
>> On 12/6/23 07:36, Andrew Dunstan wrote:
>>>
>>> On 2023-12-05 Tu 16:46, Joe Conway wrote:
>>>> On 12/5/23 16:20, Andrew Dunstan wrote:
>>>>> On 2023-12-05 Tu 16:09, Joe Conway wrote:
>>>>>> On 12/5/23 16:02, Joe Conway wrote:
>>>>>>> On 12/5/23 15:55, Andrew Dunstan wrote:
>>>>>>>> and in any other case (e.g. LINES) I can't see why you
>>>>>>>> would have them.
>>>>>>
>>>>>> Oh I didn't address this -- I saw examples in the interwebs of
>>>>>> MSSQL server I think [1] which had the non-array with commas
>>>>>> import and export style. It was not that tough to support and the
>>>>>> code as written already does it, so why not?
>>>>>
>>>>> That seems quite absurd, TBH. I know we've catered for some
>>>>> absurdity in
>>>>> the CSV code (much of it down to me), so maybe we need to be
>>>>> liberal in
>>>>> what we accept here too. IMNSHO, we should produce either a single
>>>>> JSON
>>>>> document (the ARRAY case) or a series of JSON documents, one per row
>>>>> (the LINES case).
>>>>
>>>> So your preference would be to not allow the non-array-with-commas
>>>> case but if/when we implement COPY FROM we would accept that format?
>>>> As in Postel'a law ("be conservative in what you do, be liberal in
>>>> what you accept from others")?
>>>
>>>
>>> Yes, I think so.
>>
>> Awesome. The attached does it that way. I also ran pgindent.
>>
>> I believe this is ready to commit unless there are further comments or
>> objections.
>
> Sorry to bikeshed a little more, I'm a bit late looking at this.
>
> I suspect that most users will actually want the table as a single JSON
> document, so it should probably be the default. In any case FORCE_ARRAY
> as an option has a slightly wrong feel to it.

Sure, I can make that happen, although I figured that for the
many-rows-scenario the single array size might be an issue for whatever
you are importing into.

> I'm having trouble coming up with a good name for the reverse of
> that, off the top of my head.

Will think about it and propose something with the next patch revision.

--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Estevan Rech 2023-12-06 16:16:11 Re: Delete Account
Previous Message Adrian Klaver 2023-12-06 16:00:44 Re: Delete Account

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2023-12-06 16:18:39 Re: Clean up some signal usage mainly related to Windows
Previous Message Tom Lane 2023-12-06 15:44:19 Re: Emitting JSON to file using COPY TO