From 01cecbd986d1b05dc56a43de5a3d7f7723d07483 Mon Sep 17 00:00:00 2001 From: Radu Berinde Date: Mon, 15 Jul 2024 06:33:02 -0700 Subject: [PATCH 1/2] github: fix check-pebble-dep action The action is failing with `invalid object name 'origin/release-23.1'` This commit adds `fetch-depth: 0` which enables use of all branches. Epic: none Release note: None --- .github/workflows/check-pebble-dep.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/check-pebble-dep.yml b/.github/workflows/check-pebble-dep.yml index a109deebbe6f..009eec067e2a 100644 --- a/.github/workflows/check-pebble-dep.yml +++ b/.github/workflows/check-pebble-dep.yml @@ -10,6 +10,8 @@ jobs: GH_TOKEN: ${{ github.token }} steps: - uses: actions/checkout@v3 + with: + fetch-depth: 0 - name: Check Pebble deps shell: bash From 4ece712579fd4a86506cd741fa04a9611113aa0c Mon Sep 17 00:00:00 2001 From: Uzair Ahmad Date: Tue, 16 Jul 2024 11:19:02 -0400 Subject: [PATCH 2/2] sql/stats: fix inject/restore of partial stats not creating merged stats Previously, JSON statistics would not include the statistic ID. This meant that restoring statement bundles would recreate stats with new IDs, breaking the statisticID/fullStatisticID relationship between full & partial stats and fail to recreate merged stats as a result. This commit adds the statistic ID to JSONStatistic and recreates stats with the same ID if present when injected. Allows for merged stats to be correctly recreated following inject/restore of full and partial stats. Fixes: #94101 See also: #125950 Release note (bug fix): Fixed a bug that prevented merged stats from being created after injecting stats or recreating statement bundles. This would occur when the injected stats/statement bundle contained related full and partial statistics. --- pkg/sql/alter_table.go | 71 ++++++++++++----- .../testdata/logic_test/distsql_stats | 47 +++++++++-- .../opt/exec/execbuilder/testdata/explain_env | 32 ++++---- .../exec/execbuilder/testdata/partial_stats | 78 +++++++------------ pkg/sql/show_stats.go | 1 + pkg/sql/stats/json.go | 1 + 6 files changed, 141 insertions(+), 89 deletions(-) diff --git a/pkg/sql/alter_table.go b/pkg/sql/alter_table.go index 1269eb805d5b..254223052b8b 100644 --- a/pkg/sql/alter_table.go +++ b/pkg/sql/alter_table.go @@ -1587,11 +1587,45 @@ func insertJSONStatistic( fullStatisticIDValue = s.FullStatisticID } - _ /* rows */, err := txn.Exec( - ctx, - "insert-stats", - txn.KV(), - `INSERT INTO system.table_statistics ( + if s.ID != 0 { + _ /* rows */, err := txn.Exec( + ctx, + "insert-stats", + txn.KV(), + `INSERT INTO system.table_statistics ( + "statisticID", + "tableID", + "name", + "columnIDs", + "createdAt", + "rowCount", + "distinctCount", + "nullCount", + "avgSize", + histogram, + "partialPredicate", + "fullStatisticID" + ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)`, + s.ID, + tableID, + name, + columnIDs, + s.CreatedAt, + s.RowCount, + s.DistinctCount, + s.NullCount, + s.AvgSize, + histogram, + predicateValue, + fullStatisticIDValue, + ) + return err + } else { + _ /* rows */, err := txn.Exec( + ctx, + "insert-stats", + txn.KV(), + `INSERT INTO system.table_statistics ( "tableID", "name", "columnIDs", @@ -1604,19 +1638,20 @@ func insertJSONStatistic( "partialPredicate", "fullStatisticID" ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)`, - tableID, - name, - columnIDs, - s.CreatedAt, - s.RowCount, - s.DistinctCount, - s.NullCount, - s.AvgSize, - histogram, - predicateValue, - fullStatisticIDValue, - ) - return err + tableID, + name, + columnIDs, + s.CreatedAt, + s.RowCount, + s.DistinctCount, + s.NullCount, + s.AvgSize, + histogram, + predicateValue, + fullStatisticIDValue, + ) + return err + } } // validateConstraintNameIsNotUsed checks that the name of the constraint we're diff --git a/pkg/sql/logictest/testdata/logic_test/distsql_stats b/pkg/sql/logictest/testdata/logic_test/distsql_stats index 6437b085a664..9a16e5161d61 100644 --- a/pkg/sql/logictest/testdata/logic_test/distsql_stats +++ b/pkg/sql/logictest/testdata/logic_test/distsql_stats @@ -1631,7 +1631,9 @@ statement ok CREATE STATISTICS s FROM all_null query T -SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) +SELECT jsonb_pretty( + regexp_replace(COALESCE(json_agg(stat), '[]')::STRING, '"id": [0-9]+', '"id": 0', 'g')::JSONB +) FROM ( SELECT json_array_elements(statistics) - 'created_at' AS stat FROM [SHOW STATISTICS USING JSON FOR TABLE all_null] @@ -1654,6 +1656,7 @@ FROM [SHOW STATISTICS USING JSON FOR TABLE all_null] ], "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "name": "s", "null_count": 0, "row_count": 1 @@ -1666,6 +1669,7 @@ FROM [SHOW STATISTICS USING JSON FOR TABLE all_null] "distinct_count": 1, "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "name": "s", "null_count": 1, "row_count": 1 @@ -1689,7 +1693,9 @@ statement ok CREATE STATISTICS s FROM greeting_stats query T -SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) +SELECT jsonb_pretty( + regexp_replace(COALESCE(json_agg(stat), '[]')::STRING, '"id": [0-9]+', '"id": 0', 'g')::JSONB +) FROM ( SELECT json_array_elements(statistics) - 'created_at' AS stat FROM [SHOW STATISTICS USING JSON FOR TABLE greeting_stats] @@ -1712,6 +1718,7 @@ FROM [SHOW STATISTICS USING JSON FOR TABLE greeting_stats] ], "histo_col_type": "test.public.greeting", "histo_version": 3, + "id": 0, "name": "s", "null_count": 0, "row_count": 1 @@ -1877,7 +1884,9 @@ SHOW HISTOGRAM $hist_id_1 upper_bound range_rows distinct_range_rows equal_rows query T -SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) +SELECT jsonb_pretty( + regexp_replace(COALESCE(json_agg(stat), '[]')::STRING, '"id": [0-9]+', '"id": 0', 'g')::JSONB +) FROM (SELECT json_array_elements(statistics) - 'created_at' AS stat FROM [SHOW STATISTICS USING JSON FOR TABLE tabula]) ---- @@ -1890,6 +1899,7 @@ SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) "distinct_count": 0, "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "name": "aristotle", "null_count": 0, "row_count": 0 @@ -1902,6 +1912,7 @@ SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) "distinct_count": 0, "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "name": "aristotle", "null_count": 0, "row_count": 0 @@ -1914,6 +1925,7 @@ SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) ], "distinct_count": 0, "histo_col_type": "", + "id": 0, "name": "aristotle", "null_count": 0, "row_count": 0 @@ -1926,6 +1938,7 @@ SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) "distinct_count": 0, "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "name": "aristotle", "null_count": 0, "row_count": 0 @@ -1973,7 +1986,9 @@ SHOW HISTOGRAM $hist_id_1 upper_bound range_rows distinct_range_rows equal_rows query T -SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) +SELECT jsonb_pretty( + regexp_replace(COALESCE(json_agg(stat), '[]')::STRING, '"id": [0-9]+', '"id": 0', 'g')::JSONB +) FROM (SELECT json_array_elements(statistics) - 'created_at' - 'avg_size' AS stat FROM [SHOW STATISTICS USING JSON FOR TABLE tabula]) ---- @@ -1993,6 +2008,7 @@ SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) ], "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "name": "locke", "null_count": 0, "row_count": 1 @@ -2012,6 +2028,7 @@ SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) ], "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "name": "locke", "null_count": 0, "row_count": 1 @@ -2023,6 +2040,7 @@ SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) ], "distinct_count": 1, "histo_col_type": "", + "id": 0, "name": "locke", "null_count": 0, "row_count": 1 @@ -2034,6 +2052,7 @@ SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) "distinct_count": 1, "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "name": "locke", "null_count": 1, "row_count": 1 @@ -2081,7 +2100,9 @@ NULL {rowid} 0 0 0 true t1_ab {a,b} 0 0 0 false query T -SELECT jsonb_pretty(COALESCE(json_agg(stat), '[]')) +SELECT jsonb_pretty( + regexp_replace(COALESCE(json_agg(stat), '[]')::STRING, '"id": [0-9]+', '"id": 0', 'g')::JSONB +) FROM ( SELECT json_array_elements(statistics) - 'created_at' AS stat FROM [SHOW STATISTICS USING JSON FOR TABLE t1] @@ -2096,6 +2117,7 @@ FROM [SHOW STATISTICS USING JSON FOR TABLE t1] "distinct_count": 0, "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "null_count": 0, "row_count": 0 }, @@ -2107,6 +2129,7 @@ FROM [SHOW STATISTICS USING JSON FOR TABLE t1] "distinct_count": 0, "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "null_count": 0, "row_count": 0 }, @@ -2118,6 +2141,7 @@ FROM [SHOW STATISTICS USING JSON FOR TABLE t1] "distinct_count": 0, "histo_col_type": "INT8", "histo_version": 3, + "id": 0, "null_count": 0, "row_count": 0 }, @@ -2129,6 +2153,7 @@ FROM [SHOW STATISTICS USING JSON FOR TABLE t1] ], "distinct_count": 0, "histo_col_type": "", + "id": 0, "name": "t1_ab", "null_count": 0, "row_count": 0 @@ -2363,6 +2388,18 @@ statistics_name partial_predicate row_count n xy_x_partial (x IS NULL) OR ((x < 0:::INT8) OR (x > 3:::INT8)) 4 0 xy_x_partial_2 (x IS NULL) OR ((x < 0:::INT8) OR (x > 3:::INT8)) 4 0 +query T +SELECT jsonb_pretty(stat->'name') +FROM ( + SELECT jsonb_array_elements(statistics) AS stat + FROM [SHOW STATISTICS USING JSON FOR TABLE xy] +) +WHERE stat->>'full_statistic_id' = '$statistics_id' +ORDER BY stat->>'name'; +---- +"xy_x_partial" +"xy_x_partial_2" + # Test null values. statement ok CREATE TABLE a_null (a INT, INDEX (a)); diff --git a/pkg/sql/opt/exec/execbuilder/testdata/explain_env b/pkg/sql/opt/exec/execbuilder/testdata/explain_env index c57b9d9b246f..e48baf94911d 100644 --- a/pkg/sql/opt/exec/execbuilder/testdata/explain_env +++ b/pkg/sql/opt/exec/execbuilder/testdata/explain_env @@ -13,6 +13,7 @@ CREATE TABLE x ( statement ok ALTER TABLE x INJECT STATISTICS '[ { + "id": 1, "columns": ["a"], "created_at": "2018-01-01 1:00:00.00000+00:00", "row_count": 123123, @@ -20,6 +21,7 @@ ALTER TABLE x INJECT STATISTICS '[ "histo_col_type": "" }, { + "id": 2, "columns": ["b"], "created_at": "2018-01-01 1:00:00.00000+00:00", "row_count": 123123, @@ -39,7 +41,7 @@ CREATE TABLE y ( query T EXPLAIN (OPT, ENV) SELECT * FROM x WHERE b = 3 ---- -https://cockroachdb.github.io/text/decode.html#eJy0U-2Om0YU_b3zFFf8sV0ZDLYiRVgrlZDZlNbBKyBpotVqNAxDMwpmNszg4laV8hB-lb5AH2WfpBq8sV2VJOrH8gNpLueee87ljG3Da94oIWsfQsneN5Kyd8-fAe84y1tRFbwBzZWG7QGFkG1DijMoqKY5VRwuYWQAoyXqy0Jp9aGCS5BluQSwbSh4SdtKw5ZWLfeBtlr2UFEXvCMNZ3Kz4XVBtZC1IrymecWLLxAYEaY_XL1KM5wYNVkUvwD1oXJYU-RE1Jo3Na0cbahII38mSlMtlBZMOVQRWRItNr102_vjdzUanGN7rvrsoAesck6GR7Ish5mOloeYjDTlGMiGasEIk1XFmVmGc9rFqKSV4sPsumn5v2HfiNrs5bAhZYY8GR7wxHW_wl_KhjOqtPr_JKud0nxD-l-oiDFwqP-DAShMcJBhyIJnK9yn2Llr80owp4MxuqAQxdlTiNcZxK9Wqym6yB8qh1O4jtMsCaI4g47cvec7uE6il0HyFn7Ab2FMIUjDyRRdRPFz_AY6khNRdDDO-zqaLBEKVsbb0Pgo_h6HGaRZkEVpFoUpjG4QAMCv_ds8Ft3-RJT4hVs-uNNTmcmq3dTK8uHmWDzgreP59hzfcKp5Qai2fLDmrvfUdj3b9cD1fNf1Xdc6A5s0i5ppwmRbmwbPPZ_9TigtTYaI3t0ZYdZ5c91W1bHxvM3cwCPhfOHNF_2336b_1XL-KJZ7hY_nGt2Oll_I5s5ks_1bNrefy-ZuIJvtp2z-BbclpUFerRMcvYgPyO0EEnyFExyHOIVP-RzTU7BNXx_s7deDvRsMdu8Xv7leBVEM4_V1NgUcv55AilcG-w1cJeuX0MGP3-EEQw6XsFgi27ZtpBitofv24W4huN_v7_cf7_cfgcla6YaKWvswm888H25mC7BhtrhFfwYAAP__2JX34g== +https://cockroachdb.github.io/text/decode.html#eJy0U9GOm0YUfd75iitebFcGg61IEdZKJWQ2pXXwCkiaaLUaDcPQjIKZDTO4uFWlfIR_pT_QT9kvqQZvbFclidI0PCDN5dxz7j2csW14yRslZO1DKNnbRlL25ukT4B1neSuqgjegudKwPaAQsm1IcQYF1TSnisMljAxgtER9WSit3lVwCbIslwC2DQUvaVtp2NKq5T7QVsseKuqCd6ThTG42vC6oFrJWhNc0r3jxCQIzhOkPVy_SDCdmmiyKn4F6VzmsKXIias2bmlaONlSkkb8SpakWSgumHKqILIkWm3502_vrTzUa1LE9V31U6AGrnNPCI1mWw0zHlYeYzGjKMZAN1YIRJquKM2OGc_JiVNJK8WF23bT8v7BvRG18OTikjMijYYFHrvsZ_lI2nFGl1f83stopzTek_4WKmAUO9S8QQGGCgwxDFjxZ4T7Fzl2bV4I5HYzRBYUozh5DvM4gfrFaTdFF_lA5nMJ1nGZJEMUZdOTuLd_BdRI9D5LX8BN-DWMKQRpOpugiip_iV9CRnIiig3He19FkiVCwMrsNyUfxjzjMIM2CLEqzKExhdIMAAH7v3-ax6PYXosRv3PLBnZ7KTFbtplaWDzfH4gFvHc-35_iGU80LQrXlgzV3vce269muB67nu67vutYZ2KRZ1EwTJtvaNHjuufYbobQ0GSJ6d2cGs86bRWEazgp1W1VHpnMecyWPCvOFN1_03_6Yfq0H-TfxoJ_wy2yYf40N6Ha0_ER6dya97b_Su_1YencD6W0_pPcfuC0pDfJqneDoWXxAbieQ4Cuc4DjEKXxI8Jieom_6-uhvPx_93WD0-33xq-tVEMUwXl9nU8DxywmkeGWw38FVsn4OHfz8A04w5HAJiyWybdtGitEauu8fbh-C-_3-fv_-fv8emKyVbqiotQ-z-czz4Wa2ABtmi1v0dwAAAP__GYf9hw== statement error pq: at or near "EOF": syntax error: the ENV flag can only be used with OPT @@ -52,7 +54,7 @@ EXPLAIN (ENV) SELECT * FROM x WHERE b = 3 query T EXPLAIN (OPT, ENV) SELECT * FROM x, y WHERE b = 3 ---- -https://cockroachdb.github.io/text/decode.html#eJy0VO1u2zYU_R0-xYX_2B5MR4pRoJARYK7LdNpcOZDUrkUQEBRFrVxlMhUpT9owoNgz-OdeYy-wR8mTDJRTx0PVFvuIfxjg5bnnnnN9aIzhpaiM1CqApeZvK834m6dPQDSCZ7Usc1GBFcbCdo9CCGNISAo5syxjRsA5DB1gOEddWRpr3pVwDroo5gAYQy4KVpcWtqysRQCstrqDSpWLhlaC681GqJxZqZWhQrGsFPlnCJwI179cvUhSEjs1aRg9A_OunPIqz6hUVlSKlVPrqGilf6LGMiuNldxMmaG6oFZuOunY__MPM-ydg33PfHLQHdZM7w0PdVH0Mx0s9zE5aWbqIBtmJadcl6XgbhnT-10MC1Ya0c9uq1r8G_aNVG4v-w0ZN-RR_4BHnvcF_kJXgjNjzf8n2bTGig3tfkJDnYF9_R8MQMuYLFIC6eLJinQpnt7UWSn5tIEROmEQRuljiNYpRC9Wqwk6ye4q-9NyHSVpvAijFBp681a0cBmHzxfxa_iOvIYRg0WyHE_QSRg9Ja-goRmVeQOjrKuj8Ryhxcp56xsfRt-SZQpJukjDJA2XCQyvEADAL923-wzY9gdq5M9iEIA3uS9zXdYbZQYBXB2Ke_zgcL4-xleCWZFTZgcBDM48_zH2fOz54PmB5wWeNzgCuzRLxS3lulauwfeOZ7-RxmqXIWrbGydscNys6rI8NB63uRd4IDyb-Wez7u7XyX-1nD2I5U7hw7lG18P5Z7LZumzWH2Vz-6lstj3ZrD9k82-4LS0c8mIdk_BZtEduxxCTCxKTaEkS-JDPEbsPtuvrgr39crDb3mB3fsmry9UijGC0vkwnQKKXY0jIymG_got4_RyaCbTw_TckJpDBOczmCGOMkVRKVPhHLRWMeKWNGSO43f1-u3t_u3sPhjMF7UeV5uu75-hufnNbv93t7gBcK2MrJpUN4PTs1A_g6nQGGE5n1-gIVsjSisrAyP2VjNFfAQAA___yoBv6 +https://cockroachdb.github.io/text/decode.html#eJy0VFGO2zYQ_V6eYuAf24XplWwECGQsUMfhpmodeSEpaYLFgqAoqmEjkxuRcq0WBYKewZ-9Ri_Qo-xJCsob20WUBGkafxjg8M17M8-Pxhiei8pIrQJYaP660oy_evwIxFbwrJZlLiqwwljY7FEIYQwJSSFnlmXMCLiAvgP0Z6gtS2PNmxIuQBfFDABjyEXB6tLChpW1CIDVVrdQqXKxpZXger0WKmdWamWoUCwrRf4RAjeE618snyUpid00aRg9AfOmHPMqz6hUVlSKlWPrqGilf6HGMiuNldyMmaG6oFau29Gx__dfpt-pg33PfFDoHmvGx4X7uii6mQ4rdzG50czYQdbMSk65LkvBnRnjoxf9gpVGdLPbqhb_hX0tlfNl75BxIg-6BR543if4C10Jzow1_9_IpjFWrGn7ExrqFtjXP0MALWIyTwmk80dL0qZ4fFtnpeTjLQzQGYMwSh9CtEoherZcjtBZdl_ZnxarKEnjeRilsKW3r0UDV3H4dB6_hB_ISxgwmCeL4QidhdFj8gK2NKMy38Iga-toOENovnS7dcmH0fdkkUKSztMwScNFAv1rBADwW_vtPj22-Yka-avoBeCNjmWuy3qtTC-A60Nxj-8dzjen-EowK3LKbC-A3sTzH2LPx54Pnh94XuB5vROwS7NU3FKua-UafO9U-5U0VrsMUdvcusF6p80ydw0nBVWX5YHplMc9yYPCZOpPpu3d76Mv9SD7Kh60E36eDZMvsQHd9GcfSW_j0lu_l97Nh9LbdKS3fpfef-E2tHDIy1VMwifRHrkZQkwuSUyiBUngXYIH7Bh919dGf_Pp6Ded0W_3JS-ulvMwgsHqKh0BiZ4PISFLh_0GLuPVU9iOoIEfvyMxgQwuYDpDGGOMpFKiwj9rqWDAK23MEMHd7s-73du73VswnClo3qtsv71_sO7mD-f63W53D-BaGVsxqWwA55NzP4Dr8ylgOJ_eoBNYIUsrKgMD92czRP8EAAD__w3UIZ8= # # Same table twice should only show up once. @@ -61,7 +63,7 @@ https://cockroachdb.github.io/text/decode.html#eJy0VO1u2zYU_R0-xYX_2B5MR4pRoJARY query T EXPLAIN (OPT, ENV) SELECT * FROM x one, x two ---- -https://cockroachdb.github.io/text/decode.html#eJy0VN1u2zYUvg6f4kA3tgdLkFIUKGzkQlWZQpsrB5JatAgCgqKolatMpiLlyBsG9CF8udfYC-xR8iQD5cT2MCXBfqILQTznO98539EnuS584I0WSs4gUuxLoyj7_OY18I6zohV1yRswXBtY71AIuS5kOIeSGlpQzeEMRhYwmqM-LLTRX2s4A1VVcwDXhZJXtK0NrGnd8hnQ1qgeKmTJO9JwplYrLktqhJKacEmLmpePENghbH20eJ_lOLXT5HHyFvTX2mNNWRAhDW8krT1jqUijbog21AhtBNMe1URVxIhVP7ob_PG7Hg32cQNfP9joDqu9g-CRqqphpr3kISY7mvYsZEWNYISpuubMLsM77GJU0VrzYXbTtPzfsK-EtHvZbUjbJi-HG7z0_Sf4K9VwRrXR_9_IeqMNX5H-FWpiBezi_6ABilIc5hjy8PUC9y72rtuiFszrYIxOKMRJ_gqSZQ7J-8Viik6Ku8juFC2TLE_DOMmhI9df-AYu0vhdmH6CH_AnGFMIs2gyRSdx8gZ_hI4URJQdjIs-jiZzhMKF1TbUPk6-x1EOWR7mcZbHUQajSwQA8Et_t5dD1z8SLX7mzgz86SHMVN2upHZmcLkP7vDO_nx1jG84Nbwk1DgzcE794JXrB64fgB_MfH_m-84R2LpZSGYIU620BYF_3Puz0EZZDxGzubaDOcfFsq3rfeFxmf0C94SnL4LTF33u1-l_lVw8i-R-wudTja5G80e8ubHebP_mzfVD3twMeLO99-ZfcGtSWeT5MsXx22SHXE8gxec4xUmEM7j355gejG3remOvnzb2ZtDYvV788WIRxgmMlxf5FHDyYQIZXljsd3CeLt9BB2EGSvLp7sncqDlyXddFQkreuD8pIWHMGqX1BMHt9rfb7bfb7TfQjEro4JLqMyX51QMpc6P61PYuVYna8EbD2P4oJujPAAAA__83zhBl +https://cockroachdb.github.io/text/decode.html#eJy0VNFu2zYUfQ6_4kIvtgdLkFwUKGzkQVWZQpsrB5JatAgCgqKolatMpiLlyBsG9CP8uN_YD-xT8iUD5dT2MKVFl9UPhnXvuefce3xs14U3vNFCyTlEin1oFGXvXzwH3nFWtKIueQOGawObPQoh14UM51BSQwuqOZzDyAJGC9SXhTb6Yw3noKpqAeC6UPKKtrWBDa1bPgfaGtVDhSx5RxrO1HrNZUmNUFITLmlR8_ILBHYJOx8tX2c5Tu02eZy8BP2x9lhTFkRIwxtJa89YKtKoW6INNUIbwbRHNVEVMWLdr-4Gf_2pR4M6buDrB4Xusdo7HjxSVTXMdDh5iMmupj0LWVMjGGGqrjmzZnhHL0YVrTUfZjdNy_8L-1pI68veIW1Fng4LPPX9r_BXquGMaqP_v5X1Vhu-Jv1XqIk9YF__BgEUpTjMMeTh8yXuU-zdtEUtmNfBGJ1RiJP8GSSrHJLXy-UUnRX3lf1TtEqyPA3jJIeO3HzgW7hM41dh-g5-wu9gTCHMoskUncXJC_wWOlIQUXYwLvo6miwQCpf2tiH5OPkRRzlkeZjHWR5HGYyuEADAb_27fTl08zPR4lfuzMGfHstM1e1aamcOV4fiHu8cnq9P8Q2nhpeEGmcOzswPnrl-4PoB-MHc9-e-75yAbZqFZIYw1Uo7EPin2u-FNspmiJjtjV3MOR0WpR04Kci2rg9Mpzz2J3lQmD0JZk_63u_Tx3pQfBcP-g2_zYbZY2xA16PFF9K7telt_5XezUPp3Q6kt_2c3n_gNqSyyItViuOXyR65mUCKL3CKkwhn8DnBY3qMvp3ro7_5evS3g9Hv78VvL5dhnMB4dZlPASdvJpDhpcX-ABfp6hV0EGagJJ_uP5lbtUCu67pISMkb9xclJIxZo7SeILjb_XG3-3S3-wSaUQkdXFF9riS_fqBlblXf2t23KlEb3mgY27-SCfo7AAD__5L6Fgo= # # Set a relevant session variable to a non-default value and ensure it shows up @@ -74,7 +76,7 @@ SET reorder_joins_limit = 63 query T EXPLAIN (OPT, ENV) SELECT * FROM y WHERE u = 3 ---- -https://cockroachdb.github.io/text/decode.html#eJy0U91u2zYUvg6f4sA3dgZLkWJ0CGTkQlWZTpsrB5LatQgCgqKolatEpiLlWRsG9CHyKnuBPUqeZKDc2h6mttjW-sKAjr-f8x1_chx4wVstlAwgUuxNqyh7_eQx8C1nRSfqkrdguDaw2aEQchzIcA4lNbSgmsMlTC1gukTDWGij39ZwCaqqlgCOAyWvaFcb2NC64wHQzqgBKmTJt6TlTDUNlyU1QklNuKRFzctPCCg50Fuu2pK35GclpCa1aISBS_h2Mcq5QAMnWj3PcpzaAHmcPAX9tnZZWxZESMNbSWvXWHfSql-INtQIbQTTLtVEVcSIZkjr-H_-oaejNo7v6Y8avcdq93CjqaqqcaX9lcaU7GratZCGGsEIU3XNmb2fezjftKK15uPqpu34f1FvhLR32V1IW5NH4waPPO8z-pVqOaPa6C-3su614Q0Z_kJNbIDd_F8YoCjFYY4hDx-v8FB8964rasHcLczQCYU4yS8gWeeQPF-t5uikeD_ZPUXrJMvTME5y2JK7N7yH6zR-Fqav4Af8CmYUwiw6naOTOHmCX8KWFESUW5gVwxydLhEKVzbbmH2cfI-jHLI8zOMsj6MMpjcIAOC34dt-JnTzE9HiVz4JwJsfxkzVXSP1JICb_XCHn-yfb4_xLaeGl4SaSQCTc8-_cDzf8Xzw_MDzAs-bHIFtm4VkhjDVSUvwvWPv10IbZTtETH9nF5sck2VX13viMc2-gXvB84V_vhh--33-fyMXXyXysOHXS41up8tPdLO33ez-0c3Nx7rZj3Sz-9DNv-E2pLLIq3WK46fJDrk5hRRf4RQnEc7gQz9n9FBsyxuKvfl8sfvRYg958cvrVRgnMFtf53PAyYtTyPDKYr-Bq3T9DHr48TucYujgEhZL5DiOgzSjEnoED_f3D_fvHu7fAVNSm5YKaQI48wO4OVuAA2eLW_RXAAAA__8JxwUg +https://cockroachdb.github.io/text/decode.html#eJy0U91u2zYUvg6f4sA3dgZLkWJ0CGTkQlWZTpsrB5LatQgCgqKolatEpiLlWRsG9CHyKnuBPUqeZKDc2h6mtui6-cKAjr-fcz5_chx4wVstlAwgUuxNqyh7_eQx8C1nRSfqkrdguDaw2aEQchzIcA4lNbSgmsMlTC1gukTDWGij39ZwCaqqlgCOAyWvaFcb2NC64wHQzqgBKmTJt6TlTDUNlyU1QklNuKRFzctPCCg50Fuu2pK35GclpCa1aISBS_h2Mcq5QAMnWj3PcpzaA_I4eQr6be2ytiyIkIa3ktause6kVb8QbagR2gimXaqJqogRzXCt4__5h56O2ji-pz9q9B6r3UNGU1VV40r7lMaU7GratZCGGsEIU3XNmc3PPcQ3rWit-bi6aTv-b9QbIW0uu4S0NXk0bvDI8z6jX6mWM6qN_u9W1r02vCHDX6iJPWA3_wIDFKU4zDHk4eMVHorv3nVFLZi7hRk6oRAn-QUk6xyS56vVHJ0U7ye7p2idZHkaxkkOW3L3hvdwncbPwvQV_IBfwYxCmEWnc3QSJ0_wS9iSgohyC7NimKPTJULhyt42Zh8n3-MohywP8zjL4yiD6Q0CAPht-LafCd38RLT4lU8C8OaHMVN110g9CeBmP9zhJ_vn22N8y6nhJaFmEsDk3PMvHM93PB88P_C8wPMmR2DbZiGZIUx10hJ879j7tdBG2Q4R09_ZxSbHZFFawtFAdnW9VzrWsa_k3uF84Z8vht9-n39tBsX_ksGw4ZfFcP41MaDb6fIT7e1te7t_tHfzsfb2I-3tPrT3b7gNqSzyap3i-GmyQ25OIcVXOMVJhDP40OAZPVTf8obqbz5f_X60-sO9-OX1KowTmK2v8zng5MUpZHhlsd_AVbp-Bj38-B1OMXRwCYslchzHQZpRCT2Ch_v7h_t3D_fvgCmpTUuFNAGc-QHcnC3AgbPFLforAAD__0aGCsU= # Make sure it shows up correctly even if it matches the cluster setting. statement ok @@ -84,7 +86,7 @@ SET CLUSTER SETTING sql.defaults.reorder_joins_limit = 63 query T EXPLAIN (OPT, ENV) SELECT * FROM y WHERE u = 3 ---- -https://cockroachdb.github.io/text/decode.html#eJy0U91u2zYUvg6f4sA3dgZLkWK0CGTkQlWZTpsrB5LatQgCgqKolatEpiLlWRsG9CHyKnuBPUqeZKDcOh6mpNhPfWFAR98Pv6OPjgOveauFkgFEir1vFWXvnj8DvuWs6ERd8hYM1wY2OxRCjgMZzqGkhhZUcziHqQVMl2gYC230hxrOQVXVEsBxoOQV7WoDG1p3PADaGTVAhSz5lrScqabhsqRGKKkJl7SoefmIgJIDveWqLXlLflJCalKLRhg4h6eLUc4ZGjjR6lWW49QGyOPkBegPtcvasiBCGt5KWrvGupNW_Uy0oUZoI5h2qSaqIkY0Q1rH_-N3PR21cXxPP2j0Cavd-x1NVVWNK-239KjS-A6mTxfjomcPKtqw2rWmDTWCEabqmjP7Rdz7DzKtaK35uLRpO_5v1Bsh7aZ3O9fW5Mm4wRPP-4J-pVrOqDb6_zuy7rXhDRlKoYkNsJv_AwMUpTjMMeThsxUerpJ70xW1YO4WZuiIQpzkZ5Csc0herVZzdFR8muyeonWS5WkYJzlsyc173sNlGr8M07fwPX4LMwphFh3P0VGcPMdvYEsKIsotzIphjo6XCIUrm23MPk6-w1EOWR7mcZbHUQbTKwQA8Ovwb38TuvmRaPELnwTgze_HTNVdI_UkgKv9cIef7J-vD_Etp4aXhJpJAJNTzz9zPN_xfPD8wPMCz5scgO39EJIZwlQnLcH3Dr3fCW2U7RAx_Y092OSQLLu63hMPafZO7wVPF_7pYnj32_y_Ri6-SuThhF8vNbqeLh_pZm-72f2tm5uHutmPdLP73M2_4DakssiLdYrjF8kOuTmGFF_gFCcRzuBzP2f0vtiWNxR78-Vi96PFHvLiN5erME5gtr7M54CT18eQ4ZXFfgMX6fol9PDDtzjF0ME5LJbIcRwHaUYl9Ajubm_vbj_e3X4EpqQ2LRXSBHDiB3B1sgAHThbX6M8AAAD__2aAH4o= +https://cockroachdb.github.io/text/decode.html#eJy0U91u2zYUvg6f4sA3dgbLkWK0CGTkQlWZTpsrB5LatQgCgqKolatEpiLlWRsG9CHyKnuBPUqeZKDc2h6mpOiy-sKAjr4fnk8fHQde80YLJX0IFXvfKMrePX8GfMNZ3oqq4A0Yrg2styiEHAdSnEFBDc2p5nAOYwsYL1A_FtroDxWcgyrLBYDjQMFL2lYG1rRquQ-0NaqHClnwDWk4U3XNZUGNUFITLmle8eIBASV7esNVU_CG_KKE1KQStTBwDk_ng5wz1HPC5as0w4ldIIviF6A_VDPWFDkR0vBG0mpmrDtp1K9EG2qENoLpGdVElcSIut_W8f76U48HbRzP1fcafcLq2T6jsSrLYaVdSg8qDWcwfjofFj27V9Euq2fWtKZGMMJUVXFmv8hs_0HGJa00H5Y2Tcv_i3otpE16m7m2Jk-GDZ647hf0S9VwRrXR_9-RdacNr0lfCk3sAtv5VxigMMFBhiELni1xf5VmN21eCTbbwAQdUYji7AziVQbxq-Vyio7yT5PtU7iK0ywJojiDDbl5zzu4TKKXQfIWfsRvYUIhSMPjKTqK4uf4DWxITkSxgUnez9HxAqFgaXcbso_iH3CYQZoFWZRmUZjC-AoBAPze_9vfiK5_Jlr8xkc-uNP9mKmqraUe-XC1G27xo93z9SG-4dTwglAz8mF06npnjus5rgeu57uu77qjA7C9H0IyQ5hqpSV47qH3O6GNsh0ipruxBxsdkkVhCQcD2VbVTulQx17yncPp3Dud9-_-mD42g_ybZNCf8OtiOH1MDOh6vHigvZ1tb_uv9q7va2830N72c3v_gVuT0iIvVgmOXsRb5PoYEnyBExyHOIXPDZ7QffUtr6_--svV7war3--L31wugyiGyeoymwKOXx9DipcW-x1cJKuX0MFP3-MEQwvnMF8gx3EcpBmV0CG4u729u_14d_sRmJLaNFRI48OJ58PVyRwcOJlfo78DAAD__yWPJS8= statement ok SET enable_zigzag_join = true @@ -92,7 +94,7 @@ SET enable_zigzag_join = true query T EXPLAIN (OPT, ENV) SELECT * FROM y WHERE u = 3 ---- -https://cockroachdb.github.io/text/decode.html#eJy0U91u2zYUvg6f4sA3dgbLkWK0CGTkwnWZTpsrB5LatQgCgqKolKtEpiLlWRkG9CHyKnuBPUqeZCDdOh6mpNhPfGFAR98Pv6OPngdveaOFkiEsFPvYKMo-vHwBfMNZ3oqq4A0Yrg2styiEPA9SnEFBDc2p5nAKQwsYzpAbC230pwpOQZXlDMDzoOAlbSsDa1q1PATaGuWgXNK84uRGXN3QK_KzEtKyZC9JlaXjCFnwDWk4U3XNZUGNUFKTrVLxiKmSjt5w1RS8cWaaVKIWBk7h-bSXc4IcZ7F8k2Y4saGzKH4F-lM1YU2REyENbyStJsblaNQvRBtqhDaC6QnVRJXEiNptyAv--F0Pe228wNcPGn3B6sn9XoeqLPuVdpt9VKl_B8Pn037RkwcVbVg9saY1NYIRpqqKM_tFJvcfZFjSSvN-adO0_N-o10LaTW93rq3Js36DZ77_Df1SNZxRbfT_d2TdacNr4kqhiQ2wnf8DA7RI8DzDkM1fLLG7fpPrNq8Em2xghA4oRHF2AvEqg_jNcjlGB_mXyfZpsYrTLJlHcQYbcv2Rd3CeRK_nyXv4Eb-HEYV5ujgco4MofonfwYbkRBQbGOVujg5nCM2XNluffRT_gBcZpNk8i9IsWqQwvEAAAL-6f_sb0PUV0eKGD0Lwx_djpqq2lnoQwsVuuMUPds-X-_iGU8MLQs0ghMGxH5x4fuD5AfhB6Puh7w_2wPZ-CMkMYaqVlhD4-94fhDbKdoiY7toebLBPlm1V7Yj7NHund4LH0-B46t79Nv6vkfMniexO-HSp0eVw9kg3O9vN9m_dXD_Uza6nm-3Xbv4FtyalRZ6tEhy9irfI9SEk-AwnOF7gFL72c0Tvi215rtjrbxe76y22y4vfnS_nUQyj1Xk2Bhy_PYQULy32OzhLVq-hg5--xwmGFk5hOkOe53lIMyqhQ3B3e3t3-_nu9jMwJbVpqJAmhKMghIujKXhwNL1EfwYAAP__6jExBw== +https://cockroachdb.github.io/text/decode.html#eJy0U91u2zYUvg6f4sA3dgbLkWK0CGTkwnWZTpsrB5LatQgCgqKolKtEpiLlWRkG9CHyKnuBPUqeZCDdOh6mpOi6-sKAjr4fnk8fPQ9e80YLJUNYKPa-UZS9e_4M-IazvBVVwRswXBtYb1EIeR6kOIOCGppTzeEUhhYwnCE3FtroDxWcgirLGYDnQcFL2lYG1rRqeQi0NcpBuaR5xcmNuLqhV-RXJaRlyV6SKkvHEbLgG9Jwpuqay4IaoaQmW6XiEVMlHb3hqil448w0qUQtDJzC02kv5wQ5zmL5Ks1wYpfOovgF6A_VhDVFToQ0vJG0mhi3R6N-I9pQI7QRTE-oJqokRtQuIS_460897LXxAl8_aPQJqyf3uQ5VWfYr7ZJ9VKk_g-HTab_oyYOKdlk9saY1NYIRpqqKM_tFJvcfZFjSSvN-adO0_L-o10LapLeZa2vypN_gie9_Qb9UDWdUG_3_HVl32vCauFJoYhfYzr_CAC0SPM8wZPNnS-yu3-S6zSvBJhsYoQMKUZydQLzKIH61XI7RQf5psn1arOI0S-ZRnMGGXL_nHZwn0ct58hZ-xm9hRGGeLg7H6CCKn-M3sCE5EcUGRrmbo8MZQvOl3a3PPop_wosM0myeRWkWLVIYXiAAgN_dv_0N6PqKaHHDByH44_sxU1VbSz0I4WI33OIHu-fLfXzDqeEFoWYQwuDYD048P_D8APwg9P3Q9wd7YHs_hGSGMNVKSwj8fe93QhtlO0RMd20PNtgni8IS9gayraqd0r6OveQ7h-NpcDx17_4Yf2sG-XfJwJ3w62I4_pYY0OVw9kh7O9ve9l_tXT_U3q6nve3n9v4DtyalRZ6tEhy9iLfI9SEk-AwnOF7gFD43eETvq295rvrrL1e_662-2xe_OV_OoxhGq_NsDDh-fQgpXlrsD3CWrF5CB7_8iBMMLZzCdIY8z_OQZlRCh-Du9vbu9uPd7UdgSmrTUCFNCEdBCBdHU_DgaHqJ_g4AAP__-_g2rA== statement ok SET optimizer_use_histograms = false @@ -100,7 +102,7 @@ SET optimizer_use_histograms = false query T EXPLAIN (OPT, ENV) SELECT * FROM y WHERE u = 3 ---- -https://cockroachdb.github.io/text/decode.html#eJy0VN1u2zYUvg6f4sA3cgbLkWK0CGTkwnWZTpsrB5LatQgCgpKolKtEpiTl2RkG9CHyKnuBPUqeZCDdOh6mJNhPfWGAx98Pzzkf7fvwlinNpYhgLsuPStLyw8sXwNasLDreVEyBYdrAaotCyPchwzlU1NCCagan4FmAN0WuzLXRnxo4BVnXUwDfh4rVtGsMrGjTsQhoZ6SDMkGLhpEbfnVDr8jPkgvLEr0kWdeOw0XF1kSxUrYtExU1XApNtkrVI6ZSOLq8NrzlN0yRTjPygWsjrxRt9dNMxaSqmHLX1KThLTdwCs8nvZwT5DjzxZssx6kdVx4nr0B_asalqgrChWFK0GZs3ASU_IVoQw3Xhpd6TDWRNTG8dbP1wz9-116vjR8G-kGjL1g9vt-IJ-u6X2m3k0eV-mfgPZ_0i548qGib1WNr2lLDS1LKpmGl3eX4fpVeTRvN-qWN6ti_UW-5sJPeztxu3XvWb_AsCJ7Qr6ViJdVG_39X1httWEtcKDSxDWzr_8AAzVM8yzHksxcL7B7u-LorGl6O1zBEBxTiJD-BZJlD8maxGKGD4ktle5ovkyxPZ3GSw5pcf2QbOE_j17P0PfyI38OQwiybH47QQZy8xO9gTQrCqzUMC1dHh1OEZgvbW599nPyA5zlk-SyPszyeZ-BdIACAX923_Qzo6opofsMGEQSj-3Ipm64VehDBxa64xQ9258t9vGLUsIpQM4hgcByEJ34Q-kEIQRgFQRQEgz2wfR9clIaUshOWEAb73u5PwmaImM21vdhgnyy6ptkR92n2Te8Ejyfh8cT99tvov7ZcfJOW3Q2_Xdfo0ps-ks2NzWb3t2yuHsrmpieb3dds_gW3IrVFni1THL9KtsjVIaT4DKc4meMMvuZzSO-DbXku2Kung73pDbbrF787X8ziBIbL83wEOHl7CBleWOx3cJYuX8MGfvoepxg6OIXJFPm-7yNdUgEbBHe3t3e3n-9uP0MphTaKcmEiOAojuDiagA9Hk0v0ZwAAAP__FoxFUg== +https://cockroachdb.github.io/text/decode.html#eJy0VN1u2zYUvg6f4sA3cgbLkWK0CGTkwnWZTpsrB5LatQgCgpKolKtEpiLlWRkG9CHyKnuBPUqeZCDd2h6mJOiy-sKAjr8f8juf7LrwljWKSxHAXOYfG0nzDy9fAFuzPGt5VbAGNFMaVhsUQq4LCU6hoJpmVDE4BccAnCmyY660-lTBKciynAK4LhSspG2lYUWrlgVAWy0tlAmaVYzc8KsbekV-lVwYluglybK0HC4KtiYNy2VdM1FQzaVQZKNUPGAqhaXLa81rfsMa0ipGPnCl5VVDa_U4s2GyKVhjj6lIxWuu4RSeT3o5J8hy5os3SYpjE1caRq9AfarGeVNkhAvNGkGrsbYJNPI3ojTVXGmeqzFVRJZE89pm6_p__amcXhvX99S9Rl-warzbiCPLsl9pu5MHlfozcJ5P-kVP7lU0l1VjY1pTzXOSy6piudnleLdKp6SVYv3SumnZf1GvuTBJbzI3W3ee9Rs887xH9EvZsJwqrf6_I6tOaVYTWwpFzAU2828wQPMYz1IM6ezFAtsXd3zdZhXPx2sYogMKYZSeQLRMIXqzWIzQQfZlsnmaL6MkjWdhlMKaXH9kHZzH4etZ_B5-xu9hSGGWzA9H6CCMXuJ3sCYZ4cUahpmdo8MpQrOFuVuffRj9hOcpJOksDZM0nCfgXCAAgN_tt_kM6OqKKH7DBgF4o904l1VbCzUI4GI73OAH2-fLfXzDqGYFoXoQwODY809cz3c9Hzw_8LzA8wZ7YPN-cJFrkstWGILv7XvbPwnTIaK7a3OwwT6ZF4awNxBtVW2V9nXMS751OJ74xxP72x-jp2aQfZcM7Am_LYbjp8SALp3pA-3tTHvbf7V3dV97u572tl_b-w_cipQGebaMcfgq2iBXhxDjMxzjaI4T-NrgId1V3_Bs9VePV7_rrb69L353vpiFEQyX5-kIcPT2EBK8MNgf4CxevoYOfvkRxxhaOIXJFLmu6yKVUwEdgrvb27vbz3e3nyGXQumGcqEDOPIDuDiagAtHk0v0dwAAAP__2mdK9w== statement ok SET optimizer_use_multicol_stats = false @@ -108,7 +110,7 @@ SET optimizer_use_multicol_stats = false query T EXPLAIN (OPT, ENV) SELECT * FROM y WHERE u = 3 ---- -https://cockroachdb.github.io/text/decode.html#eJy0VN1u2zYUvo6e4sA3cgbLkWK0CGTkwnWZTpsrB5LatQgCgqKolCtFpiLl2RkG9CHyKnuBPUqeZCDdOh6mpOu2-sIAj78fnnM-OgjgNWs1VzKGuaLvW0Xou-fPgK0ZLTsuKtaCYdrAaovyvCCAHBVQEUNKohmcgm8B_tRzZa6N_iDgFFRdTwGCACpWk04YWBHRsRhIZ5SDMklKwfANv7ohV_hnxaVlyV6SqmvH4bJia9wyqpqGyYoYrqTGW6XqEVMlHV1dG97wG9biTjP8jmujrlrS6K9lNp0wnCqBtSHmH7BbptqKta5JjQVvuIFTeDrp5Zx4jjNfvMoLlNlhF0n6AvQHMaZtVWIuDWslEWPj5teqX9w1uDac6jHRWNXY8MZtJoj--F37vTZBFOoHjT5h9fh-n76q636l3UYfVeqfgf900i968qCim_nYmjbEcIqpEoJRm4TxfRD8mgjN-qVN27F_o95waSe9nbnduv-k3-BJGH5Bv1Yto0Qb_f9dWW-0YQ12odDYNrCtf4WBN8_QrEBQzJ4tkHv24-uuFJyO1zD0DggkaXEC6bKA9NViMfIOyk-V7Wm-TPMimyVpAWt8_Z5t4DxLXs6yt_AjegtDArN8fjjyDpL0OXoDa1xiXq1hWLq6dzj1vNnC9tZnn6Q_oHkBeTErkrxI5jn4Fx4AwK_u234GZHWFNb9hgxjC0X2ZKtE1Ug9iuNgVt_jB7ny5j28ZMazCxAxiGByH0UkQRkEYQRjFYRiH4WAPbN8Hl9RgqjppCVG47-3-YmyGsNlc24sN9smyE2JH3KfZN70TPJ5ExxP322-j_9py-U1adjf8dl17l_70kWxubDa7v2Vz9VA2Nz3Z7D5n8y-4Fa4t8myZoeRFukWuDiFDZyhD6Rzl8DmfQ3IfbMtzwV59Odib3mC7ftGb88UsSWG4PC9GgNLXh5CjhcV-B2fZ8iVs4KfvUYagg1OYTL0gCAJPUyJh48Hd7e3d7ce7249AldSmJVyaGI6iGC6OJhDA0eTS-zMAAP__FudbUw== +https://cockroachdb.github.io/text/decode.html#eJy0VF9u2zYcfq5O8YNf5AyWI8VoEcjIg-synTZXDiS1axEEBEVRKVeKTEXKszMM6CFylV1gR8lJBtKt42FKuqybHwzw5-8P-fGjgwDesFZzJWOYK_qhVYS-f_Ec2JrRsuOiYi0Ypg2stijPCwLIUQEVMaQkmsEJ-BbgTz035trojwJOQNX1FCAIoGI16YSBFREdi4F0Rjkok6QUDF_zy2tyiX9WXFqW7CWpunYcLiu2xi2jqmmYrIjhSmq8VaoeMFXS0dWV4Q2_Zi3uNMPvuTbqsiWNfiyz6YThVAmsDTH_gN0y1VasdYfUWPCGGziBZ5NezrHnOPPF67xAmQ27SNKXoD-KMW2rEnNpWCuJGBuXX6t-cdvg2nCqx0RjVWPDG3czQfTH79rvtQmiUN9r9Bmrx3f36au67lfa3eiDSv0Z-M8m_aLH9yq6zMfWtCGGU0yVEIzaJozviuDXRGjWL23ajv0b9YZLm_Q2c3vr_tN-g6dh-BX9WrWMEm30f7dlvdGGNdiVQmN7gO38EQbePEOzAkExe75A7tmPr7pScDpew9B7QiBJi2NIlwWkrxeLkfek_DzZrubLNC-yWZIWsMZXH9gGzrLk1Sx7Bz-idzAkMMvnByPvSZK-QG9hjUvMqzUMSzf3DqaeN1vYs_XZJ-kPaF5AXsyKJC-SeQ7-uQcA8Kv7tp8BWV1iza_ZIIZwdDemSnSN1IMYznfDLX6wW1_s41tGDKswMYMYBkdhdByEURBGEEZxGMZhONgD2_fBJTWYqk5aQhTue7u_GNshbDZXdmODfTKvLGFvIDshdkr7OvaR7xyOJtHRxP322-hbMyj_lwzcDh8Xw9G3xOBd-NMH2rux7e3-1t7Vfe3d9LS3-9Lev-BWuLbI02WGkpfpFrk6gAydogylc5TDlwYPyV31Lc9Vf_X16m96q-_Oi96eLWZJCsPlWTEClL45gBwtLPY7OM2Wr2ADP32PMgQdnMBk6gVBEHiaEgkbD25vbm5vPt3efAKqpDYt4dLEcBjFcH44gQAOJxfenwEAAP__xxFg-A== statement ok RESET reorder_joins_limit @@ -144,7 +146,7 @@ CREATE VIEW v AS SELECT a, b, u, v FROM x, y WHERE b = 3 query T EXPLAIN (OPT, ENV) SELECT * FROM v ---- -https://cockroachdb.github.io/text/decode.html#eJy0VNFu2zYUfQ6_4sIvtgfJkWO0CGQEmOoynTZXDiQ1bREEBCVRK1eZTElKszcMKPYNftxv7Af2KfmSgXLiuKuSYlvjBwO6Ovccnstz5bpwzpTmUvgwk_l7JWn-7vkzYCuWZzWvCqbAMG2g2aIQcl1IcAoFNTSjmsEJ9C2gP0VtmWujP1RwArIspwCuCwUraV0ZaGhVMx9obWQL5aJgK6JYLpdLJgpquBSaMEGzihUPEEjRtismVcEU-UlyoUnFl9zACTyddPYco7ZnNn-VpDi2BtIwegH6QzXKVZERLgxTglYjY9WJkj8Tbajh2vBcj6gmsiSGL1u37vivP3W_U8Yde_peoRusHt3NqC_LsptpN6UHmbpn0H866SY9vpfRmtUjK7qkhuckl1XFcnsjo7sL6Ze00qyb2qia_Rf2JRd20tuZayvypFvgied9gb-UiuVUG_31jqzX2rAlaUOhiTWwrf8LATSLcZBiSINnc9yu0uiqziqej1YwQAcUwig9hmiRQvRqPnfQQXZT2T7NFlGSxkEYpbAiV-_ZGs7i8GUQv4Uf8FsYUAiS2dBBB2H0HL-BFckIL1YwyNo6Gk4RCubWW5d8GH2PZykkaZCGSRrOEuhfIACAX9t_--vR5kei-S-s54Pn3JVzWdVLoXs-XOyKW3xv93y5j1eMGlYQano-9I688bHrjV1vDN7Y9zzf83p7YLsfXOSG5LIWtmHs7Wu_49pImyFi1lf2YL39ZlFX1a5xv83u9I7waDI-mrTvfnP-r-XsUSy3J3w81-iyP30gm2ubzfqzbDb3ZXPdkc36Npuf4BpSWuTpIsbhi2iLbIYQ41Mc42iGE7jN54DeBdv2tcFuvhzsdWew9_2eh_j1rUzTbqHdOwcd1NYjGkKQQILnloM6kDlQO9DAabx4-ekGOf_Qff0djjFkcAKTKUL4zdk8CCMYLM5SB3B0Prwl_WbL1UyR67ou4kIw5dpvOAxyJbUeIrje_HG9-Xi9-Qg6pwLWn1VW394su33zu73T683mBpBLoY2iXBgfDo8Oxz5cHE7AhcPJJdqDlbwyTGkY2A_VEP0dAAD___33YPw= +https://cockroachdb.github.io/text/decode.html#eJy0VNFu2zYUfQ6_4sIvtgfJkWy0CGQEmOoynTZXDiQ1bREEBCVRK1eZTEVKszcMKPYNftxv7Af2KfmSgXJiu6uSosvmBwO6Ovcc3cNzadtwwSrFpfBgJrP3laTZu-fPgK1Ylta8zFkFmikNzRaFkG1DjBPIqaYpVQxOoW8A_Slqy1xp9aGEU5BFMQWwbchZQetSQ0PLmnlAay1bKBc5W5GKZXK5ZCKnmkuhCBM0LVn-AIEUbXvFZJWzivwkuVCk5Euu4RSeTjp7TlDbM5u_ihMcmQGSIHwB6kM5yqo8JVxoVglajrRRJ5X8mShNNVeaZ2pEFZEF0XzZTmu7f_2p-p0ytuuoe4VusWq096gvi6KbaefSg0zdHvSfTrpJT-5lNMOqkRFdUs0zksmyZJk5kdH-QPoFLRXrptZVzf4N-5IL4_TWc2VEnnQLPHGcL_AXsmIZVVr9d5-s1kqzJWlDoYgZYFv_CgE0i7CfYEj8Z3PcrtLouk5Lno1WMEBHFIIwOYFwkUD4aj630FF6W9k-zRZhnER-ECawItfv2RrOo-ClH72FH_BbGFDw49nQQkdB-By_gRVJCc9XMEjbOhpOEfLnZrYu-SD8Hs8SiBM_CeIkmMXQv0QAAL-2_-bXo82PRPFfWM8Dx9qXM1nWS6F6Hlzuilt8b_d8dYivGNUsJ1T3POiNHffEdlzbccFxPcfxHKd3ADb7wUWmSSZrYRpc51D7HVdamgwRvb42H9Y7bOa5aTgoiLosd0yHPGbJdwrjiTuetO9-sx7rQfq_eNB-4dfZMH6MDeiqP30gvWuT3vqz9Db3pXfdkd76Lr2f4BpSGOTZIsLBi3CLbIYQ4TMc4XCGY7hL8IDuo2_62ug3X47-ujP6h_NeBPj1nUzT7qnZTAsd1WZGNAQ_hhjPDQe1ILWgtqCBs2jx8tMds_6h-_o7HGFI4RQmU4Twm_O5H4QwWJwnFuDwYnhH-s2Wq5ki27ZtxIVglW1ueRhklVRqiOBm88fN5uPN5iOojApYf1ZZfXt7HZg3v5szvdlsbgGZFEpXlAvtwfH42PXg8ngCNhxPrtABrOClZpWCgbnKhujvAAAA___ibmah # # Test tables in user-defined schemas. @@ -194,17 +196,17 @@ CREATE TABLE z ( query T EXPLAIN (OPT, ENV) SELECT * FROM z; ---- -https://cockroachdb.github.io/text/decode.html#eJy0U92O2jgUvh4_xRE3MCuCwoxajUBzQamnyi4NoyStWlWV5ThO68XYjO1kCat9rH2BfbKVQ4ehaqDan3KB5MP34-_wOQjgLTdWaDWBuWYroyn7_PIF8C1neSVkwQ04bh3UexRCQQApzqCgjubUcriFvgf0p6gd85JW0hFnqLKUOaEVeaioFK4huiSWm1owT2JGOMGonAIEwSMNaiorPgHDP1WSmr2isM4-SLgFXZadaFo53UKFKviWGM70es1VQb27JVzRXPLijIBWLd1wbQpuyK9aKEukWAsHt_D8upNzg1rOfPEmzXDiV5JF8SuwD3LETJEToRw3isqR8-7E6N-IddQJ6wSzI2r9NpxYt_sLxn_9afudNsE4tCeNvmDt6GlHfV2W3UqHLZ1V6t5B__l1t-jNSUUf1o686Zo6wQjTUvK2D6OnP6RfUml5t7QzFf836muh_Kb3O7fe5Fm3wbMw_I5-qQ1n1Dr7_13ZNtbxNWlLYYkPsJ__AwM0T_Asw5DNXixw-zhHmyqXgo22MEAXFKI4u4F4mUH8ZrEYoov8y2R_mi_jNEtmUZzBlmxWvIH7JHo9S97DL_g9DCjM0vnlEF1E8Uv8DrYkJ6LYwiBv5-hyitBs4bN12Ufxz3ieQZrNsijNonkK_Q8IAOD39tt_erT-RKzY8d4EwuHTmGlZrZXtTeDDYbjH9w7nj8d4w6njBaGuN4HeVTi-CcJxEI4hHE_CcBKGvSOwfx9CMUeYrpQnjMNj78_COu07RFyz8RfrHZNVJeWBeEzzb_ogeHU9vrpuf_tj-F8j5z8kcnvDH5cafexPz3Sz8d2svulmfaqbTUc3q8dufoWrSemRd8sER6_iPbK-hATf4QTHc5zCYz8H9KnYntcWu_5-sZvOYp_Pu_N5N6tvAhtenoq864i8WXVkLldfpzW87MrbDKrzuXanc-F394tZFMNgeZ8NAcdvLyHFC4_9Ce6S5WvYTVEQBAGyjCrYob8DAAD__xpnaY8= +https://cockroachdb.github.io/text/decode.html#eJy0U9GO2jgUfR5_xRUvMCuCwoxajUDzQKmnyi4NoyStWlWV5ThO68XYjO2whNV-1v7AftnKoQNUDVTd2fKA5Mu55_gcjoMA3nJjhVYjmGq2MJqyzy9fAN9wlldCFtyA49bBeodCKAggxRkU1NGcWg630PWA7hg1Y17SSjriDFWWMie0Ig8VlcLVRJfEcrMWzC8xI5xgVI4BguBxDdZUVnwEhn-qJDU7RmGdfZBwC7osW9G0crqBClXwDTGc6eWSq4J6dUu4ornkxRkCrZp1w7UpuCG_a6EskWIpHNzC8-vWnRvU7Exnb9IMJz6SLIpfgX2QA2aKnAjluFFUDpxXJ0b_QayjTlgnmB1Q69NwYtnkFwz_-dt2W2WCYWhPCn3B2sEho64uy3amfUpnmdoz6D6_bie9OcnozdqBF11SJxhhWkre9GFw-EO6JZWWt1M7U_H_wr4Uyie9y9x6kWftAs_C8Dv8pTacUevs_3dlW1vHl6QphSXewG7-AwJomuBJhiGbvJjh5nEOVlUuBRtsoIcuKERxdgPxPIP4zWzWRxf5l8nuNJ3HaZZMojiDDVkteA33SfR6kryH3_B76FGYpNPLPrqI4pf4HWxITkSxgV7ezNHlGKHJzHtrk4_iX_E0gzSbZFGaRdMUuh8QAMCfzbf_dOj6E7FiyzsjCPuHMdOyWirbGcGH_XCH7-zPH4_xhlPHC0JdZwSdq3B4E4TDIBxCOByF4SgMO0dg_z6EYo4wXSm_MAyPtT8L67TvEHH1yl-sc7wsCr9wNFCVlHumYx7_yPcKV9fDq-vmt7_6T80g_ykZNDf8sRiunhID-tgdn2lv7dtbfdPe9an21i3trR7b-xVuTUqPvJsnOHoV75DrS0jwHU5wPMUpPDa4Rw_V93tN9dffr37dWv3zfrfe72rxjWHDy1OWty2WV4sWz-Xia7eGl21-61513tf2tC_87n42iWLoze-zPuD47SWkeOaxv8BdMn8N2zEKgiBAllEFW_RvAAAA__-HkG80 query T EXPLAIN (OPT, ENV) SELECT * FROM y; ---- -https://cockroachdb.github.io/text/decode.html#eJy0U92O2jgUvh4_xRE3MCuCwoxajUBzQamnyi4NoyStWlWV5ThO68XYjO1kyaz2sfYF9slWDh2gaqDan3KB5MP34-_wOQjgLTdWaDWBuWYroyn7_PIF8C1neSVkwQ04bh3UOxRCQQApzqCgjubUcriFvgf0p6gd85JW0hFnqLKUOaEVeaioFK4huiSWm1owT2JGOMGonAIEwRMNaiorPgHDP1WSmp2isM4-SLgFXZadaFo53UKFKviWGM70es1VQb27JVzRXPLijIBWLd1wbQpuyK9aKEukWAsHt_D8upNzg1rOfPEmzXDiV5JF8SuwD3LETJEToRw3isqR8-7E6N-IddQJ6wSzI2r9NpxYt_sLxn_9afudNsE4tCeNvmDt6LCjvi7LbqX9ls4qde-g__y6W_TmpKIPa0fedE2dYIRpKXnbh9HhD-mXVFreLe1Mxf-N-loov-ndzq03edZt8CwMv6NfasMZtc7-f1e2jXV8TdpSWOID7Ob_wADNEzzLMGSzFwvcPs7RpsqlYKMtDNAFhSjObiBeZhC_WSyG6CL_Mtmd5ss4zZJZFGewJZsVb-A-iV7PkvfwC34PAwqzdH45RBdR_BK_gy3JiSi2MMjbObqcIjRb-Gxd9lH8M55nkGazLEqzaJ5C_wMCAPi9_fafHq0_ESseeW8C4fAwZlpWa2V7E_iwH-7wvf354zHecOp4QajrTaB3FY5vgnAchGMIx5MwnIRh7wjs34dQzBGmK-UJ4_DY-7OwTvsOEdds_MV6x2RVSbknHtP8m94LXl2Pr67b3_4Y_tfI-Q-J3N7wx6VGH_vTM91sfDerb7pZn-pm09HN6qmbX-FqUnrk3TLB0at4h6wvIcF3OMHxHKfw1M8BPRTb89pi198vdtNZ7PN5H33ezeqbwIaXpyI_dkTerDoyl6uv0xpeduVtBtX5XI-nc-F394tZFMNgeZ8NAcdvLyHFC4_9Ce6S5WtopigIggBZRhU06O8AAAD__xpWaY0= +https://cockroachdb.github.io/text/decode.html#eJy0U9GO2jgUfR5_xRUvMCuCwoxajUDzQKmnyi4NoyStWlWV5ThO68XYjO1kyaz2s_YH9stWDh2GqoGqO1sekHw59xyfw3EQwFturNBqAnPNVkZT9vnlC-BbzvJKyIIbcNw6qHcohIIAUpxBQR3NqeVwDX0P6E9RO-YlraQjzlBlKXNCK3JXUSlcQ3RJLDe1YH6JGeEEo3IKEAQPa1BTWfEJGP6pktTsGIV19k7CNeiy7ETTyukWKlTBt8Rwptdrrgrq1S3hiuaSFycItGrXDdem4Ib8roWyRIq1cHANzy87d65QuzNfvEkznPhIsih-BfZOjpgpciKU40ZROXJenRj9B7GOOmGdYHZErU_DiXWbXzD-52_b75QJxqE9KvQFa0ePGfV1WXYz7VM6ydSdQf_5ZTfp1VFGb9aOvOiaOsEI01Lytg-jxz-kX1JpeTe1MxX_L-xroXzSu8ytF3nWLfAsDL_DX2rDGbXO_n9Xto11fE3aUljiDezmPyCA5gmeZRiy2YsFbh_naFPlUrDRFgbojEIUZ1cQLzOI3ywWQ3SWf5nsTvNlnGbJLIoz2JLNijdwm0SvZ8l7-A2_hwGFWTo_H6KzKH6J38GW5EQUWxjk7RydTxGaLby3Lvko_hXPM0izWRalWTRPof8BAQD82X77T4_Wn4gV97w3gXD4OGZaVmtlexP4sB_u8L39-eMh3nDqeEGo602gdxGOr4JwHIRjCMeTMJyEYe8A7N-HUMwRpivlF8bhofZnYZ32HSKu2fiL9Q6XReEXDgaqknLPdMjjH_le4eJyfHHZ_vbX8KkZ5D8lg_aGPxbDxVNiQB_70xPtbXx7q2_aWx9rb9PR3uqhvV_halJ65M0ywdGreIeszyHBNzjB8Ryn8NDgAX2svt9rq19_v_pNZ_VP-733fjerbwwbXh6zfN9hebPq8FyuvnZreNnltxlUp33dH_eF390uZlEMg-VtNgQcvz2HFC889he4SZavoZmiIAgCZBlV0KB_AwAA__-Hf28y query T EXPLAIN (OPT, ENV) SELECT * FROM x; ---- -https://cockroachdb.github.io/text/decode.html#eJy0U92O2jgUvh4_xRE3MCuCwoxajUBzQamnyi4NoyStWlWV5ThO68XYjO2wyaz2sfYF9slWDh2gaqDan3KB5MP34-_wOQjgLTdWaDWBuWYroyn7_PIF8JqzvBKy4AYctw62OxRCQQApzqCgjubUcriFvgf0p6gd85JW0hFnqLKUOaEVeaioFK4huiSWm61gnsSMcIJROQUIgicabKms-AQM_1RJanaKwjr7IOEWdFl2omnldAsVquA1MZzp9Zqrgnp3S7iiueTFGQGtWrrh2hTckF-1UJZIsRYObuH5dSfnBrWc-eJNmuHErySL4ldgH-SImSInQjluFJUj592J0b8R66gT1glmR9T6bTixbvcXjP_60_Y7bYJxaE8afcHa0WFHfV2W3Ur7LZ1V6t5B__l1t-jNSUUf1o686Zo6wQjTUvK2D6PDH9IvqbS8W9qZiv8b9bVQftO7nVtv8qzb4FkYfke_1IYzap39_65sG-v4mrSlsMQH2M3_gQGaJ3iWYchmLxa4fZyjTZVLwUY1DNAFhSjObiBeZhC_WSyG6CL_Mtmd5ss4zZJZFGdQk82KN3CfRK9nyXv4Bb-HAYVZOr8coosofonfQU1yIooaBnk7R5dThGYLn63LPop_xvMM0myWRWkWzVPof0AAAL-33_7To9tPxIpH3ptAODyMmZbVWtneBD7shzt8b3_-eIw3nDpeEOp6E-hdheObIBwH4RjC8SQMJ2HYOwL79yEUc4TpSnnCODz2_iys075DxDUbf7HeMVlVUu6JxzT_pveCV9fjq-v2tz-G_zVy_kMitzf8canRx_70TDcb383qm25uT3Wz6ehm9dTNr3BbUnrk3TLB0at4h9xeQoLvcILjOU7hqZ8Deii257XF3n6_2E1nsc_nffR5N6tvAhtenor82BF5s-rIXK6-Tmt42ZW3GVTncz2ezoXf3S9mUQyD5X02BBy_vYQULzz2J7hLlq-hnqIgCAJkGVVQo78DAAD__xpFaYs= +https://cockroachdb.github.io/text/decode.html#eJy0U9GO2jgUfR5_xRUvMCuCwoxajUDzQKmnyi4NoyStWlWV5ThO68XYjO2wyaz2s_YH9stWDh2GqoGqO1sekHw59xyfw3EQwFturNBqAnPNVkZT9vnlC-A1Z3klZMENOG4dbHcohIIAUpxBQR3NqeVwDX0P6E9RO-YlraQjzlBlKXNCK3JXUSlcQ3RJLDdbwfwSM8IJRuUUIAge1mBLZcUnYPinSlKzYxTW2TsJ16DLshNNK6dbqFAFr4nhTK_XXBXUq1vCFc0lL04QaNWuG65NwQ35XQtliRRr4eAanl927lyhdme-eJNmOPGRZFH8CuydHDFT5EQox42icuS8OjH6D2IddcI6weyIWp-GE-s2v2D8z9-23ykTjEN7VOgL1o4eM-rrsuxm2qd0kqk7g_7zy27Sq6OM3qwdedE1dYIRpqXkbR9Gj39Iv6TS8m5qZyr-X9jXQvmkd5lbL_KsW-BZGH6Hv9SGM2qd_f-ubBvr-Jq0pbDEG9jNf0AAzRM8yzBksxcL3D7O0abKpWCjGgbojEIUZ1cQLzOI3ywWQ3SWf5nsTvNlnGbJLIozqMlmxRu4TaLXs-Q9_Ibfw4DCLJ2fD9FZFL_E76AmORFFDYO8naPzKUKzhffWJR_Fv-J5Bmk2y6I0i-Yp9D8gAIA_22__6dHtJ2LFPe9NIBw-jpmW1VrZ3gQ-7Ic7fG9__niIN5w6XhDqehPoXYTjqyAcB-EYwvEkDCdh2DsA-_chFHOE6Ur5hXF4qP1ZWKd9h4hrNv5ivcNlUfiFg4GqpNwzHfL4R75XuLgcX1y2v_01fGoG-U_JoL3hj8Vw8ZQY0Mf-9ER7G9_e6pv2bo-1t-lob_XQ3q9wW1J65M0ywdGreIfcnkOCb3CC4zlO4aHBA_pYfb_XVn_7_eo3ndU_7ffe-92svjFseHnM8n2H5c2qw3O5-tqt4WWX32ZQnfZ1f9wXfne7mEUxDJa32RBw_PYcUrzw2F_gJlm-hnqKgiAIkGVUQY3-DQAA__-Hbm8w # A foreign key cycle shouldn't cause infinite recursion. statement ok @@ -213,7 +215,7 @@ ALTER TABLE y ADD CONSTRAINT fk FOREIGN KEY (v) REFERENCES z (pk); query T EXPLAIN (OPT, ENV) SELECT * FROM y; ---- -https://cockroachdb.github.io/text/decode.html#eJy0U9Fu2zYUfQ6_4sIvdgbLkBO0CGzkwXWZQpsrB5JatCgKgqKoljNNOiTlWR72WfuBfdlAObU9VHawrclDAN2cew7PyblBAO-5sUKrEUw1WxhN2dfXr4BvOMsrIQtuwHHrYL1DIRQEkOIMCupoTi2HW-h6QHeMmjEvaSUdcYYqS5kTWpGHikrhaqJLYrlZC-aXmBFOMCrHAEHwbQ3WVFZ8BIZ_qSQ1O0ZhnX2QcAu6LFvRtHK6gQpV8A0xnOnlkquCenVLuKK55MUZAq2adcO1Kbghv2qhLJFiKRzcwsvr1p0b1OxMZ-_SDCc-kiyK34B9kANmipwI5bhRVA6cVydG_0aso05YJ5gdUOvTcGLZ5BcM__rTdltlgmFoTwo9Yu3gkFFXl2U70z6ls0ztGXRfXreT3pxk9GbtwIsuqROMMC0lb_owOPxDuiWVlrdTO1Px_8K-FMonvcvcepEX7QIvwvAJ_lIbzqh19sc92dbW8SVpSmGJN7Cb_wsBNE3wJMOQTV7NcHOcg1WVS8EGG-ihCwpRnN1APM8gfjeb9dFF_jjZfU3ncZolkyjOYENWC17DfRK9nSQf4Rf8EXoUJun0so8uovg1_gAbkhNRbKCXN3N0OUZoMvPe2uSj-Gc8zSDNJlmUZtE0he4nBADwe_Pb_3To-guxYss7Iwj7hzHTsloq2xnBp_1wh-_svz8f4w2njheEus4IOlfh8CYIh0E4hHA4CsNRGHaOwP4-hGKOMF0pvzAMj7W_Cuu07xBx9co_rHO8rCop94vHa_6m94RX18Or6-Zvf_T_r-X8WSw3L3w-1-hzd3ymm1vfzdXiu3IaXp6q57alnqvFt34eAcsF3M0THL2JdyDDy0tI8B1OcDzFKTw-oe5V5wu8bS3weV-191V9Z2t9ylTdYqpq8VSTNSk98h_O1m2-Nj36RCCta9veanE4dK_XHPr66UOvT-eEP9zPJlEMvfl91gccv7-EFM889ie4S-ZvoR6jIAgCZBlVUKO_AwAA__9EenlR +https://cockroachdb.github.io/text/decode.html#eJy0VNGO2jgUfR5_xRUvMCuCwoxajUDzQKmnyi4NoyStWlWV5ThO68XYjO2whNV-1v7AftnKYQqsGhh1Z5cHpFzOPcfncOIggPfcWKHVCKaaLYym7OvrV8A3nOWVkAU34Lh1sN6hEAoCSHEGBXU0p5bDLXQ9oDtGzZiXtJKOOEOVpcwJrchDRaVwNdElsdysBfNLzAgnGJVjgCD4tgZrKis-AsO_VJKaHaOwzj5IuAVdlq1oWjndQIUq-IYYzvRyyVVBvbolXNFc8uIMgVbNuuHaFNyQX7VQlkixFA5u4eV1684Nanams3dphhMfSRbFb8A-yAEzRU6EctwoKgfOqxOjfyPWUSesE8wOqPVpOLFs8guGf_1pu60ywTC0J4UesXZwyKiry7KdaZ_SWab2DLovr9tJb04yerN24EWX1AlGmJaSN30YHP6Qbkml5e3UzlT837AvhfJJ7zK3XuRFu8CLMHyCv9SGM2qd_e-ObGvr-JI0pbDEG9jNf0AATRM8yTBkk1cz3Lycg1WVS8EGG-ihCwpRnN1APM8gfjeb9dFF_jjZPU3ncZolkyjOYENWC17DfRK9nSQf4Rf8EXoUJun0so8uovg1_gAbkhNRbKCXN3N0OUZoMvPe2uSj-Gc8zSDNJlmUZtE0he4nBADwe_PtPx26_kKs2PLOCML-Ycy0rJbKdkbwaT_c4Tv758_HeMOp4wWhrjOCzlU4vAnCYRAOIRyOwnAUhp0jsH8_hGKOMF0pvzAMj7W_Cuu07xBx9cofrHO8LAq_cDRQlZR7pmMe_5LvFa6uh1fXzW9_9J-bQf6_ZNCc8MdiuHpODOhzd3ymvVvf3tXiu_oaXp4q8LalwKvFtwYfAcsF3M0THL2JdyDDy0tI8B1OcDzFKTweoe5V5yu-ba34eV-191V9Z2t9ylTdYqpq8VSTNSk98h_O1m2-Nj36RCCta9veanG4CrxecxWsn74K6tM54Q_3s0kUQ29-n_UBx-8vIcUzj_0J7pL5W6jHKAiCAFlGFdTo7wAAAP__7cp-9g== # Check that we remove histograms from statistics correctly. @@ -226,6 +228,7 @@ CREATE TABLE b ( statement ok ALTER TABLE b INJECT STATISTICS '[ { + "id": 1, "avg_size": 1, "columns": [ "b" @@ -253,6 +256,7 @@ ALTER TABLE b INJECT STATISTICS '[ "row_count": 1100 }, { + "id": 2, "avg_size": 0, "columns": [ "rowid" @@ -269,4 +273,4 @@ ALTER TABLE b INJECT STATISTICS '[ query T EXPLAIN (OPT, ENV) SELECT * FROM b ---- -https://cockroachdb.github.io/text/decode.html#eJy8VN1u2zYUvg6f4sA3cgZLkJWmS23kQnHUQZsqB5YStCgKgqKolitFJiSVJhv2WHuBPdlAunE8QMl-sM0XBvyd74f6eOQwhCumDVdyAStFP2tF6KfzM2B3jDYDFy3TYJmxcLtlIRSGUGU1tMSShhgGpxA4QrBEHmYdGYTFVhNpCLVcSXwzEMHtPVYdNkzfcupEVHPLKRFLgDB8kMEtEQNbgGYfB0H01pEba24EnILqulE2GazyVC5bdoc1o6rvmWyJSzeYSdII1j5joKSXa6Z0yzT-UXFpsOA9t3AKL49GNSfIa1bFZVVnG1dJnZffgbkREdVtg7m0TEsiIuvSsVZfsLHEcmM5NRExrg3Le99fOP_tVxOMxoTz2DwZ9JVroseOAtV14067lp51Gu8geHk0bnrypKN7WBO50J5YTjFVQjC_D9HjhQQdEYaNW1s9sH_i3nPpmt52blzI8XjAcRz_iX-nNKPEWPPvHdncG8t67JfCYPcAW_xvBKDVJkvrDOr0rMj8yxldD43gNGpgig4aOFuvCyjXNZSXRTFDB1p94S3kZX3i0au8yp3ygQHn2ev0sqhhkPxm8LXxdno4QwerdVnVmzQva2jw9Wd2Dxeb_E26eQc_ZO9guvVNq5Xj5uV59hYa3GDe3sG08Tg6XCKUFq6KsdPm5ffZqoaqTuu8qvNVBcF7BADws_92nwm5_YgN_4lNFjCfPcJUiaGXZrKA9zvQD5rJ7veHfb5mxLIWEztZwCSJkyScJ2GcwPxkcfRikbyKjr998eoomexp3FvFJbWYqkE6XbI3_MSNVW7vsL2_dqeb7Esl6T2G_RVj_IfZIMTOMt4buP-IB3w-j2M_-WX2TCPxX2nEX9N_2Er8_7XytRL0IVgilL29KNK8hOn6op5BVl4dQpUVbqG-gdeb9RtoligMwxAZSiQ06PcAAAD__yNtCSU= +https://cockroachdb.github.io/text/decode.html#eJy0lN1u2zYUx6_DpzjwjZzBEmSl6VIbuVAcddCmyoGlBC2KgqAoquVKkQlJpcmGPdZeYE82kG4cY1CzdWh9YcCH_w_qR8phCFdMG67kAlaKftSK0A_nZ8DuGG0GLlqmwTJj4XarQigMocpqaIklDTEMTiFwgmCJ_Jh1ZBAWW02kIdRyJfHNQAS391h12DB9y6kzUc0tp0QsAcLwwQa3RAxsAZq9HwTR20RurLkRcAqq60bVZLDKS7ls2R3WjKq-Z7Ilrt1gJkkjWPtEgJLerpnSLdP4V8WlwYL33MIpPD8a9Zwg71kVl1WdbRySOi9_AnMjIqrbBnNpmZZERNa1Y60-YWOJ5cZyaiJiHA3Le88vnP_1pwlGa8J5bL5Y9FlrokdGgeq68aQdpSeTxhkEz4_GQ0--mOge1kSutCeWU0yVEMzfh-jxQIKOCMPGo60e2P9J77l0pLfMjSs5Hi84juN_ye-UZpQYa77dls29sazH_lIY7B5gO_-KArTaZGmdQZ2eFZl_OaProRGcRg1M0UEDZ-t1AeW6hvKyKGboQKtPvIW8rE_89Cqvcud8UMB59jK9LGoYJL8ZPDbeTg9n6GC1Lqt6k-ZlDQ2-_sju4WKTv0o3b-CX7A1Mt7lptXLavDzPXkODG8zbO5g2fo4OlwilhUMxttu8_Dlb1VDVaZ1Xdb6qIHiLAAB-99_uMyG377Hhv7HJAuazxzFVYuilmSzg7W7oF5rJ7ve7fb1mxLIWEztZwCSJkyScJ2GcwPxkcfRskbyIjn989uIomex53FvFJbWYqkE6X7K3-IEbq9y9w_b-2u1usm_l7T_2K0nvRdifOcb7YjkIseuI9xbcn8bDfD6PY7_yx-wJRPF_QeTP7Ttiir8OU_ItMX1mhN4FS4Sy1xdFmpcwXV_UM8jKq0OossJduR_g5Wb9CpolCsMwRIYSCQ36OwAA__8hCA7K diff --git a/pkg/sql/opt/exec/execbuilder/testdata/partial_stats b/pkg/sql/opt/exec/execbuilder/testdata/partial_stats index f2587f3b6732..5896a53efd6a 100644 --- a/pkg/sql/opt/exec/execbuilder/testdata/partial_stats +++ b/pkg/sql/opt/exec/execbuilder/testdata/partial_stats @@ -22,6 +22,7 @@ CREATE TABLE g (b INT PRIMARY KEY) statement ok ALTER TABLE g INJECT STATISTICS '[ { + "id": 1, "avg_size": 1, "columns": [ "b" @@ -52,10 +53,10 @@ ALTER TABLE g INJECT STATISTICS '[ "histo_version": 2, "name": "__auto__", "null_count": 0, - "row_count": 3, - "statistics_id": 1 + "row_count": 3 }, { + "id": 2, "avg_size": 1, "columns": [ "b" @@ -125,6 +126,7 @@ ALTER TABLE g INJECT STATISTICS '[ "row_count": 9 }, { + "id": 3, "avg_size": 2, "columns": [ "b" @@ -156,34 +158,21 @@ ALTER TABLE g INJECT STATISTICS '[ "name": "partial", "null_count": 0, "partial_predicate": "(b < 0:::INT8) OR ((b > 8:::INT8) OR (b IS NULL))", - "row_count": 3 + "row_count": 3, + "full_statistic_id": 2 } ]' -# Here and below, we retrieve the id of the statistic (which is the -# histogram_id) to ensure that we can mark our partial injected statistic(s) as -# being collected from the injected full table statistics, for the purposes of -# testing. This is because our merge function verifies that a partial statistic -# is merging with the full statistic it has been collected from. Since the -# statistic id is generated when a statistic is added to -# system.table_statistics, and since we don't store it in the JSON statistic -# object, we need to set it manually here. - -let $stat_id_simple -SELECT "histogram_id" FROM [SHOW STATISTICS FOR TABLE g] WHERE created = '1988-08-07 00:00:00.000000' - -statement ok -UPDATE system.table_statistics SET "fullStatisticID" = '$stat_id_simple' WHERE name = 'partial' - -query TTTIIII -SELECT statistics_name, column_names, created, row_count, distinct_count, null_count, avg_size +query IITTTIIII colnames +SELECT histogram_id, full_histogram_id, statistics_name, column_names, created, row_count, distinct_count, null_count, avg_size FROM [SHOW STATISTICS FOR TABLE g WITH MERGE] ORDER BY created ---- -__auto__ {b} 1988-08-05 00:00:00 +0000 UTC 3 3 0 1 -__auto__ {b} 1988-08-07 00:00:00 +0000 UTC 9 9 0 1 -partial {b} 1988-08-08 00:00:00 +0000 UTC 3 3 0 2 -__merged__ {b} 1988-08-08 00:00:00 +0000 UTC 12 12 0 1 +histogram_id full_histogram_id statistics_name column_names created row_count distinct_count null_count avg_size +1 NULL __auto__ {b} 1988-08-05 00:00:00 +0000 UTC 3 3 0 1 +2 NULL __auto__ {b} 1988-08-07 00:00:00 +0000 UTC 9 9 0 1 +3 2 partial {b} 1988-08-08 00:00:00 +0000 UTC 3 3 0 2 +0 NULL __merged__ {b} 1988-08-08 00:00:00 +0000 UTC 12 12 0 1 query T SELECT jsonb_pretty(stat) @@ -453,6 +442,7 @@ statement ok ALTER TABLE h INJECT STATISTICS ' [ { + "id": 1, "avg_size": 1, "columns": [ "h" @@ -503,16 +493,11 @@ ALTER TABLE h INJECT STATISTICS ' "name": "partial", "null_count": 0, "partial_predicate": "(h < 10:::INT8) OR ((h > 40:::INT8) OR (h IS NULL))", - "row_count": 0 + "row_count": 0, + "full_statistic_id": 1 } ]' -let $stat_id_empty -SELECT "histogram_id" FROM [SHOW STATISTICS FOR TABLE h] WHERE statistics_name = 'full' - -statement ok -UPDATE system.table_statistics SET "fullStatisticID" = '$stat_id_empty' WHERE name = 'partial' - query TTTIIII SELECT statistics_name, column_names, created, row_count, distinct_count, null_count, avg_size FROM [SHOW STATISTICS FOR TABLE h WITH MERGE] @@ -564,6 +549,7 @@ WHERE stat->>'name' = '__merged__'; ], "histo_col_type": "INT8", "histo_version": 2, + "id": 1, "name": "__merged__", "null_count": 0, "row_count": 4 @@ -578,6 +564,7 @@ CREATE TABLE i (i INT PRIMARY KEY) statement ok ALTER TABLE i INJECT STATISTICS '[ { + "id": 1, "avg_size": 1, "columns": [ "i" @@ -660,16 +647,11 @@ ALTER TABLE i INJECT STATISTICS '[ "name": "sp", "null_count": 0, "partial_predicate": "(i < 0:::INT8) OR ((i > 3:::INT8) OR (i IS NULL))", - "row_count": 6 + "row_count": 6, + "full_statistic_id": 1 } ]' -let $stat_id_start_and_end -SELECT "histogram_id" FROM [SHOW STATISTICS FOR TABLE i] WHERE statistics_name = 'full_0' - -statement ok -UPDATE system.table_statistics SET "fullStatisticID" = '$stat_id_start_and_end' WHERE name = 'sp' - query TTTIIII SELECT statistics_name, column_names, created, row_count, distinct_count, null_count, avg_size FROM [SHOW STATISTICS FOR TABLE i WITH MERGE] @@ -787,6 +769,7 @@ statement ok ALTER TABLE ab INJECT STATISTICS '[ { + "id":1, "avg_size":3, "columns":[ "b" @@ -899,9 +882,11 @@ ALTER TABLE ab INJECT STATISTICS "name":"partial_b", "null_count":5, "row_count":36, - "partial_predicate": "(b < 15:::INT8) OR ((b > 35:::INT8) OR (b IS NULL))" + "partial_predicate": "(b < 15:::INT8) OR ((b > 35:::INT8) OR (b IS NULL))", + "full_statistic_id": 1 }, { + "id":2, "avg_size":3, "columns":[ "a" @@ -1008,22 +993,11 @@ ALTER TABLE ab INJECT STATISTICS "name":"partial_a", "null_count":5, "row_count":36, - "partial_predicate": "(b < 15:::INT8) OR ((b > 35:::INT8) OR (b IS NULL))" + "partial_predicate": "(b < 15:::INT8) OR ((b > 35:::INT8) OR (b IS NULL))", + "full_statistic_id": 2 } ]' -let $stat_id_full_a -SELECT "histogram_id" FROM [SHOW STATISTICS FOR TABLE ab] WHERE statistics_name = 'full_a' - -statement ok -UPDATE system.table_statistics SET "fullStatisticID" = '$stat_id_full_a' WHERE name = 'partial_a' - -let $stat_id_full_b -SELECT "histogram_id" FROM [SHOW STATISTICS FOR TABLE ab] WHERE statistics_name = 'full_b' - -statement ok -UPDATE system.table_statistics SET "fullStatisticID" = '$stat_id_full_b' WHERE name = 'partial_b' - query TTTIIII colnames SELECT statistics_name, column_names, created, row_count, distinct_count, null_count, avg_size FROM [SHOW STATISTICS FOR TABLE ab WITH MERGE] diff --git a/pkg/sql/show_stats.go b/pkg/sql/show_stats.go index 4d2b35e79b31..ff814d1fc431 100644 --- a/pkg/sql/show_stats.go +++ b/pkg/sql/show_stats.go @@ -258,6 +258,7 @@ func (p *planner) ShowTableStats(ctx context.Context, n *tree.ShowTableStats) (p if ignoreStatsRowWithDroppedColumn { continue } + statsRow.ID = (uint64)(*r[statIDIdx].(*tree.DInt)) statsRow.CreatedAt = tree.AsStringWithFlags(r[createdAtIdx], tree.FmtBareStrings) statsRow.RowCount = (uint64)(*r[rowCountIdx].(*tree.DInt)) statsRow.DistinctCount = (uint64)(*r[distinctCountIdx].(*tree.DInt)) diff --git a/pkg/sql/stats/json.go b/pkg/sql/stats/json.go index 094543536aec..8438043d71eb 100644 --- a/pkg/sql/stats/json.go +++ b/pkg/sql/stats/json.go @@ -28,6 +28,7 @@ import ( // // See TableStatistic for a description of the fields. type JSONStatistic struct { + ID uint64 `json:"id,omitempty"` Name string `json:"name,omitempty"` CreatedAt string `json:"created_at"` Columns []string `json:"columns"`