Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nFWoc-0005IS-3l for pgsql-hackers@arkaria.postgresql.org; Thu, 03 Feb 2022 07:46:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nFWo4-0002uT-FI for pgsql-hackers@arkaria.postgresql.org; Thu, 03 Feb 2022 07:45:28 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nFWo4-0002uJ-0w for pgsql-hackers@lists.postgresql.org; Thu, 03 Feb 2022 07:45:28 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nFWnx-00036A-Em for pgsql-hackers@lists.postgresql.org; Thu, 03 Feb 2022 07:45:26 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id B83B460172 for ; Thu, 3 Feb 2022 16:45:17 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.5 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_010ecce0b9b59a19f2750a49de3cc873" Content-Transfer-Encoding: 7bit Date: Thu, 03 Feb 2022 16:45:17 +0900 From: Ken Kato To: pgsql-hackers@lists.postgresql.org Subject: [PATCH] Add min() and max() aggregate functions for xid8 User-Agent: Roundcube Webmail/1.4.11 Message-ID: <47d77b18c44f87f8222c4c7a3e2dee6b@oss.nttdata.com> X-Sender: katouknl@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_010ecce0b9b59a19f2750a49de3cc873 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hi hackers, Unlike xid, xid8 increases monotonically and cannot be reused. This trait makes it possible to support min() and max() aggregate functions for xid8. I thought they would be useful for monitoring. So I made a patch for this. Best wishes, -- Ken Kato Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION --=_010ecce0b9b59a19f2750a49de3cc873 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=min_max_aggregates_for_xid8_v1.patch Content-Disposition: attachment; filename=min_max_aggregates_for_xid8_v1.patch; size=4952 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5z Z21sCmluZGV4IDg3NTRmMmY4OWIuLjFiMDY0YjRmZWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMTk5NzMsNyArMTk5 NzMsNyBAQCBTRUxFQ1QgTlVMTElGKHZhbHVlLCAnKG5vbmUpJykgLi4uCiAgICAgICAgIHZhbHVl cy4gIEF2YWlsYWJsZSBmb3IgYW55IG51bWVyaWMsIHN0cmluZywgZGF0ZS90aW1lLCBvciBlbnVt IHR5cGUsCiAgICAgICAgIGFzIHdlbGwgYXMgPHR5cGU+aW5ldDwvdHlwZT4sIDx0eXBlPmludGVy dmFsPC90eXBlPiwKICAgICAgICAgPHR5cGU+bW9uZXk8L3R5cGU+LCA8dHlwZT5vaWQ8L3R5cGU+ LCA8dHlwZT5wZ19sc248L3R5cGU+LAotICAgICAgICA8dHlwZT50aWQ8L3R5cGU+LAorICAgICAg ICA8dHlwZT50aWQ8L3R5cGU+LCA8dHlwZT54aWQ4PC90eXBlPiwKICAgICAgICAgYW5kIGFycmF5 cyBvZiBhbnkgb2YgdGhlc2UgdHlwZXMuCiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICAg PGVudHJ5PlllczwvZW50cnk+CkBAIC0xOTk5Miw3ICsxOTk5Miw3IEBAIFNFTEVDVCBOVUxMSUYo dmFsdWUsICcobm9uZSknKSAuLi4KICAgICAgICAgdmFsdWVzLiAgQXZhaWxhYmxlIGZvciBhbnkg bnVtZXJpYywgc3RyaW5nLCBkYXRlL3RpbWUsIG9yIGVudW0gdHlwZSwKICAgICAgICAgYXMgd2Vs bCBhcyA8dHlwZT5pbmV0PC90eXBlPiwgPHR5cGU+aW50ZXJ2YWw8L3R5cGU+LAogICAgICAgICA8 dHlwZT5tb25leTwvdHlwZT4sIDx0eXBlPm9pZDwvdHlwZT4sIDx0eXBlPnBnX2xzbjwvdHlwZT4s Ci0gICAgICAgIDx0eXBlPnRpZDwvdHlwZT4sCisgICAgICAgIDx0eXBlPnRpZDwvdHlwZT4sIDx0 eXBlPnhpZDg8L3R5cGU+LAogICAgICAgICBhbmQgYXJyYXlzIG9mIGFueSBvZiB0aGVzZSB0eXBl cy4KICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgICA8ZW50cnk+WWVzPC9lbnRyeT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94aWQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC94aWQuYwppbmRleCA5YjRjZWFlYTQ3Li42ZTI0Njk3NzgyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQveGlkLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3hpZC5j CkBAIC0yODYsNiArMjg2LDI0IEBAIHhpZDhjbXAoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVU VVJOX0lOVDMyKC0xKTsKIH0KIAorRGF0dW0KK3hpZDhfbGFyZ2VyKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZDEgPSBQR19HRVRBUkdfRlVMTFRSQU5TQUNUSU9O SUQoMCk7CisJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZDIgPSBQR19HRVRBUkdfRlVMTFRSQU5TQUNU SU9OSUQoMSk7CisKKwlQR19SRVRVUk5fRlVMTFRSQU5TQUNUSU9OSUQoKFU2NEZyb21GdWxsVHJh bnNhY3Rpb25JZChmeGlkMSkgPiBVNjRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoZnhpZDIpKSA/IGZ4 aWQxIDogZnhpZDIpOworfQorCitEYXR1bQoreGlkOF9zbWFsbGVyKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZDEgPSBQR19HRVRBUkdfRlVMTFRSQU5TQUNUSU9O SUQoMCk7CisJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZDIgPSBQR19HRVRBUkdfRlVMTFRSQU5TQUNU SU9OSUQoMSk7CisKKwlQR19SRVRVUk5fRlVMTFRSQU5TQUNUSU9OSUQoKFU2NEZyb21GdWxsVHJh bnNhY3Rpb25JZChmeGlkMSkgPCBVNjRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoZnhpZDIpKSA/IGZ4 aWQxIDogZnhpZDIpOworfQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCSBDT01NQU5EIElE RU5USUZJRVIgUk9VVElORVMJCQkJCQkJCQkJCSAqCiAgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5kYXQgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5kYXQKaW5kZXggMTM3ZjZlZWY2OS4uMjg0M2Y0YjQx NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hZ2dyZWdhdGUuZGF0CisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYWdncmVnYXRlLmRhdApAQCAtMTQ5LDYgKzE0OSw5IEBA CiB7IGFnZ2Zub2lkID0+ICdtYXgocGdfbHNuKScsIGFnZ3RyYW5zZm4gPT4gJ3BnX2xzbl9sYXJn ZXInLAogICBhZ2djb21iaW5lZm4gPT4gJ3BnX2xzbl9sYXJnZXInLCBhZ2dzb3J0b3AgPT4gJz4o cGdfbHNuLHBnX2xzbiknLAogICBhZ2d0cmFuc3R5cGUgPT4gJ3BnX2xzbicgfSwKK3sgYWdnZm5v aWQgPT4gJ21heCh4aWQ4KScsIGFnZ3RyYW5zZm4gPT4gJ3hpZDhfbGFyZ2VyJywKKyAgYWdnY29t YmluZWZuID0+ICd4aWQ4X2xhcmdlcicsIGFnZ3NvcnRvcCA9PiAnPih4aWQ4LHhpZDgpJywKKyAg YWdndHJhbnN0eXBlID0+ICd4aWQ4JyB9LAogCiAjIG1pbgogeyBhZ2dmbm9pZCA9PiAnbWluKGlu dDgpJywgYWdndHJhbnNmbiA9PiAnaW50OHNtYWxsZXInLApAQCAtMjE0LDYgKzIxNyw5IEBACiB7 IGFnZ2Zub2lkID0+ICdtaW4ocGdfbHNuKScsIGFnZ3RyYW5zZm4gPT4gJ3BnX2xzbl9zbWFsbGVy JywKICAgYWdnY29tYmluZWZuID0+ICdwZ19sc25fc21hbGxlcicsIGFnZ3NvcnRvcCA9PiAnPChw Z19sc24scGdfbHNuKScsCiAgIGFnZ3RyYW5zdHlwZSA9PiAncGdfbHNuJyB9LAoreyBhZ2dmbm9p ZCA9PiAnbWluKHhpZDgpJywgYWdndHJhbnNmbiA9PiAneGlkOF9zbWFsbGVyJywKKyAgYWdnY29t YmluZWZuID0+ICd4aWQ4X3NtYWxsZXInLCBhZ2dzb3J0b3AgPT4gJzwoeGlkOCx4aWQ4KScsCisg IGFnZ3RyYW5zdHlwZSA9PiAneGlkOCcgfSwKIAogIyBjb3VudAogeyBhZ2dmbm9pZCA9PiAnY291 bnQoYW55KScsIGFnZ3RyYW5zZm4gPT4gJ2ludDhpbmNfYW55JywKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0CmluZGV4IDcwMjRkYmUxMGEuLjYyZjM2ZGFhOTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dApAQCAtMjAzLDYgKzIwMywxMiBAQAogeyBvaWQgPT4gJzUwNzEnLCBkZXNjciA9PiAnY29udmVy dCB4aWQ4IHRvIHhpZCcsCiAgIHByb25hbWUgPT4gJ3hpZCcsIHByb3JldHR5cGUgPT4gJ3hpZCcs IHByb2FyZ3R5cGVzID0+ICd4aWQ4JywKICAgcHJvc3JjID0+ICd4aWQ4dG94aWQnIH0sCit7IG9p ZCA9PiAnNTA5NycsIGRlc2NyID0+ICdsYXJnZXIgb2YgdHdvJywKKyAgcHJvbmFtZSA9PiAneGlk OF9sYXJnZXInLCBwcm9yZXR0eXBlID0+ICd4aWQ4JywgcHJvYXJndHlwZXMgPT4gJ3hpZDggeGlk OCcsCisgIHByb3NyYyA9PiAneGlkOF9sYXJnZXInIH0sCit7IG9pZCA9PiAnNTA5OCcsIGRlc2Ny ID0+ICdzbWFsbGVyIG9mIHR3bycsCisgIHByb25hbWUgPT4gJ3hpZDhfc21hbGxlcicsIHByb3Jl dHR5cGUgPT4gJ3hpZDgnLCBwcm9hcmd0eXBlcyA9PiAneGlkOCB4aWQ4JywKKyAgcHJvc3JjID0+ ICd4aWQ4X3NtYWxsZXInIH0sCiB7IG9pZCA9PiAnNjknLAogICBwcm9uYW1lID0+ICdjaWRlcScs IHByb2xlYWtwcm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAogICBwcm9hcmd0eXBl cyA9PiAnY2lkIGNpZCcsIHByb3NyYyA9PiAnY2lkZXEnIH0sCkBAIC02NTY0LDYgKzY1NzAsOSBA QAogeyBvaWQgPT4gJzQxODknLCBkZXNjciA9PiAnbWF4aW11bSB2YWx1ZSBvZiBhbGwgcGdfbHNu IGlucHV0IHZhbHVlcycsCiAgIHByb25hbWUgPT4gJ21heCcsIHByb2tpbmQgPT4gJ2EnLCBwcm9p c3N0cmljdCA9PiAnZicsIHByb3JldHR5cGUgPT4gJ3BnX2xzbicsCiAgIHByb2FyZ3R5cGVzID0+ ICdwZ19sc24nLCBwcm9zcmMgPT4gJ2FnZ3JlZ2F0ZV9kdW1teScgfSwKK3sgb2lkID0+ICc1MDk5 JywgZGVzY3IgPT4gJ21heGltdW0gdmFsdWUgb2YgYWxsIHhpZDggaW5wdXQgdmFsdWVzJywKKyAg cHJvbmFtZSA9PiAnbWF4JywgcHJva2luZCA9PiAnYScsIHByb2lzc3RyaWN0ID0+ICdmJywgcHJv cmV0dHlwZSA9PiAneGlkOCcsCisgIHByb2FyZ3R5cGVzID0+ICd4aWQ4JywgcHJvc3JjID0+ICdh Z2dyZWdhdGVfZHVtbXknIH0sCiAKIHsgb2lkID0+ICcyMTMxJywgZGVzY3IgPT4gJ21pbmltdW0g dmFsdWUgb2YgYWxsIGJpZ2ludCBpbnB1dCB2YWx1ZXMnLAogICBwcm9uYW1lID0+ICdtaW4nLCBw cm9raW5kID0+ICdhJywgcHJvaXNzdHJpY3QgPT4gJ2YnLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywK QEAgLTY2MzEsNiArNjY0MCw5IEBACiB7IG9pZCA9PiAnNDE5MCcsIGRlc2NyID0+ICdtaW5pbXVt IHZhbHVlIG9mIGFsbCBwZ19sc24gaW5wdXQgdmFsdWVzJywKICAgcHJvbmFtZSA9PiAnbWluJywg cHJva2luZCA9PiAnYScsIHByb2lzc3RyaWN0ID0+ICdmJywgcHJvcmV0dHlwZSA9PiAncGdfbHNu JywKICAgcHJvYXJndHlwZXMgPT4gJ3BnX2xzbicsIHByb3NyYyA9PiAnYWdncmVnYXRlX2R1bW15 JyB9LAoreyBvaWQgPT4gJzUxMDAnLCBkZXNjciA9PiAnbWluaW11bSB2YWx1ZSBvZiBhbGwgeGlk OCBpbnB1dCB2YWx1ZXMnLAorICBwcm9uYW1lID0+ICdtaW4nLCBwcm9raW5kID0+ICdhJywgcHJv aXNzdHJpY3QgPT4gJ2YnLCBwcm9yZXR0eXBlID0+ICd4aWQ4JywKKyAgcHJvYXJndHlwZXMgPT4g J3hpZDgnLCBwcm9zcmMgPT4gJ2FnZ3JlZ2F0ZV9kdW1teScgfSwKIAogIyBjb3VudCBoYXMgdHdv IGZvcm1zOiBjb3VudChhbnkpIGFuZCBjb3VudCgqKQogeyBvaWQgPT4gJzIxNDcnLAo= --=_010ecce0b9b59a19f2750a49de3cc873--