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