Only evaluate default values as required when doing COPY FROM

Andrew Dunstan <andrew@dunslane.net>

Commit: 910eb61b2bbdb729c242ed20d5f6e0a392eb62da
Author: Andrew Dunstan <andrew@dunslane.net>
Date: 2023-10-01T14:25:33Z
Releases: 16.1
Only evaluate default values as required when doing COPY FROM

Commit 9f8377f7a2 was a little too eager in fetching default values.
Normally this would not matter, but if the default value is not valid
for the type (e.g. a varchar that's too long) it caused an unnecessary
error.

Complaint and fix from Laurenz Albe

Backpatch to release 16.

Discussion: https://postgr.es/m/75a7b7483aeb331aa017328d606d568fc715b90d.camel@cybertec.at

Files

PathChange+/−
src/backend/commands/copyfrom.c modified +8 −1
src/test/regress/expected/copy.out modified +17 −0
src/test/regress/sql/copy.sql modified +15 −0

Discussion