github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/logictest/testdata/logic_test/vectorize_overloads (about)

     1  # LogicTest: local
     2  
     3  statement ok
     4  CREATE TABLE many_types (
     5      _bool        BOOL,
     6      _bytes       BYTES,
     7      _date        DATE,
     8      _decimal     DECIMAL,
     9      _int2        INT2,
    10      _int4        INT4,
    11      _int         INT8,
    12      _oid         OID,
    13      _float       FLOAT8,
    14      _string      STRING,
    15      _uuid        UUID,
    16      _timestamp   TIMESTAMP,
    17      _timestamptz TIMESTAMPTZ,
    18      _interval    INTERVAL,
    19      _inet        INet,
    20      _json        JSON,
    21      _time        Time,
    22      _varbit      VARBIT
    23  )
    24  
    25  statement ok
    26  INSERT
    27    INTO many_types
    28  VALUES (
    29          NULL,
    30          NULL,
    31          NULL,
    32          NULL,
    33          NULL,
    34          NULL,
    35          NULL,
    36          NULL,
    37          NULL,
    38          NULL,
    39          NULL,
    40          NULL,
    41          NULL,
    42          NULL,
    43          NULL,
    44          NULL,
    45          NULL,
    46          NULL
    47         ),
    48         (
    49         false,
    50         '123',
    51         '2019-10-22',
    52         1.23,
    53         123,
    54         123,
    55         123,
    56         123,
    57         1.23,
    58         '123',
    59         '63616665-6630-3064-6465-616462656562',
    60         '1-1-18 1:00:00.001',
    61         '1-1-18 1:00:00.001-8',
    62         '12:34:56.123456',
    63         '127.0.0.1',
    64         '[1, "hello", {"a": ["foo", {"b": 3}]}]',
    65         '1:00:00.001',
    66         B'1'
    67         ),
    68         (
    69         true,
    70         '456',
    71         '2020-05-21',
    72         4.56,
    73         456,
    74         456,
    75         456,
    76         456,
    77         4.56,
    78         '456',
    79         '63616665-0000-0000-6465-616462656562',
    80         '1-1-18 1:00:00.456',
    81         '1-1-18 1:00:00.456-8',
    82         '01:23:45.012345',
    83         '192.168.0.0/16',
    84         '[2, "hi", {"b": ["bar", {"c": 4}]}]',
    85         '1:00:00.456',
    86         B'11'
    87         )
    88  
    89  query T
    90  EXPLAIN (VEC) SELECT _inet - _int2 FROM many_types
    91  ----
    92  │
    93  └ Node 1
    94    └ *colexec.projMinusDatumInt16Op
    95      └ *colexec.colBatchScan
    96  
    97  query T rowsort
    98  SELECT _inet - _int2 FROM many_types
    99  ----
   100  NULL
   101  126.255.255.134
   102  192.167.254.56/16
   103  
   104  query T
   105  EXPLAIN (VEC) SELECT _inet - 1 FROM many_types
   106  ----
   107  │
   108  └ Node 1
   109    └ *colexec.projMinusDatumInt64ConstOp
   110      └ *colexec.colBatchScan
   111  
   112  query T rowsort
   113  SELECT _inet - 1 FROM many_types
   114  ----
   115  NULL
   116  127.0.0.0
   117  192.167.255.255/16
   118  
   119  query T
   120  EXPLAIN (VEC) SELECT _int4 + _inet FROM many_types
   121  ----
   122  │
   123  └ Node 1
   124    └ *colexec.projPlusInt32DatumOp
   125      └ *colexec.colBatchScan
   126  
   127  query T rowsort
   128  SELECT _int4 + _inet FROM many_types
   129  ----
   130  NULL
   131  127.0.0.124
   132  192.168.1.200/16
   133  
   134  query T
   135  EXPLAIN (VEC) SELECT 2 + _inet FROM many_types
   136  ----
   137  │
   138  └ Node 1
   139    └ *colexec.projPlusDatumInt64ConstOp
   140      └ *colexec.colBatchScan
   141  
   142  query T rowsort
   143  SELECT 2 + _inet FROM many_types
   144  ----
   145  NULL
   146  127.0.0.3
   147  192.168.0.2/16
   148  
   149  query T
   150  EXPLAIN (VEC) SELECT _time + _interval FROM many_types
   151  ----
   152  │
   153  └ Node 1
   154    └ *colexec.projPlusDatumIntervalOp
   155      └ *colexec.colBatchScan
   156  
   157  query T rowsort
   158  SELECT _time + _interval FROM many_types
   159  ----
   160  NULL
   161  0000-01-01 13:34:56.124456 +0000 UTC
   162  0000-01-01 02:23:45.468345 +0000 UTC
   163  
   164  query T
   165  EXPLAIN (VEC) SELECT _json - _int FROM many_types
   166  ----
   167  │
   168  └ Node 1
   169    └ *colexec.projMinusDatumInt64Op
   170      └ *colexec.colBatchScan
   171  
   172  query T rowsort
   173  SELECT _json - _int FROM many_types
   174  ----
   175  NULL
   176  [1, "hello", {"a": ["foo", {"b": 3}]}]
   177  [2, "hi", {"b": ["bar", {"c": 4}]}]
   178  
   179  query T
   180  EXPLAIN (VEC) SELECT _bytes || _bytes FROM many_types
   181  ----
   182  │
   183  └ Node 1
   184    └ *colexec.projConcatBytesBytesOp
   185      └ *colexec.colBatchScan
   186  
   187  query T
   188  SELECT _bytes || _bytes FROM many_types
   189  ----
   190  NULL
   191  123123
   192  456456
   193  
   194  query T
   195  EXPLAIN (VEC) SELECT _string || _string FROM many_types
   196  ----
   197  │
   198  └ Node 1
   199    └ *colexec.projConcatBytesBytesOp
   200      └ *colexec.colBatchScan
   201  
   202  query T
   203  SELECT _string || _string FROM many_types
   204  ----
   205  NULL
   206  123123
   207  456456
   208  
   209  query T
   210  EXPLAIN (VEC) SELECT _json || _json FROM many_types
   211  ----
   212  │
   213  └ Node 1
   214    └ *colexec.projConcatDatumDatumOp
   215      └ *colexec.colBatchScan
   216  
   217  query T
   218  SELECT _json || _json FROM many_types
   219  ----
   220  NULL
   221  [1, "hello", {"a": ["foo", {"b": 3}]}, 1, "hello", {"a": ["foo", {"b": 3}]}]
   222  [2, "hi", {"b": ["bar", {"c": 4}]}, 2, "hi", {"b": ["bar", {"c": 4}]}]
   223  
   224  query T
   225  EXPLAIN (VEC) SELECT _varbit || _varbit FROM many_types
   226  ----
   227  │
   228  └ Node 1
   229    └ *colexec.projConcatDatumDatumOp
   230      └ *colexec.colBatchScan
   231  
   232  query T
   233  SELECT _varbit || _varbit FROM many_types
   234  ----
   235  NULL
   236  11
   237  1111
   238  
   239  
   240  # Make sure we fall back to row engine when we have a mixed-type expression
   241  # with dates.
   242  query T
   243  EXPLAIN (VEC) SELECT _time + _date FROM many_types
   244  ----
   245  │
   246  └ Node 1
   247    └ *rowexec.tableReader