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 1rxb8z-009yeY-SC for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Apr 2024 23:26:18 +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 1rxb8y-00BhnM-41 for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Apr 2024 23:26:16 +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 1rxb8x-00BhfS-I2 for pgsql-hackers@lists.postgresql.org; Thu, 18 Apr 2024 23:26:15 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rxb8t-003Wi2-9f for pgsql-hackers@lists.postgresql.org; Thu, 18 Apr 2024 23:26:13 +0000 Received: from [172.30.11.66] (unknown [172.30.11.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: d.koval@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 9F5E5E20442; Fri, 19 Apr 2024 02:26:07 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1713482767; bh=BWHZWTVfJmXv5PzsIUxK8fUsGsBI+y3D/9e8Hoyct7k=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=CUJHxoBgOlFHVUaH2q1TiWa+nFN4twrvSAvHVdHJOhsBir1RfYhEpOflCBvqW4hKz FN+JoVnDeMIw03qX+rp2UrkczXyQ9STfhzcOhNMfIqMVmfVvwgwHOqfKLIpgFNbSnW B9zQr4TEe0UH5qdP/gXMizxnYp6Jdp6w2G97igsWtI+rXMaok9C/4KYpcHmq0ssD6w tQL5AdjKAxm7iH/o/joIX0FEJT/rEz842IuFJghOy+Lf6kqqbTORCE+eh0lniZbEKL WnJ+67oEZBLtJ/K4Hko1vBBGrOU32/ho3UxtshifoUYxxfB42zDJiZGprYmmG6gDva U1u5IJLtYFhrQ== Content-Type: multipart/mixed; boundary="------------oamXtdF6nHDDNz0L0GRa4fi3" Message-ID: Date: Fri, 19 Apr 2024 02:26:07 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Add SPLIT PARTITION/MERGE PARTITIONS commands To: Alexander Lakhin , Alexander Korotkov Cc: Robert Haas , PostgreSQL Hackers References: <86bfd241-a58c-479a-9a72-2c67a02becf8@postgrespro.ru> <0f655bcd-6487-4179-f9cf-c248efbad510@gmail.com> <56e0000c-6b39-44ce-90b4-d3c3062e408c@postgrespro.ru> <5dee3937-8e9f-cca4-11fb-737709a92b37@gmail.com> Content-Language: en-US From: Dmitry Koval In-Reply-To: <5dee3937-8e9f-cca4-11fb-737709a92b37@gmail.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------oamXtdF6nHDDNz0L0GRa4fi3 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi! 18.04.2024 19:00, Alexander Lakhin wrote: > leaves a strange constraint: > \d+ t* >                                           Table "public.tp_0" > ... > Not-null constraints: >     "merge-16385-26BCB0-tmp_i_not_null" NOT NULL "i" Thanks! Attached fix (with test) for this case. The patch should be applied after patches v6-0001- ... .patch ... v6-0004- ... .patch -- With best regards, Dmitry Koval Postgres Professional: http://postgrespro.com --------------oamXtdF6nHDDNz0L0GRa4fi3 Content-Type: text/plain; charset=UTF-8; name="v6-0005-Fix.patch" Content-Disposition: attachment; filename="v6-0005-Fix.patch" Content-Transfer-Encoding: base64 RnJvbSA1OGU0YjdmYjFkM2IxNWNkZjFjNzQyYzI4NjkwMzkyZGRhMzQ5MTVkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb3ZhbCBEbWl0cnkgPGQua292YWxAcG9zdGdyZXNw cm8ucnU+CkRhdGU6IEZyaSwgMTkgQXByIDIwMjQgMDE6NTc6NDkgKzAzMDAKU3ViamVjdDog W1BBVENIIHY2XSBGaXgKCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMg ICAgICAgICAgICAgIHwgNDkgKysrKysrLS0tLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0IHwgMTMgKysrKy0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwgICAgICB8ICA4ICsrLQogMyBmaWxlcyBj aGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCmluZGV4IDcyODc0Mjk1Y2IuLjg5ODU3NDcxODAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yMTUwOCw5ICsyMTUwOCw2IEBAIEFURXhlY01l cmdlUGFydGl0aW9ucyhMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJl bGF0aW9uIHJlbCwKIAlMaXN0Q2VsbCAgICpsaXN0cHRyOwogCUxpc3QJICAgKm1lcmdpbmdQ YXJ0aXRpb25zTGlzdCA9IE5JTDsKIAlPaWQJCQlkZWZhdWx0UGFydE9pZDsKLQljaGFyCQl0 bXBSZWxOYW1lW05BTUVEQVRBTEVOXTsKLQlSYW5nZVZhciAgICptZXJnZVBhcnROYW1lID0g Y21kLT5uYW1lOwotCWJvb2wJCWlzU2FtZU5hbWUgPSBmYWxzZTsKIAogCS8qCiAJICogTG9j ayBhbGwgbWVyZ2VkIHBhcnRpdGlvbnMsIGNoZWNrIHRoZW0gYW5kIGNyZWF0ZSBsaXN0IHdp dGggcGFydGl0aW9ucwpAQCAtMjE1MzIsOCArMjE1MjksMjIgQEAgQVRFeGVjTWVyZ2VQYXJ0 aXRpb25zKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24g cmVsLAogCQkgKiBmdW5jdGlvbiB0cmFuc2Zvcm1QYXJ0aXRpb25DbWRGb3JNZXJnZSgpLgog CQkgKi8KIAkJaWYgKGVxdWFsKG5hbWUsIGNtZC0+bmFtZSkpCisJCXsKIAkJCS8qIE9uZSBu ZXcgcGFydGl0aW9uIGNhbiBoYXZlIHRoZSBzYW1lIG5hbWUgYXMgbWVyZ2VkIHBhcnRpdGlv bi4gKi8KLQkJCWlzU2FtZU5hbWUgPSB0cnVlOworCQkJY2hhcgkJdG1wUmVsTmFtZVtOQU1F REFUQUxFTl07CisKKwkJCS8qIEdlbmVyYXRlIHRlbXBvcmFyeSBuYW1lLiAqLworCQkJc3By aW50Zih0bXBSZWxOYW1lLCAibWVyZ2UtJXUtJVgtdG1wIiwgUmVsYXRpb25HZXRSZWxpZChy ZWwpLCBNeVByb2NQaWQpOworCisJCQkvKiBSZW5hbWUgcGFydGl0aW9uLiAqLworCQkJUmVu YW1lUmVsYXRpb25JbnRlcm5hbChSZWxhdGlvbkdldFJlbGlkKG1lcmdpbmdQYXJ0aXRpb24p LAorCQkJCQkJCQkgICB0bXBSZWxOYW1lLCBmYWxzZSwgZmFsc2UpOworCQkJLyoKKwkJCSAq IFdlIG11c3QgYnVtcCB0aGUgY29tbWFuZCBjb3VudGVyIHRvIG1ha2UgdGhlIG5ldyBwYXJ0 aXRpb24gdHVwbGUKKwkJCSAqIHZpc2libGUgZm9yIHJlbmFtZS4KKwkJCSAqLworCQkJQ29t bWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKwkJfQogCiAJCS8qIFN0b3JlIGEgbmV4dCBtZXJn aW5nIHBhcnRpdGlvbiBpbnRvIHRoZSBsaXN0LiAqLwogCQltZXJnaW5nUGFydGl0aW9uc0xp c3QgPSBsYXBwZW5kKG1lcmdpbmdQYXJ0aXRpb25zTGlzdCwKQEAgLTIxNTUzLDE2ICsyMTU2 NCw4IEBAIEFURXhlY01lcmdlUGFydGl0aW9ucyhMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFi bGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJRGV0YWNoUGFydGl0aW9uRmluYWxpemUo cmVsLCBtZXJnaW5nUGFydGl0aW9uLCBmYWxzZSwgZGVmYXVsdFBhcnRPaWQpOwogCX0KIAot CS8qIENyZWF0ZSB0YWJsZSBmb3IgbmV3IHBhcnRpdGlvbiwgdXNlIHBhcnRpdGlvbmVkIHRh YmxlIGFzIG1vZGVsLiAqLwotCWlmIChpc1NhbWVOYW1lKQotCXsKLQkJLyogQ3JlYXRlIHBh cnRpdGlvbiB0YWJsZSB3aXRoIGdlbmVyYXRlZCB0ZW1wb3JhcnkgbmFtZS4gKi8KLQkJc3By aW50Zih0bXBSZWxOYW1lLCAibWVyZ2UtJXUtJVgtdG1wIiwgUmVsYXRpb25HZXRSZWxpZChy ZWwpLCBNeVByb2NQaWQpOwotCQltZXJnZVBhcnROYW1lID0gbWFrZVJhbmdlVmFyKGNtZC0+ bmFtZS0+c2NoZW1hbmFtZSwgdG1wUmVsTmFtZSwgLTEpOwotCX0KLQogCW5ld1BhcnRSZWwg PSBjcmVhdGVQYXJ0aXRpb25UYWJsZShyZWwsCi0JCQkJCQkJCQkgIG1lcmdlUGFydE5hbWUs CisJCQkJCQkJCQkgIGNtZC0+bmFtZSwKIAkJCQkJCQkJCSAgbWFrZVJhbmdlVmFyKGdldF9u YW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZWwpKSwKIAkJCQkJCQkJCQkJ CSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksIC0xKSwKIAkJCQkJCQkJCSAgY29u dGV4dCk7CkBAIC0yMTU4OCwyNiArMjE1OTEsNiBAQCBBVEV4ZWNNZXJnZVBhcnRpdGlvbnMo TGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJ fQogCWxpc3RfZnJlZShtZXJnaW5nUGFydGl0aW9uc0xpc3QpOwogCi0JLyogUmVuYW1lIG5l dyBwYXJ0aXRpb24gaWYgaXQgaXMgbmVlZGVkLiAqLwotCWlmIChpc1NhbWVOYW1lKQotCXsK LQkJLyoKLQkJICogV2UgbXVzdCBidW1wIHRoZSBjb21tYW5kIGNvdW50ZXIgdG8gbWFrZSB0 aGUgbmV3IHBhcnRpdGlvbiB0dXBsZQotCQkgKiB2aXNpYmxlIGZvciByZW5hbWUuCi0JCSAq LwotCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwotCi0JCS8qIFJlbmFtZSBwYXJ0aXRp b24uICovCi0JCVJlbmFtZVJlbGF0aW9uSW50ZXJuYWwoUmVsYXRpb25HZXRSZWxpZChuZXdQ YXJ0UmVsKSwKLQkJCQkJCQkgICBjbWQtPm5hbWUtPnJlbG5hbWUsIGZhbHNlLCBmYWxzZSk7 Ci0KLQkJLyoKLQkJICogQnVtcCB0aGUgY29tbWFuZCBjb3VudGVyIHRvIG1ha2UgdGhlIHR1 cGxlIG9mIHJlbmFtZWQgcGFydGl0aW9uCi0JCSAqIHZpc2libGUgZm9yIGF0dGFjaCBwYXJ0 aXRpb24gb3BlcmF0aW9uLgotCQkgKi8KLQkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsK LQl9Ci0KIAkvKgogCSAqIEF0dGFjaCBhIG5ldyBwYXJ0aXRpb24gdG8gdGhlIHBhcnRpdGlv bmVkIHRhYmxlLiB3cXVldWUgPSBOVUxMOgogCSAqIHZlcmlmaWNhdGlvbiBmb3IgZWFjaCBj bG9uZWQgY29uc3RyYWludCBpcyBub3QgbmVlZGVkLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0CmluZGV4IGI1NzQ0ZWQ0OTguLjI0OTlh MzE0ZmIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9u X21lcmdlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9t ZXJnZS5vdXQKQEAgLTc3OSwxNyArNzc5LDI2IEBAIERST1AgVEFCTEUgdDsKIC0tIENoZWNr IHRoZSBwYXJ0aXRpb24gaW5kZXggbmFtZSBpZiB0aGUgcGFydGl0aW9uIG5hbWUgaXMgdGhl IHNhbWUgYXMgb25lCiAtLSBvZiB0aGUgbWVyZ2VkIHBhcnRpdGlvbnMuCiAtLQotQ1JFQVRF IFRBQkxFIHQgKGkgaW50KSBQQVJUSVRJT04gQlkgUkFOR0UgKGkpOworQ1JFQVRFIFRBQkxF IHQgKGkgaW50LCBQUklNQVJZIEtFWShpKSkgUEFSVElUSU9OIEJZIFJBTkdFIChpKTsKIENS RUFURSBUQUJMRSB0cF8wXzEgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVFUyBGUk9NICgwKSBU TyAoMSk7CiBDUkVBVEUgVEFCTEUgdHBfMV8yIFBBUlRJVElPTiBPRiB0IEZPUiBWQUxVRVMg RlJPTSAoMSkgVE8gKDIpOwogQ1JFQVRFIElOREVYIHRpZHggT04gdChpKTsKIEFMVEVSIFRB QkxFIHQgTUVSR0UgUEFSVElUSU9OUyAodHBfMV8yLCB0cF8wXzEpIElOVE8gdHBfMV8yOwot LS0gSW5kZXhuYW1lIHZhbHVlIHNob3VsZCBiZSAndHBfMV8yX2lfaWR4Jy4KKy0tIEluZGV4 bmFtZSB2YWx1ZXMgc2hvdWxkIGJlICd0cF8xXzJfcGtleScgYW5kICd0cF8xXzJfaV9pZHgn LgogU0VMRUNUIGluZGV4bmFtZSBGUk9NIHBnX2luZGV4ZXMKIFdIRVJFIHRhYmxlbmFtZSA9 ICd0cF8xXzInIEFORCBzY2hlbWFuYW1lID0gJ3BhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hJzsK ICAgaW5kZXhuYW1lICAgCiAtLS0tLS0tLS0tLS0tLQorIHRwXzFfMl9wa2V5CiAgdHBfMV8y X2lfaWR4CisoMiByb3dzKQorCistLSBDb25uYW1lIHZhbHVlIHNob3VsZCBiZSAndHBfMV8y X2lfbm90X251bGwnLgorU0VMRUNUIGNvbm5hbWUgRlJPTSBwZ19jb25zdHJhaW50CitXSEVS RSBjb25yZWxpZD0ndHBfMV8yJzo6cmVnY2xhc3MgQU5EIGNvbnR5cGU9J24nOworICAgICAg Y29ubmFtZSAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorIHRwXzFfMl9pX25vdF9udWxs CiAoMSByb3cpCiAKIERST1AgVEFCTEUgdDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0 aXRpb25fbWVyZ2Uuc3FsCmluZGV4IGRmNzM3ZTIxNGUuLjY2MTQ1MTJmNjkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNxbApAQCAtNDcwLDcgKzQ3MCw3 IEBAIERST1AgVEFCTEUgdDsKIC0tIENoZWNrIHRoZSBwYXJ0aXRpb24gaW5kZXggbmFtZSBp ZiB0aGUgcGFydGl0aW9uIG5hbWUgaXMgdGhlIHNhbWUgYXMgb25lCiAtLSBvZiB0aGUgbWVy Z2VkIHBhcnRpdGlvbnMuCiAtLQotQ1JFQVRFIFRBQkxFIHQgKGkgaW50KSBQQVJUSVRJT04g QlkgUkFOR0UgKGkpOworQ1JFQVRFIFRBQkxFIHQgKGkgaW50LCBQUklNQVJZIEtFWShpKSkg UEFSVElUSU9OIEJZIFJBTkdFIChpKTsKIAogQ1JFQVRFIFRBQkxFIHRwXzBfMSBQQVJUSVRJ T04gT0YgdCBGT1IgVkFMVUVTIEZST00gKDApIFRPICgxKTsKIENSRUFURSBUQUJMRSB0cF8x XzIgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMik7CkBAIC00Nzgs MTAgKzQ3OCwxNCBAQCBDUkVBVEUgVEFCTEUgdHBfMV8yIFBBUlRJVElPTiBPRiB0IEZPUiBW QUxVRVMgRlJPTSAoMSkgVE8gKDIpOwogQ1JFQVRFIElOREVYIHRpZHggT04gdChpKTsKIEFM VEVSIFRBQkxFIHQgTUVSR0UgUEFSVElUSU9OUyAodHBfMV8yLCB0cF8wXzEpIElOVE8gdHBf MV8yOwogCi0tLSBJbmRleG5hbWUgdmFsdWUgc2hvdWxkIGJlICd0cF8xXzJfaV9pZHgnLgor LS0gSW5kZXhuYW1lIHZhbHVlcyBzaG91bGQgYmUgJ3RwXzFfMl9wa2V5JyBhbmQgJ3RwXzFf Ml9pX2lkeCcuCiBTRUxFQ1QgaW5kZXhuYW1lIEZST00gcGdfaW5kZXhlcwogV0hFUkUgdGFi bGVuYW1lID0gJ3RwXzFfMicgQU5EIHNjaGVtYW5hbWUgPSAncGFydGl0aW9uc19tZXJnZV9z Y2hlbWEnOwogCistLSBDb25uYW1lIHZhbHVlIHNob3VsZCBiZSAndHBfMV8yX2lfbm90X251 bGwnLgorU0VMRUNUIGNvbm5hbWUgRlJPTSBwZ19jb25zdHJhaW50CitXSEVSRSBjb25yZWxp ZD0ndHBfMV8yJzo6cmVnY2xhc3MgQU5EIGNvbnR5cGU9J24nOworCiBEUk9QIFRBQkxFIHQ7 CiAKIC0tCi0tIAoyLjQwLjEud2luZG93cy4xCgo= --------------oamXtdF6nHDDNz0L0GRa4fi3--