Bug: COPY FORMAT JSON includes generated columns unlike text/CSV

Started by SATYANARAYANA NARLAPURAM2 months ago3 messageshackers
Jump to latest
#1SATYANARAYANA NARLAPURAM
satyanarlapuram@gmail.com

Hi hackers,

COPY TO with FORMAT json includes generated columns in the output,
while text and CSV formats correctly exclude them. Virtual generated
columns appear as null (since they aren't materialized), and stored
generated columns appear with their values Attached a patch to address
this.

Repro:

CREATE TABLE t (id int, a int,
s int GENERATED ALWAYS AS (a * 10) STORED,
v int GENERATED ALWAYS AS (a * 100) VIRTUAL);
INSERT INTO t (id, a) VALUES (1, 5);

COPY t TO STDOUT;
COPY t TO STDOUT WITH (FORMAT csv, HEADER);
COPY t TO STDOUT WITH (FORMAT json);
CREATE TABLE
INSERT 0 1
1 5
id,a
1,5
{"id":1,"a":5,"s":50,"v":null}

After the fix:
COPY t TO STDOUT WITH (FORMAT json);
{"id":1,"a":5}

Thanks,
Satya

Attachments:

v1-00001-copy-json-exclude-generated-columns.patchapplication/octet-stream; name=v1-00001-copy-json-exclude-generated-columns.patchDownload+19-1
#2jian he
jian.universality@gmail.com
In reply to: SATYANARAYANA NARLAPURAM (#1)
Re: Bug: COPY FORMAT JSON includes generated columns unlike text/CSV

On Mon, Apr 13, 2026 at 5:21 PM SATYANARAYANA NARLAPURAM
<satyanarlapuram@gmail.com> wrote:

Hi hackers,

COPY TO with FORMAT json includes generated columns in the output,
while text and CSV formats correctly exclude them. Virtual generated
columns appear as null (since they aren't materialized), and stored
generated columns appear with their values Attached a patch to address this.

The patch looks good to me.

It seems there's a ``git apply`` issue applying the V1 patch.
The attached v2 is the same as your v1, it should apply without issue
using `git apply` or `git am`.

--
jian
https://www.enterprisedb.com/

Attachments:

v2-0001-COPY-FORMAT-JSON-with-generated.patchtext/x-patch; charset=US-ASCII; name=v2-0001-COPY-FORMAT-JSON-with-generated.patchDownload+19-2
#3Andrew Dunstan
andrew@dunslane.net
In reply to: jian he (#2)
Re: Bug: COPY FORMAT JSON includes generated columns unlike text/CSV

On 2026-04-14 Tu 10:46 AM, jian he wrote:

On Mon, Apr 13, 2026 at 5:21 PM SATYANARAYANA NARLAPURAM
<satyanarlapuram@gmail.com> wrote:

Hi hackers,

COPY TO with FORMAT json includes generated columns in the output,
while text and CSV formats correctly exclude them. Virtual generated
columns appear as null (since they aren't materialized), and stored
generated columns appear with their values Attached a patch to address this.

The patch looks good to me.

It seems there's a ``git apply`` issue applying the V1 patch.
The attached v2 is the same as your v1, it should apply without issue
using `git apply` or `git am`.

Thanks. pushed.

cheers

andrew

--
Andrew Dunstan
EDB:https://www.enterprisedb.com