Re: Add support for DEFAULT specification in COPY FROM

From: Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: Israel Barth Rubio <barthisrael(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Add support for DEFAULT specification in COPY FROM
Date: 2022-08-18 09:55:58
Message-ID: 87mtc1nadt.fsf@wibble.ilmari.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andrew Dunstan <andrew(at)dunslane(dot)net> writes:

> On 2022-08-16 Tu 14:12, Israel Barth Rubio wrote:
>> Hello all,
>>
>> With the current implementation of COPY FROM in PostgreSQL we are
>> able to load the DEFAULT value/expression of a column if the column
>> is absent in the list of specified columns. We are not able to
>> explicitly ask that PostgreSQL uses the DEFAULT value/expression in a
>> column that is being fetched from the input file, though.
>>
>> This patch adds support for handling DEFAULT values in COPY FROM. It
>> works similarly to NULL in COPY FROM: whenever the marker that was
>> set for DEFAULT value/expression is read from the input stream, it
>> will evaluate the DEFAULT value/expression of the corresponding
>> column.
[…]
> Interesting, and probably useful. I've only had a brief look, but it's
> important that the default marker not be quoted in CSV mode (c.f. NULL)
> -f it is it should be taken as a literal rather than a special value.

For the NULL marker that can be overridden for individual columns with
the FORCE(_NOT)_NULL option. This feature should have a similar
FORCE(_NOT)_DEFAULT option to allow the DEFAULT marker to be ignored, or
recognised even when quoted, respectively.

- ilmari

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Smith 2022-08-18 10:10:21 Re: Perform streaming logical transactions by background workers and parallel apply
Previous Message Amit Kapila 2022-08-18 09:47:47 Re: hash_xlog_split_allocate_page: failed to acquire cleanup lock