github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/logictest/testdata/logic_test/vectorize_local (about) 1 # LogicTest: local 2 3 statement ok 4 CREATE TABLE a (a INT, b INT, c INT4, PRIMARY KEY (a, b)) 5 6 statement ok 7 CREATE TABLE c (a INT, b INT, c INT, d INT, PRIMARY KEY (a, c), INDEX sec (b)) 8 9 statement ok 10 CREATE TABLE d (a INT, b INT, PRIMARY KEY (b, a)) 11 12 statement ok 13 INSERT INTO a SELECT g//2, g, g FROM generate_series(0,2000) g(g) 14 15 statement ok 16 INSERT INTO c VALUES (1, 1, 1, 0), (2, 1, 2, 0) 17 18 statement ok 19 ALTER TABLE c INJECT STATISTICS '[ 20 { 21 "columns": ["a"], 22 "created_at": "2018-01-01 1:00:00.00000+00:00", 23 "row_count": 1, 24 "distinct_count": 1 25 } 26 ]' 27 28 statement ok 29 INSERT INTO d VALUES (1, 1), (1, 2) 30 31 # Test that vectorized stats are collected correctly. 32 statement ok 33 SET vectorize = on 34 35 statement ok 36 SET distsql = on 37 38 statement ok 39 SET vectorize_row_count_threshold = 0 40 41 query T 42 SELECT url FROM [EXPLAIN ANALYZE SELECT a FROM a] 43 ---- 44 https://cockroachdb.github.io/distsqlplan/decode.html#eJyMkLFOwzAQhneewvonkAw4jJ5aQZAihbY0HYAqg5ucSiQ3DvYFUVV5d5S4AwxIjPfd9599d0L4sNAo0jy934jeW_G4Xj6JbfqyyufZQswX8_z1LRWXD1mxKZ7zK3FWTRRNCYnW1bQwBwrQWyQoJTrvKgrB-RGdJiGrv6CVRNN2PY-4lKicJ-gTuGFL0NiYnaU1mZr8rYJETWwaO43tfHMw_jgzkCg60wYtriGx7FmLWQKJneHqnYJwPXcjHPPcd_YHulNqNANZqrj5bPiohbpRoxnYWCu4OZAWKqAcJGLq_NPAZk_QySD_v82aQufaQL8W-WuyGkoJqvcULxZc7ytaeVdNz8RyOeUmUFPg2E1ikbWxNZTDxXcAAAD__76-lf0= 45 46 query T 47 SELECT url FROM [EXPLAIN ANALYZE SELECT c.a FROM c JOIN d ON d.b = c.b] 48 ---- 49 https://cockroachdb.github.io/distsqlplan/decode.html#eJykkk-P0zAQxe98itGcQDIl6dESUisoUlYhWdoegFUOrj1aDK4dPA50VeW7o_wRtEigRRznzXvj-Y18Rv7qUOJuU25e7aGLDt5s67dwt3l_W66LCtbVuvzwcQNPXxe7_e5d-Qxmq16oyarhpi4qMFBXYBYHeAl6cWhQoA-GKnUkRnmHOTYC2xg0MYc4SOfRUJgTykyg9W2XBrkRqEMklGdMNjlCiXt1cLQlZSi-yFCgoaSsG8cy6ZVGgbtWeZbwHAXWXZKwysVqiQIPKulPxBC61A76EE9d6y6kwcbkSCf7zaYHCdkiG2yclHOQ7JEkZIxNL3CKzFtyUveEMu_F40lugvUzSH4N0kZ7VPFhZVBgGcKXroXPwXoIXsJIMmP9HxOdSHfJBv-LS2AM3xkiKTPnrrkHIEMnuHDlP8VH3mj5LzfaErfBM13d50-Ts74RSOaeph_FoYuabmPQ4zNTWY-5UTDEaermU1H4qTUseBnO_xpe_hZu-ic_AgAA__-5Pwzl 50 51 query T 52 SELECT url FROM [EXPLAIN ANALYZE SELECT c.a FROM c INNER MERGE JOIN d ON c.a = d.b] 53 ---- 54 https://cockroachdb.github.io/distsqlplan/decode.html#eJy8klFr2zAUhd_3Ky73qWVaartvgkLC5g2XxO6cPGwrflCku1SgWJ4kj5aQ_z4sF9aUbCVj9M06Op-sc6526H8Y5LjM5_n7FfTOwMe6WsBt_uVmPitKmJWz-ddvOZx9KJar5ef5OTxa5USMVglFWeY1LPL6Uw7XVVGCgqqMhitQk3WDDFurqBRb8shvMcWGYeesJO-tG6RdNBTqHnnCULddHwa5YSitI-Q7DDoYQo4rsTZUk1DkLhJkqCgIbeKxndNb4R6mEhkuO9F6Du-QYdUHDtMUGa5FkHfkwfahG8SBD31nnkgZMvRkSAb9U4cHDskkGWw-CGMg6C1xSDw2e4Yj8nhNH8SGkKd79m9R0uNR1LEo2atEyf4Y5XeCvrVOkSN1cPtmIF-yHOljQW5D11a35C6ywz4MfQ9n0_Tt-ZXTm7vx83-Nlu5J9kHb9uVOLk8Zb02-s62n590cPTkZCiG1obFgb3sn6cZZGX8zLqvIRUGRD-NuNi6KNm7F9_cUTk-As-dw9lf48gBO9s3-za8AAAD__9VqYx8= 55 56 statement ok 57 RESET vectorize; RESET distsql; RESET vectorize_row_count_threshold 58 59 statement ok 60 SET tracing=off 61 62 # Making sure that colBatchScan operator can parallelize scans. 63 # This test is similar to that in testplannerlogic/select 64 statement ok 65 CREATE TABLE tpar ( 66 a INT PRIMARY KEY, item STRING, price FLOAT, FAMILY (a, item, price), 67 UNIQUE INDEX item (item), UNIQUE INDEX p (price) 68 ) 69 70 statement ok 71 ALTER TABLE tpar SPLIT AT VALUES(5) 72 73 # Run a select to prime the range cache to simplify the trace below. 74 statement ok 75 SELECT * FROM tpar 76 77 # Make sure that the scan actually gets parallelized. 78 statement ok 79 SET tracing = on; SELECT * FROM tpar WHERE a = 0 OR a = 10; SET tracing = off 80 81 # The span "sending partial batch" means that the scan was parallelized. 82 # Note that table ID here is hardcoded, so if a new table is created before 83 # tpar, this query will need an adjustment. 84 query T 85 SELECT message FROM [SHOW TRACE FOR SESSION] WHERE message IN 86 ('querying next range at /Table/56/1/0', 87 'querying next range at /Table/56/1/10', 88 '=== SPAN START: kv.DistSender: sending partial batch ===' 89 ) 90 ---- 91 querying next range at /Table/56/1/0 92 === SPAN START: kv.DistSender: sending partial batch === 93 querying next range at /Table/56/1/10 94 95 # Regression test for #46123 (rowexec.TableReader not implementing 96 # execinfra.OpNode interface). 97 statement ok 98 CREATE TABLE t46123(c0 INT) 99 100 query T 101 EXPLAIN (VEC) SELECT stddev(0) FROM t46123 WHERE ('' COLLATE en)::BOOL 102 ---- 103 │ 104 └ Node 1 105 └ *rowexec.orderedAggregator 106 └ *rowexec.tableReader 107 108 # Regression test for #46122 (checking that we gracefully fallback to row 109 # execution on cross joins). 110 statement ok 111 CREATE TABLE t46122_0(c0 STRING); CREATE TABLE t46122_1(c0 STRING) 112 113 query T 114 EXPLAIN (VEC) SELECT t46122_0.c0 FROM t46122_0, t46122_1 115 ---- 116 │ 117 └ Node 1 118 └ *rowexec.hashJoiner 119 ├ *colexec.colBatchScan 120 └ *colexec.colBatchScan 121 122 # Regression test for #46404 (rowexec.noopProcessor not implementing 123 # execinfra.OpNode interface). 124 statement ok 125 CREATE TABLE t46404_0(c0 INT); CREATE TABLE t46404_1(c0 INT) 126 127 query T 128 EXPLAIN (VEC) SELECT stddev((t46404_1.c0 > ANY (0, 0))::INT) FROM t46404_0, t46404_1 GROUP BY t46404_0.rowid 129 ---- 130 │ 131 └ Node 1 132 └ *rowexec.hashAggregator 133 └ *rowexec.noopProcessor 134 └ *colexec.hashJoiner 135 ├ *colexec.colBatchScan 136 └ *colexec.colBatchScan 137 138 statement ok 139 CREATE TABLE xyz ( 140 x INT, 141 y INT, 142 z TEXT 143 ) 144 145 # Check that we fallback gracefully to row-by-row engine on a join type with 146 # ON expression that we don't support. 147 query T 148 EXPLAIN (VEC) SELECT * FROM xyz AS t1 FULL OUTER JOIN xyz AS t2 ON t1.x = t2.x AND t1.x + t2.x = 0 149 ---- 150 │ 151 └ Node 1 152 └ *rowexec.hashJoiner 153 ├ *colexec.colBatchScan 154 └ *colexec.colBatchScan