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 1wUfZa-001LoJ-1Q for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Jun 2026 06:59:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wUfZZ-0006RK-1E for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Jun 2026 06:59:29 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wUfZZ-0006RC-0B for pgsql-hackers@lists.postgresql.org; Wed, 03 Jun 2026 06:59:29 +0000 Received: from mail-vk1-xa32.google.com ([2607:f8b0:4864:20::a32]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wUfZU-000000010Bu-2lFv for pgsql-hackers@lists.postgresql.org; Wed, 03 Jun 2026 06:59:28 +0000 Received: by mail-vk1-xa32.google.com with SMTP id 71dfb90a1353d-59d7db12342so1216766e0c.0 for ; Tue, 02 Jun 2026 23:59:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780469963; cv=none; d=google.com; s=arc-20240605; b=eHPfpUqTNI48sSxDxraFktXJJeQ1Arbw2SRwyP2CfkrwoldP5IsljDiEfy1tpEr8Ej 1ob/eiS5bVUA7CwDxEmHLNCxLM8mGLzeN50/UEQCyCoCmHkC0v8rhbWlVnU1KgR4uLJL wCx+Kdq4uuldcfFf7UTzXp0t9zOUArmTpN1L80JfTIkswAiBzEkoJPpUzUKe2nK03CJk L4VR71L4Hx99NPeMJ8ju8fRzE9YsfDVXFcq5EgTWkjMovCxq0ONJMm4XETjER20HBszs ADKzvtQPzRCU3NThapGJQiJ16r27V4tnDg6JeIWqtsr/vuWYZiTdAkd3P5cdsW6XVBIa G6eA== 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=0G1G1G/bzLdK6Uoqz7Xffvaf884bZw7ZPndWaSYMeJ8=; fh=tP9Jm/lfRFjMausGMPLdxA90G6rdl9Ynpxa533x3nYE=; b=PPVb3CzGx+0DmAAI5hWU7d8gs0dHAe31Hh1qfeUc5wh8tfLmmexg1SuVcVqu6RlQNz tqWqLVCCojZwN9KtPdkmwTRi5BvDLgVqKzuc2+ePQDrF8OT+u1ak88NIdnPrMZJhoL/O CchqERxXTkOVk8+BQegsbVlDV3TPmDRynlNbbFLOakao3Ik583eKow6Elny3pSKBiiVt 1tGFywBu6vLKciOG6jCSk35bwuxwwh5o2kmowqgCHmoh7r0JSHrnN1d+aG7gQbIRhRot NtnSDTn20/379nP/lxE+PuhJBKqWjmNyR7GhhPlVsoI01Xb7ca2/wJ3hKmMlJCHqoJrN jQ6g==; darn=lists.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=1780469963; x=1781074763; darn=lists.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=0G1G1G/bzLdK6Uoqz7Xffvaf884bZw7ZPndWaSYMeJ8=; b=ipmN3OPfk6Howuv/l3fA1eTKmiaO1Tf6W9DpuP5bYfy0XfL3pWgUjyiydFRSqJwxV/ K3iKH6zJEva5IOEqNOaN151AqZskpnRFozf5GGatxTkH7qT/CW0l5WuTxQadYgBUdkYa 4U8y0OACB6Az2BYIRKBnspMJXFtHwCc59xdfu3XxP/o/SceMRjjqW9jGzl840/9BMvD2 vInFP5fnEpj610YCzteCfgcBrewN0i0X2nkAH/EHkuAQn5VC5dom69smaAobfU2RtVCH 1e+xaYSnUXKxHWUL0wq1rcAeBKZ7gzHAZgEawzmXyD77FttflRb7xKOkk/nFF/d5pFT+ Oy7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780469963; x=1781074763; 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=0G1G1G/bzLdK6Uoqz7Xffvaf884bZw7ZPndWaSYMeJ8=; b=IfYZChznBRCCMmFl/qe29uSisVQvX7oIrRotcb8jC0M0LEa/0PDZf2VmxurcgRM76i Cn8qv/jmMjujcsyPEwiaNwI3wsJCjYB5QMYTZ/zyF6LZmEvCNEXpB+HBHhtBpG/WZ1+h n0DLMTioFcuhHkd7LGrssRXfG1yoCioCo9oLVUdUFIJiFekn//gDz/6J9FVaDqeJyVtJ loq34lR2DjykI1/QUzTTXmvphxgaFp9jN7SqiR4uHMSHoUGO4hFreasxc1S/mgToUs6R k6nO/d6A/e1O0Gt5R7Kbr1HsgZoCTpXgoMsGiL+/mPFsPJ612GmVLNGuAenmmR63KAaX BG6Q== X-Forwarded-Encrypted: i=1; AFNElJ+k0Cp5RcKXDOx1YzMJbQS465Yj4Nrkq1Lx9eYuenLdwbfTBbRoN5LHsQNclCGMGoucdm0kaEvBWpsiJYwv@lists.postgresql.org X-Gm-Message-State: AOJu0YzS897XrwdHB5Q9XUbWBtDMi4YwEyGZoEakfdUqDzZmdjBevgWq zZBrkWiYRLJ6iJU7tXmI7iAwfZqq9I3d7EGc1f+PEIKJobu5+LExRvu4uG6x7rtZx6zxE0Ec1Iw KNrv9UPPhtyb/DUeuxXA4EkOVinycK4M= X-Gm-Gg: Acq92OE2a2tbRZTvwq/wEfzQn9c9e1VerC2QsuYB+UYNxnAe7fauo98mHaaVMi+mXz+ jj96g8xyKl6xPiL3lCyV5IqZ0t7LGN5wfFeiu/IJ4B31nasnTbVvE8y72w4RFDBxruBPpk6SS59 lqZg0jxNR66WjLjNJ8Jhj+4Vn0NJxmW2xxAfQTEIWK62cFG+TBxwHidDciRrpdXROpYSBjxu8Zv DZbnKDiW9pGTg73iixvzHp2ozC3csQchq0i39/7m3y+7FYL0qAdr4lpJYsWDkMR7M3TiZtFoidf XggUadPtOSZ1SY0sWwJNcw7bu5eTeiNgM/1TDodS4C0YzNi4t24yMZTgROQUDvwBaqPv0x1hI5/ kPRboEtxs0qjLARG05snXeTIfeikIrKXTDb5Oi7QXvE7IHbJv+6qnci0IlaXPKVMH4pcx/Luinp 98KebGqHEf6FqTmGbs3kYisg+a3fssSZc3 X-Received: by 2002:a05:6122:2a13:b0:56a:fff5:b4d6 with SMTP id 71dfb90a1353d-5a6e5215d3dmr1161195e0c.4.1780469962855; Tue, 02 Jun 2026 23:59:22 -0700 (PDT) MIME-Version: 1.0 References: <7B7172F4-DB02-4259-997B-6AEF5ADF7FCE@gmail.com> <14E223D8-8425-446A-A36C-6B62BC334656@gmail.com> <9A3D388C-1DF4-4C43-9AB6-83529A8F48C8@gmail.com> In-Reply-To: <9A3D388C-1DF4-4C43-9AB6-83529A8F48C8@gmail.com> From: jian he Date: Wed, 3 Jun 2026 14:58:45 +0800 X-Gm-Features: AVHnY4LZTCN5SozjtEfGzwzI2eD4lXIpWOFlZSC6yX4h9HwtYJssMob2VRQCZL0 Message-ID: Subject: Re: Fix bug of CHECK constraint enforceability recursion To: Chao Li Cc: =?UTF-8?Q?=C3=81lvaro_Herrera?= , "L. pgsql-hackers" , Andrew Dunstan Content-Type: multipart/mixed; boundary="000000000000ab701d065353f7bf" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ab701d065353f7bf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jun 2, 2026 at 2:40=E2=80=AFPM Chao Li wro= te: > > Oops! I just found that I forgot to commit a tiny comment tuning in 0001.= So posting v6. > Hi. One partition cannot have two direct parent tables. see ATExecAttachPartition comment: /* A partition can only have one parent */ Also CREATE TABLE ... PARTITION OF automatically copies the parent constraint definition, and ALTER TABLE ... ATTACH PARTITION already rejects cases where the parent is enforced but the child is not. Therefore, I think calling ATCheckCheckConstrHasEnforcedParent once is enough for partition inheritance. Also please check the attached minor refactoring. -- jian https://www.enterprisedb.com/ --000000000000ab701d065353f7bf Content-Type: application/octet-stream; name="checkconstr_inheritance_issue.nocfbot" Content-Disposition: attachment; filename="checkconstr_inheritance_issue.nocfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpxpsq4g0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNjRhMGRhY2NhNGYuLjkxMjY3NGNjMGIzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTI3NjksNiArMTI3NjksMTMgQEAgQVRFeGVj QWx0ZXJDaGVja0NvbnN0ckVuZm9yY2VhYmlsaXR5KExpc3QgKip3cXVldWUsIEFUQWx0ZXJDb25z dHJhaW50ICpjbWRjb24sCiAJCQljaGlsZHJlbiA9IGZpbmRfYWxsX2luaGVyaXRvcnMoUmVsYXRp b25HZXRSZWxpZChyZWwpLAogCQkJCQkJCQkJCSAgIGxvY2ttb2RlLCBOVUxMKTsKIAorCQkJLyoK KwkJCSAqIEJ1aWxkIHRoZSBzZXQgb2YgZXF1aXZhbGVudCBDSEVDSyBjb25zdHJhaW50cyB0aGF0 IHRoaXMgY29tbWFuZAorCQkJICogd2lsbCBhdHRlbXB0IHRvIGNoYW5nZSBiZWZvcmUgdmlzaXRp bmcgZGVzY2VuZGFudHMuIFRoZSByb290CisJCQkgKiBpdHNlbGYgaGFzIGFscmVhZHkgYmVlbiBj aGVja2VkIGFib3ZlLgorCQkJICovCisJCQljaGFuZ2luZ19jb25pZHMgPSBsaXN0X21ha2UxX29p ZChjdXJyY29uLT5vaWQpOworCiAJCQlmb3JlYWNoX29pZChjaGlsZG9pZCwgY2hpbGRyZW4pCiAJ CQl7CiAJCQkJaWYgKGNoaWxkb2lkID09IFJlbGF0aW9uR2V0UmVsaWQocmVsKSkKQEAgLTEyNzg1 LDM1ICsxMjc5MiwyMCBAQCBBVEV4ZWNBbHRlckNoZWNrQ29uc3RyRW5mb3JjZWFiaWxpdHkoTGlz dCAqKndxdWV1ZSwgQVRBbHRlckNvbnN0cmFpbnQgKmNtZGNvbiwKIAkJCQkJCQllcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKIAkJCQkJCQllcnJtc2coImNvbnN0cmFp bnQgbXVzdCBiZSBhbHRlcmVkIG9uIGNoaWxkIHRhYmxlcyB0b28iKSwKIAkJCQkJCQllcnJoaW50 KCJEbyBub3Qgc3BlY2lmeSB0aGUgT05MWSBrZXl3b3JkLiIpKTsKLQkJCX0KIAotCQkJaWYgKCFj bWRjb24tPmlzX2VuZm9yY2VkKQotCQkJewogCQkJCS8qCi0JCQkJICogQnVpbGQgdGhlIHNldCBv ZiBlcXVpdmFsZW50IENIRUNLIGNvbnN0cmFpbnRzIHRoYXQgdGhpcwotCQkJCSAqIGNvbW1hbmQg d2lsbCBhdHRlbXB0IHRvIGNoYW5nZSBiZWZvcmUgdmlzaXRpbmcgZGVzY2VuZGFudHMuCi0JCQkJ ICogVGhlIHJvb3QgaXRzZWxmIGhhcyBhbHJlYWR5IGJlZW4gY2hlY2tlZCBhYm92ZS4KKwkJCQkg KiBJdCBpcyBzdWZmaWNpZW50IHRvIGxvb2sgdXAgdGhlIGNvbnN0cmFpbnQgYnkgbmFtZSBoZXJl LgorCQkJCSAqIFN1cHBvcnRlZCBEREwgZW5zdXJlcyB0aGF0IGluaGVyaXRhYmxlIENIRUNLIGNv bnN0cmFpbnRzCisJCQkJICogd2l0aCB0aGUgc2FtZSBuYW1lIGhhdmUgZXF1aXZhbGVudCBkZWZp bml0aW9ucyB3aGVuIHRoZXkKKwkJCQkgKiBhcmUgcHJvcGFnYXRlZCB0byBjaGlsZHJlbiBvciB3 aGVuIGluaGVyaXRhbmNlIGlzCisJCQkJICogZXN0YWJsaXNoZWQuCiAJCQkJICovCi0JCQkJY2hh bmdpbmdfY29uaWRzID0gbGlzdF9tYWtlMV9vaWQoY3VycmNvbi0+b2lkKTsKLQotCQkJCWZvcmVh Y2hfb2lkKGNoaWxkb2lkLCBjaGlsZHJlbikKLQkJCQl7Ci0JCQkJCWlmIChjaGlsZG9pZCA9PSBS ZWxhdGlvbkdldFJlbGlkKHJlbCkpCi0JCQkJCQljb250aW51ZTsKLQotCQkJCQkvKgotCQkJCQkg KiBJdCBpcyBzdWZmaWNpZW50IHRvIGxvb2sgdXAgdGhlIGNvbnN0cmFpbnQgYnkgbmFtZQotCQkJ CQkgKiBoZXJlLiAgU3VwcG9ydGVkIERETCBlbnN1cmVzIHRoYXQgaW5oZXJpdGFibGUgQ0hFQ0sK LQkJCQkJICogY29uc3RyYWludHMgd2l0aCB0aGUgc2FtZSBuYW1lIGhhdmUgZXF1aXZhbGVudAot CQkJCQkgKiBkZWZpbml0aW9ucyB3aGVuIHRoZXkgYXJlIHByb3BhZ2F0ZWQgdG8gY2hpbGRyZW4g b3IKLQkJCQkJICogd2hlbiBpbmhlcml0YW5jZSBpcyBlc3RhYmxpc2hlZC4KLQkJCQkJICovCisJ CQkJaWYgKCFjbWRjb24tPmlzX2VuZm9yY2VkKQogCQkJCQljaGFuZ2luZ19jb25pZHMgPQogCQkJ CQkJbGlzdF9hcHBlbmRfdW5pcXVlX29pZChjaGFuZ2luZ19jb25pZHMsCiAJCQkJCQkJCQkJCSAg IGdldF9yZWxhdGlvbl9jb25zdHJhaW50X29pZChjaGlsZG9pZCwKIAkJCQkJCQkJCQkJCQkJCQkJ CSAgIGNtZGNvbi0+Y29ubmFtZSwKIAkJCQkJCQkJCQkJCQkJCQkJCSAgIGZhbHNlKSk7Ci0JCQkJ fQogCQkJfQogCQl9CiAK --000000000000ab701d065353f7bf--