Files
impala/testdata/datasets/functional/schema_constraints.csv
Gabor Kaszab df528fe2b1 IMPALA-10920: Zipping unnest for arrays
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>
2021-11-23 07:03:10 +00:00

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.
5table_name:stringids, constraint:restrict_to, table_format:hbase/none/none
6table_name:hbasecolumnfamilies, constraint:restrict_to, table_format:hbase/none/none
7table_name:insertalltypesagg, constraint:restrict_to, table_format:hbase/none/none
8table_name:alltypessmallbinary, constraint:restrict_to, table_format:hbase/none/none
9table_name:insertalltypesaggbinary, constraint:restrict_to, table_format:hbase/none/none
10table_name:hbasealltypeserror, constraint:restrict_to, table_format:hbase/none/none
11table_name:hbasealltypeserrornonulls, constraint:restrict_to, table_format:hbase/none/none
12table_name:alltypes_date_partition, constraint:restrict_to, table_format:text/none/none
13table_name:alltypesinsert, constraint:restrict_to, table_format:text/none/none
14table_name:alltypes_promoted, constraint:restrict_to, table_format:orc/def/block
15table_name:alltypes_deleted_rows, constraint:restrict_to, table_format:orc/def/block
16table_name:stringpartitionkey, constraint:restrict_to, table_format:text/none/none
17table_name:alltypesnopart_insert, constraint:restrict_to, table_format:text/none/none
18table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:text/none/none
19table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:text/none/none
20table_name:insert_string_partitioned, constraint:restrict_to, table_format:text/none/none
21table_name:alltypesinsert, constraint:restrict_to, table_format:parquet/none/none
22table_name:alltypesnopart_insert, constraint:restrict_to, table_format:parquet/none/none
23table_name:alltypesinsert, constraint:restrict_to, table_format:text/none/none
24table_name:alltypesnopart_insert, constraint:restrict_to, table_format:text/none/none
25table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:text/none/none
26table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:text/none/none
27table_name:insert_string_partitioned, constraint:restrict_to, table_format:text/none/none
28table_name:alltypesinsert, constraint:restrict_to, table_format:parquet/none/none
29table_name:alltypesnopart_insert, constraint:restrict_to, table_format:parquet/none/none
30table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:parquet/none/none
31table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:parquet/none/none
32table_name:insert_string_partitioned, constraint:restrict_to, table_format:parquet/none/none
33table_name:old_rcfile_table, constraint:restrict_to, table_format:rc/none/none
34table_name:bad_text_gzip, constraint:restrict_to, table_format:text/gzip/block
35table_name:bad_seq_snap, constraint:restrict_to, table_format:seq/snap/block
36table_name:bad_avro_snap_strings, constraint:restrict_to, table_format:avro/snap/block
37table_name:bad_avro_snap_floats, constraint:restrict_to, table_format:avro/snap/block
38table_name:bad_avro_decimal_schema, constraint:restrict_to, table_format:avro/snap/block
39table_name:bad_avro_date_out_of_range, constraint:restrict_to, table_format:avro/snap/block
40table_name:hive2_bad_avro_date_pre_gregorian, constraint:restrict_to, table_format:avro/snap/block
41table_name:hive3_avro_date_pre_gregorian, constraint:restrict_to, table_format:avro/snap/block
42table_name:bad_parquet, constraint:restrict_to, table_format:parquet/none/none
43table_name:bad_parquet_strings_negative_len, constraint:restrict_to, table_format:parquet/none/none
44table_name:bad_parquet_strings_out_of_bounds, constraint:restrict_to, table_format:parquet/none/none
45table_name:bad_parquet_decimals, constraint:restrict_to, table_format:parquet/none/none
46table_name:bad_magic_number, constraint:restrict_to, table_format:parquet/none/none
47table_name:bad_metadata_len, constraint:restrict_to, table_format:parquet/none/none
48table_name:bad_dict_page_offset, constraint:restrict_to, table_format:parquet/none/none
49table_name:bad_compressed_size, constraint:restrict_to, table_format:parquet/none/none
50table_name:alltypesagg_hive_13_1, constraint:restrict_to, table_format:parquet/none/none
51table_name:kite_required_fields, constraint:restrict_to, table_format:parquet/none/none
52table_name:bad_column_metadata, constraint:restrict_to, table_format:parquet/none/none
53table_name:lineitem_multiblock, constraint:restrict_to, table_format:parquet/none/none
54table_name:lineitem_sixblocks, constraint:restrict_to, table_format:parquet/none/none
55table_name:lineitem_multiblock_one_row_group, constraint:restrict_to, table_format:parquet/none/none
56table_name:customer_multiblock, constraint:restrict_to, table_format:parquet/none/none
57table_name:hudi_partitioned, constraint:restrict_to, table_format:parquet/none/none
58table_name:hudi_non_partitioned, constraint:restrict_to, table_format:parquet/none/none
59table_name:hudi_as_parquet, constraint:restrict_to, table_format:parquet/none/none
60# Iceberg tests are executed in the PARQUET file format dimension
61table_name:airports_orc, constraint:restrict_to, table_format:parquet/none/none
62table_name:airports_parquet, constraint:restrict_to, table_format:parquet/none/none
63table_name:complextypestbl_iceberg_orc, constraint:restrict_to, table_format:parquet/none/none
64table_name:hadoop_catalog_test_external, constraint:restrict_to, table_format:parquet/none/none
65table_name:iceberg_int_partitioned, constraint:restrict_to, table_format:parquet/none/none
66table_name:iceberg_non_partitioned, constraint:restrict_to, table_format:parquet/none/none
67table_name:iceberg_partitioned, constraint:restrict_to, table_format:parquet/none/none
68table_name:iceberg_partitioned_orc_external, constraint:restrict_to, table_format:parquet/none/none
69table_name:iceberg_partition_transforms_zorder, constraint:restrict_to, table_format:parquet/none/none
70table_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.
73table_name:allcomplextypes, constraint:restrict_to, table_format:text/none/none
74table_name:allcomplextypes, constraint:restrict_to, table_format:parquet/none/none
75table_name:allcomplextypes, constraint:restrict_to, table_format:hbase/none/none
76table_name:functional, constraint:restrict_to, table_format:text/none/none
77table_name:complextypes_fileformat, constraint:restrict_to, table_format:text/none/none
78table_name:complextypes_fileformat, constraint:restrict_to, table_format:parquet/none/none
79table_name:complextypes_fileformat, constraint:restrict_to, table_format:avro/snap/block
80table_name:complextypes_fileformat, constraint:restrict_to, table_format:rc/snap/block
81table_name:complextypes_fileformat, constraint:restrict_to, table_format:seq/snap/block
82table_name:complextypes_fileformat, constraint:restrict_to, table_format:orc/def/block
83table_name:complextypes_multifileformat, constraint:restrict_to, table_format:text/none/none
84# TODO: Avro
85table_name:complextypestbl, constraint:restrict_to, table_format:parquet/none/none
86table_name:complextypestbl, constraint:restrict_to, table_format:orc/def/block
87table_name:complextypestbl_minor_compacted, constraint:restrict_to, table_format:orc/def/block
88table_name:complextypestbl_deleted_rows, constraint:restrict_to, table_format:orc/def/block
89table_name:complextypestbl_medium, constraint:restrict_to, table_format:parquet/none/none
90table_name:complextypestbl_medium, constraint:restrict_to, table_format:orc/def/block
91table_name:complextypestbl_non_transactional, constraint:restrict_to, table_format:orc/def/block
92table_name:pos_item_key_value_complextypestbl, constraint:restrict_to, table_format:orc/def/block
93table_name:pos_item_key_value_complextypestbl, constraint:restrict_to, table_format:parquet/none/none
94table_name:alltypes_structs, constraint:restrict_to, table_format:parquet/none/none
95table_name:alltypes_structs, constraint:restrict_to, table_format:orc/def/block
96table_name:complextypes_structs, constraint:restrict_to, table_format:parquet/none/none
97table_name:complextypes_structs, constraint:restrict_to, table_format:orc/def/block
98table_name:complextypes_nested_structs, constraint:restrict_to, table_format:parquet/none/none
99table_name:complextypes_nested_structs, constraint:restrict_to, table_format:orc/def/block
100table_name:complextypes_arrays, constraint:restrict_to, table_format:parquet/none/none
101table_name:complextypes_arrays, constraint:restrict_to, table_format:orc/def/block
102table_name:alltypeserror, constraint:exclude, table_format:parquet/none/none
103table_name:alltypeserrornonulls, constraint:exclude, table_format:parquet/none/none
104table_name:unsupported_types, constraint:exclude, table_format:parquet/none/none
105table_name:escapechartesttable, constraint:exclude, table_format:parquet/none/none
106table_name:TblWithRaggedColumns, constraint:exclude, table_format:parquet/none/none
107# the text_ tables are for testing test delimiters and escape chars in text files
108table_name:text_comma_backslash_newline, constraint:restrict_to, table_format:text/none/none
109table_name:text_dollar_hash_pipe, constraint:restrict_to, table_format:text/none/none
110table_name:text_thorn_ecirc_newline, constraint:restrict_to, table_format:text/none/none
111table_name:bad_serde, constraint:restrict_to, table_format:text/none/none
112table_name:rcfile_lazy_binary_serde, constraint:restrict_to, table_format:rc/none/none
113table_name:unsupported_partition_types, constraint:restrict_to, table_format:text/none/none
114table_name:nullformat_custom, constraint:exclude, table_format:parquet/none/none
115table_name:alltypes_view, constraint:restrict_to, table_format:text/none/none
116table_name:allcomplextypes_view, constraint:restrict_to, table_format:text/none/none
117table_name:alltypes_view, constraint:restrict_to, table_format:seq/snap/block
118table_name:alltypes_hive_view, constraint:restrict_to, table_format:text/none/none
119table_name:alltypes_view_sub, constraint:restrict_to, table_format:text/none/none
120table_name:alltypes_view_sub, constraint:restrict_to, table_format:seq/snap/block
121table_name:alltypes_parens, constraint:restrict_to, table_format:text/none/none
122table_name:complex_view, constraint:restrict_to, table_format:text/none/none
123table_name:complex_view, constraint:restrict_to, table_format:seq/snap/block
124table_name:view_view, constraint:restrict_to, table_format:text/none/none
125table_name:view_view, constraint:restrict_to, table_format:seq/snap/block
126table_name:subquery_view, constraint:restrict_to, table_format:seq/snap/block
127table_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.
131table_name:liketbl, constraint:exclude, table_format:hbase/none/none
132table_name:manynulls, constraint:exclude, table_format:hbase/none/none
133table_name:tblwithraggedcolumns, constraint:exclude, table_format:hbase/none/none
134# Tables with only one column are not supported in hbase.
135table_name:greptiny, constraint:exclude, table_format:hbase/none/none
136table_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.)
140table_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.
143table_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.
147table_name:nullformat_custom, constraint:exclude, table_format:hbase/none/none
148table_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
151table_name:decimal_tbl, constraint:restrict_to, table_format:text/none/none
152table_name:decimal_tiny, constraint:restrict_to, table_format:text/none/none
153table_name:decimal_tbl, constraint:restrict_to, table_format:parquet/none/none
154table_name:decimal_tiny, constraint:restrict_to, table_format:parquet/none/none
155table_name:decimal_tbl, constraint:restrict_to, table_format:kudu/none/none
156table_name:decimal_tiny, constraint:restrict_to, table_format:kudu/none/none
157table_name:decimal_tbl, constraint:restrict_to, table_format:orc/def/block
158table_name:decimal_tiny, constraint:restrict_to, table_format:orc/def/block
159table_name:decimal_rtf_tbl, constraint:restrict_to, table_format:text/none/none
160table_name:decimal_rtf_tbl, constraint:restrict_to, table_format:parquet/none/none
161table_name:decimal_rtf_tbl, constraint:restrict_to, table_format:kudu/none/none
162table_name:decimal_rtf_tbl, constraint:restrict_to, table_format:orc/def/block
163table_name:decimal_rtf_tiny_tbl, constraint:restrict_to, table_format:text/none/none
164table_name:decimal_rtf_tiny_tbl, constraint:restrict_to, table_format:parquet/none/none
165table_name:decimal_rtf_tiny_tbl, constraint:restrict_to, table_format:kudu/none/none
166table_name:decimal_rtf_tiny_tbl, constraint:restrict_to, table_format:orc/def/block
167table_name:avro_decimal_tbl, constraint:restrict_to, table_format:avro/snap/block
168# CHAR is not supported by HBase.
169table_name:chars_tiny, constraint:exclude, table_format:hbase/none/none
170table_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)
173table_name:invalid_decimal_part_tbl1, constraint:restrict_to, table_format:text/none/none
174table_name:invalid_decimal_part_tbl2, constraint:restrict_to, table_format:text/none/none
175table_name:invalid_decimal_part_tbl3, constraint:restrict_to, table_format:text/none/none
176table_name:avro_decimal_tbl, constraint:restrict_to, table_format:avro/snap/block
177# testescape tables are used for testing text scanner delimiter handling
178table_name:table_no_newline, constraint:restrict_to, table_format:text/none/none
179table_name:table_no_newline_part, constraint:restrict_to, table_format:text/none/none
180table_name:testescape_16_lf, constraint:restrict_to, table_format:text/none/none
181table_name:testescape_16_crlf, constraint:restrict_to, table_format:text/none/none
182table_name:testescape_17_lf, constraint:restrict_to, table_format:text/none/none
183table_name:testescape_17_crlf, constraint:restrict_to, table_format:text/none/none
184table_name:testescape_32_lf, constraint:restrict_to, table_format:text/none/none
185table_name:testescape_32_crlf, constraint:restrict_to, table_format:text/none/none
186# alltimezones is used to verify that impala properly deals with timezones
187table_name:alltimezones, constraint:restrict_to, table_format:text/none/none
188# Avro schema is inferred from the column definitions (IMPALA-1136)
189table_name:no_avro_schema, constraint:restrict_to, table_format:avro/snap/block
190table_name:avro_unicode_nulls, constraint:restrict_to, table_format:avro/snap/block
191# test single and multi stream bz2 files
192table_name:bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block
193table_name:large_bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block
194table_name:multistream_bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block
195table_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.
198table_name:alltypes, constraint:only, table_format:kudu/none/none
199table_name:alltypessmall, constraint:only, table_format:kudu/none/none
200table_name:alltypestiny, constraint:only, table_format:kudu/none/none
201table_name:alltypesagg, constraint:only, table_format:kudu/none/none
202table_name:alltypesaggnonulls, constraint:only, table_format:kudu/none/none
203table_name:testtbl, constraint:only, table_format:kudu/none/none
204table_name:jointbl, constraint:only, table_format:kudu/none/none
205table_name:emptytable, constraint:only, table_format:kudu/none/none
206table_name:dimtbl, constraint:only, table_format:kudu/none/none
207table_name:tinytable, constraint:only, table_format:kudu/none/none
208table_name:tinyinttable, constraint:only, table_format:kudu/none/none
209table_name:zipcode_incomes, constraint:only, table_format:kudu/none/none
210table_name:nulltable, constraint:only, table_format:kudu/none/none
211table_name:nullrows, constraint:only, table_format:kudu/none/none
212table_name:nullescapedtable, constraint:only, table_format:kudu/none/none
213table_name:decimal_tbl, constraint:only, table_format:kudu/none/none
214table_name:decimal_rtf_tbl, constraint:only, table_format:kudu/none/none
215table_name:decimal_rtf_tiny_tbl, constraint:only, table_format:kudu/none/none
216table_name:decimal_tiny, constraint:only, table_format:kudu/none/none
217table_name:strings_with_quotes, constraint:only, table_format:kudu/none/none
218table_name:manynulls, constraint:only, table_format:kudu/none/none
219table_name:date_tbl, constraint:only, table_format:kudu/none/none
220# Skipping header lines is only effective with text tables
221table_name:table_with_header, constraint:restrict_to, table_format:text/none/none
222table_name:table_with_header_2, constraint:restrict_to, table_format:text/none/none
223table_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)
225table_name:table_with_header, constraint:restrict_to, table_format:text/gzip/block
226table_name:table_with_header_2, constraint:restrict_to, table_format:text/gzip/block
227table_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.
230table_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.
235table_name:date_tbl, constraint:restrict_to, table_format:parquet/none/none
236table_name:date_tbl, constraint:restrict_to, table_format:avro/snap/block
237table_name:date_tbl, constraint:restrict_to, table_format:orc/def/block
238table_name:date_tbl, constraint:restrict_to, table_format:hbase/none/none
239table_name:date_tbl, constraint:restrict_to, table_format:kudu/none/none
240table_name:date_tbl, constraint:restrict_to, table_format:text/none/none
241table_name:date_tbl, constraint:restrict_to, table_format:text/bzip/block
242table_name:date_tbl, constraint:restrict_to, table_format:text/gzip/block
243table_name:date_tbl, constraint:restrict_to, table_format:text/snap/block
244table_name:date_tbl, constraint:restrict_to, table_format:text/def/block
245table_name:date_tbl_error, constraint:restrict_to, table_format:text/none/none
246table_name:date_tbl_error, constraint:restrict_to, table_format:text/bzip/block
247table_name:date_tbl_error, constraint:restrict_to, table_format:text/gzip/block
248table_name:date_tbl_error, constraint:restrict_to, table_format:text/snap/block
249table_name:date_tbl_error, constraint:restrict_to, table_format:text/def/block
250table_name:insert_date_tbl, constraint:restrict_to, table_format:hbase/none/none
251# Full transactional table is only supported for ORC
252table_name:full_transactional_table, constraint:restrict_to, table_format:orc/def/block
253# Insert-only transactional tables only work for file-format based tables
254table_name:insert_only_transactional_table, constraint:exclude, table_format:hbase/none/none
255table_name:insert_only_transactional_table, constraint:exclude, table_format:kudu/none/none
256table_name:insertonly_nopart_insert, constraint:restrict_to, table_format:text/none/none
257table_name:insertonly_nopart_insert, constraint:restrict_to, table_format:parquet/none/none
258table_name:insertonly_part_insert, constraint:restrict_to, table_format:text/none/none
259table_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.
263table_name:materialized_view, constraint:exclude, table_format:hbase/none/none
264table_name:materialized_view, constraint:exclude, table_format:kudu/none/none
265table_name:insert_only_transactional_bucketed_table, constraint:exclude, table_format:hbase/none/none
266table_name:insert_only_transactional_bucketed_table, constraint:exclude, table_format:kudu/none/none
267# Bucketed tables only work for file-format based tables
268table_name:bucketed_ext_table, constraint:exclude, table_format:hbase/none/none
269table_name:bucketed_ext_table, constraint:exclude, table_format:kudu/none/none
270table_name:bucketed_table, constraint:exclude, table_format:hbase/none/none
271table_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.
274table_name:uncomp_src_alltypes, constraint:restrict_to, table_format:orc/def/block
275table_name:uncomp_src_decimal_tbl, constraint:restrict_to, table_format:orc/def/block
276table_name:part_strings_with_quotes, constraint:restrict_to, table_format:text/none/none
277# 'alltypessmall_bool_sorted' only used in ORC tests.
278table_name:alltypessmall_bool_sorted, constraint:restrict_to, table_format:orc/def/block