Skip to content

Commit 1ac71a9

Browse files
craig[bot]yuzefovich
andcommitted
148765: colflow,logictest: adjust a few tests for big endian due to hash computation difference r=yuzefovich a=yuzefovich **colflow: adjust TestHashRouterComputesDestination for big endian** Also add a helper to `util/system` package to expose whether we're running on a big endian system. (Go doesn't seem to expose this information explicitly.) Fixes: #146108. **logictest: adjust a couple DistSQL tests for big endian** Big endian systems have different hash computation, so a handful of EXPLAIN ANALYZE (DISTSQL) tests need to be special-cases. This commit does that for `dist_vectorize` and `explain_analyze_plans`. New `skipif` options (`bigendian` and `littleendian`) are introduced to accommodate this. It results in quite a bit of duplication in the expected output, but EXPLAIN ANALYZE must be a top-level statement so we cannot check just the annotated DistSQL plan unfortunately. Fixes: #146006. Release note: None 148768: eval: adjust a couple trig eval tests for s390x r=yuzefovich a=yuzefovich This commit is similar in spirit to ba3639d. It turns out that s390x produces slightly different results when evaluating some trig functions like `atan` (possibly because it has architecture support, meaning it's implemented in assembly). This commit adjusts a few tests to use rounding to hide those differences. Fixes: #145992. Fixes: #146009. Release note: None Co-authored-by: Yahor Yuzefovich <[email protected]>
3 parents 153bcb4 + ae01d1b + 5b3582a commit 1ac71a9

File tree

9 files changed

+256
-6
lines changed

9 files changed

+256
-6
lines changed

