Only evaluate default values as required when doing COPY FROM

Andrew Dunstan <andrew@dunslane.net>

Commit: 276393f53efbf08f72190221e9c1ef2a28e7fc66
Author: Andrew Dunstan <andrew@dunslane.net>
Date: 2023-10-01T14:18:41Z
Releases: 17.0
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