Files
impala/testdata/workloads/functional-query/queries/QueryTest/show.test
Huaisi Xu c1da1409ba IMPALA-3711: Remove unnecessary privilege checks in getDbsMetadata()
Previously all code paths using getDbsMetadata() sufferred
unnecessary privilege checks:
1. Impala checked privilege of all databases, tables before
applying user provided JDBC pattern filters.
2. Impala passed a null pattern to getDbsMetadata() when
user did not provide one. However, null pattern is treated
as "%", which matches everything thereby causing unnecessary
privilege checks for catalog objects that are not in the
result set.

This patch creates PatternMatcher early so that user specified
null pattern is respected when calling getDbsMetadata().

Change-Id: I17d8c5b9fb12483e4b01b819fba48b6849311a14
Reviewed-on: http://gerrit.cloudera.org:8080/3371
Reviewed-by: Huaisi Xu <hxu@cloudera.com>
Tested-by: Huaisi Xu <hxu@cloudera.com>
2016-07-07 10:41:29 -07:00

313 lines
7.3 KiB
Plaintext

====
---- QUERY
# use functional
use functional
====
---- QUERY
# Simple pattern literal
show tables "alltypes"
---- RESULTS
'alltypes'
---- TYPES
STRING
====
---- QUERY
# Pattern with wildcard
show tables "all*ypes"
---- RESULTS
'alltypes'
'allcomplextypes'
---- TYPES
STRING
====
---- QUERY
# Empty string matches nothing
show tables ""
---- RESULTS
---- TYPES
STRING
====
---- QUERY
# Check that regex metacharacters are being escaped
show tables '+alltypes'
---- RESULTS
---- TYPES
STRING
====
---- QUERY
# Fully qualified names will not match
show tables "functional.alltypes"
---- RESULTS
---- TYPES
STRING
====
---- QUERY
# Database names are case insensitive.
USE FUNCTIONAL
---- RESULTS
====
---- QUERY
# Different database
# We have no SHOW TABLES with no pattern test since the set of tables is
# changing often, and may be different depending on whether benchmark data is
# loaded, for example.
show tables '*'
---- RESULTS: VERIFY_IS_SUBSET
'alltypes'
'alltypesagg'
'alltypesaggmultifiles'
'alltypesaggmultifilesnopart'
'alltypesaggnonulls'
'alltypeserror'
'alltypeserrornonulls'
'alltypesinsert'
'alltypesmixedformat'
'alltypesnopart'
'alltypesnopart_insert'
'alltypessmall'
'alltypestiny'
'dimtbl'
'emptytable'
'greptiny'
'insert_overwrite_nopart'
'insert_overwrite_partitioned'
'jointbl'
'liketbl'
'nullescapedtable'
'nullinsert'
'nullinsert_alt'
'nulltable'
'rankingssmall'
'stringpartitionkey'
'tblwithraggedcolumns'
'testtbl'
'text_comma_backslash_newline'
'text_dollar_hash_pipe'
'tinyinttable'
'tinytable'
'uservisitssmall'
'zipcode_incomes'
---- TYPES
STRING
====
---- QUERY
# Choice amongst patterns
show tables "alltypes|stringpartitionkey|testtbl"
---- RESULTS
'alltypes'
'stringpartitionkey'
'testtbl'
---- TYPES
STRING
====
---- QUERY
# Show tables in
show tables in functional
---- RESULTS: VERIFY_IS_SUBSET
'alltypes'
'alltypesagg'
'alltypesaggmultifiles'
'alltypesaggmultifilesnopart'
'alltypesaggnonulls'
'alltypeserror'
'alltypeserrornonulls'
'alltypesinsert'
'alltypesmixedformat'
'alltypesnopart'
'alltypesnopart_insert'
'alltypessmall'
'alltypestiny'
'dimtbl'
'emptytable'
'greptiny'
'insert_overwrite_nopart'
'insert_overwrite_partitioned'
'jointbl'
'liketbl'
'nullescapedtable'
'nullinsert'
'nullinsert_alt'
'nulltable'
'overflow'
'rankingssmall'
'stringpartitionkey'
'tblwithraggedcolumns'
'testtbl'
'text_comma_backslash_newline'
'text_dollar_hash_pipe'
'tinyinttable'
'tinytable'
'uservisitssmall'
'zipcode_incomes'
---- TYPES
STRING
====
---- QUERY
# Show tables in with a pattern
show tables in functional like 'alltypesagg*'
---- RESULTS
'alltypesagg'
'alltypesaggmultifiles'
'alltypesaggmultifilesnopart'
'alltypesaggnonulls'
---- TYPES
STRING
====
---- QUERY
# Impala only considers '*' and '|' as meta-characters in SHOW statements
# See IMPALA-3744
show tables in functional like 'alltypesag.'
---- RESULTS
---- TYPES
STRING
====
---- QUERY
show tables in functional like 'alltypesag.*'
---- RESULTS
---- TYPES
STRING
====
---- QUERY
show tables in functional like 'alltypesagg%'
---- RESULTS
---- TYPES
STRING
====
---- QUERY
show tables in functional like 'alltypesag_'
---- RESULTS
---- TYPES
STRING
====
---- QUERY
# Coverage of syntax variations.
show tables in functional 'alltypesagg'
---- RESULTS
'alltypesagg'
---- TYPES
STRING
====
---- QUERY
show tables in functional like 'alltypesagg'
---- RESULTS
'alltypesagg'
---- TYPES
STRING
====
---- QUERY
show tables 'alltypesagg'
---- RESULTS
'alltypesagg'
---- TYPES
STRING
====
---- QUERY
show tables like 'alltypesagg'
---- RESULTS
'alltypesagg'
---- TYPES
STRING
====
---- QUERY
# Show databases
show databases like 'tpcds'
---- RESULTS
'tpcds',''
---- TYPES
STRING,STRING
====
---- QUERY
show databases like 'functional'
---- RESULTS
'functional',''
---- TYPES
STRING,STRING
====
---- QUERY
show databases like 'functional'
---- RESULTS
'functional',''
---- TYPES
STRING,STRING
====
---- QUERY
show databases like 'def*'
---- RESULTS
'default','Default Hive database'
---- TYPES
STRING,STRING
====
---- QUERY
# Impala only considers '*' and '|' as meta-characters in SHOW statements
# See IMPALA-3744
show databases like 'defaul.*'
---- RESULTS
---- TYPES
STRING,STRING
====
---- QUERY
show databases like 'defaul_'
---- RESULTS
---- TYPES
STRING,STRING
====
---- QUERY
show databases like 'def%'
---- RESULTS
---- TYPES
STRING,STRING
====
---- QUERY
show databases like 'defaul.'
---- RESULTS
---- TYPES
STRING,STRING
====
---- QUERY
show files in alltypesagg
---- LABELS
Path,Size,Partition
---- RESULTS
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=__HIVE_DEFAULT_PARTITION__/000000_0',regex:.*,'year=2010/month=1/day=__HIVE_DEFAULT_PARTITION__'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=1/100101.txt',regex:.*,'year=2010/month=1/day=1'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=2/100102.txt',regex:.*,'year=2010/month=1/day=2'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=3/100103.txt',regex:.*,'year=2010/month=1/day=3'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=4/100104.txt',regex:.*,'year=2010/month=1/day=4'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=5/100105.txt',regex:.*,'year=2010/month=1/day=5'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=6/100106.txt',regex:.*,'year=2010/month=1/day=6'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=7/100107.txt',regex:.*,'year=2010/month=1/day=7'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=8/100108.txt',regex:.*,'year=2010/month=1/day=8'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=9/100109.txt',regex:.*,'year=2010/month=1/day=9'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=10/100110.txt',regex:.*,'year=2010/month=1/day=10'
---- TYPES
STRING,STRING,STRING
====
---- QUERY
show files in functional.alltypesagg
---- LABELS
Path,Size,Partition
---- RESULTS
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=__HIVE_DEFAULT_PARTITION__/000000_0',regex:.*,'year=2010/month=1/day=__HIVE_DEFAULT_PARTITION__'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=1/100101.txt',regex:.*,'year=2010/month=1/day=1'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=2/100102.txt',regex:.*,'year=2010/month=1/day=2'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=3/100103.txt',regex:.*,'year=2010/month=1/day=3'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=4/100104.txt',regex:.*,'year=2010/month=1/day=4'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=5/100105.txt',regex:.*,'year=2010/month=1/day=5'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=6/100106.txt',regex:.*,'year=2010/month=1/day=6'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=7/100107.txt',regex:.*,'year=2010/month=1/day=7'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=8/100108.txt',regex:.*,'year=2010/month=1/day=8'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=9/100109.txt',regex:.*,'year=2010/month=1/day=9'
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=10/100110.txt',regex:.*,'year=2010/month=1/day=10'
---- TYPES
STRING,STRING,STRING
====
---- QUERY
show files in alltypesagg partition(year=2010,month=1,day=NULL)
---- LABELS
Path,Size,Partition
---- RESULTS
'$NAMENODE/test-warehouse/alltypesagg/year=2010/month=1/day=__HIVE_DEFAULT_PARTITION__/000000_0',regex:.*,'year=2010/month=1/day=__HIVE_DEFAULT_PARTITION__'
---- TYPES
STRING,STRING,STRING
====