Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qkhRC-00FlyX-6I for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Sep 2023 08:59:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qkhRA-00H3mr-6c for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Sep 2023 08:59:28 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qkhR9-00H3md-Nv for pgsql-hackers@lists.postgresql.org; Mon, 25 Sep 2023 08:59:27 +0000 Received: from mail-lf1-x12f.google.com ([2a00:1450:4864:20::12f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qkhR6-006W9n-Lb for pgsql-hackers@lists.postgresql.org; Mon, 25 Sep 2023 08:59:26 +0000 Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-5042bfb4fe9so8944188e87.1 for ; Mon, 25 Sep 2023 01:59:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20230601.gappssmtp.com; s=20230601; t=1695632362; x=1696237162; darn=lists.postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:from:to:cc:subject:date:message-id:reply-to; bh=USmqhNWabPs147aoMB4kHdlovOD95NAhnMciuGq6/ds=; b=1whCXEgTyMsdUlFyJtwh161h+JKImJs3oPMUph0RGCwFiqlKHYKtbnV/e2Qzp4f07O Chl46zCk+31qLpXStlImNZEWvBuB2UvZKBlsV/rhhvnXjmZuz9Mx4k5bDNMq1BYpMWbO mFbVJThem5oAgCW135AC14nock+6cj8Ogbj5gTtKPo0OfrgVzc8D+5EECbwVpUA25iaJ eGGeU0MF6HY1Mz0ELLAIjJURyTJ+SslqZLbn4W/qMInrBph7p1hGwnGD46Puw69d5oq7 hOqkd3FNaEZ53nQjZUhpHAgNTzw6eBAikDIJ+c99n2BmjcnpYjwF77q2kjC4IgZggExV /iVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695632362; x=1696237162; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=USmqhNWabPs147aoMB4kHdlovOD95NAhnMciuGq6/ds=; b=IL9fEl0HHoIynlFZUQ8kg/BoWs5+fFkuW+SAAid/ONwtAy2cPpKFjv6fU+oZgw5ZNr cLmhh6n/Nd3FDq2pyFOQZC4Xnq39tr8v6IiJeIs4O9Tf4AX8qJAOWHlN4JFSyzji+cHh 7PdJWTLXmPirUhlvD1c0W2Svs3UIfmITE3qgggZtqTo3UqYbsJgg9bZ1XeShKXLoaT5I f8doA1N3CBZ4hGY88nIsMAedSdd49I2rmHRFvm48ndxq6dFcjKROIJEHsP+oWu02whyK ZvenfpoLXJszCML3hPdlZd+BVPn6+a/p0HtJQjsB00hvLJw2SX3f1YUZeqGqXaXAe3vG Jlmw== X-Gm-Message-State: AOJu0YwXlGCDi7UULNJTP1O1oBYdcYkZUvokUr7mc8oi4KzqX6oqxB0i LX5FZGqwfyLqQ2PLSS6NlQQ7ovN+tCQ5qya/xi4= X-Google-Smtp-Source: AGHT+IHmdaxdKm8CFl8Yl2tzOBAdL1INATEEfUhAcx2u4sN3TC0jsZGptRqdYIABEA7Ufr+HIlduSw== X-Received: by 2002:a05:6512:3b9b:b0:503:905:c5a3 with SMTP id g27-20020a0565123b9b00b005030905c5a3mr5886982lfv.35.1695632362500; Mon, 25 Sep 2023 01:59:22 -0700 (PDT) Received: from localhost.localdomain ([2001:871:5e:e8aa:cc0b:5957:c96a:d95]) by smtp.gmail.com with ESMTPSA id z15-20020aa7cf8f000000b0052338f5b2a4sm5249056edx.86.2023.09.25.01.59.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Sep 2023 01:59:22 -0700 (PDT) Message-ID: <111178fd5653becf9e29d9637c37a2c47cf721f2.camel@cybertec.at> Subject: Re: Regression in COPY FROM caused by 9f8377f7a2 From: Laurenz Albe To: pgsql-hackers@lists.postgresql.org Date: Mon, 25 Sep 2023 10:59:21 +0200 In-Reply-To: <75a7b7483aeb331aa017328d606d568fc715b90d.camel@cybertec.at> References: <75a7b7483aeb331aa017328d606d568fc715b90d.camel@cybertec.at> Content-Type: multipart/mixed; boundary="=-8fJaUTSpgh0p8VKWyY//" User-Agent: Evolution 3.48.4 (3.48.4-1.fc38) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-8fJaUTSpgh0p8VKWyY// Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2023-09-25 at 09:54 +0200, Laurenz Albe wrote: > In v16 and later, the following fails: >=20 > CREATE TABLE boom (t character varying(5) DEFAULT 'a long string'); >=20 > COPY boom FROM STDIN; > ERROR:=C2=A0 value too long for type character varying(5) >=20 > In PostgreSQL v15 and earlier, the COPY statement succeeds. >=20 > The error is thrown in BeginCopyFrom in line 1578 (HEAD) >=20 > =C2=A0 defexpr =3D expression_planner(defexpr); >=20 > Bisecting shows that the regression was introduced by commit 9f8377f7a2, > which introduced DEFAULT values for COPY FROM. I suggest the attached fix, which evaluates default values only if the DEFAULT option was specified or if the column does not appear in the column list of COPY. Yours, Laurenz Albe --=-8fJaUTSpgh0p8VKWyY// Content-Disposition: attachment; filename="0001-Evaluate-defaults-in-COPY-FROM-only-if-necessary.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Evaluate-defaults-in-COPY-FROM-only-if-necessary.patch"; charset="UTF-8" RnJvbSA0YWY5ODJjNTZkZjU3YTFhMGYwNDM0MGQzOTRjMjk3NTU5ZmJhYmI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogTW9uLCAyNSBTZXAgMjAyMyAxMDo1NjoxNSArMDIwMApTdWJqZWN0OiBbUEFUQ0hd IEV2YWx1YXRlIGRlZmF1bHRzIGluIENPUFkgRlJPTSBvbmx5IGlmIG5lY2Vzc2FyeQoKU2luY2Ug Y29tbWl0IDlmODM3N2Y3YTIsIHdlIGV2YWx1YXRlIHRoZSBjb2x1bW4gZGVmYXVsdCB2YWx1ZXMg aW4KQ09QWSBGUk9NIGZvciBhbGwgY29sdW1ucyBleGNlcHQgZ2VuZXJhdGVkIG9uZXMsIGJlY2F1 c2UgdGhleSBjb3VsZApiZSBuZWVkZWQgaWYgdGhlIGlucHV0IHZhbHVlIG1hdGNoZXMgdGhlIERF RkFVTFQgb3B0aW9uLgoKVGhpcyBjYW4gY2F1c2UgYSBzdXJwcmlzaW5nIHJlZ3Jlc3Npb246Cgog IENSRUFURSBUQUJMRSBib29tICh0IGNoYXJhY3RlciB2YXJ5aW5nKDUpIERFRkFVTFQgJ2EgbG9u ZyBzdHJpbmcnKTsKICBDT1BZIGJvb20gRlJPTSBTVERJTjsKICBFUlJPUjogIHZhbHVlIHRvbyBs b25nIGZvciB0eXBlIGNoYXJhY3RlciB2YXJ5aW5nKDUpCgpUaGlzIHdvcmtlZCBiZWZvcmUgOWY4 Mzc3ZjdhMiwgc2luY2UgZGVmYXVsdCB2YWx1ZXMgd2VyZSBvbmx5CmV2YWx1YXRlZCBmb3IgY29s dW1ucyB0aGF0IHdlcmUgbm90IHNwZWNpZmllZCBpbiB0aGUgY29sdW1uIGxpc3QuCgpUbyBmaXgs IGZldGNoIHRoZSBkZWZhdWx0IHZhbHVlcyBvbmx5IGlmIHRoZSBERUZBVUxUIG9wdGlvbiB3YXMK c3BlY2lmaWVkIG9yIGZvciBjb2x1bW5zIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbiBsaXN0 LgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgfCA5ICsrKysrKysrLQogMSBm aWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9j b3B5ZnJvbS5jCmluZGV4IDcwODcxZWQ4MTkuLjMyMGI3NjRhYTkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29w eWZyb20uYwpAQCAtMTU2Nyw3ICsxNTY3LDE0IEBAIEJlZ2luQ29weUZyb20oUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkvKiBHZXQgZGVmYXVsdCBpbmZvIGlmIGF2YWlsYWJsZSAqLwogCQlkZWZleHBy c1thdHRudW0gLSAxXSA9IE5VTEw7CiAKLQkJaWYgKCFhdHQtPmF0dGdlbmVyYXRlZCkKKwkJLyoK KwkJICogV2UgbmVlZCB0aGUgZGVmYXVsdCB2YWx1ZXMgb25seSBmb3IgY29sdW1ucyB0aGF0IGRv IG5vdCBhcHBlYXIgaW4gdGhlCisJCSAqIGNvbHVtbiBsaXN0IG9yIGlmIHRoZSBERUZBVUxUIG9w dGlvbiB3YXMgZ2l2ZW4uICBXZSBhbHNvIGRvbid0IG5lZWQKKwkJICogaXQgZm9yIGdlbmVyYXRl ZCBjb2x1bW5zLgorCQkgKi8KKwkJaWYgKCghbGlzdF9tZW1iZXJfaW50KGNzdGF0ZS0+YXR0bnVt bGlzdCwgYXR0bnVtKSB8fAorCQkJIGNzdGF0ZS0+b3B0cy5kZWZhdWx0X3ByaW50ICE9IE5VTEwp ICYmCisJCQkhYXR0LT5hdHRnZW5lcmF0ZWQpCiAJCXsKIAkJCUV4cHIJICAgKmRlZmV4cHIgPSAo RXhwciAqKSBidWlsZF9jb2x1bW5fZGVmYXVsdChjc3RhdGUtPnJlbCwKIAkJCQkJCQkJCQkJCQkJ CQlhdHRudW0pOwotLSAKMi40MS4wCgo= --=-8fJaUTSpgh0p8VKWyY//--