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 1rOa11-005QUO-Lr for pgsql-hackers@arkaria.postgresql.org; Sat, 13 Jan 2024 09:09:20 +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 1rOa10-007aBU-CZ for pgsql-hackers@arkaria.postgresql.org; Sat, 13 Jan 2024 09:09:18 +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 1rOa0z-007aBL-Ui for pgsql-hackers@lists.postgresql.org; Sat, 13 Jan 2024 09:09:18 +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 1rOa0s-001JfP-CJ for pgsql-hackers@lists.postgresql.org; Sat, 13 Jan 2024 09:09:16 +0000 Received: from [192.168.1.129] (unknown [103.206.205.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: a.lepikhov@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 6D23CE20FDC; Sat, 13 Jan 2024 12:09:03 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1705136947; bh=itQ3FPb03N+Vaup07pIpnPRspTyoIs/7NElVNfzVsiI=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=t7YiixlVDWboqX6eGqkYl2/shi1cpxoCiZGy/eaSP4kQ3hvhS6gqnFIYTae73uZjF nYSY4b4ANFddPqdAsBCqr2tjKuXvsXgGOSrGpX/BoR7Xy4bH4kjJJni2B07FHgPnL1 m1hbBBxyZ3EgyAtNNt0q1nCyuakYobfjNKb55JCQlJ/CxEhJcGHTVT5/vdnW+02sLg 5Wn2mlOQ8FUTDo46KlV29ASCf+H6U7x6yb7v53X2Iz1uQdWrRgBBSx5z5+jyBAdwdm 2ALzVvJqWOaQhV3t2Vmtf30v+ONnpv9b5DbbrYs1C50BoN+IUcAwgpcq3uF8MmJ3Lu JrR6BlDXs7CRg== Content-Type: multipart/mixed; boundary="------------JjfeFoGmjRbnXo00DVW1Je5Y" Message-ID: Date: Sat, 13 Jan 2024 16:08:59 +0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: POC: GROUP BY optimization To: Alexander Korotkov , Pavel Borisov Cc: vignesh C , PostgreSQL Developers , Tomas Vondra , Teodor Sigaev , David Rowley , "a.rybakina" , Tom Lane References: <7a80a207-5e8e-b80c-476c-2d290b0526e9@enterprisedb.com> <65941e87-86c1-c09c-8ad5-8e102aebe8ee@enterprisedb.com> <7256159a-bb83-7ef3-c9c9-b2188a29aaf8@postgrespro.ru> <60610df1-c32f-ebdf-e58c-7a664431f452@enterprisedb.com> <9acd27e9-3372-4d78-b9bc-73e407b8a007@postgrespro.ru> <138cb2df-1a0d-48c0-be80-48aaf62e8aeb@postgrespro.ru> Content-Language: en-US From: Andrei Lepikhov Organization: Postgres Professional In-Reply-To: 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. --------------JjfeFoGmjRbnXo00DVW1Je5Y Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 11/1/2024 18:30, Alexander Korotkov wrote: > Hi! > > On Tue, Jan 9, 2024 at 1:14 PM Pavel Borisov wrote: >>> Hmm, I don't see this old code in these patches. Resend 0002-* because >>> of trailing spaces. >> >> >> AFAIK, cfbot does not seek old versions of patchset parts in previous messages. So for it to run correctly, a new version of the whole patchset should be sent even if most patches are unchanged. > > Please, find the revised patchset with some refactoring and comments > improvement from me. I'll continue looking into this. The patch looks better, thanks to your refactoring. I propose additional comments and tests to make the code more understandable (see attachment). I intended to look into this part of the code more, but the tests show a difference between PostgreSQL v.15 and v.16, which causes changes in the code of this feature. -- regards, Andrei Lepikhov Postgres Professional --------------JjfeFoGmjRbnXo00DVW1Je5Y Content-Type: text/plain; charset=UTF-8; name="details.txt" Content-Disposition: attachment; filename="details.txt" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL3BhdGhrZXlzLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9wYXRoa2V5cy5jCmluZGV4IGY0YjdkY2FjMjEu LjVhYWM2ZDY2NzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL3Bh dGhrZXlzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvcGF0aGtleXMuYwpA QCAtMzk3LDYgKzM5NywxMSBAQCBncm91cF9rZXlzX3Jlb3JkZXJfYnlfcGF0aGtleXMoTGlz dCAqcGF0aGtleXMsIExpc3QgKipncm91cF9wYXRoa2V5cywKIAkJCSFsaXN0X21lbWJlcl9w dHIoKmdyb3VwX3BhdGhrZXlzLCBwYXRoa2V5KSkKIAkJCWJyZWFrOwogCisJCS8qCisJCSAq IFNpbmNlIDEzNDlkMjcgcGF0aGtleSBjb21pbmcgZnJvbSB1bmRlcmx5aW5nIG5vZGUgY2Fu IGJlIGluIHRoZQorCQkgKiByb290LT5ncm91cF9wYXRoa2V5cyBidXQgbm90IGluIHRoZSBw cm9jZXNzZWRfZ3JvdXBDbGF1c2UuIFNvLCB3ZQorCQkgKiBzaG91bGQgYmUgY2FyZWZ1bCBo ZXJlLgorCQkgKi8KIAkJc2djID0gZ2V0X3NvcnRncm91cHJlZl9jbGF1c2Vfbm9lcnIocGF0 aGtleS0+cGtfZWNsYXNzLT5lY19zb3J0cmVmLAogCQkJCQkJCQkJCQkqZ3JvdXBfY2xhdXNl cyk7CiAJCWlmICghc2djKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9hZ2dyZWdhdGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWdncmVnYXRl cy5vdXQKaW5kZXggNDIzYzhlYzNiNi4uMGQ0NmUwOTZlNSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9hZ2dyZWdhdGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2FnZ3JlZ2F0ZXMub3V0CkBAIC0yODU3LDYgKzI4NTcsMjggQEAgZXhw bGFpbiAoQ09TVFMgT0ZGKSBTRUxFQ1QgeCx3IEZST00gYnRnIEdST1VQIEJZIHcseCx5LHog T1JERVIgQlkgeCp4LHo7CiAoOCByb3dzKQogCiBEUk9QIFRBQkxFIGJ0ZzsKKy0tIFRoZSBj YXNlLCB3aGVuIHNjYW5uaW5nIHNvcnQgb3JkZXIgY29ycmVzcG9uZCB0byBhZ2dyZWdhdGUg c29ydCBvcmRlciBidXQKKy0tIGNhbiBub3QgYmUgZm91bmQgaW4gdGhlIGdyb3VwLWJ5IGxp c3QKK0NSRUFURSBUQUJMRSB0MSAoYzEgaW50IFBSSU1BUlkgS0VZLCBjMiBpbnQpOworQ1JF QVRFIFVOSVFVRSBJTkRFWCBPTiB0MShjMik7CitleHBsYWluIChjb3N0cyBvZmYpCitTRUxF Q1QgYXJyYXlfYWdnKGMxIE9SREVSIEJZIGMyKSxjMgorRlJPTSB0MSBXSEVSRSBjMiA8IDEw MCBHUk9VUCBCWSBjMSBPUkRFUiBCWSAyOworICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgU29ydCBLZXk6 IGMyCisgICAtPiAgR3JvdXBBZ2dyZWdhdGUKKyAgICAgICAgIEdyb3VwIEtleTogYzEKKyAg ICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICBTb3J0IEtleTogYzEsIGMyCisgICAg ICAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0MQorICAgICAgICAgICAgICAg ICAgICAgUmVjaGVjayBDb25kOiAoYzIgPCAxMDApCisgICAgICAgICAgICAgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gdDFfYzJfaWR4CisgICAgICAgICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYzIgPCAxMDApCisoMTAgcm93cykKKworRFJPUCBUQUJM RSB0MSBDQVNDQURFOwogUkVTRVQgZW5hYmxlX2hhc2hhZ2c7CiBSRVNFVCBtYXhfcGFyYWxs ZWxfd29ya2VyczsKIFJFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9hZ2dyZWdhdGVzLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2FnZ3JlZ2F0ZXMuc3FsCmluZGV4IGI5ZmNjZWVkZDcuLmY5OTE2 N2FjOWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FnZ3JlZ2F0ZXMuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FnZ3JlZ2F0ZXMuc3FsCkBAIC0xMjI0LDYg KzEyMjQsMTUgQEAgZXhwbGFpbiAoQ09TVFMgT0ZGKSBTRUxFQ1QgeCx3IEZST00gYnRnIEdS T1VQIEJZIHcseCx5LHogT1JERVIgQlkgeCp4LHo7CiAKIERST1AgVEFCTEUgYnRnOwogCist LSBUaGUgY2FzZSwgd2hlbiBzY2FubmluZyBzb3J0IG9yZGVyIGNvcnJlc3BvbmQgdG8gYWdn cmVnYXRlIHNvcnQgb3JkZXIgYnV0CistLSBjYW4gbm90IGJlIGZvdW5kIGluIHRoZSBncm91 cC1ieSBsaXN0CitDUkVBVEUgVEFCTEUgdDEgKGMxIGludCBQUklNQVJZIEtFWSwgYzIgaW50 KTsKK0NSRUFURSBVTklRVUUgSU5ERVggT04gdDEoYzIpOworZXhwbGFpbiAoY29zdHMgb2Zm KQorU0VMRUNUIGFycmF5X2FnZyhjMSBPUkRFUiBCWSBjMiksYzIKK0ZST00gdDEgV0hFUkUg YzIgPCAxMDAgR1JPVVAgQlkgYzEgT1JERVIgQlkgMjsKK0RST1AgVEFCTEUgdDEgQ0FTQ0FE RTsKKwogUkVTRVQgZW5hYmxlX2hhc2hhZ2c7CiBSRVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vy czsKIFJFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7Cg== --------------JjfeFoGmjRbnXo00DVW1Je5Y--