Skip to content

Commit a67a7b3

Browse files
authored
planner: fix get wrong cost with cost tracer (#61196) (#61218)
close #61155
1 parent 0936de9 commit a67a7b3

17 files changed

+1217
-10
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
load("@io_bazel_rules_go//go:def.bzl", "go_test")
2+
3+
go_test(
4+
name = "tpch_test",
5+
timeout = "short",
6+
srcs = [
7+
"main_test.go",
8+
"tpch_test.go",
9+
],
10+
data = glob(["testdata/**"]),
11+
flaky = True,
12+
shard_count = 11,
13+
deps = [
14+
"//pkg/config",
15+
"//pkg/domain",
16+
"//pkg/testkit",
17+
"//pkg/testkit/testdata",
18+
"//pkg/testkit/testmain",
19+
"//pkg/testkit/testsetup",
20+
"//pkg/util/benchdaily",
21+
"@com_github_stretchr_testify//require",
22+
"@org_uber_go_goleak//:goleak",
23+
],
24+
)
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
// Copyright 2025 PingCAP, Inc.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
package tpch
16+
17+
import (
18+
"flag"
19+
"testing"
20+
21+
"github.com/pingcap/tidb/pkg/config"
22+
"github.com/pingcap/tidb/pkg/domain"
23+
"github.com/pingcap/tidb/pkg/testkit"
24+
"github.com/pingcap/tidb/pkg/testkit/testdata"
25+
"github.com/pingcap/tidb/pkg/testkit/testmain"
26+
"github.com/pingcap/tidb/pkg/testkit/testsetup"
27+
"go.uber.org/goleak"
28+
)
29+
30+
var testDataMap = make(testdata.BookKeeper)
31+
32+
func TestMain(m *testing.M) {
33+
testsetup.SetupForCommonTest()
34+
flag.Parse()
35+
testDataMap.LoadTestSuiteData("testdata", "tpch_suite")
36+
testsetup.SetupForCommonTest()
37+
38+
flag.Parse()
39+
config.UpdateGlobal(func(conf *config.Config) {
40+
conf.TiKVClient.AsyncCommit.SafeWindow = 0
41+
conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0
42+
conf.Performance.EnableStatsCacheMemQuota = true
43+
})
44+
opts := []goleak.Option{
45+
goleak.IgnoreTopFunction("github.com/golang/glog.(*fileSink).flushDaemon"),
46+
goleak.IgnoreTopFunction("github.com/bazelbuild/rules_go/go/tools/bzltestutil.RegisterTimeoutHandler.func1"),
47+
goleak.IgnoreTopFunction("github.com/lestrrat-go/httprc.runFetchWorker"),
48+
goleak.IgnoreTopFunction("go.etcd.io/etcd/client/pkg/v3/logutil.(*MergeLogger).outputLoop"),
49+
goleak.IgnoreTopFunction("gopkg.in/natefinch/lumberjack%2ev2.(*Logger).millRun"),
50+
goleak.IgnoreTopFunction("github.com/tikv/client-go/v2/txnkv/transaction.keepAlive"),
51+
goleak.IgnoreTopFunction("go.opencensus.io/stats/view.(*worker).start"),
52+
}
53+
callback := func(i int) int {
54+
testDataMap.GenerateOutputIfNeeded()
55+
return i
56+
}
57+
58+
goleak.VerifyTestMain(testmain.WrapTestingM(m, callback), opts...)
59+
}
60+
61+
func GetTPCHSuiteData() testdata.TestData {
62+
return testDataMap["tpch_suite"]
63+
}
64+
65+
func createLineItem(t testing.TB, tk *testkit.TestKit, dom *domain.Domain) {
66+
tk.MustExec(`
67+
CREATE TABLE lineitem (
68+
L_ORDERKEY bigint NOT NULL,
69+
L_PARTKEY bigint NOT NULL,
70+
L_SUPPKEY bigint NOT NULL,
71+
L_LINENUMBER bigint NOT NULL,
72+
L_QUANTITY decimal(15,2) NOT NULL,
73+
L_EXTENDEDPRICE decimal(15,2) NOT NULL,
74+
L_DISCOUNT decimal(15,2) NOT NULL,
75+
L_TAX decimal(15,2) NOT NULL,
76+
L_RETURNFLAG char(1) NOT NULL,
77+
L_LINESTATUS char(1) NOT NULL,
78+
L_SHIPDATE date NOT NULL,
79+
L_COMMITDATE date NOT NULL,
80+
L_RECEIPTDATE date NOT NULL,
81+
L_SHIPINSTRUCT char(25) NOT NULL,
82+
L_SHIPMODE char(10) NOT NULL,
83+
L_COMMENT varchar(44) NOT NULL,
84+
PRIMARY KEY (L_ORDERKEY, L_LINENUMBER) /*T![clustered_index] CLUSTERED */
85+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
86+
`)
87+
testkit.SetTiFlashReplica(t, dom, "test", "lineitem")
88+
}
89+
90+
func createCustomer(t testing.TB, tk *testkit.TestKit, dom *domain.Domain) {
91+
tk.MustExec(`CREATE TABLE customer (
92+
C_CUSTKEY bigint NOT NULL,
93+
C_NAME varchar(25) NOT NULL,
94+
C_ADDRESS varchar(40) NOT NULL,
95+
C_NATIONKEY bigint NOT NULL,
96+
C_PHONE char(15) NOT NULL,
97+
C_ACCTBAL decimal(15,2) NOT NULL,
98+
C_MKTSEGMENT char(10) NOT NULL,
99+
C_COMMENT varchar(117) NOT NULL,
100+
PRIMARY KEY (C_CUSTKEY) /*T![clustered_index] CLUSTERED */
101+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;`)
102+
testkit.SetTiFlashReplica(t, dom, "test", "customer")
103+
}
104+
105+
func createOrders(t testing.TB, tk *testkit.TestKit, dom *domain.Domain) {
106+
tk.MustExec(`
107+
CREATE TABLE orders (
108+
O_ORDERKEY bigint NOT NULL,
109+
O_CUSTKEY bigint NOT NULL,
110+
O_ORDERSTATUS char(1) NOT NULL,
111+
O_TOTALPRICE decimal(15,2) NOT NULL,
112+
O_ORDERDATE date NOT NULL,
113+
O_ORDERPRIORITY char(15) NOT NULL,
114+
O_CLERK char(15) NOT NULL,
115+
O_SHIPPRIORITY bigint NOT NULL,
116+
O_COMMENT varchar(79) NOT NULL,
117+
PRIMARY KEY (O_ORDERKEY) /*T![clustered_index] CLUSTERED */
118+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;`)
119+
testkit.SetTiFlashReplica(t, dom, "test", "orders")
120+
}
121+
122+
func createSupplier(t testing.TB, tk *testkit.TestKit, dom *domain.Domain) {
123+
tk.MustExec(`CREATE TABLE supplier (
124+
S_SUPPKEY bigint NOT NULL,
125+
S_NAME char(25) NOT NULL,
126+
S_ADDRESS varchar(40) NOT NULL,
127+
S_NATIONKEY bigint NOT NULL,
128+
S_PHONE char(15) NOT NULL,
129+
S_ACCTBAL decimal(15,2) NOT NULL,
130+
S_COMMENT varchar(101) NOT NULL,
131+
PRIMARY KEY (S_SUPPKEY) /*T![clustered_index] CLUSTERED */
132+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin`)
133+
testkit.SetTiFlashReplica(t, dom, "test", "supplier")
134+
}
135+
136+
func createNation(t testing.TB, tk *testkit.TestKit, dom *domain.Domain) {
137+
tk.MustExec(`CREATE TABLE nation (
138+
N_NATIONKEY bigint NOT NULL,
139+
N_NAME char(25) NOT NULL,
140+
N_REGIONKEY bigint NOT NULL,
141+
N_COMMENT varchar(152) DEFAULT NULL,
142+
PRIMARY KEY (N_NATIONKEY) /*T![clustered_index] CLUSTERED */
143+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin`)
144+
testkit.SetTiFlashReplica(t, dom, "test", "nation")
145+
}
146+
147+
func createPart(t testing.TB, tk *testkit.TestKit, dom *domain.Domain) {
148+
tk.MustExec(`CREATE TABLE part (
149+
P_PARTKEY bigint NOT NULL,
150+
P_NAME varchar(55) NOT NULL,
151+
P_MFGR char(25) NOT NULL,
152+
P_BRAND char(10) NOT NULL,
153+
P_TYPE varchar(25) NOT NULL,
154+
P_SIZE bigint NOT NULL,
155+
P_CONTAINER char(10) NOT NULL,
156+
P_RETAILPRICE decimal(15,2) NOT NULL,
157+
P_COMMENT varchar(23) NOT NULL,
158+
PRIMARY KEY (P_PARTKEY) /*T![clustered_index] CLUSTERED */
159+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin`)
160+
testkit.SetTiFlashReplica(t, dom, "test", "part")
161+
}
162+
163+
func createPartsupp(t testing.TB, tk *testkit.TestKit, dom *domain.Domain) {
164+
tk.MustExec(`CREATE TABLE partsupp (
165+
PS_PARTKEY bigint NOT NULL,
166+
PS_SUPPKEY bigint NOT NULL,
167+
PS_AVAILQTY bigint NOT NULL,
168+
PS_SUPPLYCOST decimal(15,2) NOT NULL,
169+
PS_COMMENT varchar(199) NOT NULL,
170+
PRIMARY KEY (PS_PARTKEY,PS_SUPPKEY) /*T![clustered_index] NONCLUSTERED */
171+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin`)
172+
testkit.SetTiFlashReplica(t, dom, "test", "partsupp")
173+
}
174+
175+
func createRegion(t testing.TB, tk *testkit.TestKit, dom *domain.Domain) {
176+
tk.MustExec(`CREATE TABLE region (
177+
R_REGIONKEY bigint NOT NULL,
178+
R_NAME char(25) NOT NULL,
179+
R_COMMENT varchar(152) DEFAULT NULL,
180+
PRIMARY KEY (R_REGIONKEY) /*T![clustered_index] CLUSTERED */
181+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin`)
182+
testkit.SetTiFlashReplica(t, dom, "test", "region")
183+
}

pkg/planner/core/casetest/tpch/testdata/test.lineitem.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"columns":{"n_comment":{"histogram":{"ndv":25},"cm_sketch":{"top_n":[{"data":"ASBoYWdnbGUu/yBjYXJlZnVs/2x5IGZpbmFs/yBkZXBvc2l0/3MgZGV0ZWN0/yBzbHlseSBh/2dhaQAAAAAA+g==","count":1},{"data":"ASBwZW5kaW5n/yBleGN1c2Vz/yBoYWdnbGUg/2Z1cmlvdXNs/3kgZGVwb3Np/3RzLiBwZW5k/2luZywgZXhw/3Jlc3MgcGlu/3RvIGJlYW5z/yB3YWtlIGZs/3VmZmlseSBw/2FzdCB0AAAA/A==","count":1},{"data":"ASByZXF1ZXN0/3MgYWdhaW5z/3QgdGhlIHBs/2F0ZWxldHMg/3VzZSBuZXZl/3IgYWNjb3Jk/2luZyB0byB0/2hlIHF1aWNr/2x5IHJlZ3Vs/2FyIHBpbnQA/g==","count":1},{"data":"ASBzbHlseSBl/3hwcmVzcyBh/3N5bXB0b3Rl/3MuIHJlZ3Vs/2FyIGRlcG9z/2l0cyBoYWdn/2xlIHNseWx5/y4gY2FyZWZ1/2xseSBpcm9u/2ljIGhvY2tl/3kgcGxheWVy/3Mgc2xlZXAg/2JsaXRoZWx5/y4gY2FyZWZ1/2xsAAAAAAAA+Q==","count":1},{"data":"AWFsIGZveGVz/yBwcm9taXNl/yBzbHlseSBh/2Njb3JkaW5n/yB0byB0aGUg/3JlZ3VsYXIg/2FjY291bnRz/y4gYm9sZCBy/2VxdWVzdHMg/2Fsb24AAAAA+w==","count":1},{"data":"AWMgZGVwZW5k/2VuY2llcy4g/2Z1cmlvdXNs/3kgZXhwcmVz/3Mgbm90b3Ju/2lzIHNsZWVw/yBzbHlseSBy/2VndWxhciBh/2Njb3VudHMu/yBpZGVhcyBz/2xlZXAuIGRl/3BvcwAAAAAA+g==","count":1},{"data":"AWVhbnMgYm9v/3N0IGNhcmVm/3VsbHkgc3Bl/2NpYWwgcmVx/3Vlc3RzLiBh/2Njb3VudHMg/2FyZS4gY2Fy/2VmdWxsAAAA/A==","count":1},{"data":"AWVhcyBoYW5n/yBpcm9uaWMs/yBzaWxlbnQg/3BhY2thZ2Vz/y4gc2x5bHkg/3JlZ3VsYXIg/3BhY2thZ2Vz/yBhcmUgZnVy/2lvdXNseSBv/3ZlciB0aGUg/3RpdGhlcy4g/2ZsdWZmaWx5/yBib2xkAAAA/A==","count":1},{"data":"AWVmdWxseSBh/2xvbmdzaWRl/yBvZiB0aGUg/3NseWx5IGZp/25hbCBkZXBl/25kZW5jaWVz/y4AAAAAAAAA+A==","count":1},{"data":"AWhlbHkgZW50/2ljaW5nbHkg/2V4cHJlc3Mg/2FjY291bnRz/y4gZXZlbiwg/2ZpbmFsAAAA/A==","count":1},{"data":"AWljIGRlcG9z/2l0cyBhcmUg/2JsaXRoZWx5/yBhYm91dCB0/2hlIGNhcmVm/3VsbHkgcmVn/3VsYXIgcGEA/g==","count":1},{"data":"AWwgcGxhdGVs/2V0cy4gcmVn/3VsYXIgYWNj/291bnRzIHgt/3JheTogdW51/3N1YWwsIHJl/2d1bGFyIGFj/2NvAAAAAAAA+Q==","count":1},{"data":"AW5pYyBkZXBv/3NpdHMgYm9v/3N0IGF0b3Ag/3RoZSBxdWlj/2tseSBmaW5h/2wgcmVxdWVz/3RzPyBxdWlj/2tseSByZWd1/2xhAAAAAAAA+Q==","count":1},{"data":"AW91c2x5LiBm/2luYWwsIGV4/3ByZXNzIGdp/2Z0cyBjYWpv/2xlIGEAAAAA+w==","count":1},{"data":"AXBsYXRlbGV0/3MuIGJsaXRo/2VseSBwZW5k/2luZyBkZXBl/25kZW5jaWVz/yB1c2UgZmx1/2ZmaWx5IGFj/3Jvc3MgdGhl/yBldmVuIHBp/250byBiZWFu/3MuIGNhcmVm/3VsbHkgc2ls/2VudCBhY2Nv/3VuAAAAAAAA+Q==","count":1},{"data":"AXJlZnVsbHkg/2ZpbmFsIHJl/3F1ZXN0cy4g/3JlZ3VsYXIs/yBpcm9uaQAA/Q==","count":1},{"data":"AXJucy4gYmxp/3RoZWx5IGJv/2xkIGNvdXJ0/3MgYW1vbmcg/3RoZSBjbG9z/2VseSByZWd1/2xhciBwYWNr/2FnZXMgdXNl/yBmdXJpb3Vz/2x5IGJvbGQg/3BsYXRlbGV0/3M/AAAAAAAA+Q==","count":1},{"data":"AXMuIGlyb25p/2MsIHVudXN1/2FsIGFzeW1w/3RvdGVzIHdh/2tlIGJsaXRo/2VseSByAAAA/A==","count":1},{"data":"AXNzIGV4Y3Vz/2VzIGNham9s/2Ugc2x5bHkg/2Fjcm9zcyB0/2hlIHBhY2th/2dlcy4gZGVw/29zaXRzIHBy/2ludCBhcm91/24AAAAAAAAA+A==","count":1},{"data":"AXRzLiBzaWxl/250IHJlcXVl/3N0cyBoYWdn/2xlLiBjbG9z/2VseSBleHBy/2VzcyBwYWNr/2FnZXMgc2xl/2VwIGFjcm9z/3MgdGhlIGJs/2l0aGVseQAA/Q==","count":1},{"data":"AXVsYXIgYXN5/21wdG90ZXMg/2FyZSBhYm91/3QgdGhlIGZ1/3Jpb3VzIG11/2x0aXBsaWVy/3MuIGV4cHJl/3NzIGRlcGVu/2RlbmNpZXMg/25hZyBhYm92/2UgdGhlIGly/29uaWNhbGx5/yBpcm9uaWMg/2FjY291bnQA/g==","count":1},{"data":"AXZlbiBwYWNr/2FnZXMgd2Fr/2UgcXVpY2ts/3kuIHJlZ3UA/g==","count":1},{"data":"AXkgYWJvdmUg/3RoZSBjYXJl/2Z1bGx5IHVu/3VzdWFsIHRo/2VvZG9saXRl/3MuIGZpbmFs/yBkdWdvdXRz/yBhcmUgcXVp/2NrbHkgYWNy/29zcyB0aGUg/2Z1cmlvdXNs/3kgcmVndWxh/3IgZAAAAAAA+g==","count":1},{"data":"AXkgYWxvbmdz/2lkZSBvZiB0/2hlIHBlbmRp/25nIGRlcG9z/2l0cy4gY2Fy/2VmdWxseSBz/3BlY2lhbCBw/2Fja2FnZXMg/2FyZSBhYm91/3QgdGhlIGly/29uaWMgZm9y/2dlcy4gc2x5/2x5IHNwZWNp/2FsAAAAAAAA+Q==","count":1},{"data":"AXkgZmluYWwg/3BhY2thZ2Vz/y4gc2xvdyBm/294ZXMgY2Fq/29sZSBxdWlj/2tseS4gcXVp/2NrbHkgc2ls/2VudCBwbGF0/2VsZXRzIGJy/2VhY2ggaXJv/25pYyBhY2Nv/3VudHMuIHVu/3VzdWFsIHBp/250byBiZQAA/Q==","count":1}],"default_value":0},"fm_sketch":null,"stats_ver":2,"null_count":0,"tot_col_size":1897,"last_update_version":454889334307553286,"correlation":0.04692307692307692},"n_name":{"histogram":{"ndv":25},"cm_sketch":{"top_n":[{"data":"AUFMR0VSSUEA/g==","count":1},{"data":"AUFSR0VOVElO/0EAAAAAAAAA+A==","count":1},{"data":"AUJSQVpJTAAA/Q==","count":1},{"data":"AUNBTkFEQQAA/Q==","count":1},{"data":"AUNISU5BAAAA/A==","count":1},{"data":"AUVHWVBUAAAA/A==","count":1},{"data":"AUVUSElPUElB/wAAAAAAAAAA9w==","count":1},{"data":"AUZSQU5DRQAA/Q==","count":1},{"data":"AUdFUk1BTlkA/g==","count":1},{"data":"AUlORElBAAAA/A==","count":1},{"data":"AUlORE9ORVNJ/0EAAAAAAAAA+A==","count":1},{"data":"AUlSQU4AAAAA+w==","count":1},{"data":"AUlSQVEAAAAA+w==","count":1},{"data":"AUpBUEFOAAAA/A==","count":1},{"data":"AUpPUkRBTgAA/Q==","count":1},{"data":"AUtFTllBAAAA/A==","count":1},{"data":"AU1PUk9DQ08A/g==","count":1},{"data":"AU1PWkFNQklR/1VFAAAAAAAA+Q==","count":1},{"data":"AVBFUlUAAAAA+w==","count":1},{"data":"AVJPTUFOSUEA/g==","count":1},{"data":"AVJVU1NJQQAA/Q==","count":1},{"data":"AVNBVURJIEFS/0FCSUEAAAAA+w==","count":1},{"data":"AVVOSVRFRCBL/0lOR0RPTQAA/Q==","count":1},{"data":"AVVOSVRFRCBT/1RBVEVTAAAA/A==","count":1},{"data":"AVZJRVROQU0A/g==","count":1}],"default_value":0},"fm_sketch":null,"stats_ver":2,"null_count":0,"tot_col_size":202,"last_update_version":454889334307553286,"correlation":0.9130769230769231},"n_nationkey":{"histogram":{"ndv":25},"cm_sketch":{"top_n":[{"data":"A4AAAAAAAAAA","count":1},{"data":"A4AAAAAAAAAB","count":1},{"data":"A4AAAAAAAAAC","count":1},{"data":"A4AAAAAAAAAD","count":1},{"data":"A4AAAAAAAAAE","count":1},{"data":"A4AAAAAAAAAF","count":1},{"data":"A4AAAAAAAAAG","count":1},{"data":"A4AAAAAAAAAH","count":1},{"data":"A4AAAAAAAAAI","count":1},{"data":"A4AAAAAAAAAJ","count":1},{"data":"A4AAAAAAAAAK","count":1},{"data":"A4AAAAAAAAAL","count":1},{"data":"A4AAAAAAAAAM","count":1},{"data":"A4AAAAAAAAAN","count":1},{"data":"A4AAAAAAAAAO","count":1},{"data":"A4AAAAAAAAAP","count":1},{"data":"A4AAAAAAAAAQ","count":1},{"data":"A4AAAAAAAAAR","count":1},{"data":"A4AAAAAAAAAS","count":1},{"data":"A4AAAAAAAAAT","count":1},{"data":"A4AAAAAAAAAU","count":1},{"data":"A4AAAAAAAAAV","count":1},{"data":"A4AAAAAAAAAW","count":1},{"data":"A4AAAAAAAAAX","count":1},{"data":"A4AAAAAAAAAY","count":1}],"default_value":0},"fm_sketch":null,"stats_ver":2,"null_count":0,"tot_col_size":200,"last_update_version":454889334307553286,"correlation":1},"n_regionkey":{"histogram":{"ndv":5},"cm_sketch":{"top_n":[{"data":"A4AAAAAAAAAA","count":5},{"data":"A4AAAAAAAAAB","count":5},{"data":"A4AAAAAAAAAC","count":5},{"data":"A4AAAAAAAAAD","count":5},{"data":"A4AAAAAAAAAE","count":5}],"default_value":0},"fm_sketch":null,"stats_ver":2,"null_count":0,"tot_col_size":200,"last_update_version":454889334307553286,"correlation":0.3476923076923077}},"indices":{},"partitions":null,"database_name":"test","table_name":"nation","ext_stats":null,"predicate_columns":[{"last_used_at":"2025-04-30 06:08:33","last_analyzed_at":"2024-12-27 02:04:59","id":2},{"last_used_at":"2025-03-19 08:05:57","last_analyzed_at":"2024-12-27 02:04:59","id":3},{"last_used_at":null,"last_analyzed_at":"2024-12-27 02:04:59","id":4},{"last_used_at":"2025-04-30 06:08:33","last_analyzed_at":"2024-12-27 02:04:59","id":1}],"count":25,"modify_count":0,"version":454889334307553286,"is_historical_stats":false}

