Re: Emitting JSON to file using COPY TO

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Joe Conway <mail(at)joeconway(dot)com>
Cc: Daniel Verite <daniel(at)manitou-mail(dot)org>, 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-07 00:39:11
Message-ID: CAKFQuwZeA3LdG=XpeTy1oPAXgPYK5aaRDRYPv4jNFMszD2RnyA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

On Wed, Dec 6, 2023 at 4:45 PM Joe Conway <mail(at)joeconway(dot)com> wrote:

>
> " The backend sends a CopyOutResponse message to the frontend, followed
> by zero or more CopyData messages (always one per row), followed by
> CopyDone"
>
> probably "always one per row" would be changed to note that json array
> format outputs two extra rows for the start/end bracket.
>

Fair, I was ascribing much more semantic meaning to this than it wants.

I don't see any real requirement, given the lack of semantics, to mention
JSON at all. It is one CopyData per row, regardless of the contents. We
don't delineate between the header and non-header data in CSV. It isn't a
protocol concern.

But I still cannot shake the belief that using a format code of 1 - which
really could be interpreted as meaning "textual csv" in practice - for this
JSON output is unwise and we should introduce a new integer value for the
new fundamental output format.

David J.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Joe Conway 2023-12-07 00:57:42 Re: Emitting JSON to file using COPY TO
Previous Message Joe Conway 2023-12-06 23:48:54 Re: Emitting JSON to file using COPY TO

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2023-12-07 00:51:28 Re: Is WAL_DEBUG related code still relevant today?
Previous Message Michael Paquier 2023-12-07 00:38:59 Re: Make COPY format extendable: Extract COPY TO format implementations