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 1tH1y9-002g4U-SU for pgsql-performance@arkaria.postgresql.org; Fri, 29 Nov 2024 14:27:42 +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 1tH1y7-008ISM-CD for pgsql-performance@arkaria.postgresql.org; Fri, 29 Nov 2024 14:27:40 +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 1tH1y6-008IQ3-RY for pgsql-performance@lists.postgresql.org; Fri, 29 Nov 2024 14:27:40 +0000 Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tH1y1-000B0E-Ik for pgsql-performance@lists.postgresql.org; Fri, 29 Nov 2024 14:27:38 +0000 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-aa5396acba2so29052166b.3 for ; Fri, 29 Nov 2024 06:27:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732890452; x=1733495252; 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=fOHb1lUyLGEr9UIhzhkWitBcpNSM1ZDMUs8XUJj99R8=; b=iplni3x7TqHHN5mk8iIXSPz5BOI2giJtVIHUamOJ6uF8xFir9wTknlHx1XmNpHb9+d pDQjQiAHMMgLLzV4uzCAnujbWkE6x2ZWHv/mY2Ve+GaWiSRcGd6xRWjwuqk7AZMH4oJ1 YiNdzKeEcVqJPpk9rATQghtcy2EpLtJYqmqUiDB1060APXcMruj+KEs3v93k2TeolIS6 i1xnihWYvmh8O/yEKyCLtiLTjt9vLFkCJ8otWvdHsblcrp2bATB8bUGx4yEzSIKLhxMK gj7jXrca4frZY1QDxg5iKdLsSLGlh73RDZQaGDoEgQlhD4DTFomt2iIr+EamkjGEtjQG jOGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732890452; x=1733495252; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fOHb1lUyLGEr9UIhzhkWitBcpNSM1ZDMUs8XUJj99R8=; b=U3ou0woAweOgq/54xZwF50w8kLtYO0qRDHiKIj0uLYa4kHfvPqujvs0110Q86SB9Cj 0i07fcfcrd/w4uN9/GsS+1FnKvJRC1vllSz0GU9LOXaglRo3Wpc2l1PJkhr7n9Nr9v9q pcYb8GS+Sq+ZIWwuR3rtpVUlzpdtdlLMtISHv4clQcRvYy1IVNdODPfm7BX2u3LcpJY0 chcU0hwZw2p3nWOFgEcSmhioKJJ7Lp2ijYhQ9rtlyiIYk9h020iqRRgg6k8FtZoeeog0 oIWnCt8N8RagUDW2sCXkjl9yUKWffeVWLzwbIL3CxpCQX5PAvaD/ZFprHLWjKM17vosj or6w== X-Forwarded-Encrypted: i=1; AJvYcCUCy7ON2jvH7Qv3bFwZyJzc9LTXb0CoGpscDyL6InH94MpnrpCuO/HEEGyRW1VjAsm1izGH5Qu55zZsR8pOI4WkAA==@lists.postgresql.org X-Gm-Message-State: AOJu0YzGCtqv3h7EKnstyKJ9a97wP4jHz9g4nu4ME8v692ykCgkt6IFD iOVL7G3IHx+QorzxpSHd8yPK1qdxxbtJchbBF/Xou8fsEwrh7JL4c8f2/nZ50kSXqUK9MRFUN1s /EkA0Vvfpa5hq2Z64E+Y4M+hosNPmZoeo X-Gm-Gg: ASbGncsPTEKUu2eZn+J3cuWYXonmYmeZ7zvKzU28BWFHe4P1NFtFXeqzbvuIdEzp+RZ c2+ROl1cBDsAXtt2sUdJClCithmXn X-Google-Smtp-Source: AGHT+IHVSZ5SebsgIdJ/G9cY3MOPYtJEVpPcEtOrZoSFK+vDAP4leBaPi4X2aVvkOdAwsYGDB8Rf6FVQ/jXYThz0nbY= X-Received: by 2002:a17:906:6a14:b0:a9f:56:f2b5 with SMTP id a640c23a62f3a-aa5810328ecmr516487966b.11.1732890451811; Fri, 29 Nov 2024 06:27:31 -0800 (PST) MIME-Version: 1.0 References: <202aa06a-678c-430b-8f87-fb694b9703e8@gmail.com> In-Reply-To: From: Nikita Malakhov Date: Fri, 29 Nov 2024 17:27:18 +0300 Message-ID: Subject: Re: Performance of Query 60 on TPC-DS Benchmark To: Andrei Lepikhov Cc: Ba Jinsheng , "pgsql-performance@lists.postgresql.org" Content-Type: multipart/mixed; boundary="000000000000d0de9e06280dff2b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d0de9e06280dff2b Content-Type: multipart/alternative; boundary="000000000000d0de9d06280dff29" --000000000000d0de9d06280dff29 Content-Type: text/plain; charset="UTF-8" Hi! Please check the following proposal (patch in attach). The main idea is to reject only obviously worse paths (costs considerably more than compared one), and to pass pre-calculated startup cost to precheck function for more accurate comparison. > > -- Regards, Nikita Malakhov Postgres Professional The Russian Postgres Company https://postgrespro.ru/ --000000000000d0de9d06280dff29 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi!

