Files
impala/testdata/datasets/functional/schema_constraints.csv
Alex Behm c77fb628f7 IMPALA-3915: Register privilege and audit requests when analyzing resolved table refs.
The bug: We used to register privilege requests for table refs in TableRef.analyze()
which only got called for unresolved TableRefs. As a result, a reference to a view that
contains a subquery did not get properly authorized, explained as follows.
1. In the first analysis pass the view is replaced by a an InlineViewRef and we
   correctly register an authorizarion request.
2. We rewrite the subquery via the StmtRewriter and wipe the analysis state, but
   preserve the InlineViewRef that replaces the view reference.
3. The rewritten statement is analyzed again, but since an InlineViewRef is
   considered to be resolved, we never call TableRef.analyze(), and hence
   never register an authorization event for the view.

The fix: We now register authorization and auditing events when calling analyze() on a
resolved TableRef (BaseTableRef, InlineViewRef, CollectionTableRef).

Change-Id: I18fa8af9a94ce190c5a3c29c3221c659a2ace659
Reviewed-on: http://gerrit.cloudera.org:8080/3783
Reviewed-by: Alex Behm <alex.behm@cloudera.com>
Tested-by: Internal Jenkins
2016-07-29 05:16:23 +00:00

12 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:alltypesinsert, constraint:restrict_to, table_format:text/none/none
13table_name:alltypesnopart_insert, constraint:restrict_to, table_format:text/none/none
14table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:text/none/none
15table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:text/none/none
16table_name:insert_string_partitioned, constraint:restrict_to, table_format:text/none/none
17table_name:alltypesinsert, constraint:restrict_to, table_format:parquet/none/none
18table_name:alltypesnopart_insert, constraint:restrict_to, table_format:parquet/none/none
19table_name:alltypesinsert, constraint:restrict_to, table_format:text/none/none
20table_name:alltypesnopart_insert, constraint:restrict_to, table_format:text/none/none
21table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:text/none/none
22table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:text/none/none
23table_name:insert_string_partitioned, constraint:restrict_to, table_format:text/none/none
24table_name:alltypesinsert, constraint:restrict_to, table_format:parquet/none/none
25table_name:alltypesnopart_insert, constraint:restrict_to, table_format:parquet/none/none
26table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:parquet/none/none
27table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:parquet/none/none
28table_name:insert_string_partitioned, constraint:restrict_to, table_format:parquet/none/none
29table_name:old_rcfile_table, constraint:restrict_to, table_format:rc/none/none
30table_name:bad_text_lzo, constraint:restrict_to, table_format:text/lzo/block
31table_name:bad_text_gzip, constraint:restrict_to, table_format:text/gzip/block
32table_name:bad_seq_snap, constraint:restrict_to, table_format:seq/snap/block
33table_name:bad_avro_snap_strings, constraint:restrict_to, table_format:avro/snap/block
34table_name:bad_avro_snap_floats, constraint:restrict_to, table_format:avro/snap/block
35table_name:bad_parquet, constraint:restrict_to, table_format:parquet/none/none
36table_name:bad_parquet_strings_negative_len, constraint:restrict_to, table_format:parquet/none/none
37table_name:bad_parquet_strings_out_of_bounds, constraint:restrict_to, table_format:parquet/none/none
38table_name:bad_magic_number, constraint:restrict_to, table_format:parquet/none/none
39table_name:bad_metadata_len, constraint:restrict_to, table_format:parquet/none/none
40table_name:bad_dict_page_offset, constraint:restrict_to, table_format:parquet/none/none
41table_name:bad_compressed_size, constraint:restrict_to, table_format:parquet/none/none
42table_name:alltypesagg_hive_13_1, constraint:restrict_to, table_format:parquet/none/none
43table_name:kite_required_fields, constraint:restrict_to, table_format:parquet/none/none
44table_name:bad_column_metadata, constraint:restrict_to, table_format:parquet/none/none
45table_name:lineitem_multiblock, constraint:restrict_to, table_format:parquet/none/none
46table_name:lineitem_sixblocks, constraint:restrict_to, table_format:parquet/none/none
47table_name:lineitem_multiblock_one_row_group, constraint:restrict_to, table_format:parquet/none/none
48# TODO: Support Avro. Data loading currently fails for Avro because complex types
49# cannot be converted to the corresponding Avro types yet.
50table_name:allcomplextypes, constraint:restrict_to, table_format:text/none/none
51table_name:allcomplextypes, constraint:restrict_to, table_format:parquet/none/none
52table_name:allcomplextypes, constraint:restrict_to, table_format:hbase/none/none
53table_name:functional, constraint:restrict_to, table_format:text/none/none
54table_name:complextypes_fileformat, constraint:restrict_to, table_format:text/none/none
55table_name:complextypes_fileformat, constraint:restrict_to, table_format:parquet/none/none
56table_name:complextypes_fileformat, constraint:restrict_to, table_format:avro/snap/block
57table_name:complextypes_fileformat, constraint:restrict_to, table_format:rc/snap/block
58table_name:complextypes_fileformat, constraint:restrict_to, table_format:seq/snap/block
59table_name:complextypes_multifileformat, constraint:restrict_to, table_format:text/none/none
60# TODO: Avro
61table_name:complextypestbl, constraint:restrict_to, table_format:parquet/none/none
62table_name:alltypeserror, constraint:exclude, table_format:parquet/none/none
63table_name:alltypeserrornonulls, constraint:exclude, table_format:parquet/none/none
64table_name:unsupported_types, constraint:exclude, table_format:parquet/none/none
65table_name:escapechartesttable, constraint:exclude, table_format:parquet/none/none
66table_name:TblWithRaggedColumns, constraint:exclude, table_format:parquet/none/none
67# the text_ tables are for testing test delimiters and escape chars in text files
68table_name:text_comma_backslash_newline, constraint:restrict_to, table_format:text/none/none
69table_name:text_dollar_hash_pipe, constraint:restrict_to, table_format:text/none/none
70table_name:text_thorn_ecirc_newline, constraint:restrict_to, table_format:text/none/none
71table_name:bad_serde, constraint:restrict_to, table_format:text/none/none
72table_name:rcfile_lazy_binary_serde, constraint:restrict_to, table_format:rc/none/none
73table_name:unsupported_partition_types, constraint:restrict_to, table_format:text/none/none
74table_name:nullformat_custom, constraint:exclude, table_format:parquet/none/none
75table_name:alltypes_view, constraint:restrict_to, table_format:text/none/none
76table_name:allcomplextypes_view, constraint:restrict_to, table_format:text/none/none
77table_name:alltypes_view, constraint:restrict_to, table_format:seq/snap/block
78table_name:alltypes_hive_view, constraint:restrict_to, table_format:text/none/none
79table_name:alltypes_view_sub, constraint:restrict_to, table_format:text/none/none
80table_name:alltypes_view_sub, constraint:restrict_to, table_format:seq/snap/block
81table_name:alltypes_parens, constraint:restrict_to, table_format:text/none/none
82table_name:complex_view, constraint:restrict_to, table_format:text/none/none
83table_name:complex_view, constraint:restrict_to, table_format:seq/snap/block
84table_name:view_view, constraint:restrict_to, table_format:text/none/none
85table_name:view_view, constraint:restrict_to, table_format:seq/snap/block
86table_name:subquery_view, constraint:restrict_to, table_format:seq/snap/block
87table_name:subquery_view, constraint:restrict_to, table_format:rc/none/none
88# liketbl and tblwithraggedcolumns all have
89# NULLs in primary key columns. hbase does not support
90# writing NULLs to primary key columns.
91table_name:liketbl, constraint:exclude, table_format:hbase/none/none
92table_name:tblwithraggedcolumns, constraint:exclude, table_format:hbase/none/none
93# Tables with only one column are not supported in hbase.
94table_name:greptiny, constraint:exclude, table_format:hbase/none/none
95table_name:tinyinttable, constraint:exclude, table_format:hbase/none/none
96# overflow uses a manually constructed text file which doesn't make sense to write to
97# other table formats since the values that would be written are different (e.g. already
98# truncated.)
99table_name:overflow, constraint:restrict_to, table_format:text/none/none
100# widerow has a single column with a single row containing a 10MB string. hbase doesn't
101# seem to like this.
102table_name:widerow, constraint:exclude, table_format:hbase/none/none
103# nullformat_custom is used in null-insert tests, which user insert overwrite,
104# which is not supported in hbase. The schema is also specified in HIVE_CREATE
105# with no corresponding LOAD statement.
106table_name:nullformat_custom, constraint:exclude, table_format:hbase/none/none
107table_name:unsupported_types, constraint:exclude, table_format:hbase/none/none
108# On CDH4, decimal can only be tested on formats Impala can write to (text and parquet)
109# TODO: add Avro once Hive or Impala can write Avro decimals
110table_name:decimal_tbl, constraint:restrict_to, table_format:text/none/none
111table_name:decimal_tiny, constraint:restrict_to, table_format:text/none/none
112table_name:decimal_tbl, constraint:restrict_to, table_format:parquet/none/none
113table_name:decimal_tiny, constraint:restrict_to, table_format:parquet/none/none
114table_name:avro_decimal_tbl, constraint:restrict_to, table_format:avro/snap/block
115# TODO first set of tests are for text/none/none
116table_name:chars_tiny, constraint:restrict_to, table_format:text/none/none
117# invalid_decimal_part_tbl[1,2,3] tables are used for testing invalid decimal
118# partition key values (see IMPALA-1040)
119table_name:invalid_decimal_part_tbl1, constraint:restrict_to, table_format:text/none/none
120table_name:invalid_decimal_part_tbl2, constraint:restrict_to, table_format:text/none/none
121table_name:invalid_decimal_part_tbl3, constraint:restrict_to, table_format:text/none/none
122table_name:avro_decimal_tbl, constraint:restrict_to, table_format:avro/snap/block
123# testescape tables are used for testing text scanner delimiter handling
124table_name:table_no_newline, constraint:restrict_to, table_format:text/none/none
125table_name:table_no_newline_part, constraint:restrict_to, table_format:text/none/none
126table_name:testescape_16_lf, constraint:restrict_to, table_format:text/none/none
127table_name:testescape_16_crlf, constraint:restrict_to, table_format:text/none/none
128table_name:testescape_17_lf, constraint:restrict_to, table_format:text/none/none
129table_name:testescape_17_crlf, constraint:restrict_to, table_format:text/none/none
130table_name:testescape_32_lf, constraint:restrict_to, table_format:text/none/none
131table_name:testescape_32_crlf, constraint:restrict_to, table_format:text/none/none
132# alltimezones is used to verify that impala properly deals with timezones
133table_name:alltimezones, constraint:restrict_to, table_format:text/none/none
134# Avro schema is inferred from the column definitions (IMPALA-1136)
135table_name:no_avro_schema, constraint:restrict_to, table_format:avro/snap/block
136table_name:avro_unicode_nulls, constraint:restrict_to, table_format:avro/snap/block
137# test single and multi stream bz2 files
138table_name:bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block
139table_name:large_bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block
140table_name:multistream_bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block
141table_name:large_multistream_bzip2_tbl, constraint:restrict_to, table_format:text/bzip/block
142# Kudu can't handle certain types such as timestamp so we pick and choose the tables
143# we actually use for Kudu related tests.
144table_name:testtbl, constraint:only, table_format:kudu/none/none
145table_name:dimtbl, constraint:only, table_format:kudu/none/none
146table_name:text_comma_backslash_newline, constraint:only, table_format:kudu/none/none
147table_name:tinytable, constraint:only, table_format:kudu/none/none
148table_name:tinyinttable, constraint:only, table_format:kudu/none/none
149table_name:zipcode_incomes, constraint:only, table_format:kudu/none/none
150# Skipping header lines is only effective with text tables
151table_name:table_with_header, constraint:restrict_to, table_format:text/none/none
152table_name:table_with_header_2, constraint:restrict_to, table_format:text/none/none
153table_name:table_with_header_insert, constraint:restrict_to, table_format:text/none/none
154# Inserting into parquet tables should not be affected by the 'skip.header.line.count'
155# property, so we test parquet format as well.
156table_name:table_with_header_insert, constraint:restrict_to, table_format:parquet/none/none