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.96) (envelope-from ) id 1vIZh1-005tm5-36 for pgsql-docs@arkaria.postgresql.org; Mon, 10 Nov 2025 21:44:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vIZgz-002kyp-2I for pgsql-docs@arkaria.postgresql.org; Mon, 10 Nov 2025 21:44:53 +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.96) (envelope-from ) id 1vIZgz-002kyh-1W for pgsql-docs@lists.postgresql.org; Mon, 10 Nov 2025 21:44:53 +0000 Received: from mail-lj1-x235.google.com ([2a00:1450:4864:20::235]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vIZgx-006RPY-1q for pgsql-docs@lists.postgresql.org; Mon, 10 Nov 2025 21:44:52 +0000 Received: by mail-lj1-x235.google.com with SMTP id 38308e7fff4ca-375eff817a3so34215561fa.1 for ; Mon, 10 Nov 2025 13:44:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762811090; x=1763415890; darn=lists.postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=x65HFeihvmt3DtxkwbIMDmSlTSXGwmVo1nB/G5dEhcA=; b=Ei9PA69TOirwtgIjT2+DGMX+2r+5lxoXc5Op3mosEZjfDI0lYPQUQccBsRANjOytuL kpBAS0q7R8Nuacuxnipl4F4DGMoYrIqMJd4brYmvEO3Ch+PMb2cUaMxVQ+XHlMAwUJ83 aQXsNDhC1V+mk3qFlvWPWzf70cEeZSzFK3zb/mlFFR3vknlQwyMWi2TdknouaZ+YpTuQ aCzUxPvnohJ8UIStCGtVNVEbPx1lxNqfHHYDRuggjk1AFrABC7eZZ86WpvRtl6yAkUOq GDSfnGS95mdUgo39tNZZoPxqaTDGmjP/zWbXldwrIn5wPBDNMHkVTwyW9ZwoMymQzNh9 Pszg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762811090; x=1763415890; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=x65HFeihvmt3DtxkwbIMDmSlTSXGwmVo1nB/G5dEhcA=; b=WCFWE/RCIPHFSASo9pp5HbHbyDF7VmmcXPBTyf0fHdQBmyKba6Uz55oxKqrE89Y9sg G4B7mOZmlzwYlnCCenpiPaPeRyXDjtnEmhg7tFahxEHdwF0GveNCkSK1+2c8s/5UYtK9 lDGdYkWQEExrqrXvUWfifkfngQd6y/9uDwoVb3d3bLAD+QIjPutjQwT6hSJ9Rxa3Jact k0PYiO/x7Tsv0NAD5UJU8IWEAkTFYrObYZIcVZJBFuo/EX6bvv3e2qQdGriD54xeFjHH F2Rgc0fzlC1yvczjtQU6m0AMS5VXhmh+cIJEueWHGersZigrTt71AWPYb9lQWdIaa791 Cw0A== X-Forwarded-Encrypted: i=1; AJvYcCVKpbKSU2VL9xOS3Um3c3+Id2uxtfj0SjAHsU/T5b2HhQkB6Z4fbF2v2Nl5U/pdwYdvz/zxFRF0m7UK@lists.postgresql.org X-Gm-Message-State: AOJu0YziAOUlwOtmR+X9nQMImx4f3dLKKk/bzIwLpBa8vyYxInAs4CJB f6SO6IuBh9N/C681+sAt67HGb9isLjY20QyzDJwYFKlgRLwq8l/BCOEp0XwZ5dBt1Bk4p/o7FPc hmubVEMdOFGMAAg5IsP2uFyQ7XLCWk34= X-Gm-Gg: ASbGncsGsqzq2pRbsDnucKueOlkYTLcmICkDPkMbQpRwQlwU+R4iNSPttGXG8uvzZqU ip0JO4+cFwJ7h2XbWT27SwgH6biM84Oe/WDmODxG54iAq+my7vvVnJSOUjiZv83A/UwjqF8W7Fj orXnF8E227MlIIkY2LWbVxbDrsb6QPAhQPtrKuzHIrhxFfVcq1+s2ScXG6Jaly2UyrlH0D0hWl8 Nf8CNY7LbxphFhzcINkwhbrFeL49OuluL2CDFP6HrzrSFIFo8EAb6w/z8g138jgD2S7HrkhztY3 aQ8xaEFjaMVqqlxQ6H/pncBE/YZWShbX0kQnV7h/AdUX36daRkaTPY/NhCe6WA== X-Google-Smtp-Source: AGHT+IFrbUMyvDDKXZPqyOK26a9dVIiLYkHAsncewQgy3y3STYnRmqMonFZfQpT9EVGaEdaMJ35HmUcQsObeH39qBnE= X-Received: by 2002:a05:6512:128a:b0:592:f441:928a with SMTP id 2adb3069b0e04-5945f15e901mr2780918e87.3.1762811089601; Mon, 10 Nov 2025 13:44:49 -0800 (PST) MIME-Version: 1.0 References: <176278494385.770.15550176063450771532@wrigleys.postgresql.org> In-Reply-To: <176278494385.770.15550176063450771532@wrigleys.postgresql.org> From: David Rowley Date: Tue, 11 Nov 2025 10:44:36 +1300 X-Gm-Features: AWmQ_bnglpnbdpIAA_7uj5WKyaMa4vLX9Tfd4dkBpYbmhrf9rX6uT5xHpdZjJcM Message-ID: Subject: Re: MERGE command is not mentioned in the list of commands for variable substitution To: emorgunov@mail.ru, pgsql-docs@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000cd627c06434470bc" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000cd627c06434470bc Content-Type: text/plain; charset="UTF-8" On Tue, 11 Nov 2025 at 05:52, PG Doc comments form wrote: > "Variable substitution currently works only in SELECT, INSERT, UPDATE, > DELETE, and commands containing one of these..." > https://www.postgresql.org/docs/current/plpgsql-implementation.html#PLPGSQL-VAR-SUBST > But experiments showed that variable substitution works for MERGE command > too. Thanks for the report. You're right that this has been overlooked. The attached patch fixes it. I can take care of this once the back branches are open again after the minor releases are out. David --000000000000cd627c06434470bc Content-Type: application/octet-stream; name="v1-0001-Doc-include-MERGE-in-variable-substitution-comman.patch" Content-Disposition: attachment; filename="v1-0001-Doc-include-MERGE-in-variable-substitution-comman.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhto73b80 RnJvbSAzMTM4NTNjYzY3ZGU2NmU3NmQ1MDg1NGZiNmI1MjE4ZDQ5YzUzZmMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBSb3dsZXkgPGRncm93bGV5QGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCAxMSBOb3YgMjAyNSAxMDozNTowNiArMTMwMApTdWJqZWN0OiBbUEFUQ0ggdjFdIERv YzogaW5jbHVkZSBNRVJHRSBpbiB2YXJpYWJsZSBzdWJzdGl0dXRpb24gY29tbWFuZCBsaXN0CgpB dXRob3I6IERhdmlkIFJvd2xleSA8ZGdyb3dsZXltbEBnbWFpbC5jb20+ClJlcG9ydGVkLWJ5OiBl bW9yZ3Vub3ZAbWFpbC5ydQpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzE3NjI3ODQ5 NDM4NS43NzAuMTU1NTAxNzYwNjM0NTA3NzE1MzJAd3JpZ2xleXMucG9zdGdyZXNxbC5vcmcKLS0t CiBkb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sIHwgMTQgKysrKysrKy0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXgg YjU2MWI0Y2M1ODAuLjU2MWY2ZTUwZDYzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGxwZ3Nx bC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKQEAgLTQ5NjIsMTMgKzQ5NjIs MTMgQEAgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKICAgIDxwYXJhPgogICAgIFZhcmlhYmxlIHN1YnN0 aXR1dGlvbiBjdXJyZW50bHkgd29ya3Mgb25seSBpbiA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+ LAogICAgIDxjb21tYW5kPklOU0VSVDwvY29tbWFuZD4sIDxjb21tYW5kPlVQREFURTwvY29tbWFu ZD4sCi0gICAgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiwgYW5kIGNvbW1hbmRzIGNvbnRhaW5p bmcgb25lIG9mCi0gICAgdGhlc2UgKHN1Y2ggYXMgPGNvbW1hbmQ+RVhQTEFJTjwvY29tbWFuZD4g YW5kIDxjb21tYW5kPkNSRUFURSBUQUJMRQotICAgIC4uLiBBUyBTRUxFQ1Q8L2NvbW1hbmQ+KSwK LSAgICBiZWNhdXNlIHRoZSBtYWluIFNRTCBlbmdpbmUgYWxsb3dzIHF1ZXJ5IHBhcmFtZXRlcnMg b25seSBpbiB0aGVzZQotICAgIGNvbW1hbmRzLiAgVG8gdXNlIGEgbm9uLWNvbnN0YW50IG5hbWUg b3IgdmFsdWUgaW4gb3RoZXIgc3RhdGVtZW50Ci0gICAgdHlwZXMgKGdlbmVyaWNhbGx5IGNhbGxl ZCB1dGlsaXR5IHN0YXRlbWVudHMpLCB5b3UgbXVzdCBjb25zdHJ1Y3QKLSAgICB0aGUgdXRpbGl0 eSBzdGF0ZW1lbnQgYXMgYSBzdHJpbmcgYW5kIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+IGl0 LgorICAgIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5k PiBhbmQgY29tbWFuZHMKKyAgICBjb250YWluaW5nIG9uZSBvZiB0aGVzZSAoc3VjaCBhcyA8Y29t bWFuZD5FWFBMQUlOPC9jb21tYW5kPiBhbmQKKyAgICA8Y29tbWFuZD5DUkVBVEUgVEFCTEUgLi4u IEFTIFNFTEVDVDwvY29tbWFuZD4pLCBiZWNhdXNlIHRoZSBtYWluIFNRTAorICAgIGVuZ2luZSBh bGxvd3MgcXVlcnkgcGFyYW1ldGVycyBvbmx5IGluIHRoZXNlIGNvbW1hbmRzLiAgVG8gdXNlIGEK KyAgICBub24tY29uc3RhbnQgbmFtZSBvciB2YWx1ZSBpbiBvdGhlciBzdGF0ZW1lbnQgdHlwZXMg KGdlbmVyaWNhbGx5IGNhbGxlZAorICAgIHV0aWxpdHkgc3RhdGVtZW50cyksIHlvdSBtdXN0IGNv bnN0cnVjdCB0aGUgdXRpbGl0eSBzdGF0ZW1lbnQgYXMgYSBzdHJpbmcKKyAgICBhbmQgPGNvbW1h bmQ+RVhFQ1VURTwvY29tbWFuZD4gaXQuCiAgICA8L3BhcmE+CiAKICAgPC9zZWN0Mj4KLS0gCjIu NDAuMS53aW5kb3dzLjEKCg== --000000000000cd627c06434470bc--