Please check the f= ollowing proposal (patch in attach).
The main idea is to reject o= nly=C2=A0obviously worse paths (costs considerably more
than comp= ared one), and to pass pre-calculated startup cost to precheck function
for more accurate comparison.

--
Regards,
Nikita Malakhov
Postgres Profess= ional
The Russian Postgres Company<= /div>
--000000000000d0de9d06280dff29-- --000000000000d0de9e06280dff2b Content-Type: application/octet-stream; name="v1-0001-ppath-precheck.patch" Content-Disposition: attachment; filename="v1-0001-ppath-precheck.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m42u81mh0 RnJvbSBlMWU1ODlmNWMzMzBhNjhkYmUzZThjY2QxMTUxMGU5N2JkOWIxZDAxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgTWFsYWtob3YgPG4ubWFsYWtob3ZAcG9zdGdyZXNw cm8ucnU+CkRhdGU6IEZyaSwgMjkgTm92IDIwMjQgMTA6Mjc6MDIgKzAzMDAKU3ViamVjdDogW1BB VENIXSBDb25zaWRlcmluZyBmcmFjdGlvbmFsIGhhc2hqb2luIHBhdGguCgpUUEMtRFMgYmVuY2ht YXJrIHF1ZXJ5IDYwIHNob3dzIHVzYWdlIG9mIHZlcnkgaW5lZmZlY3RpdmUgcGxhbiBpbnN0ZWFk Cm9mIG9wdGltYWwgYmVjYXVzZSBvZiBwYXJ0aWFsIHBsYW5zIGFyZSByZWplY3RlZCBieSBhZGRf cGFydGlhbF9wYXRoX3ByZWNoZWNrLApkaXNjdXNzaW9uIFsxXS4gTW9kaWZ5aW5nIGFkZF9wYXJ0 aWFsX3BhdGhfcHJlY2hlY2sgdG8gcmVqZWN0IHBhdGggb25seQppZiBpdCBpcyBjbGVhcmx5IGxl c3MgZWZmZWN0aXZlIChjb3N0IGlzIGNvbnNpZGVyYWJseSBiaWdnZXIpLCBhbmQgcGFzc2luZwpw YXJ0aWFsIHN0YXJ0dXAgY29zdCBpbnN0ZWFkIG9mIHVzaW5nIHRvdGFsIGZvciBib3RoIHN0YXJ0 dXAgYW5kIHRvdGFsCmFsbG93cyB0byB1c2UgbW9yZSBlZmZlY3RpdmUgcGFydGlhbCBwYXRocy4K CkF1dGhvcjogTmlraXRhIE1hbGFraG92IDxuLm1hbGFraG92QHBvc3RncmVzcHJvLnJ1PgoKWzFd IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC9TRVpQUjA2TUI2NDk0 MjJDREVCRUJCQTM5MTUxNTRFRTU4QTIzMiU0MFNFWlBSMDZNQjY0OTQuYXBjcHJkMDYucHJvZC5v dXRsb29rLmNvbQotLS0KIGNvbnRyaWIvaXNfanNvbmJfdmFsaWQgICAgICAgICAgICAgICAgfCAg MSArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9qb2lucGF0aC5jIHwgIDYgKysrLS0tCiBz cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jIHwgMTEgKysrKy0tLS0tLS0KIHNy Yy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oICAgICAgfCAgMiArLQogNCBmaWxlcyBjaGFu Z2VkLCA5IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTYwMDAw IGNvbnRyaWIvaXNfanNvbmJfdmFsaWQKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGF0aC9qb2lucGF0aC5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvam9pbnBhdGgu YwppbmRleCAzOTcxMTM4NDgwLi4xYzcyMzhmOGQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGF0aC9qb2lucGF0aC5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRo L2pvaW5wYXRoLmMKQEAgLTk5OSw3ICs5OTksNyBAQCB0cnlfcGFydGlhbF9uZXN0bG9vcF9wYXRo KFBsYW5uZXJJbmZvICpyb290LAogCSAqLwogCWluaXRpYWxfY29zdF9uZXN0bG9vcChyb290LCAm d29ya3NwYWNlLCBqb2ludHlwZSwKIAkJCQkJCSAgb3V0ZXJfcGF0aCwgaW5uZXJfcGF0aCwgZXh0 cmEpOwotCWlmICghYWRkX3BhcnRpYWxfcGF0aF9wcmVjaGVjayhqb2lucmVsLCB3b3Jrc3BhY2Uu ZGlzYWJsZWRfbm9kZXMsCisJaWYgKCFhZGRfcGFydGlhbF9wYXRoX3ByZWNoZWNrKGpvaW5yZWws IHdvcmtzcGFjZS5kaXNhYmxlZF9ub2Rlcywgd29ya3NwYWNlLnN0YXJ0dXBfY29zdCwKIAkJCQkJ CQkJICAgd29ya3NwYWNlLnRvdGFsX2Nvc3QsIHBhdGhrZXlzKSkKIAkJcmV0dXJuOwogCkBAIC0x MTY5LDcgKzExNjksNyBAQCB0cnlfcGFydGlhbF9tZXJnZWpvaW5fcGF0aChQbGFubmVySW5mbyAq cm9vdCwKIAkJCQkJCSAgIG91dGVyc29ydGtleXMsIGlubmVyc29ydGtleXMsCiAJCQkJCQkgICBl eHRyYSk7CiAKLQlpZiAoIWFkZF9wYXJ0aWFsX3BhdGhfcHJlY2hlY2soam9pbnJlbCwgd29ya3Nw YWNlLmRpc2FibGVkX25vZGVzLAorCWlmICghYWRkX3BhcnRpYWxfcGF0aF9wcmVjaGVjayhqb2lu cmVsLCB3b3Jrc3BhY2UuZGlzYWJsZWRfbm9kZXMsIHdvcmtzcGFjZS5zdGFydHVwX2Nvc3QsCiAJ CQkJCQkJCSAgIHdvcmtzcGFjZS50b3RhbF9jb3N0LCBwYXRoa2V5cykpCiAJCXJldHVybjsKIApA QCAtMTMwMCw3ICsxMzAwLDcgQEAgdHJ5X3BhcnRpYWxfaGFzaGpvaW5fcGF0aChQbGFubmVySW5m byAqcm9vdCwKIAkgKi8KIAlpbml0aWFsX2Nvc3RfaGFzaGpvaW4ocm9vdCwgJndvcmtzcGFjZSwg am9pbnR5cGUsIGhhc2hjbGF1c2VzLAogCQkJCQkJICBvdXRlcl9wYXRoLCBpbm5lcl9wYXRoLCBl eHRyYSwgcGFyYWxsZWxfaGFzaCk7Ci0JaWYgKCFhZGRfcGFydGlhbF9wYXRoX3ByZWNoZWNrKGpv aW5yZWwsIHdvcmtzcGFjZS5kaXNhYmxlZF9ub2RlcywKKwlpZiAoIWFkZF9wYXJ0aWFsX3BhdGhf cHJlY2hlY2soam9pbnJlbCwgd29ya3NwYWNlLmRpc2FibGVkX25vZGVzLCB3b3Jrc3BhY2Uuc3Rh cnR1cF9jb3N0LAogCQkJCQkJCQkgICB3b3Jrc3BhY2UudG90YWxfY29zdCwgTklMKSkKIAkJcmV0 dXJuOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5j IGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYwppbmRleCBmYzk3YmY2ZWUy Li4yYTEwODhlNGJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRo bm9kZS5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMKQEAgLTkx OCw3ICs5MTgsNyBAQCBhZGRfcGFydGlhbF9wYXRoKFJlbE9wdEluZm8gKnBhcmVudF9yZWwsIFBh dGggKm5ld19wYXRoKQogICogaXMgc3VyZWx5IGEgbG9zZXIuCiAgKi8KIGJvb2wKLWFkZF9wYXJ0 aWFsX3BhdGhfcHJlY2hlY2soUmVsT3B0SW5mbyAqcGFyZW50X3JlbCwgaW50IGRpc2FibGVkX25v ZGVzLAorYWRkX3BhcnRpYWxfcGF0aF9wcmVjaGVjayhSZWxPcHRJbmZvICpwYXJlbnRfcmVsLCBp bnQgZGlzYWJsZWRfbm9kZXMsIENvc3Qgc3RhcnR1cF9jb3N0LAogCQkJCQkJICBDb3N0IHRvdGFs X2Nvc3QsIExpc3QgKnBhdGhrZXlzKQogewogCUxpc3RDZWxsICAgKnAxOwpAQCAtOTM3LDE2ICs5 MzcsMTMgQEAgYWRkX3BhcnRpYWxfcGF0aF9wcmVjaGVjayhSZWxPcHRJbmZvICpwYXJlbnRfcmVs LCBpbnQgZGlzYWJsZWRfbm9kZXMsCiAJZm9yZWFjaChwMSwgcGFyZW50X3JlbC0+cGFydGlhbF9w YXRobGlzdCkKIAl7CiAJCVBhdGgJICAgKm9sZF9wYXRoID0gKFBhdGggKikgbGZpcnN0KHAxKTsK LQkJUGF0aEtleXNDb21wYXJpc29uIGtleXNjbXA7CiAKIAkJa2V5c2NtcCA9IGNvbXBhcmVfcGF0 aGtleXMocGF0aGtleXMsIG9sZF9wYXRoLT5wYXRoa2V5cyk7CiAJCWlmIChrZXlzY21wICE9IFBB VEhLRVlTX0RJRkZFUkVOVCkKIAkJewotCQkJaWYgKHRvdGFsX2Nvc3QgPiBvbGRfcGF0aC0+dG90 YWxfY29zdCAqIFNURF9GVVpaX0ZBQ1RPUiAmJgotCQkJCWtleXNjbXAgIT0gUEFUSEtFWVNfQkVU VEVSMSkKKwkJCWlmICh0b3RhbF9jb3N0ID4gb2xkX3BhdGgtPnRvdGFsX2Nvc3QgKiBTVERfRlVa Wl9GQUNUT1IpCiAJCQkJcmV0dXJuIGZhbHNlOwotCQkJaWYgKG9sZF9wYXRoLT50b3RhbF9jb3N0 ID4gdG90YWxfY29zdCAqIFNURF9GVVpaX0ZBQ1RPUiAmJgotCQkJCWtleXNjbXAgIT0gUEFUSEtF WVNfQkVUVEVSMikKKwkJCWlmIChvbGRfcGF0aC0+dG90YWxfY29zdCA+IHRvdGFsX2Nvc3QgKiBT VERfRlVaWl9GQUNUT1IpCiAJCQkJcmV0dXJuIHRydWU7CiAJCX0KIAl9CkBAIC05NjIsNyArOTU5 LDcgQEAgYWRkX3BhcnRpYWxfcGF0aF9wcmVjaGVjayhSZWxPcHRJbmZvICpwYXJlbnRfcmVsLCBp bnQgZGlzYWJsZWRfbm9kZXMsCiAJICogcGFydGlhbCBwYXRoOyB0aGUgcmVzdWx0aW5nIHBsYW5z LCBpZiBydW4gaW4gcGFyYWxsZWwsIHdpbGwgYmUgcnVuIHRvCiAJICogY29tcGxldGlvbi4KIAkg Ki8KLQlpZiAoIWFkZF9wYXRoX3ByZWNoZWNrKHBhcmVudF9yZWwsIGRpc2FibGVkX25vZGVzLCB0 b3RhbF9jb3N0LCB0b3RhbF9jb3N0LAorCWlmICghYWRkX3BhdGhfcHJlY2hlY2socGFyZW50X3Jl bCwgZGlzYWJsZWRfbm9kZXMsIHN0YXJ0dXBfY29zdCwgdG90YWxfY29zdCwKIAkJCQkJCSAgIHBh dGhrZXlzLCBOVUxMKSkKIAkJcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5o CmluZGV4IDEwMzVlNjU2MGMuLmU2MDgxZGUzNzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29w dGltaXplci9wYXRobm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5o CkBAIC0zMiw3ICszMiw3IEBAIGV4dGVybiBib29sIGFkZF9wYXRoX3ByZWNoZWNrKFJlbE9wdElu Zm8gKnBhcmVudF9yZWwsIGludCBkaXNhYmxlZF9ub2RlcywKIAkJCQkJCQkgIExpc3QgKnBhdGhr ZXlzLCBSZWxpZHMgcmVxdWlyZWRfb3V0ZXIpOwogZXh0ZXJuIHZvaWQgYWRkX3BhcnRpYWxfcGF0 aChSZWxPcHRJbmZvICpwYXJlbnRfcmVsLCBQYXRoICpuZXdfcGF0aCk7CiBleHRlcm4gYm9vbCBh ZGRfcGFydGlhbF9wYXRoX3ByZWNoZWNrKFJlbE9wdEluZm8gKnBhcmVudF9yZWwsCi0JCQkJCQkJ CQkgIGludCBkaXNhYmxlZF9ub2RlcywKKwkJCQkJCQkJCSAgaW50IGRpc2FibGVkX25vZGVzLCBD b3N0IHN0YXJ0dXBfY29zdCwKIAkJCQkJCQkJCSAgQ29zdCB0b3RhbF9jb3N0LCBMaXN0ICpwYXRo a2V5cyk7CiAKIGV4dGVybiBQYXRoICpjcmVhdGVfc2Vxc2Nhbl9wYXRoKFBsYW5uZXJJbmZvICpy b290LCBSZWxPcHRJbmZvICpyZWwsCi0tIAoyLjI1LjEKCg== --000000000000d0de9e06280dff2b--