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 1w7vO2-00029a-2G for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 13:13:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7vO1-00025K-1W for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 13:13:33 +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 1w7vO1-00025B-09 for pgsql-hackers@lists.postgresql.org; Wed, 01 Apr 2026 13:13:33 +0000 Received: from mail-ua1-x935.google.com ([2607:f8b0:4864:20::935]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w7vNz-000000000tv-1vXZ for pgsql-hackers@postgresql.org; Wed, 01 Apr 2026 13:13:32 +0000 Received: by mail-ua1-x935.google.com with SMTP id a1e0cc1a2514c-953b0a7ee18so1098947241.3 for ; Wed, 01 Apr 2026 06:13:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775049210; cv=none; d=google.com; s=arc-20240605; b=Hgf39D1e8UdueU/xwdKa72OrAOTgT3iP1S2Ea8zmcfybQVTfm1qnhv8mRM39O5sJLN 4aX+d+D75chLT3vHxXiziiyeA7CXV7ZcEX4GF9eeVfFy5knpIJrFtqfLn0AHx3bV4fkf B1ucVcMjmteZGUXuSIxOga+eAcUUSqxJlXuYLjOQUHJMI/SXybPbS5jZkZZRzZ5C2o/b ww5WVETHpC1zlbYxLO+UbsJZE85BKLvIpXSltNnkoP8eMzmkss53keQZ7hgx247uD/3l 2Blojli/KBqK9amLmUvQxHym/TRZEk/bcqpTd1+oqhj6fKTr2gPIq4gzLMXx6lzZvGy5 pQkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=UFIqWy9P9WPv5VycQLWAgG8viXxfyp0QqnDdF1sXZyw=; fh=jef1C7pPr1Pqv0WYLy1dASQ1Uu16T/h/ehmlhXISyxI=; b=gQKGTWWu12hJckHaGX6UN6VPUebpuTC3+/3Eh/OtnF+Xx1wuM3kZu6BoQozZuENkzy ZJQ2GVXPnB476cjkoC2i6aSs4P4bNJE5zV0sOsNkdOcbgxO9KMEI6e9bRKc+2T/Jv2Kz hyVT9wRXi2THpPDYiDKe6YmM1nAagPOpFbOVBEYx8Ks4sY4JOzfwbz18HOn2JyLKxLxp AWhcKBy7Sb1uiudnqy0/aj85cwrIlSbeWSUha4LG3FR/b4d0Bp6hnvzEmknD+RPMz6Ce uwxy/DdRuisAzMXfValjZ7fn2nqZphhi009bY2yjr7h/iQZc8RIM1JbtX8bRJqA5T1rR reSA==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775049210; x=1775654010; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=UFIqWy9P9WPv5VycQLWAgG8viXxfyp0QqnDdF1sXZyw=; b=H/3P4PsFcfsbZ2B0jId2DhR6ThqcFuhSjaoxNTnzwMxVK6Y6o0hwzQ8/BlpgHkgZsm BxZtgh3nJCV0ypEoHfpkRHmxurd3JVsAunOy2L0pbLYs1kKB/IXLiQ4I/fy4XpSq7rU3 2bQ1fHFdABp5wqjIy3/AztDLCAERVX+Q4HrK45La4lzQDtnfyuxXlM0qpxz9bXv/+xc8 BBDpEqrVXNlX+91oJNQ+C/ycYKe1qunxgqL+6S4BLLxmzmp43n6Y1PCyFzRoyJu4Nsb4 dNXuHb6Gz9ZKOl/oO3knFvc4RcdTUA9PG85lZBQwhx+zveWZR/FmDnA9o0FiILSnhuPk oHtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775049210; x=1775654010; h=cc: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=UFIqWy9P9WPv5VycQLWAgG8viXxfyp0QqnDdF1sXZyw=; b=ISe2TWPVBjUu+PapxVe5skOK0Hx9z8EyhB5GDTX7nukUkS3PeNWaHMqbDu2GNWJkix WrIa8hQ2UW5fdxZv8j+TTwGn7O9vkABZPHJfkc0DSZMzBgj3TZHWDLaRNCiH7bD5CCEh 8U2/hlxHiRoJsDO7iElV9P8ECqMuXQlVzFJZG7LvtsQCaQBmcYmjBsulUGiCDrfogbTl Pt5toPbzZt17FI9nGIhg0ToHMaitrqd3x+9sG8KXFvDNDt2jV4G1JfpIJpGIK2RpP8Up OaSzmb46u4xyXO6KFAHT9rV8+RBcvrcpHXG0JHPpuIVF6kOE5QkxmoK6YX8htFDfphhT vvDw== X-Gm-Message-State: AOJu0Yx6VAXoiYBovit7KPJhchpCbmxL+xP+8QSRwPjdvhSNcfVVsZ3U Hs5uXOgaCzE0CwQFS5jpWVeSXeb0njDCVR9Hhwou+e+V1hRyTVEzsGwYD8jFcWmjQlFtgsPnnVr 246hvlYTk277vDNXUCMBmiRovbQVqyDRrTsY9FOUTTg== X-Gm-Gg: ATEYQzyjGJBygYcBE/jiwVKpoTZGmOE6gq7Vk24ocqLlqk4zPRy/aOCBBwrUCTQFMbg s+/kFmFEBED1VjAIJtYdJ4c+/B77T/yFsyyHIT9wdnN7inQqutvHDLe7RMom4W3jzzZUhHx4Wx0 S/HEtRo1qSxYDgZjGgtTtSEPW7sstO5t5li8y2WiPacYF71FhRmQq4Mqe1YtwElZnVfdgqF18La oq/4oRSTR8bwjWae0wjZwc8ydtTwdZ3eCvg7+gKA7nsYyB6PaNVRadjKXqeRpAR1ghJCeFvtoXc MBqEq1UBXaviWJULHQTHu4/YptSmDH8jgxKiAQq1XYCv1Z/I5JCNXi05L9+F+wcPpmOIFeWKR/S FZ30MeEIfubwhovvz3vz5qV7ljn1+4uWMAiwYBQKiZU2mRNJU6zRHUxcWsOINSYce4tp0Vn19SK 1YC/L3pwOu/uFxU+YOlpsGtw== X-Received: by 2002:a05:6102:5e97:b0:602:7a74:fbbe with SMTP id ada2fe7eead31-60567e492femr1137031137.9.1775049210482; Wed, 01 Apr 2026 06:13:30 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: jian he Date: Wed, 1 Apr 2026 21:12:54 +0800 X-Gm-Features: AQROBzAQQhpQ2BBx0DVV_Lu5hb9hwrrHIpAqgEOh509MwBp2tVXmNvhn63MBOZo Message-ID: Subject: Re: refactor ExecInitPartitionInfo To: Andreas Karlsson Cc: PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000a687de064e65d991" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a687de064e65d991 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Feb 23, 2026 at 10:28=E2=80=AFAM Andreas Karlsson wrote: > > > if (node !=3D NULL) > > part_attmap =3D build_attrmap_by_name(RelationGetDescr(partrel= ), > > RelationGetDescr(firstResu= ltRel), > > false); > > > > We have now consolidated five uses of build_attrmap_by_name into one. > > Hm, why would that be ok? As far as I can tell the current code tries > hard to not build the attmap unless it is actually needed while you > propose to build it almost unconditionally. While the code is less > complicated with your patch it instead has to do more work in some > cases, right? > Ok. I switched it back to + if (node && + (node->withCheckOptionLists !=3D NIL || + node->returningLists !=3D NIL || + node->onConflictAction =3D=3D ONCONFLICT_UPDATE || + node->onConflictWhere || + node->operation =3D=3D CMD_MERGE)) + { + /* later map_variable_attnos need use attribute map, build it now = */ + part_attmap =3D build_attrmap_by_name(RelationGetDescr(partrel), + RelationGetDescr(firstResultRe= l), + false); + } + -- jian https://www.enterprisedb.com/ --000000000000a687de064e65d991 Content-Type: text/x-patch; charset="US-ASCII"; name="v3-0001-refactor-ExecInitPartitionInfo.patch" Content-Disposition: attachment; filename="v3-0001-refactor-ExecInitPartitionInfo.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mng2fr9r0 RnJvbSA4MDk1MmViM2RmNTE4ZjhhMDFlYTI1NTcxMGY5ZDk2MGE0NTNlMDhhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMSBBcHIgMjAyNiAyMTowNzo1NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjMg MS8xXSByZWZhY3RvciBFeGVjSW5pdFBhcnRpdGlvbkluZm8KCk9wdGltaXplIEF0dHJNYXAgY3Jl YXRpb24gaW4gRXhlY0luaXRQYXJ0aXRpb25JbmZvLiBTaW5jZSBtYXBfdmFyaWFibGVfYXR0bm9z IGlzCmNhbGxlZCBtdWx0aXBsZSB0aW1lcyBhbmQgcmVxdWlyZXMgYW4gQXR0ck1hcCwgd2UgY2Fu IGF2b2lkIHJlZHVuZGFudCB3b3JrIGJ5CmJ1aWxkaW5nIHRoZSBtYXAgb25jZSB3aXRoIGJ1aWxk X2F0dHJtYXBfYnlfbmFtZSBhbmQgcmV1c2luZyBpdC4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FDSnVmeEVOX21tZ1R0cC1yYUo5LVZKSGd5QUdtYjBTck8rMDFrbjVieTRtSl9Y T2Z3QG1haWwuZ21haWwuY29tCmNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jl c3FsLm9yZy9wYXRjaC82MjgwCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcnRpdGlv bi5jIHwgNDAgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0 IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0 aXRpb24uYwppbmRleCBkOTZkNGY5OTQ3Yi4uNzBmMjk5ZGEwMTkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUGFydGl0aW9uLmMKQEAgLTYwOCw2ICs2MDgsMTkgQEAgRXhlY0luaXRQYXJ0aXRpb25J bmZvKE1vZGlmeVRhYmxlU3RhdGUgKm10c3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCQkJCQkJKG5v ZGUgIT0gTlVMTCAmJgogCQkJCQkJIG5vZGUtPm9uQ29uZmxpY3RBY3Rpb24gIT0gT05DT05GTElD VF9OT05FKSk7CiAKKwlpZiAobm9kZSAmJgorCQkobm9kZS0+d2l0aENoZWNrT3B0aW9uTGlzdHMg IT0gTklMIHx8CisJCSBub2RlLT5yZXR1cm5pbmdMaXN0cyAhPSBOSUwgfHwKKwkJIG5vZGUtPm9u Q29uZmxpY3RBY3Rpb24gPT0gT05DT05GTElDVF9VUERBVEUgfHwKKwkJIG5vZGUtPm9uQ29uZmxp Y3RXaGVyZSB8fAorCQkgbm9kZS0+b3BlcmF0aW9uID09IENNRF9NRVJHRSkpCisJeworCQkvKiBs YXRlciBtYXBfdmFyaWFibGVfYXR0bm9zIG5lZWQgdXNlIGF0dHJpYnV0ZSBtYXAsIGJ1aWxkIGl0 IG5vdyAqLworCQlwYXJ0X2F0dG1hcCA9IGJ1aWxkX2F0dHJtYXBfYnlfbmFtZShSZWxhdGlvbkdl dERlc2NyKHBhcnRyZWwpLAorCQkJCQkJCQkJCQlSZWxhdGlvbkdldERlc2NyKGZpcnN0UmVzdWx0 UmVsKSwKKwkJCQkJCQkJCQkJZmFsc2UpOworCX0KKwogCS8qCiAJICogQnVpbGQgV0lUSCBDSEVD SyBPUFRJT04gY29uc3RyYWludHMgZm9yIHRoZSBwYXJ0aXRpb24uICBOb3RlIHRoYXQgd2UKIAkg KiBkaWRuJ3QgYnVpbGQgdGhlIHdpdGhDaGVja09wdGlvbkxpc3QgZm9yIHBhcnRpdGlvbnMgd2l0 aGluIHRoZSBwbGFubmVyLApAQCAtNjUwLDEwICs2NjMsNiBAQCBFeGVjSW5pdFBhcnRpdGlvbklu Zm8oTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJCS8qCiAJCSAq IENvbnZlcnQgVmFycyBpbiBpdCB0byBjb250YWluIHRoaXMgcGFydGl0aW9uJ3MgYXR0cmlidXRl IG51bWJlcnMuCiAJCSAqLwotCQlwYXJ0X2F0dG1hcCA9Ci0JCQlidWlsZF9hdHRybWFwX2J5X25h bWUoUmVsYXRpb25HZXREZXNjcihwYXJ0cmVsKSwKLQkJCQkJCQkJICBSZWxhdGlvbkdldERlc2Ny KGZpcnN0UmVzdWx0UmVsKSwKLQkJCQkJCQkJICBmYWxzZSk7CiAJCXdjb0xpc3QgPSAoTGlzdCAq KQogCQkJbWFwX3ZhcmlhYmxlX2F0dG5vcygoTm9kZSAqKSB3Y29MaXN0LAogCQkJCQkJCQlmaXJz dFZhcm5vLCAwLApAQCAtNzEwLDExICs3MTksNiBAQCBFeGVjSW5pdFBhcnRpdGlvbkluZm8oTW9k aWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJCS8qCiAJCSAqIENvbnZl cnQgVmFycyBpbiBpdCB0byBjb250YWluIHRoaXMgcGFydGl0aW9uJ3MgYXR0cmlidXRlIG51bWJl cnMuCiAJCSAqLwotCQlpZiAocGFydF9hdHRtYXAgPT0gTlVMTCkKLQkJCXBhcnRfYXR0bWFwID0K LQkJCQlidWlsZF9hdHRybWFwX2J5X25hbWUoUmVsYXRpb25HZXREZXNjcihwYXJ0cmVsKSwKLQkJ CQkJCQkJCSAgUmVsYXRpb25HZXREZXNjcihmaXJzdFJlc3VsdFJlbCksCi0JCQkJCQkJCQkgIGZh bHNlKTsKIAkJcmV0dXJuaW5nTGlzdCA9IChMaXN0ICopCiAJCQltYXBfdmFyaWFibGVfYXR0bm9z KChOb2RlICopIHJldHVybmluZ0xpc3QsCiAJCQkJCQkJCWZpcnN0VmFybm8sIDAsCkBAIC05NTIs MTEgKzk1Niw3IEBAIEV4ZWNJbml0UGFydGl0aW9uSW5mbyhNb2RpZnlUYWJsZVN0YXRlICptdHN0 YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAkJCQkJTGlzdAkgICAqb25jb25mbGNvbHM7CiAKIAkJCQkJ b25jb25mbHNldCA9IGNvcHlPYmplY3Qobm9kZS0+b25Db25mbGljdFNldCk7Ci0JCQkJCWlmIChw YXJ0X2F0dG1hcCA9PSBOVUxMKQotCQkJCQkJcGFydF9hdHRtYXAgPQotCQkJCQkJCWJ1aWxkX2F0 dHJtYXBfYnlfbmFtZShSZWxhdGlvbkdldERlc2NyKHBhcnRyZWwpLAotCQkJCQkJCQkJCQkJICBS ZWxhdGlvbkdldERlc2NyKGZpcnN0UmVzdWx0UmVsKSwKLQkJCQkJCQkJCQkJCSAgZmFsc2UpOwor CiAJCQkJCW9uY29uZmxzZXQgPSAoTGlzdCAqKQogCQkJCQkJbWFwX3ZhcmlhYmxlX2F0dG5vcygo Tm9kZSAqKSBvbmNvbmZsc2V0LAogCQkJCQkJCQkJCQlJTk5FUl9WQVIsIDAsCkBAIC0xMDA4LDEy ICsxMDA4LDYgQEAgRXhlY0luaXRQYXJ0aXRpb25JbmZvKE1vZGlmeVRhYmxlU3RhdGUgKm10c3Rh dGUsIEVTdGF0ZSAqZXN0YXRlLAogCQkJCXsKIAkJCQkJTGlzdAkgICAqY2xhdXNlOwogCi0JCQkJ CWlmIChwYXJ0X2F0dG1hcCA9PSBOVUxMKQotCQkJCQkJcGFydF9hdHRtYXAgPQotCQkJCQkJCWJ1 aWxkX2F0dHJtYXBfYnlfbmFtZShSZWxhdGlvbkdldERlc2NyKHBhcnRyZWwpLAotCQkJCQkJCQkJ CQkJICBSZWxhdGlvbkdldERlc2NyKGZpcnN0UmVzdWx0UmVsKSwKLQkJCQkJCQkJCQkJCSAgZmFs c2UpOwotCiAJCQkJCWNsYXVzZSA9IGNvcHlPYmplY3QoKExpc3QgKikgbm9kZS0+b25Db25mbGlj dFdoZXJlKTsKIAkJCQkJY2xhdXNlID0gKExpc3QgKikKIAkJCQkJCW1hcF92YXJpYWJsZV9hdHRu b3MoKE5vZGUgKikgY2xhdXNlLApAQCAtMTA2NSwxMiArMTA1OSw2IEBAIEV4ZWNJbml0UGFydGl0 aW9uSW5mbyhNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAkJRXhw ckNvbnRleHQgKmVjb250ZXh0ID0gbXRzdGF0ZS0+cHMucHNfRXhwckNvbnRleHQ7CiAJCU5vZGUJ ICAgKmpvaW5Db25kaXRpb247CiAKLQkJaWYgKHBhcnRfYXR0bWFwID09IE5VTEwpCi0JCQlwYXJ0 X2F0dG1hcCA9Ci0JCQkJYnVpbGRfYXR0cm1hcF9ieV9uYW1lKFJlbGF0aW9uR2V0RGVzY3IocGFy dHJlbCksCi0JCQkJCQkJCQkgIFJlbGF0aW9uR2V0RGVzY3IoZmlyc3RSZXN1bHRSZWwpLAotCQkJ CQkJCQkJICBmYWxzZSk7Ci0KIAkJaWYgKHVubGlrZWx5KCFsZWFmX3BhcnRfcnJpLT5yaV9wcm9q ZWN0TmV3SW5mb1ZhbGlkKSkKIAkJCUV4ZWNJbml0TWVyZ2VUdXBsZVNsb3RzKG10c3RhdGUsIGxl YWZfcGFydF9ycmkpOwogCi0tIAoyLjM0LjEKCg== --000000000000a687de064e65d991--