pkg/sql/colflow/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ go_test(
134134
"//pkg/util/randutil",
135135
"//pkg/util/stop",
136136
"//pkg/util/syncutil",
137+
"//pkg/util/system",
137138
"//pkg/util/timeutil",
138139
"@com_github_cockroachdb_errors//:errors",
139140
"@com_github_stretchr_testify//require",

pkg/sql/colflow/routers_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import (
3838
"github.com/cockroachdb/cockroach/pkg/util/mon"
3939
"github.com/cockroachdb/cockroach/pkg/util/randutil"
4040
"github.com/cockroachdb/cockroach/pkg/util/syncutil"
41+
"github.com/cockroachdb/cockroach/pkg/util/system"
4142
"github.com/cockroachdb/errors"
4243
"github.com/stretchr/testify/require"
4344
)
@@ -724,6 +725,11 @@ func TestHashRouterComputesDestination(t *testing.T) {
724725
valsPushed = make([]int, numOutputs)
725726
)
726727

728+
if system.BigEndian {
729+
// On big endian architectures we expect a different distribution.
730+
expectedNumVals = []int{238, 260, 259, 267}
731+
}
732+
727733
outputs := make([]routerOutput, numOutputs)
728734
for i := range outputs {
729735
// Capture the index.

pkg/sql/logictest/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ go_library(
9797
"//pkg/util/log",
9898
"//pkg/util/metamorphic",
9999
"//pkg/util/randutil",
100+
"//pkg/util/system",
100101
"//pkg/util/timeutil",
101102
"//pkg/util/tracing",
102103
"@com_github_cockroachdb_cockroach_go_v2//testserver",

pkg/sql/logictest/logic.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ import (
7676
"github.com/cockroachdb/cockroach/pkg/util/log"
7777
"github.com/cockroachdb/cockroach/pkg/util/metamorphic"
7878
"github.com/cockroachdb/cockroach/pkg/util/randutil"
79+
"github.com/cockroachdb/cockroach/pkg/util/system"
7980
"github.com/cockroachdb/cockroach/pkg/util/timeutil"
8081
"github.com/cockroachdb/cockroach/pkg/util/tracing"
8182
"github.com/cockroachdb/errors"
@@ -403,6 +404,8 @@ import (
403404
// Skips the following `statement` or `query` if the argument is postgresql,
404405
// cockroachdb, or a config matching the currently running
405406
// configuration. Note that this is different from `skip`.
407+
// - skipif bigendian/littleendian will skip the following `statement` or
408+
// `query` if the system is big endian / little endian, respectively.
406409
//
407410
// - onlyif <mysql/mssql/postgresql/cockroachdb/config [#ISSUE] CONFIG [CONFIG...]
408411
// Skips the following `statement` or `query` if the argument is not
@@ -3335,6 +3338,16 @@ func (t *logicTest) processSubtest(
33353338
"should be skip command instead of skipif: %s:%d",
33363339
path, s.Line+subtest.lineLineIndexIntoFile,
33373340
)
3341+
case "bigendian":
3342+
if system.BigEndian {
3343+
s.SetSkip("big endian system")
3344+
continue
3345+
}
3346+
case "littleendian":
3347+
if !system.BigEndian {
3348+
s.SetSkip("little endian system")
3349+
continue
3350+
}
33383351
default:
33393352
return errors.Errorf("unimplemented test statement: %s", s.Text())
33403353
}

pkg/sql/opt/exec/execbuilder/testdata/dist_vectorize

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ quality of service: regular
8888
·
8989
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzslt2O4jYUx-_7FNa5mqmCyBcM46tt2a2EWoYVsNuLCiFPcjZrkcSp7fDREY_VF-iTVUnINMkOEVFVcVG4QIp9cvz3__xO7BdQv4dAYfHhlw_jJfFEGuu77-_JT_PZlGy2YEAsfHxiESqgv4EFBthggAMGuGDAAFYGJFJ4qJSQWchL_sLE3wM1DeBxkupseGWAJyQCfQHNdYhAYcmeQ5wj81H2TTDAR814mC-z2b7bbNfJBg9gwFiEaRQrCgYsEhYrSnr9TMPPn0m2lKIktopHiQEXWYBGpYshzSOkxPzrT3UKETtFfPSEjz4lp_eeDxoVkch8Skbkx2IwmH8cE4-FoXqNSxiXZVymYPp5PCZKY1L4Ru5wr_s81veUmPmWigDEzbmAiO1JhJGQB8LCUHhMZ7LMXMMz095XVESkOkk1JVl8Lr8csGB1NKB4OnmsNAsQqFUpyuQ9UPNoXF6XH4JAYsC0kP1BvSzj2aen5Xo--3Vxdw8G4B69VHMR113-F7rthu7BWd3_yE1jIX2U6Ne0ro7tO7MaxC0-TdeTp-XdO-u_2ZnT2JlVL4l1eatYnVqlb_f6zq1ZujSL1aUyFaSGV26WYU23fTlRdjeinF7fvRHVhSi7S2UqRD1cmaiHmm7ncqKcbkS5vfykuRF1MVFOl8pUiBpdmahRTbd7OVFuN6IGvRtPXXhyu9SlwtPjlXl67HKxnaNKRKywcVF8eyWzsVLPym6U6AdYXD-VSKWHH6Xw8tjicZYnygd8VLqYtYqHSVxOKS2RRa_38momqzWTXctkVTMNmpnsdk1dRDmtqdzzmaxmJrfr9lheFYhR74TckJBpjL3DK0nl-I5xXWfMR4WSs5D_wb4FsHwth06ih3xbNns5VXZ8OVd0fTkboVIsqAWYF4Jd9WfY9GfQ6s_wvNN2M9Pw5nTVn4emPw-t_ozOO-00M41uTlf9GTX9eWz_EJnnrXa_-Tq2f2j_d14_ZkfSl1Ds1twHCubp13vjr_xB9gILVHYuLr6KXW7W8pBkp9oXFio0YMo2-B41yojHXGnuAdUyxePxu78DAAD__yEjlXY=
9090

91+
# Nodes in the DistSQL plan receive different number of rows between big endian
92+
# and little endian systems since we have different hash router distributions.
93+
skipif bigendian
9194
query T
9295
EXPLAIN ANALYZE (DISTSQL) SELECT * FROM kv JOIN kw ON kv.k = kw.k
9396
----
@@ -147,6 +150,66 @@ quality of service: regular
147150
·
148151
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzsmt9um0gUxu_3KUZz1W5x7eFPYiNVsjbtSulukiqterOKqgmc2gjMuMzYjjfKY-0L7JOtwHUSjPH6IAcsIBdVgQHm_M6cb74Zc0_lj4Da9POHPz-cfSG_kt-vry6IPycfr84vib8gV5fEn7_1yTviL976VKOhcOGST0BS-y_KqEZ1qlGDatSkGrXojUankXBAShHFTe6TG87dO2r3NOqF05mKT99o1BERUPueKk8FQG36hd8GcA3chajboxp1QXEvSF7jz4f-_NvUhyXV6JkIZpNQ2sTXyJxq9POUx0edbtyRP76S-H3SJiFbHUYw8kTcQIFUq1PKm4BNev_-I382EQtJXHCEC65Nft53u1QgSQTctUmf_LY6Obr-dEYcHgTysd2Ue9G6XdyDi69nZ0QqmBJHzEJFXsGd6nqhem2TXhLXqgGAn9dgwu_IBCYiWhIeBMLhKu5WL-nDLVfOGCQRMzWdKZvE7ZPur08wevOg0dXRiv-a7-2SjLkcp8kO4_Y3GpWKj4Da7Fn2zt9Tu_egFUvgyUYCF0N_sS2Bi6cEdlmbwgOkUN9I4UluCp-eKyIXInA3n_sm7sherbaMhguIRvBReCFEXbZRzwF8V6-G7M3rd5E3Gq_-SzV6FUc_ZNpQ14aGNowFBe7AmSlPhOmM7-IbX5M_AqJgMiWuJ30yk3wEhfE_oTU20LL88njiMAu3cduK7FJ0xLTLrDSsHAT_G4eVG4e5GYeVioPtX-YMr9NdvdM12jI_tFKzoik8LaDUbQpfQqlPc1NYolKzeip1ujz0_ctDL6BwRqdrtuVxaIXTi6awX0Dh2hS-hML1c1NYosLp9VS4dHkY-5eHUUDhzE7Xasvj0ApnFE3hoIDCtSl8CYUb5KawRIUz6qlw6fIw9y8Ps4DCWZ22OA6tb2bRBFp4fet0GeGhSxgRagxRm8xDK52Vm8wSlc6sp9KZmG33a5BTEUrY2F_c_qrexqs6LGYM7ghWmZNiFjnwKRJO0nZ1eJU8KKlnF6RaXdVXB-fh-pJUXO3asHxJtj2ahBgBnzz-bLF_KCe5oYSgFiLyScAVhM7yMZb1-QX3VDpKFyREHg-8v3kWwfq2pO8ROODNEwbPLq215fFaAmB9dQIy5rJ5M5YPQwIaVAyI7QDUPwgglgakIwGx_Gqo6RAysISsphEyM4QYQlD1oxLUE1woJ7mh1DTXDAloUDGg8gUVCYjlV0NNh5CBJWQ1jZCZIaRvEuo9J2RkZ5z1o6yMNhs7H8XSitY7KnHOxGIWNO41HTcMxyd_NVB9qhkylqqNe-m51pGAGmjcsYSqNu6lexUzQ8gqaNxrOoROcXzyVwNHIKjIWKo27uULKhJQA407llDVxr18Qc0QOsEa93oDsjIzzmlr4VMqhOPTvA19JKD8dUH1U7KOjKVyC1-6XBhYQlVb-PK3ijKE-q2Ffw6oj-PTvA19JKD8dcERCCoylsotfPmCiiVUtYUvX1AzhAathU9Z-MyMw4p-P1PTIWQgAVVt4ksfQgxLqHm7-1hCO9YG1c_LBjqa5vn4LKKiH9HUlNAACahqJ1--qmIJNW-LH0toxwLhCFQVHU3zzHwWEfpLmnqLhpWddzIfCB2Vmy__Nx0koKrdfPk7SFhCzXPzWEKV7_SXv2ZGI8pfIlQ_NZvZaDCfKjbArFpIQFW7-fJVFUuoeW4eS6jy7f7yVRWNKH-JcASqmo0m8wFSw928-XCj0e-BWHzzXGrT3s-_zpZ_1n80voGPJLXv6eexWCS0viynIKn9nQcSNHrBfXgPCqKJF3pSeQ61VTSDh4df_gsAAP__1YKjfA==
149152

153+
skipif littleendian
154+
query T
155+
EXPLAIN ANALYZE (DISTSQL) SELECT * FROM kv JOIN kw ON kv.k = kw.k
156+
----
157+
planning time: 10µs
158+
execution time: 100µs
159+
distribution: <hidden>
160+
vectorized: <hidden>
161+
plan type: custom
162+
rows decoded from KV: 10 (80 B, 20 KVs, 10 gRPC calls)
163+
maximum memory usage: <hidden>
164+
DistSQL network usage: <hidden>
165+
regions: <hidden>
166+
isolation level: serializable
167+
priority: normal
168+
quality of service: regular
169+
·
170+
• merge join
171+
│ sql nodes: <hidden>
172+
│ regions: <hidden>
173+
│ actual row count: 5
174+
│ execution time: 0µs
175+
│ estimated max memory allocated: 0 B
176+
│ estimated max sql temp disk usage: 0 B
177+
│ equality: (k) = (k)
178+
│ left cols are key
179+
│ right cols are key
180+
181+
├── • scan
182+
│ sql nodes: <hidden>
183+
│ kv nodes: <hidden>
184+
│ regions: <hidden>
185+
│ actual row count: 5
186+
│ KV time: 0µs
187+
│ KV rows decoded: 5
188+
│ KV pairs read: 10
189+
│ KV bytes read: 40 B
190+
│ KV gRPC calls: 5
191+
│ estimated max memory allocated: 0 B
192+
│ missing stats
193+
│ table: kv@kv_pkey
194+
│ spans: FULL SCAN
195+
196+
└── • scan
197+
sql nodes: <hidden>
198+
kv nodes: <hidden>
199+
regions: <hidden>
200+
actual row count: 5
201+
KV time: 0µs
202+
KV rows decoded: 5
203+
KV pairs read: 10
204+
KV bytes read: 40 B
205+
KV gRPC calls: 5
206+
estimated max memory allocated: 0 B
207+
missing stats
208+
table: kw@kw_pkey
209+
spans: FULL SCAN
210+
·
211+
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzsmt9u2sgXx-9_TzGaq_ZXUzz-Q4KlSmjTrpTuJqnSqjerqJrYJ2DZeKhngLBRHmtfYJ9sZRwnAWPKsYhNMFxEsT2253wO5zvfGeaOyp8hdejXT39-OvlG_k9-v7w4I8GEfL44PSfBlFyck2DyPiAfSDB9H1CNRsKDcz4ESZ2_KKMaNahGTapRi2rUplcaHcXCBSlFnDS5m99w6t1SR9eoH43GKjl9pVFXxECdO6p8FQJ16Dd-HcIlcA_itk416oHifjh_TTDpBZMfowBmVKMnIhwPI-mQQCMTqtGvI54ctdpJR_74TpL3SYdELD2Moe-LpIECqdJTyh-CQ_R__5EPTcRUEg9c4YHnkIf7rmcKJImBew45Jr-lJ_uXX06Iy8NQPrYbcT_O2iU9OPt-ckKkghFxxThS5A3cqrYfqbcO0edxpQ0AgqIGQ35LhjAU8YzwMBQuV0m39HkfrrlyByCJGKvRWDkkaT_vfnaC0at7jaZHKf-M7_WMDLgcLJLtJe2vNCoV7wN12LPsnX6kjn6vlUtgZymB014wXZXA6VMC2-yQwi2k0FhKYacwhU_PFbEHMXjLz32XdGSjViu-DWcQ9-Gz8COI22ypnkO4UW967N3bD7HfH6T_Uo1eJNH3mNYztJ6p9RJBgVtwx8oX0WLG1_FNrsmfIVEwHBHPlwEZS96H0vif0JpLaFlxeTxxGEeruK1Edi5aYtRm9iKsAgS_jMMujMNajsNeiINtXuYMr9Nto9U2D2W-baVmZVN4VEKpDyl8CaU-KkxhhUrNXpFSm5sr9WJ5GJuXh1FC4cxW2zqUx7YVziibwuMSCndI4Uso3HFhCitUOOMVKZy-ucItloe5eXmYJRTOarXtQ3lsW-HMsinsllC4QwpfQuG6hSmsUOHMV6RwiNn2YnlYm5eHVULh7NahOLatb1bZBNp4fWu1GeGRRxgRagDxIZnbVjq7MJkVKp31ipQO4eUszLL7JciRiCQsrS-ufpW-9KoWSxiD14c0c1KMYxe-xMKdt00PL-YPmtezB1KlV4304DTKLknF1boFyxdmm3QgBj58_Nli81A6haFEoKYiDkjIFUTu7DGW7PyU-2oxSg8kxD4P_b95HkF227zvMbjgTzJZyS5l2pJdS_UluzoEmXB53kDfsPSf82FIQN2aAelrAOlbAbT0BTKQgFhxNewpIRNLyG4aIStHiCEE1dgpQe3gQukUhrKvgooE1K0ZUPWCigTEiqthTwmZWEJ20whZOULGMiH9OSEzP-Jkj7Jz2myufRRbVDR9p8Q5F4tV0rjv6feG4fgUzwbqTzVDxtI8444EVLtxr9yqmFhCzTPuOUJ2SeO-p4COcHyKZwM7IKjIWJpn3JGAajfu1QsqllDzjHuOUAdr3CsFZK4BZFi_IsQ23Lq2MB_JDTlHO-3hKy8yA8en7hX96uc4SEDFE4P6x2QDGUvtHr76tSIsoeZ5-Byh45328JUL6jGOT90r-tULKhJQ8cRgBwQVGUvtHr56QcUSap6HzxHq7rSHrxyQnRtxWNkNNHtKyEQCqtvEV_8rMpZQ85b3sYTWzA3qH5dNdDTN8_F5RGV30ewpoS4SUN1OvnpVxRJq3ho_ltCaCcIOqCo6muaZ-Twi9Faa_RYNOz_u5HYINdvNW0hAzXPzWELNc_NYQg1c6UcjKp4i1D80W_loMHsVGzAy20hAzXPzWELNc_NYQg1c7kcjKp4i7ICq5qPJ7UDaKTdfvapa91cavQnF9IfvUYfqD5_Wij_ZhyY38L6kzh39OhDTOa1vsxFI6tzwUIJGz3gAH0FBPPQjXyrfpY6Kx3B__7__AgAA__-nAaOb
212+
150213
query T
151214
EXPLAIN (VEC, VERBOSE) SELECT count(*) FROM kv
152215
----

0 commit comments

Comments
 (0)