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 1rILmG-0081eV-Bs for pgsql-hackers@arkaria.postgresql.org; Wed, 27 Dec 2023 04:44: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 1rILmD-001OSi-Vj for pgsql-hackers@arkaria.postgresql.org; Wed, 27 Dec 2023 04:44:17 +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 1rILmD-001OSY-GE for pgsql-hackers@lists.postgresql.org; Wed, 27 Dec 2023 04:44:17 +0000 Received: from mail-il1-x135.google.com ([2607:f8b0:4864:20::135]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rILmA-00CO8R-9D for pgsql-hackers@lists.postgresql.org; Wed, 27 Dec 2023 04:44:15 +0000 Received: by mail-il1-x135.google.com with SMTP id e9e14a558f8ab-35fd902c6b5so42301505ab.3 for ; Tue, 26 Dec 2023 20:44:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=buildkite.com; s=google; t=1703652253; x=1704257053; darn=lists.postgresql.org; h=content-language:to:subject:from:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=j794l8QDs6udIlrVkc2NoF3Ia0aC0Gn1N7c/HoHSo0o=; b=DviobamOvWxgc17vcOVUuTE5I++szBDt859CwXFzDZh7Bm0uqX/uA0PQLVC7FegGS5 1zgzULf/0ILpC5jf7AmPcRcND2zV3kcbXz88XJcXNe1peRFYUpg69BwI6U8BS7nBiqmC +xMgVg/bVVCPqBPSP0Td6Xv9qUUxX1GNa4+rnZsu8XuBoy9/AZ372GBy9eCFUPdO4p9B N3Db9KqlKhYUL4aa6wFgPtuL7Y7LEEzuxYCAuHJt09cnaOwE1e6LRF0ATa4D7S5KTMb2 B/WNrafBQIFiprK9QXQrT0ae46EwfaxQIdN6gANCLHXl2dWXF8N58iZ2DOHpSCacJHLG 6J0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703652253; x=1704257053; h=content-language:to:subject:from:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=j794l8QDs6udIlrVkc2NoF3Ia0aC0Gn1N7c/HoHSo0o=; b=OzbJiwiyXETYWSrODkeX1/QfbUmM+w6LmgNB6WO3tw8SbPwnD6f3FpP1wA0HMcw1w0 TV8uGQTyDaPfe/Z3T++zm9z6MyEv+eaCsXpORrbuGzCM2HiCuz4mF1p2ZT+M+UGij098 V2wMszlbEOF4KFAqlc3XW3VL4skZ6h1fUGqvlJ2GjqiBs1IQSCJVUmFNriKzb8+quGO+ 32bAKcrvSIqHygmnfjgZ5Uq+OHWNgLK5gfANCm0T/7rGZBCTiPwiBNYTmwqUYRqIGHZD RWuZA8SDTpTOnp0Gxjj814kZc16lqBIj4qbhmGhOYG6wpa1x4Bt+7bJ6WSFK311hCk0q DgDg== X-Gm-Message-State: AOJu0Yy6383V1HCr+W0+2kFJ7IvoOxIsiaOPZC20OAoefLEq6CxCWRfD r3cFGh+It9kCbGYGU1O5T/5T97/xz4kfX1bhvnK6JAslSa/9TA== X-Google-Smtp-Source: AGHT+IHAvi1sEHbuZHR+U2QMtSSb7UThwxki8I9PWgdpPzsb1LJZ0C7+mtUrxRnQzcepeHpMtd+tDw== X-Received: by 2002:a05:6e02:1aaa:b0:35f:fe74:2cc0 with SMTP id l10-20020a056e021aaa00b0035ffe742cc0mr7590884ilv.18.1703652253422; Tue, 26 Dec 2023 20:44:13 -0800 (PST) Received: from ?IPV6:2001:44b8:41c8:6200:a8fc:4b63:a557:8027? (2001-44b8-41c8-6200-a8fc-4b63-a557-8027.static.ipv6.internode.on.net. [2001:44b8:41c8:6200:a8fc:4b63:a557:8027]) by smtp.gmail.com with ESMTPSA id jb2-20020a170903258200b001d0c5037ed3sm10974786plb.46.2023.12.26.20.44.12 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 26 Dec 2023 20:44:13 -0800 (PST) Content-Type: multipart/mixed; boundary="------------NPl1o1s0nCqjL278VptBThkc" Message-ID: <7075d3aa-3f05-44a5-b68f-47dc6a8a0550@buildkite.com> Date: Wed, 27 Dec 2023 15:44:09 +1100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Rian McGuire Subject: [PATCH] pg_dump: Do not dump statistics for excluded tables To: pgsql-hackers@lists.postgresql.org Content-Language: en-US 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. --------------NPl1o1s0nCqjL278VptBThkc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi hackers, I've attached a patch against master that addresses a small bug in pg_dump. Previously, pg_dump would include CREATE STATISTICS statements for tables that were excluded from the dump, causing reload to fail if any excluded tables had extended statistics. The patch skips the creation of the StatsExtInfo if the associated table does not have the DUMP_COMPONENT_DEFINITION flag set. This is similar to how getPublicationTables behaves if a table is excluded. I've covered this with a regression test by altering one of the CREATE STATISTICS examples to work with the existing 'exclude_test_table' run. Without the fix, that causes the test to fail with: # Failed test 'exclude_test_table: should not dump CREATE STATISTICS extended_stats_no_options' # at t/002_pg_dump.pl line 4934. Regards, Rian --------------NPl1o1s0nCqjL278VptBThkc Content-Type: text/plain; charset=UTF-8; name="v1-0001-pg_dump-Do-not-dump-statistics-for-excluded-tables.patch" Content-Disposition: attachment; filename*0="v1-0001-pg_dump-Do-not-dump-statistics-for-excluded-tables.p"; filename*1="atch" Content-Transfer-Encoding: base64 RnJvbSAwZmUwNjMzODcyODk4MWZhNzI3ZTNlNmI5OTI0Nzc0MWRlZGE3NWZiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWFuIE1jR3VpcmUgPHJpYW4ubWNndWlyZUBidWls ZGtpdGUuY29tPgpEYXRlOiBXZWQsIDI3IERlYyAyMDIzIDEzOjA5OjMxICsxMTAwClN1Ympl Y3Q6IFtQQVRDSF0gcGdfZHVtcDogRG8gbm90IGR1bXAgc3RhdGlzdGljcyBmb3IgZXhjbHVk ZWQgdGFibGVzCgpQcmV2aW91c2x5LCBwZ19kdW1wIHdvdWxkIGluY2x1ZGUgQ1JFQVRFIFNU QVRJU1RJQ1Mgc3RhdGVtZW50cyBmb3IKdGFibGVzIHRoYXQgd2VyZSBleGNsdWRlZCBmcm9t IHRoZSBkdW1wLCBjYXVzaW5nIHJlbG9hZCB0byBmYWlsLgotLS0KIHNyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0KIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIHwgIDUgKystLQogMiBmaWxl cyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwppbmRleCA4YzBiNTQ4NmI5Li5jNjdlZDQxNmU5IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAg LTcyODgsMTEgKzcyODgsMTMgQEAgZ2V0RXh0ZW5kZWRTdGF0aXN0aWNzKEFyY2hpdmUgKmZv dXQpCiAJaW50CQkJbnR1cHM7CiAJaW50CQkJaV90YWJsZW9pZDsKIAlpbnQJCQlpX29pZDsK KwlpbnQJCQlpX3N0eHJlbGlkOwogCWludAkJCWlfc3R4bmFtZTsKIAlpbnQJCQlpX3N0eG5h bWVzcGFjZTsKIAlpbnQJCQlpX3N0eG93bmVyOwogCWludAkJCWlfc3RhdHRhcmdldDsKLQlp bnQJCQlpOworCWludAkJCWksCisJCQkJajsKIAogCS8qIEV4dGVuZGVkIHN0YXRpc3RpY3Mg d2VyZSBuZXcgaW4gdjEwICovCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPCAxMDAwMDAp CkBAIC03MzAxLDExICs3MzAzLDExIEBAIGdldEV4dGVuZGVkU3RhdGlzdGljcyhBcmNoaXZl ICpmb3V0KQogCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKIAogCWlmIChmb3V0LT5y ZW1vdGVWZXJzaW9uIDwgMTMwMDAwKQotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwg IlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBzdHhuYW1lLCAiCisJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LCAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHN0eHJlbGlkLCBzdHhuYW1lLCAi CiAJCQkJCQkJICJzdHhuYW1lc3BhY2UsIHN0eG93bmVyLCAoLTEpIEFTIHN0eHN0YXR0YXJn ZXQgIgogCQkJCQkJCSAiRlJPTSBwZ19jYXRhbG9nLnBnX3N0YXRpc3RpY19leHQiKTsKIAll bHNlCi0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiU0VMRUNUIHRhYmxlb2lkLCBv aWQsIHN0eG5hbWUsICIKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJTRUxFQ1Qg dGFibGVvaWQsIG9pZCwgc3R4cmVsaWQsIHN0eG5hbWUsICIKIAkJCQkJCQkgInN0eG5hbWVz cGFjZSwgc3R4b3duZXIsIHN0eHN0YXR0YXJnZXQgIgogCQkJCQkJCSAiRlJPTSBwZ19jYXRh bG9nLnBnX3N0YXRpc3RpY19leHQiKTsKIApAQCAtNzMxNSwyNyArNzMxNyw0NCBAQCBnZXRF eHRlbmRlZFN0YXRpc3RpY3MoQXJjaGl2ZSAqZm91dCkKIAogCWlfdGFibGVvaWQgPSBQUWZu dW1iZXIocmVzLCAidGFibGVvaWQiKTsKIAlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQi KTsKKwlpX3N0eHJlbGlkID0gUFFmbnVtYmVyKHJlcywgInN0eHJlbGlkIik7CiAJaV9zdHhu YW1lID0gUFFmbnVtYmVyKHJlcywgInN0eG5hbWUiKTsKIAlpX3N0eG5hbWVzcGFjZSA9IFBR Zm51bWJlcihyZXMsICJzdHhuYW1lc3BhY2UiKTsKIAlpX3N0eG93bmVyID0gUFFmbnVtYmVy KHJlcywgInN0eG93bmVyIik7CiAJaV9zdGF0dGFyZ2V0ID0gUFFmbnVtYmVyKHJlcywgInN0 eHN0YXR0YXJnZXQiKTsKIAorCS8qIHRoaXMgYWxsb2NhdGlvbiBtYXkgYmUgbW9yZSB0aGFu IHdlIG5lZWQgKi8KIAlzdGF0c2V4dGluZm8gPSAoU3RhdHNFeHRJbmZvICopIHBnX21hbGxv YyhudHVwcyAqIHNpemVvZihTdGF0c0V4dEluZm8pKTsKKwlqID0gMDsKIAogCWZvciAoaSA9 IDA7IGkgPCBudHVwczsgaSsrKQogCXsKLQkJc3RhdHNleHRpbmZvW2ldLmRvYmoub2JqVHlw ZSA9IERPX1NUQVRTRVhUOwotCQlzdGF0c2V4dGluZm9baV0uZG9iai5jYXRJZC50YWJsZW9p ZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOwotCQlzdGF0c2V4 dGluZm9baV0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlf b2lkKSk7Ci0JCUFzc2lnbkR1bXBJZCgmc3RhdHNleHRpbmZvW2ldLmRvYmopOwotCQlzdGF0 c2V4dGluZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3N0eG5hbWUpKTsKLQkJc3RhdHNleHRpbmZvW2ldLmRvYmoubmFtZXNwYWNlID0KKwkJT2lk CQkJc3R4cmVsaWQ7CisJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKworCQkvKgorCQkgKiBPbmx5 IGR1bXAgZXh0ZW5kZWQgc3RhdGlzdGljcyBpZiB3ZSdyZSBnb2luZyB0byBkdW1wIHRoZSBk ZWZpbml0aW9uCisJCSAqIG9mIHRoZSB0YWJsZSB0aGF0IHRoZXkncmUgYXNzb2NpYXRlZCB3 aXRoLgorCQkgKi8KKwkJc3R4cmVsaWQgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N0 eHJlbGlkKSk7CisJCXRiaW5mbyA9IGZpbmRUYWJsZUJ5T2lkKHN0eHJlbGlkKTsKKwkJaWYg KHRiaW5mbyA9PSBOVUxMIHx8ICEodGJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVO VF9ERUZJTklUSU9OKSkKKwkJCWNvbnRpbnVlOworCisJCXN0YXRzZXh0aW5mb1tqXS5kb2Jq Lm9ialR5cGUgPSBET19TVEFUU0VYVDsKKwkJc3RhdHNleHRpbmZvW2pdLmRvYmouY2F0SWQu dGFibGVvaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJ c3RhdHNleHRpbmZvW2pdLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVz LCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnN0YXRzZXh0aW5mb1tqXS5kb2JqKTsK KwkJc3RhdHNleHRpbmZvW2pdLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJl cywgaSwgaV9zdHhuYW1lKSk7CisJCXN0YXRzZXh0aW5mb1tqXS5kb2JqLm5hbWVzcGFjZSA9 CiAJCQlmaW5kTmFtZXNwYWNlKGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9zdHhuYW1l c3BhY2UpKSk7Ci0JCXN0YXRzZXh0aW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFn ZXR2YWx1ZShyZXMsIGksIGlfc3R4b3duZXIpKTsKLQkJc3RhdHNleHRpbmZvW2ldLnN0YXR0 YXJnZXQgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N0YXR0YXJnZXQpKTsKKwkJc3Rh dHNleHRpbmZvW2pdLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwg aV9zdHhvd25lcikpOworCQlzdGF0c2V4dGluZm9bal0uc3RhdHRhcmdldCA9IGF0b2koUFFn ZXR2YWx1ZShyZXMsIGksIGlfc3RhdHRhcmdldCkpOwogCiAJCS8qIERlY2lkZSB3aGV0aGVy IHdlIHdhbnQgdG8gZHVtcCBpdCAqLwotCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKHN0YXRz ZXh0aW5mb1tpXS5kb2JqKSwgZm91dCk7CisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYoc3Rh dHNleHRpbmZvW2pdLmRvYmopLCBmb3V0KTsKKworCQlqKys7CiAJfQogCiAJUFFjbGVhcihy ZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBlYjNlYzUzNGI0Li5hNjcx NjAzY2QyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAor KysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMzc0MiwxNCArMzc0 MiwxNSBAQCBteSAldGVzdHMgPSAoCiAJJ0NSRUFURSBTVEFUSVNUSUNTIGV4dGVuZGVkX3N0 YXRzX25vX29wdGlvbnMnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDk3LAogCQljcmVhdGVf c3FsID0+ICdDUkVBVEUgU1RBVElTVElDUyBkdW1wX3Rlc3QudGVzdF9leHRfc3RhdHNfbm9f b3B0aW9ucwotCQkJCQkJCU9OIGNvbDEsIGNvbDIgRlJPTSBkdW1wX3Rlc3QudGVzdF9maWZ0 aF90YWJsZScsCisJCQkJCQkJT04gY29sMSwgY29sMiBGUk9NIGR1bXBfdGVzdC50ZXN0X3Rh YmxlJywKIAkJcmVnZXhwID0+IHFyL14KLQkJCVxRQ1JFQVRFIFNUQVRJU1RJQ1MgZHVtcF90 ZXN0LnRlc3RfZXh0X3N0YXRzX25vX29wdGlvbnMgT04gY29sMSwgY29sMiBGUk9NIGR1bXBf dGVzdC50ZXN0X2ZpZnRoX3RhYmxlO1xFCisJCQlcUUNSRUFURSBTVEFUSVNUSUNTIGR1bXBf dGVzdC50ZXN0X2V4dF9zdGF0c19ub19vcHRpb25zIE9OIGNvbDEsIGNvbDIgRlJPTSBkdW1w X3Rlc3QudGVzdF90YWJsZTtcRQogCQkgICAgL3htcywKIAkJbGlrZSA9PgogCQkgIHsgJWZ1 bGxfcnVucywgJWR1bXBfdGVzdF9zY2hlbWFfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4g MSwgfSwKIAkJdW5saWtlID0+IHsKIAkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAx LAorCQkJZXhjbHVkZV90ZXN0X3RhYmxlID0+IDEsCiAJCQlvbmx5X2R1bXBfbWVhc3VyZW1l bnQgPT4gMSwKIAkJfSwKIAl9LAotLSAKMi40My4wCgo= --------------NPl1o1s0nCqjL278VptBThkc--