pkg/planner/core/casetest/tpch/testdata/test.orders.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

pkg/planner/core/casetest/tpch/testdata/test.part.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

pkg/planner/core/casetest/tpch/testdata/test.partsupp.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"columns":{"r_comment":{"histogram":{"ndv":5},"cm_sketch":{"top_n":[{"data":"AWdlcy4gdGhp/25seSBldmVu/yBwaW50byBi/2VhbnMgY2EA/g==","count":1},{"data":"AWhzIHVzZSBp/3JvbmljLCBl/3ZlbiByZXF1/2VzdHMuIHMA/g==","count":1},{"data":"AWxhciBkZXBv/3NpdHMuIGJs/2l0aGVseSBm/2luYWwgcGFj/2thZ2VzIGNh/2pvbGUuIHJl/2d1bGFyIHdh/3RlcnMgYXJl/yBmaW5hbCBy/2VxdWVzdHMu/yByZWd1bGFy/yBhY2NvdW50/3MgYXJlIGFj/2NvcmRpbmcg/3RvAAAAAAAA+Q==","count":1},{"data":"AWx5IGZpbmFs/yBjb3VydHMg/2Nham9sZSBm/3VyaW91c2x5/yBmaW5hbCBl/3hjdXNlAAAA/A==","count":1},{"data":"AXVpY2tseSBz/3BlY2lhbCBh/2Njb3VudHMg/2Nham9sZSBj/2FyZWZ1bGx5/yBibGl0aGVs/3kgY2xvc2Ug/3JlcXVlc3Rz/y4gY2FyZWZ1/2xseSBmaW5h/2wgYXN5bXB0/290ZXMgaGFn/2dsZSBmdXJp/291c2wAAAAA+w==","count":1}],"default_value":0},"fm_sketch":null,"stats_ver":2,"null_count":0,"tot_col_size":337,"last_update_version":454889350953959431,"correlation":0.6},"r_name":{"histogram":{"ndv":5},"cm_sketch":{"top_n":[{"data":"AUFGUklDQQAA/Q==","count":1},{"data":"AUFNRVJJQ0EA/g==","count":1},{"data":"AUFTSUEAAAAA+w==","count":1},{"data":"AUVVUk9QRQAA/Q==","count":1},{"data":"AU1JRERMRSBF/0FTVAAAAAAA+g==","count":1}],"default_value":0},"fm_sketch":null,"stats_ver":2,"null_count":0,"tot_col_size":39,"last_update_version":454889350953959431,"correlation":1},"r_regionkey":{"histogram":{"ndv":5},"cm_sketch":{"top_n":[{"data":"A4AAAAAAAAAA","count":1},{"data":"A4AAAAAAAAAB","count":1},{"data":"A4AAAAAAAAAC","count":1},{"data":"A4AAAAAAAAAD","count":1},{"data":"A4AAAAAAAAAE","count":1}],"default_value":0},"fm_sketch":null,"stats_ver":2,"null_count":0,"tot_col_size":40,"last_update_version":454889350953959431,"correlation":1}},"indices":{},"partitions":null,"database_name":"test","table_name":"region","ext_stats":null,"predicate_columns":[{"last_used_at":"2025-03-19 08:05:57","last_analyzed_at":"2024-12-27 02:06:03","id":1},{"last_used_at":"2025-03-19 08:05:57","last_analyzed_at":"2024-12-27 02:06:03","id":2},{"last_used_at":null,"last_analyzed_at":"2024-12-27 02:06:03","id":3}],"count":5,"modify_count":0,"version":454889350953959431,"is_historical_stats":false}

pkg/planner/core/casetest/tpch/testdata/test.supplier.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)