I might be overworked today, but I am not getting this situation. It has to be something silly that I am simply overlooking.
The table structure is as follows:
CREATE TABLE sample_table (
id int8 NOT NULL GENERATED ALWAYS AS IDENTITY,
name varchar(255) NOT NULL,
description text NOT NULL,
CONSTRAINT sample_table_pk PRIMARY KEY (id)
);
When I try to insert a single value, it works OK:
INSERT INTO sample_table (id, name, description)
VALUES (DEFAULT, 'John Doe', 'Test description');
However, when inserting multiple values, it fails:
INSERT INTO sample_table (id, name, description)
VALUES (DEFAULT, 'John Doe', 'Test description')
, (DEFAULT, 'Jane Eod', 'Not working');
Why? If I omit the DEFAULT value and PK (=id), it works great.
INSERT INTO sample_table (name, description)
VALUES ('John Doe', 'Test description')
, ('Jane Eod', 'Not working');
Why DEFAULT is not working for batch insert?
PSQL version: PostgreSQL 11.13 (Debian 11.13-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
UPDATE:
it was accepted by the PGSQL team as a bug a is fixed in v14 .. hopefully, they will propagate it to all other stable versions .. there is a stormy discussion about that :))