mirror of
https://github.com/apache/impala.git
synced 2025-12-25 02:03:09 -05:00
This patch provides an unnest implementation for arrays where unnesting
multiple arrays in one query results the items of the arrays being
zipped together instead of joining. There are two different syntaxes
introduced for this purpose:
1: ISO:SQL 2016 compliant syntax:
SELECT a1.item, a2.item
FROM complextypes_arrays t, UNNEST(t.arr1, t.arr2) AS (a1, a2);
2: Postgres compatible syntax:
SELECT UNNEST(arr1), UNNEST(arr2) FROM complextypes_arrays;
Let me show the expected behaviour through the following example:
Inputs: arr1: {1,2,3}, arr2: {11, 12}
After running any of the above queries we expect the following output:
===============
| arr1 | arr2 |
===============
| 1 | 11 |
| 2 | 12 |
| 3 | NULL |
===============
Expected behaviour:
- When unnesting multiple arrays with zipping unnest then the 'i'th
item of one array will be put next to the 'i'th item of the other
arrays in the results.
- In case the size of the arrays is not the same then the shorter
arrays will be filled with NULL values up to the size of the longest
array.
On a sidenote, UNNEST is added to Impala's SQL language as a new
keyword. This might interfere with use cases where a resource (db,
table, column, etc.) is named "UNNEST".
Restrictions:
- It is not allowed to have WHERE filters on an unnested item of an
array in the same SELECT query. E.g. this is not allowed:
SELECT arr1.item
FROM complextypes_arrays t, UNNEST(t.arr1) WHERE arr1.item < 5;
Note, that it is allowed to have an outer SELECT around the one
doing unnests and have a filter there on the unnested items.
- If there is an outer SELECT filtering on the unnested array's items
from the inner SELECT then these predicates won't be pushed down to
the SCAN node. They are rather evaluated in the UNNEST node to
guarantee result correctness after unnesting.
Note, this restriction is only active when there are multiple arrays
being unnested, or in other words when zipping unnest logic is
required to produce results.
- It's not allowed to do a zipping and a (traditional) joining unnest
together in one SELECT query.
- It's not allowed to perform zipping unnests on arrays from different
tables.
Testing:
- Added a bunch of E2E tests to the test suite to cover both syntaxes.
- Did a manual test run on a table with 1000 rows, 3 array columns
with size of around 5000 items in each array. I did an unnest on all
three arrays in one query to see if there are any crashes or
suspicious slowness when running on this scale.
Change-Id: Ic58ff6579ecff03962e7a8698edfbe0684ce6cf7
Reviewed-on: http://gerrit.cloudera.org:8080/17983
Reviewed-by: Csaba Ringhofer <csringhofer@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
22 KiB
22 KiB
| 1 | # Table level constraints: |
|---|---|
| 2 | # Allows for defining constraints on which file formats to generate for an individual |
| 3 | # table. The table name should match the base table name defined in the schema template |
| 4 | # file. |
| 5 | table_name:stringids, constraint:restrict_to, table_format:hbase/none/none |
| 6 | table_name:hbasecolumnfamilies, constraint:restrict_to, table_format:hbase/none/none |
| 7 | table_name:insertalltypesagg, constraint:restrict_to, table_format:hbase/none/none |
| 8 | table_name:alltypessmallbinary, constraint:restrict_to, table_format:hbase/none/none |
| 9 | table_name:insertalltypesaggbinary, constraint:restrict_to, table_format:hbase/none/none |
| 10 | table_name:hbasealltypeserror, constraint:restrict_to, table_format:hbase/none/none |
| 11 | table_name:hbasealltypeserrornonulls, constraint:restrict_to, table_format:hbase/none/none |
| 12 | table_name:alltypes_date_partition, constraint:restrict_to, table_format:text/none/none |
| 13 | table_name:alltypesinsert, constraint:restrict_to, table_format:text/none/none |
| 14 | table_name:alltypes_promoted, constraint:restrict_to, table_format:orc/def/block |
| 15 | table_name:alltypes_deleted_rows, constraint:restrict_to, table_format:orc/def/block |
| 16 | table_name:stringpartitionkey, constraint:restrict_to, table_format:text/none/none |
| 17 | table_name:alltypesnopart_insert, constraint:restrict_to, table_format:text/none/none |
| 18 | table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:text/none/none |
| 19 | table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:text/none/none |
| 20 | table_name:insert_string_partitioned, constraint:restrict_to, table_format:text/none/none |
| 21 | table_name:alltypesinsert, constraint:restrict_to, table_format:parquet/none/none |
| 22 | table_name:alltypesnopart_insert, constraint:restrict_to, table_format:parquet/none/none |
| 23 | table_name:alltypesinsert, constraint:restrict_to, table_format:text/none/none |
| 24 | table_name:alltypesnopart_insert, constraint:restrict_to, table_format:text/none/none |
| 25 | table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:text/none/none |
| 26 | table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:text/none/none |
| 27 | table_name:insert_string_partitioned, constraint:restrict_to, table_format:text/none/none |
| 28 | table_name:alltypesinsert, constraint:restrict_to, table_format:parquet/none/none |
| 29 | table_name:alltypesnopart_insert, constraint:restrict_to, table_format:parquet/none/none |
| 30 | table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:parquet/none/none |
| 31 | table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:parquet/none/none |
| 32 | table_name:insert_string_partitioned, constraint:restrict_to, table_format:parquet/none/none |
| 33 | table_name:old_rcfile_table, constraint:restrict_to, table_format:rc/none/none |
| 34 | table_name:bad_text_gzip, constraint:restrict_to, table_format:text/gzip/block |
| 35 | table_name:bad_seq_snap, constraint:restrict_to, table_format:seq/snap/block |
| 36 | table_name:bad_avro_snap_strings, constraint:restrict_to, table_format:avro/snap/block |
| 37 | table_name:bad_avro_snap_floats, constraint:restrict_to, table_format:avro/snap/block |
| 38 | table_name:bad_avro_decimal_schema, constraint:restrict_to, table_format:avro/snap/block |
| 39 | table_name:bad_avro_date_out_of_range, constraint:restrict_to, table_format:avro/snap/block |
| 40 | table_name:hive2_bad_avro_date_pre_gregorian, constraint:restrict_to, table_format:avro/snap/block |
| 41 | table_name:hive3_avro_date_pre_gregorian, constraint:restrict_to, table_format:avro/snap/block |
| 42 | table_name:bad_parquet, constraint:restrict_to, table_format:parquet/none/none |
| 43 | table_name:bad_parquet_strings_negative_len, constraint:restrict_to, table_format:parquet/none/none |
| 44 | table_name:bad_parquet_strings_out_of_bounds, constraint:restrict_to, table_format:parquet/none/none |
| 45 | table_name:bad_parquet_decimals, constraint:restrict_to, table_format:parquet/none/none |
| 46 | table_name:bad_magic_number, constraint:restrict_to, table_format:parquet/none/none |
| 47 | table_name:bad_metadata_len, constraint:restrict_to, table_format:parquet/none/none |
| 48 | table_name:bad_dict_page_offset, constraint:restrict_to, table_format:parquet/none/none |
| 49 | table_name:bad_compressed_size, constraint:restrict_to, table_format:parquet/none/none |
| 50 | table_name:alltypesagg_hive_13_1, constraint:restrict_to, table_format:parquet/none/none |
| 51 | table_name:kite_required_fields, constraint:restrict_to, table_format:parquet/none/none |
| 52 | table_name:bad_column_metadata, constraint:restrict_to, table_format:parquet/none/none |
| 53 | table_name:lineitem_multiblock, constraint:restrict_to, table_format:parquet/none/none |
| 54 | table_name:lineitem_sixblocks, constraint:restrict_to, table_format:parquet/none/none |
| 55 | table_name:lineitem_multiblock_one_row_group, constraint:restrict_to, table_format:parquet/none/none |
| 56 | table_name:customer_multiblock, constraint:restrict_to, table_format:parquet/none/none |
| 57 | table_name:hudi_partitioned, constraint:restrict_to, table_format:parquet/none/none |
| 58 | table_name:hudi_non_partitioned, constraint:restrict_to, table_format:parquet/none/none |
| 59 | table_name:hudi_as_parquet, constraint:restrict_to, table_format:parquet/none/none |
| 60 | # Iceberg tests are executed in the PARQUET file format dimension |
| 61 | table_name:airports_orc, constraint:restrict_to, table_format:parquet/none/none |
| 62 | table_name:airports_parquet, constraint:restrict_to, table_format:parquet/none/none |
| 63 | table_name:complextypestbl_iceberg_orc, constraint:restrict_to, table_format:parquet/none/none |
| 64 | table_name:hadoop_catalog_test_external, constraint:restrict_to, table_format:parquet/none/none |
| 65 | table_name:iceberg_int_partitioned, constraint:restrict_to, table_format:parquet/none/none |
| 66 | table_name:iceberg_non_partitioned, constraint:restrict_to, table_format:parquet/none/none |
| 67 | table_name:iceberg_partitioned, constraint:restrict_to, table_format:parquet/none/none |
| 68 | table_name:iceberg_partitioned_orc_external, constraint:restrict_to, table_format:parquet/none/none |
| 69 | table_name:iceberg_partition_transforms_zorder, constraint:restrict_to, table_format:parquet/none/none |
| 70 | table_name:iceberg_resolution_test_external, constraint:restrict_to, table_format:parquet/none/none |
| 71 | # TODO: Support Avro. Data loading currently fails for Avro because complex types |
| 72 | # cannot be converted to the corresponding Avro types yet. |
| 73 | table_name:allcomplextypes, constraint:restrict_to, table_format:text/none/none |
| 74 | table_name:allcomplextypes, constraint:restrict_to, table_format:parquet/none/none |
| 75 | table_name:allcomplextypes, constraint:restrict_to, table_format:hbase/none/none |
| 76 | table_name:functional, constraint:restrict_to, table_format:text/none/none |
| 77 | table_name:complextypes_fileformat, constraint:restrict_to, table_format:text/none/none |
| 78 | table_name:complextypes_fileformat, constraint:restrict_to, table_format:parquet/none/none |
| 79 | table_name:complextypes_fileformat, constraint:restrict_to, table_format:avro/snap/block |
| 80 | table_name:complextypes_fileformat, constraint:restrict_to, table_format:rc/snap/block |
| 81 | table_name:complextypes_fileformat, constraint:restrict_to, table_format:seq/snap/block |
| 82 | table_name:complextypes_fileformat, constraint:restrict_to, table_format:orc/def/block |
| 83 | table_name:complextypes_multifileformat, constraint:restrict_to, table_format:text/none/none |
| 84 | # TODO: Avro |
| 85 | table_name:complextypestbl, constraint:restrict_to, table_format:parquet/none/none |
| 86 | table_name:complextypestbl, constraint:restrict_to, table_format:orc/def/block |
| 87 | table_name:complextypestbl_minor_compacted, constraint:restrict_to, table_format:orc/def/block |
| 88 | table_name:complextypestbl_deleted_rows, constraint:restrict_to, table_format:orc/def/block |
| 89 | table_name:complextypestbl_medium, constraint:restrict_to, table_format:parquet/none/none |
| 90 | table_name:complextypestbl_medium, constraint:restrict_to, table_format:orc/def/block |
| 91 | table_name:complextypestbl_non_transactional, constraint:restrict_to, table_format:orc/def/block |
| 92 | table_name:pos_item_key_value_complextypestbl, constraint:restrict_to, table_format:orc/def/block |
| 93 | table_name:pos_item_key_value_complextypestbl, constraint:restrict_to, table_format:parquet/none/none |
| 94 | table_name:alltypes_structs, constraint:restrict_to, table_format:parquet/none/none |
| 95 | table_name:alltypes_structs, constraint:restrict_to, table_format:orc/def/block |
| 96 | table_name:complextypes_structs, constraint:restrict_to, table_format:parquet/none/none |
| 97 | table_name:complextypes_structs, constraint:restrict_to, table_format:orc/def/block |
| 98 | table_name:complextypes_nested_structs, constraint:restrict_to, table_format:parquet/none/none |
| 99 | table_name:complextypes_nested_structs, constraint:restrict_to, table_format:orc/def/block |
| 100 | table_name:complextypes_arrays, constraint:restrict_to, table_format:parquet/none/none |
| 101 | table_name:complextypes_arrays, constraint:restrict_to, table_format:orc/def/block |
| 102 | table_name:alltypeserror, constraint:exclude, table_format:parquet/none/none |
| 103 | table_name:alltypeserrornonulls, constraint:exclude, table_format:parquet/none/none |
| 104 | table_name:unsupported_types, constraint:exclude, table_format:parquet/none/none |
| 105 | table_name:escapechartesttable, constraint:exclude, table_format:parquet/none/none |
| 106 | table_name:TblWithRaggedColumns, constraint:exclude, table_format:parquet/none/none |
| 107 | # the text_ tables are for testing test delimiters and escape chars in text files |
| 108 | table_name:text_comma_backslash_newline, constraint:restrict_to, table_format:text/none/none |
| 109 | table_name:text_dollar_hash_pipe, constraint:restrict_to, table_format:text/none/none |
| 110 | table_name:text_thorn_ecirc_newline, constraint:restrict_to, table_format:text/none/none |
| 111 | table_name:bad_serde, constraint:restrict_to, table_format:text/none/none |
| 112 | table_name:rcfile_lazy_binary_serde, constraint:restrict_to, table_format:rc/none/none |
| 113 | table_name:unsupported_partition_types, constraint:restrict_to, table_format:text/none/none |
| 114 | table_name:nullformat_custom, constraint:exclude, table_format:parquet/none/none |
| 115 | table_name:alltypes_view, constraint:restrict_to, table_format:text/none/none |
| 116 | table_name:allcomplextypes_view, constraint:restrict_to, table_format:text/none/none |
| 117 | table_name:alltypes_view, constraint:restrict_to, table_format:seq/snap/block |
| 118 | table_name:alltypes_hive_view, constraint:restrict_to, table_format:text/none/none |
| 119 | table_name:alltypes_view_sub, constraint:restrict_to, table_format:text/none/none |
| 120 | table_name:alltypes_view_sub, constraint:restrict_to, table_format:seq/snap/block |
| 121 | table_name:alltypes_parens, constraint:restrict_to, table_format:text/none/none |
| 122 | table_name:complex_view, constraint:restrict_to, table_format:text/none/none |
| 123 | table_name:complex_view, constraint:restrict_to, table_format:seq/snap/block |
| 124 | table_name:view_view, constraint:restrict_to, table_format:text/none/none |
| 125 | table_name:view_view, constraint:restrict_to, table_format:seq/snap/block |
| 126 | table_name:subquery_view, constraint:restrict_to, table_format:seq/snap/block |
| 127 | table_name:subquery_view, constraint:restrict_to, table_format:rc/none/none |
| 128 | # liketbl, tblwithraggedcolumns and manynulls all have |
| 129 | # NULLs in primary key columns. hbase does not support |
| 130 | # writing NULLs to primary key columns. |
| 131 | table_name:liketbl, constraint:exclude, table_format:hbase/none/none |
| 132 | table_name:manynulls, constraint:exclude, table_format:hbase/none/none |
| 133 | table_name:tblwithraggedcolumns, constraint:exclude, table_format:hbase/none/none |
| 134 | # Tables with only one column are not supported in hbase. |
| 135 | table_name:greptiny, constraint:exclude, table_format:hbase/none/none |
| 136 | table_name:tinyinttable, constraint:exclude, table_format:hbase/none/none |
| 137 | # overflow uses a manually constructed text file which doesn't make sense to write to |
| 138 | # other table formats since the values that would be written are different (e.g. already |
| 139 | # truncated.) |
| 140 | table_name:overflow, constraint:restrict_to, table_format:text/none/none |
| 141 | # widerow has a single column with a single row containing a 10MB string. hbase doesn't |
| 142 | # seem to like this. |
| 143 | table_name:widerow, constraint:exclude, table_format:hbase/none/none |
| 144 | # nullformat_custom is used in null-insert tests, which user insert overwrite, |
| 145 | # which is not supported in hbase. The schema is also specified in HIVE_CREATE |
| 146 | # with no corresponding LOAD statement. |
| 147 | table_name:nullformat_custom, constraint:exclude, table_format:hbase/none/none |
| 148 | table_name:unsupported_types, constraint:exclude, table_format:hbase/none/none |
| 149 | # Decimal can only be tested on formats Impala can write to (text and parquet). |
| 150 | # TODO: add Avro once Hive or Impala can write Avro decimals |
| 151 | table_name:decimal_tbl, constraint:restrict_to, table_format:text/none/none |
| 152 | table_name:decimal_tiny, constraint:restrict_to, table_format:text/none/none |
| 153 | table_name:decimal_tbl, constraint:restrict_to, table_format:parquet/none/none |
| 154 | table_name:decimal_tiny, constraint:restrict_to, table_format:parquet/none/none |
| 155 | table_name:decimal_tbl, constraint:restrict_to, table_format:kudu/none/none |
| 156 | table_name:decimal_tiny, constraint:restrict_to, table_format:kudu/none/none |
| 157 | table_name:decimal_tbl, constraint:restrict_to, table_format:orc/def/block |
| 158 | table_name:decimal_tiny, constraint:restrict_to, table_format:orc/def/block |
| 159 | table_name:decimal_rtf_tbl, constraint:restrict_to, table_format:text/none/none |
| 160 | table_name:decimal_rtf_tbl, constraint:restrict_to, table_format:parquet/none/none |
| 161 | table_name:decimal_rtf_tbl, constraint:restrict_to, table_format:kudu/none/none |
| 162 | table_name:decimal_rtf_tbl, constraint:restrict_to, table_format:orc/def/block |
| 163 | table_name:decimal_rtf_tiny_tbl, constraint:restrict_to, table_format:text/none/none |
| 164 | table_name:decimal_rtf_tiny_tbl, constraint:restrict_to, table_format:parquet/none/none |
| 165 | table_name:decimal_rtf_tiny_tbl, constraint:restrict_to, table_format:kudu/none/none |
| 166 | table_name:decimal_rtf_tiny_tbl, constraint:restrict_to, table_format:orc/def/block |
| 167 | table_name:avro_decimal_tbl, constraint:restrict_to, table_format:avro/snap/block |
| 168 | # CHAR is not supported by HBase. |
| 169 | table_name:chars_tiny, constraint:exclude, table_format:hbase/none/none |
| 170 | table_name:chars_medium, constraint:exclude, table_format:hbase/none/none |
| 171 | # invalid_decimal_part_tbl[1,2,3] tables are used for testing invalid decimal |
| 172 | # partition key values (see IMPALA-1040) |
| 173 | table_name:invalid_decimal_part_tbl1, constraint:restrict_to, table_format:text/none/none |
| 174 | table_name:invalid_decimal_part_tbl2, constraint:restrict_to, table_format:text/none/none |
| 175 | table_name:invalid_decimal_part_tbl3, constraint:restrict_to, table_format:text/none/none |
| 176 | table_name:avro_decimal_tbl, constraint:restrict_to, table_format:avro/snap/block |
| 177 | # testescape tables are used for testing text scanner delimiter handling |
| 178 | table_name:table_no_newline, constraint:restrict_to, table_format:text/none/none |
| 179 | table_name:table_no_newline_part, constraint:restrict_to, table_format:text/none/none |
| 180 | table_name:testescape_16_lf, constraint:restrict_to, table_format:text/none/none |
| 181 | table_name:testescape_16_crlf, constraint:restrict_to, table_format:text/none/none |
| 182 | table_name:testescape_17_lf, constraint:restrict_to, table_format:text/none/none |
| 183 | table_name:testescape_17_crlf, constraint:restrict_to, table_format:text/none/none |
| 184 | table_name:testescape_32_lf, constraint:restrict_to, table_format:text/none/none |
| 185 | table_name:testescape_32_crlf, constraint:restrict_to, table_format:text/none/none |
| 186 | # alltimezones is used to verify that impala properly deals with timezones |
| 187 | table_name:alltimezones, constraint:restrict_to, table_format:text/none/none |
| 188 | # Avro schema is inferred from the column definitions (IMPALA-1136) |
| 189 | table_name:no_avro_schema, constraint:restrict_to, table_format:avro/snap/block |
| 190 | table_name:avro_unicode_nulls, constraint:restrict_to, table_format:avro/snap/block |
| 191 | # test single and multi stream bz2 files |
| 192 | table_name:bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block |
| 193 | table_name:large_bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block |
| 194 | table_name:multistream_bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block |
| 195 | table_name:large_multistream_bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block |
| 196 | # Kudu can't handle certain types such as timestamp so we pick and choose the tables |
| 197 | # we actually use for Kudu related tests. |
| 198 | table_name:alltypes, constraint:only, table_format:kudu/none/none |
| 199 | table_name:alltypessmall, constraint:only, table_format:kudu/none/none |
| 200 | table_name:alltypestiny, constraint:only, table_format:kudu/none/none |
| 201 | table_name:alltypesagg, constraint:only, table_format:kudu/none/none |
| 202 | table_name:alltypesaggnonulls, constraint:only, table_format:kudu/none/none |
| 203 | table_name:testtbl, constraint:only, table_format:kudu/none/none |
| 204 | table_name:jointbl, constraint:only, table_format:kudu/none/none |
| 205 | table_name:emptytable, constraint:only, table_format:kudu/none/none |
| 206 | table_name:dimtbl, constraint:only, table_format:kudu/none/none |
| 207 | table_name:tinytable, constraint:only, table_format:kudu/none/none |
| 208 | table_name:tinyinttable, constraint:only, table_format:kudu/none/none |
| 209 | table_name:zipcode_incomes, constraint:only, table_format:kudu/none/none |
| 210 | table_name:nulltable, constraint:only, table_format:kudu/none/none |
| 211 | table_name:nullrows, constraint:only, table_format:kudu/none/none |
| 212 | table_name:nullescapedtable, constraint:only, table_format:kudu/none/none |
| 213 | table_name:decimal_tbl, constraint:only, table_format:kudu/none/none |
| 214 | table_name:decimal_rtf_tbl, constraint:only, table_format:kudu/none/none |
| 215 | table_name:decimal_rtf_tiny_tbl, constraint:only, table_format:kudu/none/none |
| 216 | table_name:decimal_tiny, constraint:only, table_format:kudu/none/none |
| 217 | table_name:strings_with_quotes, constraint:only, table_format:kudu/none/none |
| 218 | table_name:manynulls, constraint:only, table_format:kudu/none/none |
| 219 | table_name:date_tbl, constraint:only, table_format:kudu/none/none |
| 220 | # Skipping header lines is only effective with text tables |
| 221 | table_name:table_with_header, constraint:restrict_to, table_format:text/none/none |
| 222 | table_name:table_with_header_2, constraint:restrict_to, table_format:text/none/none |
| 223 | table_name:table_with_header_insert, constraint:restrict_to, table_format:text/none/none |
| 224 | # We also test that skipping header lines works on compressed tables (IMPALA-5287) |
| 225 | table_name:table_with_header, constraint:restrict_to, table_format:text/gzip/block |
| 226 | table_name:table_with_header_2, constraint:restrict_to, table_format:text/gzip/block |
| 227 | table_name:table_with_header_insert, constraint:restrict_to, table_format:text/gzip/block |
| 228 | # Inserting into parquet tables should not be affected by the 'skip.header.line.count' |
| 229 | # property, so we test parquet format as well. |
| 230 | table_name:table_with_header_insert, constraint:restrict_to, table_format:parquet/none/none |
| 231 | # IMPALA-7368/IMPALA-7370/IMPALA-8198 adds DATE support for text, hbase, parquet and avro. |
| 232 | # IMPALA-8801 adds DATE support for ORC. |
| 233 | # IMPALA-8800 adds DATE support for Kudu. |
| 234 | # Other file-formats will be introduced later. |
| 235 | table_name:date_tbl, constraint:restrict_to, table_format:parquet/none/none |
| 236 | table_name:date_tbl, constraint:restrict_to, table_format:avro/snap/block |
| 237 | table_name:date_tbl, constraint:restrict_to, table_format:orc/def/block |
| 238 | table_name:date_tbl, constraint:restrict_to, table_format:hbase/none/none |
| 239 | table_name:date_tbl, constraint:restrict_to, table_format:kudu/none/none |
| 240 | table_name:date_tbl, constraint:restrict_to, table_format:text/none/none |
| 241 | table_name:date_tbl, constraint:restrict_to, table_format:text/bzip/block |
| 242 | table_name:date_tbl, constraint:restrict_to, table_format:text/gzip/block |
| 243 | table_name:date_tbl, constraint:restrict_to, table_format:text/snap/block |
| 244 | table_name:date_tbl, constraint:restrict_to, table_format:text/def/block |
| 245 | table_name:date_tbl_error, constraint:restrict_to, table_format:text/none/none |
| 246 | table_name:date_tbl_error, constraint:restrict_to, table_format:text/bzip/block |
| 247 | table_name:date_tbl_error, constraint:restrict_to, table_format:text/gzip/block |
| 248 | table_name:date_tbl_error, constraint:restrict_to, table_format:text/snap/block |
| 249 | table_name:date_tbl_error, constraint:restrict_to, table_format:text/def/block |
| 250 | table_name:insert_date_tbl, constraint:restrict_to, table_format:hbase/none/none |
| 251 | # Full transactional table is only supported for ORC |
| 252 | table_name:full_transactional_table, constraint:restrict_to, table_format:orc/def/block |
| 253 | # Insert-only transactional tables only work for file-format based tables |
| 254 | table_name:insert_only_transactional_table, constraint:exclude, table_format:hbase/none/none |
| 255 | table_name:insert_only_transactional_table, constraint:exclude, table_format:kudu/none/none |
| 256 | table_name:insertonly_nopart_insert, constraint:restrict_to, table_format:text/none/none |
| 257 | table_name:insertonly_nopart_insert, constraint:restrict_to, table_format:parquet/none/none |
| 258 | table_name:insertonly_part_insert, constraint:restrict_to, table_format:text/none/none |
| 259 | table_name:insertonly_part_insert, constraint:restrict_to, table_format:parquet/none/none |
| 260 | # 'materialized_view' is based on 'insert_only_transactional_table' from the same |
| 261 | # database, so it needs to be excluded where 'insert_only_transactional_table' is |
| 262 | # excluded. |
| 263 | table_name:materialized_view, constraint:exclude, table_format:hbase/none/none |
| 264 | table_name:materialized_view, constraint:exclude, table_format:kudu/none/none |
| 265 | table_name:insert_only_transactional_bucketed_table, constraint:exclude, table_format:hbase/none/none |
| 266 | table_name:insert_only_transactional_bucketed_table, constraint:exclude, table_format:kudu/none/none |
| 267 | # Bucketed tables only work for file-format based tables |
| 268 | table_name:bucketed_ext_table, constraint:exclude, table_format:hbase/none/none |
| 269 | table_name:bucketed_ext_table, constraint:exclude, table_format:kudu/none/none |
| 270 | table_name:bucketed_table, constraint:exclude, table_format:hbase/none/none |
| 271 | table_name:bucketed_table, constraint:exclude, table_format:kudu/none/none |
| 272 | # The uncompressed ORC tables are mainly used in test_scanners_fuzz.py to avoid creating |
| 273 | # them each time when running the test. Developers may run this test many times locally. |
| 274 | table_name:uncomp_src_alltypes, constraint:restrict_to, table_format:orc/def/block |
| 275 | table_name:uncomp_src_decimal_tbl, constraint:restrict_to, table_format:orc/def/block |
| 276 | table_name:part_strings_with_quotes, constraint:restrict_to, table_format:text/none/none |
| 277 | # 'alltypessmall_bool_sorted' only used in ORC tests. |
| 278 | table_name:alltypessmall_bool_sorted, constraint:restrict_to, table_format:orc/def/block |