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]      ·                          ·