On 2022-08-18 Th 05:55, Dagfinn Ilmari Mannsåker wrote: > Andrew Dunstan <and...@dunslane.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. >
That seems to be over-egging the pudding somewhat. FORCE_NOT_DEFAULT should not be necessary at all, since here if there's no default specified nothing will be taken as the default. I suppose a quoted default is just faintly possible, but I'd like a concrete example of a producer that emitted it. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com