github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/opt/exec/execbuilder/testdata/tuple (about) 1 # LogicTest: local 2 3 statement ok 4 CREATE TABLE uvw ( 5 u INT, 6 v INT, 7 w INT, 8 INDEX (u,v,w) 9 ) 10 11 query TTTTT 12 EXPLAIN (VERBOSE) SELECT * FROM uvw WHERE (u, v, w) >= (1, 2, 3) ORDER BY u, v, w 13 ---- 14 · distributed false · · 15 · vectorized true · · 16 scan · · (u, v, w) +u,+v,+w 17 · table uvw@uvw_u_v_w_idx · · 18 · spans /1/2/3- · · 19 20 query TTTTT 21 EXPLAIN (VERBOSE) SELECT * FROM uvw WHERE (u, v, w) > (2, 1, 1) ORDER BY u, v, w 22 ---- 23 · distributed false · · 24 · vectorized true · · 25 scan · · (u, v, w) +u,+v,+w 26 · table uvw@uvw_u_v_w_idx · · 27 · spans /2/1/2- · · 28 29 query TTTTT 30 EXPLAIN (VERBOSE) SELECT * FROM uvw WHERE (u, v, w) <= (2, 3, 1) ORDER BY u, v, w 31 ---- 32 · distributed false · · 33 · vectorized true · · 34 scan · · (u, v, w) +u,+v,+w 35 · table uvw@uvw_u_v_w_idx · · 36 · spans /!NULL-/2/3/2 · · 37 · filter (u, v, w) <= (2, 3, 1) · · 38 39 query TTTTT 40 EXPLAIN (VERBOSE) SELECT * FROM uvw WHERE (u, v, w) < (2, 2, 2) ORDER BY u, v, w 41 ---- 42 · distributed false · · 43 · vectorized true · · 44 scan · · (u, v, w) +u,+v,+w 45 · table uvw@uvw_u_v_w_idx · · 46 · spans /!NULL-/2/2/2 · · 47 · filter (u, v, w) < (2, 2, 2) · · 48 49 query TTTTT 50 EXPLAIN (VERBOSE) SELECT * FROM uvw WHERE (u, v, w) != (1, 2, 3) ORDER BY u, v, w 51 ---- 52 · distributed false · · 53 · vectorized true · · 54 scan · · (u, v, w) +u,+v,+w 55 · table uvw@uvw_u_v_w_idx · · 56 · spans -/1/2/3 /1/2/4- · · 57 · filter (u, v, w) != (1, 2, 3) · · 58 59 query TTTTT 60 EXPLAIN (VERBOSE) SELECT * FROM uvw WHERE (u, v, w) >= (1, NULL, 3) ORDER BY u, v, w 61 ---- 62 · distributed false · · 63 · vectorized true · · 64 scan · · (u, v, w) +u,+v,+w 65 · table uvw@uvw_u_v_w_idx · · 66 · spans /2- · · 67 68 query TTTTT 69 EXPLAIN (VERBOSE) SELECT * FROM uvw WHERE (u, v, w) < (2, NULL, 3) ORDER BY u, v, w 70 ---- 71 · distributed false · · 72 · vectorized true · · 73 scan · · (u, v, w) +u,+v,+w 74 · table uvw@uvw_u_v_w_idx · · 75 · spans /!NULL-/2 · · 76 77 statement ok 78 DROP TABLE uvw 79 80 # Regression test for #6390. 81 statement ok 82 CREATE TABLE abc (a INT, b INT, c INT, INDEX(a, b)) 83 84 query TTTTT 85 EXPLAIN (VERBOSE) SELECT * FROM abc WHERE (a, b, c) > (1, 2, 3) AND (a,b,c) < (8, 9, 10) 86 ---- 87 · distributed false · · 88 · vectorized true · · 89 filter · · (a, b, c) · 90 │ filter ((a, b, c) > (1, 2, 3)) AND ((a, b, c) < (8, 9, 10)) · · 91 └── index-join · · (a, b, c) · 92 │ table abc@primary · · 93 │ key columns rowid · · 94 └── scan · · (a, b, rowid[hidden]) · 95 · table abc@abc_a_b_idx · · 96 · spans /1/2-/8/10 · · 97 98 statement ok 99 DROP TABLE abc 100 101 statement ok 102 CREATE TABLE abc (a INT, b INT, c INT, INDEX(a, b DESC, c)) 103 104 query TTTTT 105 EXPLAIN (VERBOSE) SELECT * FROM abc WHERE (a, b, c) > (1, 2, 3) 106 ---- 107 · distributed false · · 108 · vectorized true · · 109 scan · · (a, b, c) · 110 · table abc@abc_a_b_c_idx · · 111 · spans /1- · · 112 · filter (a, b, c) > (1, 2, 3) · · 113 114 statement ok 115 DROP TABLE abc 116 117 statement ok 118 CREATE TABLE kv (k INT PRIMARY KEY, v INT) 119 120 # Regression test for #27398. 121 # Check that tuple type includes labels. 122 query TTTTT 123 EXPLAIN (VERBOSE, TYPES) SELECT x FROM (SELECT (row(v,v,v) AS a,b,c) AS x FROM kv) 124 ---- 125 · distributed false · · 126 · vectorized true · · 127 render · · (x tuple{int AS a, int AS b, int AS c}) · 128 │ render 0 ((((v)[int], (v)[int], (v)[int]) AS a, b, c))[tuple{int AS a, int AS b, int AS c}] · · 129 └── scan · · (v int) · 130 · table kv@primary · · 131 · spans FULL SCAN · · 132 133 query TTTTT 134 EXPLAIN (VERBOSE, TYPES) SELECT (x).a, (x).b, (x).c FROM (SELECT (row(v,v,v) AS a,b,c) AS x FROM kv) 135 ---- 136 · distributed false · · 137 · vectorized true · · 138 render · · (a int, b int, c int) · 139 │ render 0 (((x)[tuple{int AS a, int AS b, int AS c}]).a)[int] · · 140 │ render 1 (((x)[tuple{int AS a, int AS b, int AS c}]).b)[int] · · 141 │ render 2 (((x)[tuple{int AS a, int AS b, int AS c}]).c)[int] · · 142 └── render · · (x tuple{int AS a, int AS b, int AS c}) · 143 │ render 0 ((((v)[int], (v)[int], (v)[int]) AS a, b, c))[tuple{int AS a, int AS b, int AS c}] · · 144 └── scan · · (v int) · 145 · table kv@primary · · 146 · spans FULL SCAN · · 147 148 query TTTTT 149 EXPLAIN (VERBOSE, TYPES) SELECT (x).e, (x).f, (x).g 150 FROM ( 151 SELECT ((1,'2',true) AS e,f,g) AS x 152 ) 153 ---- 154 · distributed false · · 155 · vectorized false · · 156 values · · (e int, f string, g bool) · 157 · size 3 columns, 1 row · · 158 · row 0, expr 0 (1)[int] · · 159 · row 0, expr 1 ('2')[string] · · 160 · row 0, expr 2 (true)[bool] · ·