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 1pfaSw-0006KF-Qv for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Mar 2023 05:59:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pfaSv-0006IO-GQ for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Mar 2023 05:59:53 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pfaSv-0006IF-36 for pgsql-hackers@lists.postgresql.org; Fri, 24 Mar 2023 05:59:53 +0000 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pfaSr-0005e8-Hm for pgsql-hackers@lists.postgresql.org; Fri, 24 Mar 2023 05:59:52 +0000 Received: by mail-wr1-x429.google.com with SMTP id r29so593249wra.13 for ; Thu, 23 Mar 2023 22:59:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679637587; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=RFcdcAEzLBsrFJ+7PuRQdUAEeCO8J5mZnRI6HM33wuo=; b=ncD0L6KdZbm4y2hFTol63HuU1CVcni8Hd0iKk+eL+umrLynIGCrVhW/CEtmPdCeMiu MGHilzMUCxkDd1zw9UwEOT+F7+vqLLp8DGptISulIvkD/JZUgRiR3rUk5X3NLkuhaeY2 Ax/ZIa9a9XIL4ONkh33nX4XSoDMfvfs018jSNSFePqbxyRJSDcLlbN9RCedwKls2lqYV 9fCy78sxxB1U2Yv4wcAmGUm7PCyP1sOMkK2F2HCK0Hy4JJoiS4i28VZHRkTa+0qyiyBx md1x72FTLJGGaKH6R6Wogzy4XKwC5tG7qcSF+xukFOhWyPBeY2fqPspWKsIkPQ7yAlAY mccQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679637587; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=RFcdcAEzLBsrFJ+7PuRQdUAEeCO8J5mZnRI6HM33wuo=; b=dGKgyyvM8xVtV8tbs1P5saqi8oxHXOwxhirx5xbk8SRlOI2k18g9JC8jaC+Ti/Zr6c oOFEuFvi/I6URlgt1Qb4AfOmoH8696vJJ1bjzIZrq1MpLLaIb+rBYXV+RQr05cb7497p x9o4ZXkBeWNYva3t+giONaIDugURKO/SlHXciaGRt5V2fbg0A6t/FQpqDvHHHqHSrYj3 c2mPbMzjedlYAdSKhNVGobhH16LOoQUX7LzpzbNOR0Ux9TnPzCst7W8UjppSrRRCTsEF XIu1ghyzgCC53jYwNlPpuF/SNp1Jpzecpr0lbzrw7Tw9dIOJfhDwz8h6+IVGC1D8iCIK WC2g== X-Gm-Message-State: AAQBX9eEW0ATrOfxG3eE80QaXM5TDwTxLpHEhmhOZp81lC1f7FIWEtWt 5BnWZ13GBlnnKjKic7CNFCE= X-Google-Smtp-Source: AKy350YOGYq8eudQldSNq8WfeBvTP8ybfGJ8IyAwZYTpQyoz4GFo/OeKHso+ZGKZdNhj7/+/eTgzmg== X-Received: by 2002:adf:fe85:0:b0:2ce:9d06:58c6 with SMTP id l5-20020adffe85000000b002ce9d0658c6mr942683wrr.53.1679637587236; Thu, 23 Mar 2023 22:59:47 -0700 (PDT) Received: from [192.168.31.99] ([54.239.6.190]) by smtp.gmail.com with ESMTPSA id a18-20020a5d4d52000000b002d1e49cff35sm17611057wru.40.2023.03.23.22.59.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 23 Mar 2023 22:59:46 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------0RxU5YiH0wxArCeIdMcUKVMy" Message-ID: <631e3084-c5d9-8463-7540-fcff4674caa5@gmail.com> Date: Fri, 24 Mar 2023 06:58:30 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: Generate pg_stat_get_xact*() functions with Macros To: Michael Paquier Cc: "Gregory Stark (as CFM)" , Andres Freund , Michael Paquier , PostgreSQL Hackers References: <89606d96-cd94-af74-18f3-c7ab2b684ba2@gmail.com> <20230111225907.6el6c5j3hukizqxc@awork3.anarazel.de> <20230112182434.ejffbun4plv2g37k@awork3.anarazel.de> <83f7982d-272a-b064-8a0f-8853354edf10@gmail.com> <20230113183746.zyncqr2zz3gk6yh6@awork3.anarazel.de> <11744b0e-5f7f-aba8-7d9c-2ff0a0c6e2b2@gmail.com> Content-Language: en-US From: "Drouvot, Bertrand" 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. --------------0RxU5YiH0wxArCeIdMcUKVMy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 3/24/23 1:04 AM, Michael Paquier wrote: > On Thu, Mar 02, 2023 at 08:39:14AM +0100, Drouvot, Bertrand wrote: >> Yeah, there is some dependencies around this one. >> >> [1]: depends on it >> Current one depends of [2], [3] and [4] >> >> Waiting on Author is then the right state, thanks for having moved it to that state. >> >> [1]: https://www.postgresql.org/message-id/flat/f572abe7-a1bb-e13b-48c7-2ca150546822@gmail.com >> [2]: https://www.postgresql.org/message-id/flat/b9e1f543-ee93-8168-d530-d961708ad9d3@gmail.com >> [3]: https://www.postgresql.org/message-id/flat/11d531fe-52fc-c6ea-7e8e-62f1b6ec626e@gmail.com >> [4]: https://www.postgresql.org/message-id/flat/9142f62a-a422-145c-bde0-b5bc498a4ada@gmail.com > > [3] and [4] have been applied. Thanks for your help on this! > [2] is more sensitive than it looks, > and [1] for the split of index and table stats can feed on the one of > this thread. > > Roma wasn't built in one day, and from what I can see you can still do > some progress with the refactoring of pgstatfuncs.c with what's > already on HEAD. So how about handling doing that first as much as we > can based on the state of HEAD? That looks like 50~60% (?) of the > original goal to switch pgstatfuncs.c to use more macros to generate > the definition of all these SQL functions. I think that's a good idea, so please find enclosed V2 which as compare to V1: - Does not include the refactoring for pg_stat_get_xact_tuples_inserted(), pg_stat_get_xact_tuples_updated() and pg_stat_get_xact_tuples_deleted() (as they depend of [2] mentioned above) - Does not include the refactoring for pg_stat_get_xact_function_total_time(), pg_stat_get_xact_function_self_time(), pg_stat_get_function_total_time() and pg_stat_get_function_self_time(). I think they can be done in a dedicated commit once we agree on the renaming for PG_STAT_GET_DBENTRY_FLOAT8 (see Andres's comment up-thread) so that the new macros can match the future agreement. - Does include the refactoring of the new pg_stat_get_xact_tuples_newpage_updated() function (added in ae4fdde135) Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------0RxU5YiH0wxArCeIdMcUKVMy Content-Type: text/plain; charset=UTF-8; name="v2-0001-generate-pg_stat_get_xact-functions-with-macros.patch" Content-Disposition: attachment; filename*0="v2-0001-generate-pg_stat_get_xact-functions-with-macros.patc"; filename*1="h" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggYzdiYTg2YjNkYy4uZTFk ZDFlMGFkMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKQEAgLTE0OTgs NTAgKzE0OTgsNDIgQEAgcGdfc3RhdF9nZXRfc2xydShQR19GVU5DVElPTl9BUkdTKQogCXJl dHVybiAoRGF0dW0pIDA7CiB9CiAKLURhdHVtCi1wZ19zdGF0X2dldF94YWN0X251bXNjYW5z KFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0JT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDAp OwotCWludDY0CQlyZXN1bHQ7Ci0JUGdTdGF0X1RhYmxlU3RhdHVzICp0YWJlbnRyeTsKLQot CWlmICgodGFiZW50cnkgPSBmaW5kX3RhYnN0YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQot CQlyZXN1bHQgPSAwOwotCWVsc2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPmNv dW50cy5udW1zY2Fucyk7Ci0KLQlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKKyNkZWZpbmUg UEdfU1RBVF9HRVRfWEFDVF9SRUxFTlRSWV9JTlQ2NChzdGF0KQkJCVwKK0RhdHVtCQkJCQkJ CQkJCQkJCVwKK0NwcENvbmNhdChwZ19zdGF0X2dldF94YWN0XyxzdGF0KShQR19GVU5DVElP Tl9BUkdTKQkJXAorewkJCQkJCQkJCQkJCQkJXAorCU9pZCAgICAgICAgIHJlbGlkID0gUEdf R0VUQVJHX09JRCgwKTsJCQkJXAorCWludDY0ICAgICAgIHJlc3VsdDsJCQkJCQkJCQlcCisJ UGdTdGF0X1RhYmxlU3RhdHVzICp0YWJlbnRyeTsJCQkJCQlcCisJCQkJCQkJCQkJCQkJCVwK KwlpZiAoKHRhYmVudHJ5ID0gZmluZF90YWJzdGF0X2VudHJ5KHJlbGlkKSkgPT0gTlVMTCkJ XAorCQlyZXN1bHQgPSAwOwkJCQkJCQkJCQlcCisJZWxzZQkJCQkJCQkJCQkJCVwKKwkJcmVz dWx0ID0gKGludDY0KSAodGFiZW50cnktPmNvdW50cy5zdGF0KTsJCVwKKwkJCQkJCQkJCQkJ CQkJXAorCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwkJCQkJCQlcCiB9CiAKLURhdHVtCi1w Z19zdGF0X2dldF94YWN0X3R1cGxlc19yZXR1cm5lZChQR19GVU5DVElPTl9BUkdTKQotewot CU9pZAkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKLQlpbnQ2NAkJcmVzdWx0OwotCVBn U3RhdF9UYWJsZVN0YXR1cyAqdGFiZW50cnk7CisvKiBwZ19zdGF0X2dldF94YWN0X251bXNj YW5zICovCitQR19TVEFUX0dFVF9YQUNUX1JFTEVOVFJZX0lOVDY0KG51bXNjYW5zKQogCi0J aWYgKCh0YWJlbnRyeSA9IGZpbmRfdGFic3RhdF9lbnRyeShyZWxpZCkpID09IE5VTEwpCi0J CXJlc3VsdCA9IDA7Ci0JZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+Y291 bnRzLnR1cGxlc19yZXR1cm5lZCk7CisvKiBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19yZXR1 cm5lZCAqLworUEdfU1RBVF9HRVRfWEFDVF9SRUxFTlRSWV9JTlQ2NCh0dXBsZXNfcmV0dXJu ZWQpCiAKLQlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKLX0KKy8qIHBnX3N0YXRfZ2V0X3hh Y3RfdHVwbGVzX2ZldGNoZWQgKi8KK1BHX1NUQVRfR0VUX1hBQ1RfUkVMRU5UUllfSU5UNjQo dHVwbGVzX2ZldGNoZWQpCiAKLURhdHVtCi1wZ19zdGF0X2dldF94YWN0X3R1cGxlc19mZXRj aGVkKFBHX0ZVTkNUSU9OX0FSR1MpCi17Ci0JT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lE KDApOwotCWludDY0CQlyZXN1bHQ7Ci0JUGdTdGF0X1RhYmxlU3RhdHVzICp0YWJlbnRyeTsK Ky8qIHBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX2hvdF91cGRhdGVkICovCitQR19TVEFUX0dF VF9YQUNUX1JFTEVOVFJZX0lOVDY0KHR1cGxlc19ob3RfdXBkYXRlZCkKIAotCWlmICgodGFi ZW50cnkgPSBmaW5kX3RhYnN0YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQotCQlyZXN1bHQg PSAwOwotCWVsc2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPmNvdW50cy50dXBs ZXNfZmV0Y2hlZCk7CisvKiBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19uZXdwYWdlX3VwZGF0 ZWQgKi8KK1BHX1NUQVRfR0VUX1hBQ1RfUkVMRU5UUllfSU5UNjQodHVwbGVzX25ld3BhZ2Vf dXBkYXRlZCkKIAotCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwotfQorLyogcGdfc3RhdF9n ZXRfeGFjdF9ibG9ja3NfZmV0Y2hlZCAqLworUEdfU1RBVF9HRVRfWEFDVF9SRUxFTlRSWV9J TlQ2NChibG9ja3NfZmV0Y2hlZCkKKworLyogcGdfc3RhdF9nZXRfeGFjdF9ibG9ja3NfaGl0 ICovCitQR19TVEFUX0dFVF9YQUNUX1JFTEVOVFJZX0lOVDY0KGJsb2Nrc19oaXQpCiAKIERh dHVtCiBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19pbnNlcnRlZChQR19GVU5DVElPTl9BUkdT KQpAQCAtMTYwNiw2NiArMTU5OCw2IEBAIHBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX2RlbGV0 ZWQoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KIAot RGF0dW0KLXBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX2hvdF91cGRhdGVkKFBHX0ZVTkNUSU9O X0FSR1MpCi17Ci0JT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwotCWludDY0CQly ZXN1bHQ7Ci0JUGdTdGF0X1RhYmxlU3RhdHVzICp0YWJlbnRyeTsKLQotCWlmICgodGFiZW50 cnkgPSBmaW5kX3RhYnN0YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQotCQlyZXN1bHQgPSAw OwotCWVsc2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPmNvdW50cy50dXBsZXNf aG90X3VwZGF0ZWQpOwotCi0JUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7Ci19Ci0KLURhdHVt Ci1wZ19zdGF0X2dldF94YWN0X3R1cGxlc19uZXdwYWdlX3VwZGF0ZWQoUEdfRlVOQ1RJT05f QVJHUykKLXsKLQlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7Ci0JaW50NjQJCXJl c3VsdDsKLQlQZ1N0YXRfVGFibGVTdGF0dXMgKnRhYmVudHJ5OwotCi0JaWYgKCh0YWJlbnRy eSA9IGZpbmRfdGFic3RhdF9lbnRyeShyZWxpZCkpID09IE5VTEwpCi0JCXJlc3VsdCA9IDA7 Ci0JZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+Y291bnRzLnR1cGxlc19u ZXdwYWdlX3VwZGF0ZWQpOwotCi0JUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7Ci19Ci0KLURh dHVtCi1wZ19zdGF0X2dldF94YWN0X2Jsb2Nrc19mZXRjaGVkKFBHX0ZVTkNUSU9OX0FSR1Mp Ci17Ci0JT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwotCWludDY0CQlyZXN1bHQ7 Ci0JUGdTdGF0X1RhYmxlU3RhdHVzICp0YWJlbnRyeTsKLQotCWlmICgodGFiZW50cnkgPSBm aW5kX3RhYnN0YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQotCQlyZXN1bHQgPSAwOwotCWVs c2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPmNvdW50cy5ibG9ja3NfZmV0Y2hl ZCk7Ci0KLQlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKLX0KLQotRGF0dW0KLXBnX3N0YXRf Z2V0X3hhY3RfYmxvY2tzX2hpdChQR19GVU5DVElPTl9BUkdTKQotewotCU9pZAkJCXJlbGlk ID0gUEdfR0VUQVJHX09JRCgwKTsKLQlpbnQ2NAkJcmVzdWx0OwotCVBnU3RhdF9UYWJsZVN0 YXR1cyAqdGFiZW50cnk7Ci0KLQlpZiAoKHRhYmVudHJ5ID0gZmluZF90YWJzdGF0X2VudHJ5 KHJlbGlkKSkgPT0gTlVMTCkKLQkJcmVzdWx0ID0gMDsKLQllbHNlCi0JCXJlc3VsdCA9IChp bnQ2NCkgKHRhYmVudHJ5LT5jb3VudHMuYmxvY2tzX2hpdCk7Ci0KLQlQR19SRVRVUk5fSU5U NjQocmVzdWx0KTsKLX0KLQogRGF0dW0KIHBnX3N0YXRfZ2V0X3hhY3RfZnVuY3Rpb25fY2Fs bHMoUEdfRlVOQ1RJT05fQVJHUykKIHsK --------------0RxU5YiH0wxArCeIdMcUKVMy--