You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by mj...@apache.org on 2016/09/02 20:13:44 UTC
[4/5] incubator-impala git commit: IMPALA-3491: Use unique database
fixture in test_ddl.py.
IMPALA-3491: Use unique database fixture in test_ddl.py.
Adds new parametrization to the unique database fixture:
- num_dbs: allows creating multiple unique databases at once;
the 2nd, 3rd, etc. datbase name is generated by appending
"2", "3", etc., to the first database name
- sync_ddl: allows creating the dabatases(s) with sync_ddl
which is needed by most tests in test_ddl.py
Testing: I ran debug/core and debug/exhaustive on HDFS and
core/debug on S3. Also ran the test locally in a loop on
exhaustive.
Change-Id: Idf667dd5e960768879c019e2037cf48ad4e4241b
Reviewed-on: http://gerrit.cloudera.org:8080/4155
Reviewed-by: Alex Behm <al...@cloudera.com>
Tested-by: Internal Jenkins
Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/ab9e54bc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/ab9e54bc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/ab9e54bc
Branch: refs/heads/master
Commit: ab9e54bc4298549048b1935837e8e818d5b980ce
Parents: 16f1c8d
Author: Alex Behm <al...@cloudera.com>
Authored: Tue May 10 01:01:32 2016 -0700
Committer: Internal Jenkins <cl...@gerrit.cloudera.org>
Committed: Fri Sep 2 02:47:02 2016 +0000
----------------------------------------------------------------------
.../queries/QueryTest/alter-table.test | 186 +++---
.../queries/QueryTest/create-database.test | 57 +-
.../QueryTest/create-table-as-select.test | 10 +-
.../QueryTest/create-table-like-file.test | 32 +-
.../queries/QueryTest/create-table.test | 52 +-
.../queries/QueryTest/functions-ddl.test | 148 +----
.../queries/QueryTest/truncate-table.test | 9 +-
.../queries/QueryTest/views-ddl.test | 78 +--
tests/common/parametrize.py | 23 +-
tests/conftest.py | 73 ++-
tests/metadata/test_ddl.py | 574 +++++++++----------
tests/metadata/test_ddl_base.py | 22 -
tests/metadata/test_hms_integration.py | 34 +-
13 files changed, 562 insertions(+), 736 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ab9e54bc/testdata/workloads/functional-query/queries/QueryTest/alter-table.test
----------------------------------------------------------------------
diff --git a/testdata/workloads/functional-query/queries/QueryTest/alter-table.test b/testdata/workloads/functional-query/queries/QueryTest/alter-table.test
index 48d47b5..1f63c2b 100644
--- a/testdata/workloads/functional-query/queries/QueryTest/alter-table.test
+++ b/testdata/workloads/functional-query/queries/QueryTest/alter-table.test
@@ -1,11 +1,8 @@
====
---- QUERY
-use alter_table_test_db
----- RESULTS
-====
----- QUERY
# First create an unpartitioned table
-create external table t1 (i int) location '$FILESYSTEM_PREFIX/test-warehouse/t1_tmp1'
+create external table t1 (i int)
+location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/t1_tmp1'
---- RESULTS
====
---- QUERY
@@ -37,24 +34,26 @@ alter table t1 rename to t2
show tables
---- RESULTS
't2'
+'part_data'
---- TYPES
string
====
---- QUERY
# Move the table to a different database
-alter table t2 rename to alter_table_test_db2.t1_inotherdb
+alter table t2 rename to $DATABASE2.t1_inotherdb
---- RESULTS
====
---- QUERY
# No longer appears in this database
show tables
---- RESULTS
+'part_data'
---- TYPES
string
====
---- QUERY
# Shows up in the second database
-show tables in alter_table_test_db2
+show tables in $DATABASE2
---- RESULTS
't1_inotherdb'
---- TYPES
@@ -62,7 +61,7 @@ string
====
---- QUERY
# Move the table back to this database
-alter table alter_table_test_db2.t1_inotherdb rename to t2
+alter table $DATABASE2.t1_inotherdb rename to t2
---- RESULTS
====
---- QUERY
@@ -263,37 +262,25 @@ bigint,string,int,int
# Create a partitioned table. Specify the location so we know what dirs need
# to be cleaned after the test finishes executing.
create external table t_part (i int) partitioned by (j int, s string)
-location '$FILESYSTEM_PREFIX/test-warehouse/t_part_tmp'
----- RESULTS
-====
----- QUERY
-alter table t_part add partition (j=cast(2-1 as int), s='2012')
----- RESULTS
-====
----- QUERY
-alter table t_part add if not exists partition (j=1, s='2012')
----- RESULTS
-====
----- QUERY
-alter table t_part add if not exists partition (j=1, s='2012/withslash')
----- RESULTS
-====
----- QUERY
-alter table t_part add partition (j=1, s=substring('foo2013bar', 4, 8))
+location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/t_part_tmp';
+alter table t_part add partition (j=cast(2-1 as int), s='2012');
+alter table t_part add if not exists partition (j=1, s='2012');
+alter table t_part add if not exists partition (j=1, s='2012/withslash');
+alter table t_part add partition (j=1, s=substring('foo2013bar', 4, 8));
---- RESULTS
====
---- QUERY
# Add another partition that points to the same location as another partition.
# This will cause the data to be read twice, but shouldn't result in an error.
alter table t_part add partition (j=100, s='same_location')
-location '$FILESYSTEM_PREFIX/test-warehouse/t_part_tmp/j=1/s=2012'
+location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/t_part_tmp/j=1/s=2012'
---- RESULTS
====
---- QUERY
# Add another partition that points to an existing data location that does not
# follow the key=value directory structure.
alter table t_part add partition (j=101, s='different_part_dir')
-location '$FILESYSTEM_PREFIX/test-warehouse/part_data/'
+location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/part_data/'
---- RESULTS
====
---- QUERY
@@ -735,34 +722,34 @@ bigint,bigint
# Tests that renaming a table with column stats across databases
# preserves table and column stats, and allows the renamed table
# to be dropped (IMPALA-1711/HIVE-9720).
-create table alter_table_test_db.mv (x int, y string);
-insert into alter_table_test_db.mv values(1, 'a'), (2, 'b'), (NULL, NULL);
-compute stats alter_table_test_db.mv;
-alter table alter_table_test_db.mv rename to alter_table_test_db2.mv2;
-invalidate metadata alter_table_test_db2.mv2
+create table $DATABASE.mv (x int, y string);
+insert into $DATABASE.mv values(1, 'a'), (2, 'b'), (NULL, NULL);
+compute stats $DATABASE.mv;
+alter table $DATABASE.mv rename to $DATABASE2.mv2;
+invalidate metadata $DATABASE2.mv2
---- RESULTS
====
---- QUERY
-show tables in alter_table_test_db like '%mv%'
+show tables in $DATABASE like '%mv%'
---- RESULTS
---- TYPES
STRING
====
---- QUERY
-show tables in alter_table_test_db2 like '%mv%'
+show tables in $DATABASE2 like '%mv%'
---- RESULTS
---- TYPES
STRING
====
---- QUERY
-show table stats alter_table_test_db2.mv2
+show table stats $DATABASE2.mv2
---- RESULTS
3,1,'14B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
---- TYPES
BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
-show column stats alter_table_test_db2.mv2
+show column stats $DATABASE2.mv2
---- RESULTS
'x','INT',2,-1,4,4
'y','STRING',2,-1,1,1
@@ -770,34 +757,19 @@ show column stats alter_table_test_db2.mv2
STRING, STRING, BIGINT, BIGINT, INT, DOUBLE
====
---- QUERY
-drop table alter_table_test_db2.mv2
+drop table $DATABASE2.mv2
---- RESULTS
====
---- QUERY
-show tables in alter_table_test_db2 like '%mv%'
+show tables in $DATABASE2 like '%mv%'
---- RESULTS
---- TYPES
STRING
====
---- QUERY
-# Test tblproperties and serdeproperties key and property value length
-create database if not exists test_alter_property_length_db
-====
----- QUERY
-show databases like 'test_alter_property_length_db'
----- RESULTS
-'test_alter_property_length_db',''
----- TYPES
-STRING,STRING
-====
----- QUERY
-drop table if exists test_alter_property_length_db.property_length
----- RESULTS
-====
----- QUERY
# alter with serde property lengths just within limits
-create table test_alter_property_length_db.property_length (i int);
-alter table test_alter_property_length_db.property_length
+create table $DATABASE.property_length (i int);
+alter table $DATABASE.property_length
set serdeproperties(
'keykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeyk'
=
@@ -807,7 +779,7 @@ set serdeproperties(
====
---- QUERY
# alter with property lengths just within limits
-alter table test_alter_property_length_db.property_length
+alter table $DATABASE.property_length
set tblproperties(
'keykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeyk'
=
@@ -816,28 +788,12 @@ set tblproperties(
---- RESULTS
====
---- QUERY
-drop table if exists test_alter_property_length_db.property_length
----- RESULTS
-====
----- QUERY
-# Need to switch databases before dropping
-use default;
-drop database if exists test_alter_property_length_db
----- RESULTS
-====
----- QUERY
-show databases like 'test_alter_property_length_db'
----- RESULTS
----- TYPES
-STRING,STRING
-====
----- QUERY
-- Change table location after a partition has been created in the original table location
-create table alter_table_test_db.change_loc (s string) partitioned by (i int);
-insert into alter_table_test_db.change_loc partition (i=1) values ('a');
-alter table alter_table_test_db.change_loc
- set location '$FILESYSTEM_PREFIX/test-warehouse/alter_table_test_db.db/garbage';
-select * from alter_table_test_db.change_loc;
+create table $DATABASE.change_loc (s string) partitioned by (i int);
+insert into $DATABASE.change_loc partition (i=1) values ('a');
+alter table $DATABASE.change_loc
+ set location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/garbage';
+select * from $DATABASE.change_loc;
---- RESULTS
'a',1
---- TYPES
@@ -847,21 +803,21 @@ STRING,INT
-- ALTER TABLE .. SET LOCATION works when setting the location of a partition to be the
-- the same as a partition of a different table with a different number of clustering
-- columns.
-create table alter_table_test_db.table_one_part (s string) partitioned by (i int);
-create table alter_table_test_db.table_many_part (s string) partitioned by
+create table $DATABASE.table_one_part (s string) partitioned by (i int);
+create table $DATABASE.table_many_part (s string) partitioned by
(i0 int, i1 int, i2 int, i3 int, i4 int, i5 int, i6 int, i7 int, i8 int, i9 int);
-insert into alter_table_test_db.table_one_part partition (i=0) values ('a');
-insert into alter_table_test_db.table_one_part partition (i=1) values ('b');
-insert into alter_table_test_db.table_many_part partition
+insert into $DATABASE.table_one_part partition (i=0) values ('a');
+insert into $DATABASE.table_one_part partition (i=1) values ('b');
+insert into $DATABASE.table_many_part partition
(i0=0, i1=1, i2=2, i3=3, i4=4, i5=5, i6=6, i7=7, i8=8, i9=9) values ('c');
-insert into alter_table_test_db.table_many_part partition
+insert into $DATABASE.table_many_part partition
(i0=10, i1=11, i2=12, i3=13, i4=14, i5=15, i6=16, i7=17, i8=18, i9=19) values ('d');
-alter table alter_table_test_db.table_one_part partition (i=1)
- set location '$FILESYSTEM_PREFIX/test-warehouse/alter_table_test_db.db/table_many_part/i0=10/i1=11/i2=12/i3=13/i4=14/i5=15/i6=16/i7=17/i8=18/i9=19';
-alter table alter_table_test_db.table_many_part partition
+alter table $DATABASE.table_one_part partition (i=1)
+ set location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/table_many_part/i0=10/i1=11/i2=12/i3=13/i4=14/i5=15/i6=16/i7=17/i8=18/i9=19';
+alter table $DATABASE.table_many_part partition
(i0=10, i1=11, i2=12, i3=13, i4=14, i5=15, i6=16, i7=17, i8=18, i9=19)
- set location '$FILESYSTEM_PREFIX/test-warehouse/alter_table_test_db.db/table_one_part/i=0/';
-select i,s from alter_table_test_db.table_one_part order by i;
+ set location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/table_one_part/i=0/';
+select i,s from $DATABASE.table_one_part order by i;
---- RESULTS
0,'a'
1,'d'
@@ -870,7 +826,7 @@ INT,STRING
====
---- QUERY
select i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, s
-from alter_table_test_db.table_many_part order by i0;
+from $DATABASE.table_many_part order by i0;
---- RESULTS
0,1,2,3,4,5,6,7,8,9,'c'
10,11,12,13,14,15,16,17,18,19,'a'
@@ -878,28 +834,28 @@ from alter_table_test_db.table_many_part order by i0;
INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,STRING
====
---- QUERY
-show partitions alter_table_test_db.table_one_part
+show partitions $DATABASE.table_one_part
---- RESULTS
-'0',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_one_part/i=0
-'1',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_many_part/i0=10/i1=11/i2=12/i3=13/i4=14/i5=15/i6=16/i7=17/i8=18/i9=19
+'0',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_one_part/i=0
+'1',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_many_part/i0=10/i1=11/i2=12/i3=13/i4=14/i5=15/i6=16/i7=17/i8=18/i9=19
'Total',-1,2,regex:.+,regex:.+,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
-show partitions alter_table_test_db.table_many_part
+show partitions $DATABASE.table_many_part
---- RESULTS
-'0','1','2','3','4','5','6','7','8','9',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_many_part/i0=0/i1=1/i2=2/i3=3/i4=4/i5=5/i6=6/i7=7/i8=8/i9=9
-'10','11','12','13','14','15','16','17','18','19',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_one_part/i=0
+'0','1','2','3','4','5','6','7','8','9',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_many_part/i0=0/i1=1/i2=2/i3=3/i4=4/i5=5/i6=6/i7=7/i8=8/i9=9
+'10','11','12','13','14','15','16','17','18','19',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_one_part/i=0
'Total','','','','','','','','','',-1,2,regex:.+,regex:.+,'','','',''
---- TYPES
STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
-- Refreshing the tables does not create invalid partition locations
-refresh alter_table_test_db.table_one_part;
-refresh alter_table_test_db.table_many_part;
-select i,s from alter_table_test_db.table_one_part order by i;
+refresh $DATABASE.table_one_part;
+refresh $DATABASE.table_many_part;
+select i,s from $DATABASE.table_one_part order by i;
---- RESULTS
0,'a'
1,'d'
@@ -908,7 +864,7 @@ INT,STRING
====
---- QUERY
select i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, s
-from alter_table_test_db.table_many_part order by i0;
+from $DATABASE.table_many_part order by i0;
---- RESULTS
0,1,2,3,4,5,6,7,8,9,'c'
10,11,12,13,14,15,16,17,18,19,'a'
@@ -916,28 +872,28 @@ from alter_table_test_db.table_many_part order by i0;
INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,STRING
====
---- QUERY
-show partitions alter_table_test_db.table_one_part
+show partitions $DATABASE.table_one_part
---- RESULTS
-'0',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_one_part/i=0
-'1',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_many_part/i0=10/i1=11/i2=12/i3=13/i4=14/i5=15/i6=16/i7=17/i8=18/i9=19
+'0',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_one_part/i=0
+'1',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_many_part/i0=10/i1=11/i2=12/i3=13/i4=14/i5=15/i6=16/i7=17/i8=18/i9=19
'Total',-1,2,regex:.+,regex:.+,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
-show partitions alter_table_test_db.table_many_part
+show partitions $DATABASE.table_many_part
---- RESULTS
-'0','1','2','3','4','5','6','7','8','9',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_many_part/i0=0/i1=1/i2=2/i3=3/i4=4/i5=5/i6=6/i7=7/i8=8/i9=9
-'10','11','12','13','14','15','16','17','18','19',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_one_part/i=0
+'0','1','2','3','4','5','6','7','8','9',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_many_part/i0=0/i1=1/i2=2/i3=3/i4=4/i5=5/i6=6/i7=7/i8=8/i9=9
+'10','11','12','13','14','15','16','17','18','19',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_one_part/i=0
'Total','','','','','','','','','',-1,2,regex:.+,regex:.+,'','','',''
---- TYPES
STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
-- Altering the table location does not alter the partition locations
-alter table alter_table_test_db.table_one_part set location '$FILESYSTEM_PREFIX/garbage/';
-alter table alter_table_test_db.table_many_part set location '$FILESYSTEM_PREFIX/garbage/';
-select i,s from alter_table_test_db.table_one_part order by i;
+alter table $DATABASE.table_one_part set location '$FILESYSTEM_PREFIX/garbage/';
+alter table $DATABASE.table_many_part set location '$FILESYSTEM_PREFIX/garbage/';
+select i,s from $DATABASE.table_one_part order by i;
---- RESULTS
0,'a'
1,'d'
@@ -946,7 +902,7 @@ INT,STRING
====
---- QUERY
select i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, s
-from alter_table_test_db.table_many_part order by i0;
+from $DATABASE.table_many_part order by i0;
---- RESULTS
0,1,2,3,4,5,6,7,8,9,'c'
10,11,12,13,14,15,16,17,18,19,'a'
@@ -954,19 +910,19 @@ from alter_table_test_db.table_many_part order by i0;
INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,STRING
====
---- QUERY
-show partitions alter_table_test_db.table_one_part
+show partitions $DATABASE.table_one_part
---- RESULTS
-'0',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_one_part/i=0
-'1',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_many_part/i0=10/i1=11/i2=12/i3=13/i4=14/i5=15/i6=16/i7=17/i8=18/i9=19
+'0',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_one_part/i=0
+'1',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_many_part/i0=10/i1=11/i2=12/i3=13/i4=14/i5=15/i6=16/i7=17/i8=18/i9=19
'Total',-1,2,regex:.+,regex:.+,'','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
-show partitions alter_table_test_db.table_many_part
+show partitions $DATABASE.table_many_part
---- RESULTS
-'0','1','2','3','4','5','6','7','8','9',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_many_part/i0=0/i1=1/i2=2/i3=3/i4=4/i5=5/i6=6/i7=7/i8=8/i9=9
-'10','11','12','13','14','15','16','17','18','19',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/alter_table_test_db.db/table_one_part/i=0
+'0','1','2','3','4','5','6','7','8','9',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_many_part/i0=0/i1=1/i2=2/i3=3/i4=4/i5=5/i6=6/i7=7/i8=8/i9=9
+'10','11','12','13','14','15','16','17','18','19',-1,1,regex:.+,regex:.+,regex:.+,regex:.+,regex:.+,regex:.*/test-warehouse/$DATABASE.db/table_one_part/i=0
'Total','','','','','','','','','',-1,2,regex:.+,regex:.+,'','','',''
---- TYPES
STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ab9e54bc/testdata/workloads/functional-query/queries/QueryTest/create-database.test
----------------------------------------------------------------------
diff --git a/testdata/workloads/functional-query/queries/QueryTest/create-database.test b/testdata/workloads/functional-query/queries/QueryTest/create-database.test
index d2dc7c4..1fcf85c 100644
--- a/testdata/workloads/functional-query/queries/QueryTest/create-database.test
+++ b/testdata/workloads/functional-query/queries/QueryTest/create-database.test
@@ -1,65 +1,58 @@
====
---- QUERY
-create database create_db_test comment "For testing"
+create database $DATABASE_2 comment "For testing"
---- RESULTS
====
---- QUERY
-show databases like "create_db_test"
+show databases like "$DATABASE_2"
---- RESULTS
-'create_db_test','For testing'
+'$DATABASE_2','For testing'
---- TYPES
STRING, STRING
====
---- QUERY
# Make sure creating a database with the same name doesn't throw an error when
# IF NOT EXISTS is specified.
-create database if not exists create_db_test
+create database if not exists $DATABASE_2
---- RESULTS
====
---- QUERY
# Test dropping the database.
-drop database create_db_test
+drop database $DATABASE_2
---- RESULTS
====
---- QUERY
-show databases like "create_db_test"
+show databases like "$DATABASE_2"
---- RESULTS
---- TYPES
STRING, STRING
====
---- QUERY
# Dropping a non-existent databases is ok with IF EXISTS
-drop database if exists create_db_test
+drop database if exists $DATABASE_2
---- RESULTS
====
---- QUERY
# Test DROP DATABASE ... CASCADE
-create database if not exists test_drop_cascade_db
+create database if not exists $DATABASE_cascade
====
---- QUERY
-show databases like 'test_drop_cascade_db'
----- RESULTS
-'test_drop_cascade_db',''
----- TYPES
-STRING,STRING
-====
----- QUERY
-create table if not exists test_drop_cascade_db.t1 (i int);
-create table if not exists test_drop_cascade_db.t2 (i int)
+create table if not exists $DATABASE_cascade.t1 (i int);
+create table if not exists $DATABASE_cascade.t2 (i int)
partitioned by (year smallint, month smallint);
-insert into test_drop_cascade_db.t2 partition (year=2015, month=8) values(1);
-create external table if not exists test_drop_cascade_db.t3 like functional.alltypes
+insert into $DATABASE_cascade.t2 partition (year=2015, month=8) values(1);
+create external table if not exists $DATABASE_cascade.t3 like functional.alltypes
location '$FILESYSTEM_PREFIX/test-warehouse/alltypes_external';
-create view if not exists test_drop_cascade_db.v1 as
+create view if not exists $DATABASE_cascade.v1 as
select int_col from functional.alltypes;
-create function if not exists test_drop_cascade_db.f1() returns string
+create function if not exists $DATABASE_cascade.f1() returns string
location '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so' symbol='NoArgs';
-create aggregate function if not exists test_drop_cascade_db.f2(int, string) RETURNS int
+create aggregate function if not exists $DATABASE_cascade.f2(int, string) RETURNS int
location '$FILESYSTEM_PREFIX/test-warehouse/libTestUdas.so' UPDATE_FN='TwoArgUpdate'
---- RESULTS
====
---- QUERY
-show tables in test_drop_cascade_db
+show tables in $DATABASE_cascade
---- RESULTS
't1'
't2'
@@ -69,14 +62,14 @@ show tables in test_drop_cascade_db
STRING
====
---- QUERY
-show functions in test_drop_cascade_db
+show functions in $DATABASE_cascade
---- RESULTS
'STRING','f1()','NATIVE','true'
---- TYPES
STRING, STRING, STRING, STRING
====
---- QUERY
-show aggregate functions in test_drop_cascade_db
+show aggregate functions in $DATABASE_cascade
---- RESULTS
'INT','f2(INT, STRING)','NATIVE','true'
---- TYPES
@@ -85,29 +78,29 @@ STRING, STRING, STRING, STRING
---- QUERY
# Should drop all tables, functions, and aggregate functions, as well
# as the database itself.
-drop database test_drop_cascade_db cascade
+drop database $DATABASE_cascade cascade
---- RESULTS
====
---- QUERY
-show databases like 'test_drop_cascade_db'
+show databases like '$DATABASE_cascade'
---- RESULTS
====
---- QUERY
# Test that DROP DATABASE ... RESTRICT executes ok.
-create database if not exists test_drop_restrict_db
+create database if not exists $DATABASE_restrict
====
---- QUERY
-show databases like 'test_drop_restrict_db'
+show databases like '$DATABASE_restrict'
---- RESULTS
-'test_drop_restrict_db',''
+'$DATABASE_restrict',''
---- TYPES
STRING,STRING
====
---- QUERY
-drop database test_drop_restrict_db restrict
+drop database $DATABASE_restrict restrict
---- RESULTS
====
---- QUERY
-show databases like 'test_drop_restrict_db'
+show databases like '$DATABASE_restrict'
---- RESULTS
====
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ab9e54bc/testdata/workloads/functional-query/queries/QueryTest/create-table-as-select.test
----------------------------------------------------------------------
diff --git a/testdata/workloads/functional-query/queries/QueryTest/create-table-as-select.test b/testdata/workloads/functional-query/queries/QueryTest/create-table-as-select.test
index 4c626de..2178589 100644
--- a/testdata/workloads/functional-query/queries/QueryTest/create-table-as-select.test
+++ b/testdata/workloads/functional-query/queries/QueryTest/create-table-as-select.test
@@ -155,7 +155,7 @@ INT, BOOLEAN, TINYINT, TINYINT, TINYINT, TINYINT, TINYINT, TINYINT, STRING, STRI
====
---- QUERY
# Test creating a partitioned Parquet table with CTAS.
-create table ddl_test_db.ctas_part_alltypestiny
+create table $DATABASE.ctas_part_alltypestiny
partitioned by (year,month) stored as parquet
as select * from functional.alltypestiny
---- RESULTS
@@ -163,7 +163,7 @@ as select * from functional.alltypestiny
====
---- QUERY
select id, float_col, timestamp_col, string_col, year, month
-from ddl_test_db.ctas_part_alltypestiny
+from $DATABASE.ctas_part_alltypestiny
---- RESULTS
0,0,2009-01-01 00:00:00,'0',2009,1
1,1.100000023841858,2009-01-01 00:01:00,'1',2009,1
@@ -178,12 +178,8 @@ INT,FLOAT,TIMESTAMP,STRING,INT,INT
====
---- QUERY
# IMPALA-2711: Make sure no memory leak from Rand().
-create table ddl_test_db.rand_ctas as select rand() from functional.alltypes;
+create table $DATABASE.rand_ctas as select rand() from functional.alltypes;
---- RESULTS
'Inserted 7300 row(s)'
---- ERRORS
====
----- QUERY
-drop table if exists ddl_test_db.rand_ctas;
----- RESULTS
-====
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ab9e54bc/testdata/workloads/functional-query/queries/QueryTest/create-table-like-file.test
----------------------------------------------------------------------
diff --git a/testdata/workloads/functional-query/queries/QueryTest/create-table-like-file.test b/testdata/workloads/functional-query/queries/QueryTest/create-table-like-file.test
index 79d16cc..313275c 100644
--- a/testdata/workloads/functional-query/queries/QueryTest/create-table-like-file.test
+++ b/testdata/workloads/functional-query/queries/QueryTest/create-table-like-file.test
@@ -1,11 +1,11 @@
====
---- QUERY
-create table ddl_test_db.temp_decimal_table like parquet
+create table $DATABASE.temp_decimal_table like parquet
'$FILESYSTEM_PREFIX/test-warehouse/schemas/decimal.parquet'
---- RESULTS
====
---- QUERY
-describe ddl_test_db.temp_decimal_table
+describe $DATABASE.temp_decimal_table
---- RESULTS
'd32','decimal(3,2)','Inferred from Parquet file.'
'd11','decimal(1,1)','Inferred from Parquet file.'
@@ -14,12 +14,12 @@ describe ddl_test_db.temp_decimal_table
STRING, STRING, STRING
====
---- QUERY
-create table ddl_test_db.like_zipcodes_file like parquet
+create table $DATABASE.like_zipcodes_file like parquet
'$FILESYSTEM_PREFIX/test-warehouse/schemas/zipcode_incomes.parquet'
---- RESULTS
====
---- QUERY
-describe ddl_test_db.like_zipcodes_file
+describe $DATABASE.like_zipcodes_file
---- RESULTS
'id','string','Inferred from Parquet file.'
'zip','string','Inferred from Parquet file.'
@@ -30,12 +30,12 @@ describe ddl_test_db.like_zipcodes_file
STRING, STRING, STRING
====
---- QUERY
-create table ddl_test_db.like_alltypestiny_file like parquet
+create table $DATABASE.like_alltypestiny_file like parquet
'$FILESYSTEM_PREFIX/test-warehouse/schemas/alltypestiny.parquet'
---- RESULTS
====
---- QUERY
-describe ddl_test_db.like_alltypestiny_file
+describe $DATABASE.like_alltypestiny_file
---- RESULTS
'id','int','Inferred from Parquet file.'
'bool_col','boolean','Inferred from Parquet file.'
@@ -54,13 +54,13 @@ STRING, STRING, STRING
---- QUERY
# Make sure creating a table with the same name doesn't throw an error when
# IF NOT EXISTS is specified.
-create table if not exists ddl_test_db.like_alltypestiny_file like parquet
+create table if not exists $DATABASE.like_alltypestiny_file like parquet
'$FILESYSTEM_PREFIX/test-warehouse/schemas/zipcode_incomes.parquet'
---- RESULTS
====
---- QUERY
# Should not have changed since last statement was IF NOT EXISTS.
-describe ddl_test_db.like_alltypestiny_file
+describe $DATABASE.like_alltypestiny_file
---- RESULTS
'id','int','Inferred from Parquet file.'
'bool_col','boolean','Inferred from Parquet file.'
@@ -111,16 +111,16 @@ drop table allcomplextypes_clone
---- RESULTS
====
---- QUERY
-drop table if exists ddl_test_db.temp_legacy_table
+drop table if exists $DATABASE.temp_legacy_table
---- RESULTS
====
---- QUERY
-create table ddl_test_db.temp_legacy_table like parquet
+create table $DATABASE.temp_legacy_table like parquet
'$FILESYSTEM_PREFIX/test-warehouse/schemas/legacy_nested.parquet'
---- RESULTS
====
---- QUERY
-describe ddl_test_db.temp_legacy_table
+describe $DATABASE.temp_legacy_table
---- RESULTS
't_long','bigint','Inferred from Parquet file.'
't_struct','struct<\n f_int:int,\n t_struct:struct<\n f_int:int,\n f_int2:int\n >,\n int_arr:array<int>,\n int_map:map<string,int>\n>','Inferred from Parquet file.'
@@ -136,20 +136,20 @@ describe ddl_test_db.temp_legacy_table
STRING, STRING, STRING
====
---- QUERY
-drop table if exists ddl_test_db.temp_legacy_table
+drop table if exists $DATABASE.temp_legacy_table
---- RESULTS
====
---- QUERY
-drop table if exists ddl_test_db.temp_modern_table
+drop table if exists $DATABASE.temp_modern_table
---- RESULTS
====
---- QUERY
-create table ddl_test_db.temp_modern_table like parquet
+create table $DATABASE.temp_modern_table like parquet
'$FILESYSTEM_PREFIX/test-warehouse/schemas/modern_nested.parquet'
---- RESULTS
====
---- QUERY
-describe ddl_test_db.temp_modern_table
+describe $DATABASE.temp_modern_table
---- RESULTS
't_long','bigint','Inferred from Parquet file.'
't_struct','struct<\n f_int:int,\n t_struct:struct<\n f_int:int,\n f_int2:int\n >,\n int_arr:array<int>,\n int_map:map<string,int>\n>','Inferred from Parquet file.'
@@ -165,6 +165,6 @@ describe ddl_test_db.temp_modern_table
STRING, STRING, STRING
====
---- QUERY
-drop table if exists ddl_test_db.temp_modern_table
+drop table if exists $DATABASE.temp_modern_table
---- RESULTS
====
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ab9e54bc/testdata/workloads/functional-query/queries/QueryTest/create-table.test
----------------------------------------------------------------------
diff --git a/testdata/workloads/functional-query/queries/QueryTest/create-table.test b/testdata/workloads/functional-query/queries/QueryTest/create-table.test
index f3b9dda..e66fb6f 100644
--- a/testdata/workloads/functional-query/queries/QueryTest/create-table.test
+++ b/testdata/workloads/functional-query/queries/QueryTest/create-table.test
@@ -1,24 +1,12 @@
====
---- QUERY
-# This database is expected to have been created.
-show databases like 'ddl_test_db'
----- RESULTS
-'ddl_test_db',''
----- TYPES
-STRING,STRING
-====
----- QUERY
-show tables in ddl_test_db
----- RESULTS
-====
----- QUERY
-create table ddl_test_db.testtbl(i int, s string COMMENT 'String col') STORED AS TEXTFILE
+create table $DATABASE.testtbl(i int, s string COMMENT 'String col') STORED AS TEXTFILE
---- RESULTS
====
---- QUERY
# Make sure creating a table with the same name doesn't throw an error when
# IF NOT EXISTS is specified.
-create table if not exists ddl_test_db.testtbl(i int, s string)
+create table if not exists $DATABASE.testtbl(i int, s string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
ESCAPED BY '\\'
@@ -27,14 +15,14 @@ STORED AS TEXTFILE
---- RESULTS
====
---- QUERY
-show tables in ddl_test_db
+show tables in $DATABASE
---- RESULTS
'testtbl'
---- TYPES
STRING
====
---- QUERY
-describe ddl_test_db.testtbl
+describe $DATABASE.testtbl
---- RESULTS
'i','int',''
's','string','String col'
@@ -42,13 +30,13 @@ describe ddl_test_db.testtbl
STRING, STRING, STRING
====
---- QUERY
-insert overwrite table ddl_test_db.testtbl SELECT 1, 'Hi'
+insert overwrite table $DATABASE.testtbl SELECT 1, 'Hi'
from functional.alltypes limit 10
---- RESULTS
: 10
====
---- QUERY
-select * from ddl_test_db.testtbl
+select * from $DATABASE.testtbl
---- RESULTS
1,'Hi'
1,'Hi'
@@ -64,12 +52,12 @@ select * from ddl_test_db.testtbl
INT, STRING
====
---- QUERY
-create table ddl_test_db.testtbl_part(i int, s string) PARTITIONED BY (id int comment 'C')
+create table $DATABASE.testtbl_part(i int, s string) PARTITIONED BY (id int comment 'C')
---- RESULTS
====
---- QUERY
# Partition columns are displayed as part of DESCRIBE <table>
-describe ddl_test_db.testtbl_part
+describe $DATABASE.testtbl_part
---- RESULTS
'i','int',''
's','string',''
@@ -78,19 +66,19 @@ describe ddl_test_db.testtbl_part
STRING, STRING, STRING
====
---- QUERY
-insert overwrite table ddl_test_db.testtbl_part partition(id=1)
+insert overwrite table $DATABASE.testtbl_part partition(id=1)
select 10, 'Ten' from functional.alltypes limit 1
---- RESULTS
id=1/: 1
====
---- QUERY
-insert overwrite table ddl_test_db.testtbl_part partition(id=2)
+insert overwrite table $DATABASE.testtbl_part partition(id=2)
select 20, 'Twenty' from functional.alltypes limit 2
---- RESULTS
id=2/: 2
====
---- QUERY
-select * from ddl_test_db.testtbl_part
+select * from $DATABASE.testtbl_part
---- RESULTS
10,'Ten',1
20,'Twenty',2
@@ -99,17 +87,13 @@ select * from ddl_test_db.testtbl_part
INT, STRING, INT
====
---- QUERY
-select * from ddl_test_db.testtbl_part where id = 1
+select * from $DATABASE.testtbl_part where id = 1
---- RESULTS
10,'Ten',1
---- TYPES
INT, STRING, INT
====
---- QUERY
-use ddl_test_db
----- RESULTS
-====
----- QUERY
show tables
---- RESULTS
'testtbl'
@@ -224,7 +208,7 @@ drop table if exists non_existent_db.tbl
====
---- QUERY
# Test table creation with tblproperty and serdeproperty lengths just within limits
-create table ddl_test_db.short_properties (i int)
+create table $DATABASE.short_properties (i int)
with serdeproperties(
'keykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeyk'
=
@@ -237,10 +221,6 @@ with serdeproperties(
---- RESULTS
====
---- QUERY
-drop table if exists test_property_length_db.short_properties
----- RESULTS
-====
----- QUERY
# IMPALA-1740: Test setting the skip.header.line.count tblproperty
create table skip_header_test_a (i1 integer) tblproperties('skip.header.line.count'='2')
---- RESULTS
@@ -267,13 +247,13 @@ Invalid value for table property skip.header.line.count:
# IMPALA-2820: Test keywords as struct-field names. All field names below are
# Impala keywords, but only some of them are quoted to show that a mix of
# quoted/unquoted identifiers is possible.
-create table ddl_test_db.struct_keywords (
+create table $DATABASE.struct_keywords (
s struct<table:int,`comment`:string,`select`:decimal(8,2)>,
a array<struct<`replace`:boolean,`location`:varchar(10)>>,
m map<string,struct<`fields`:int,from:timestamp>>
)
partitioned by (year int, month int);
-describe ddl_test_db.struct_keywords;
+describe $DATABASE.struct_keywords;
---- RESULTS
's','struct<\n table:int,\n comment:string,\n select:decimal(8,2)\n>',''
'a','array<struct<\n replace:boolean,\n location:varchar(10)\n>>',''
@@ -289,7 +269,7 @@ select
a.`replace`, a.`location`,
m.key, m.`fields`, m.`from`,
year, month
-from ddl_test_db.struct_keywords t, t.a, t.m
+from $DATABASE.struct_keywords t, t.a, t.m
---- RESULTS
---- TYPES
INT, STRING, DECIMAL, BOOLEAN, STRING, STRING, INT, TIMESTAMP, INT, INT
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ab9e54bc/testdata/workloads/functional-query/queries/QueryTest/functions-ddl.test
----------------------------------------------------------------------
diff --git a/testdata/workloads/functional-query/queries/QueryTest/functions-ddl.test b/testdata/workloads/functional-query/queries/QueryTest/functions-ddl.test
index 754a19b..c1a80ff 100644
--- a/testdata/workloads/functional-query/queries/QueryTest/functions-ddl.test
+++ b/testdata/workloads/functional-query/queries/QueryTest/functions-ddl.test
@@ -1,85 +1,43 @@
====
---- QUERY
-# Drop the dummy udfs this test uses.
-drop function if exists default.fn();
-drop function if exists function_ddl_test.fn();
-drop function if exists function_ddl_test.fn(int);
-drop function if exists function_ddl_test.fn(int, string);
-drop function if exists function_ddl_test.fn(string, int);
-drop function if exists function_ddl_test.fn2(int);
-drop function if exists function_ddl_test.fn2(int, string);
-drop function if exists function_ddl_test.fn_var_arg(int...);
-drop function if exists function_ddl_test.agg_fn(int);
-drop function if exists function_ddl_test.agg_fn(int, string);
-====
----- QUERY
-# Verify all the test functions are removed
-show functions in function_ddl_test
----- LABELS
-return type, signature, binary type, is persistent
----- RESULTS
----- TYPES
-STRING, STRING, STRING, STRING
-====
----- QUERY
-# Verify all the test functions are removed
-show aggregate functions in function_ddl_test
----- RESULTS
----- TYPES
-STRING, STRING, STRING, STRING
-====
----- QUERY
-# Add them and test function overloading and scoping.
-create function default.fn() RETURNS int
-LOCATION '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so' SYMBOL='Fn'
-====
----- QUERY
-create function function_ddl_test.fn() RETURNS int
+# Add functions and test function overloading and scoping.
+create function $DATABASE.fn() RETURNS int
LOCATION '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so' SYMBOL='Fn'
====
---- QUERY
-create function function_ddl_test.fn(int) RETURNS double
+create function $DATABASE.fn(int) RETURNS double
LOCATION '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so' SYMBOL='Fn'
====
---- QUERY
-create function function_ddl_test.fn(int, string) RETURNS int
+create function $DATABASE.fn(int, string) RETURNS int
LOCATION '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so' SYMBOL='Fn'
====
---- QUERY
-create function function_ddl_test.fn(string, int) RETURNS int
+create function $DATABASE.fn(string, int) RETURNS int
LOCATION '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so' SYMBOL='Fn'
====
---- QUERY
-create function function_ddl_test.fn2(int) RETURNS int
+create function $DATABASE.fn2(int) RETURNS int
LOCATION '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so' SYMBOL='Fn2'
====
---- QUERY
-create function function_ddl_test.fn2(int, string) RETURNS int
+create function $DATABASE.fn2(int, string) RETURNS int
LOCATION '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so' SYMBOL='Fn2'
====
---- QUERY
-create function function_ddl_test.fn_var_arg(int...) RETURNS int
+create function $DATABASE.fn_var_arg(int...) RETURNS int
LOCATION '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so' SYMBOL='VarSum'
====
---- QUERY
-create aggregate function function_ddl_test.agg_fn(int) RETURNS bigint
+create aggregate function $DATABASE.agg_fn(int) RETURNS bigint
LOCATION '$FILESYSTEM_PREFIX/test-warehouse/libudasample.so' UPDATE_FN='CountUpdate'
====
---- QUERY
-create aggregate function function_ddl_test.agg_fn(int, string) RETURNS int
+create aggregate function $DATABASE.agg_fn(int, string) RETURNS int
LOCATION '$FILESYSTEM_PREFIX/test-warehouse/libTestUdas.so' UPDATE_FN='TwoArgUpdate'
====
---- QUERY
-show functions in default
----- LABELS
-return type, signature, binary type, is persistent
----- RESULTS
-'INT','fn()','NATIVE','true'
----- TYPES
-STRING, STRING, STRING, STRING
-====
----- QUERY
-show functions in function_ddl_test
+show functions in $DATABASE
---- LABELS
return type, signature, binary type, is persistent
---- RESULTS
@@ -94,7 +52,7 @@ return type, signature, binary type, is persistent
STRING, STRING, STRING, STRING
====
---- QUERY
-show aggregate functions in function_ddl_test
+show aggregate functions in $DATABASE
---- RESULTS
'BIGINT','agg_fn(INT)','NATIVE','true'
'INT','agg_fn(INT, STRING)','NATIVE','true'
@@ -103,26 +61,15 @@ STRING, STRING, STRING, STRING
====
---- QUERY
# Check that none of the functions show up as analytic functions.
-show analytic functions in function_ddl_test
+show analytic functions in $DATABASE
---- RESULTS
---- TYPES
STRING, STRING, STRING, STRING
====
---- QUERY
-show create function default.fn
+show create function $DATABASE.fn_var_arg
---- RESULTS: MULTI_LINE
-['CREATE FUNCTION default.fn()
- RETURNS INT
- LOCATION '$NAMENODE/test-warehouse/libTestUdfs.so'
- SYMBOL='_Z2FnPN10impala_udf15FunctionContextE'
-']
----- TYPES
-STRING
-====
----- QUERY
-show create function function_ddl_test.fn_var_arg
----- RESULTS: MULTI_LINE
-['CREATE FUNCTION function_ddl_test.fn_var_arg(INT...)
+['CREATE FUNCTION $DATABASE.fn_var_arg(INT...)
RETURNS INT
LOCATION '$NAMENODE/test-warehouse/libTestUdfs.so'
SYMBOL='_Z6VarSumPN10impala_udf15FunctionContextEiPKNS_6IntValE'
@@ -131,16 +78,16 @@ show create function function_ddl_test.fn_var_arg
STRING
====
---- QUERY
-show create aggregate function function_ddl_test.agg_fn
+show create aggregate function $DATABASE.agg_fn
---- RESULTS: MULTI_LINE
-['CREATE AGGREGATE FUNCTION function_ddl_test.agg_fn(INT)
+['CREATE AGGREGATE FUNCTION $DATABASE.agg_fn(INT)
RETURNS BIGINT
LOCATION '$NAMENODE/test-warehouse/libudasample.so'
UPDATE_FN='_Z11CountUpdatePN10impala_udf15FunctionContextERKNS_6IntValEPNS_9BigIntValE'
INIT_FN='_Z9CountInitPN10impala_udf15FunctionContextEPNS_9BigIntValE'
MERGE_FN='_Z10CountMergePN10impala_udf15FunctionContextERKNS_9BigIntValEPS2_'
FINALIZE_FN='_Z13CountFinalizePN10impala_udf15FunctionContextERKNS_9BigIntValE'
-CREATE AGGREGATE FUNCTION function_ddl_test.agg_fn(INT, STRING)
+CREATE AGGREGATE FUNCTION $DATABASE.agg_fn(INT, STRING)
RETURNS INT
LOCATION '$NAMENODE/test-warehouse/libTestUdas.so'
UPDATE_FN='_Z12TwoArgUpdatePN10impala_udf15FunctionContextERKNS_6IntValERKNS_9StringValEPS2_'
@@ -205,7 +152,7 @@ CREATE AGGREGATE FUNCTION _impala_builtins.avg(TIMESTAMP)
STRING
====
---- QUERY
-drop function function_ddl_test.fn2(int, string)
+drop function $DATABASE.fn2(int, string)
====
---- QUERY
show functions
@@ -222,10 +169,10 @@ return type, signature, binary type, is persistent
STRING, STRING, STRING, STRING
====
---- QUERY
-drop function if exists function_ddl_test.fn2(int, string)
+drop function if exists $DATABASE.fn2(int, string)
====
---- QUERY
-show functions in function_ddl_test
+show functions in $DATABASE
---- LABELS
return type, signature, binary type, is persistent
---- RESULTS
@@ -239,27 +186,7 @@ return type, signature, binary type, is persistent
STRING, STRING, STRING, STRING
====
---- QUERY
-show functions in default;
----- LABELS
-return type, signature, binary type, is persistent
----- RESULTS
-'INT','fn()','NATIVE','true'
----- TYPES
-STRING, STRING, STRING, STRING
-====
----- QUERY
-drop function default.fn()
-====
----- QUERY
-show functions in default;
----- LABELS
-return type, signature, binary type, is persistent
----- RESULTS
----- TYPES
-STRING, STRING, STRING, STRING
-====
----- QUERY
-show functions in function_ddl_test;
+show functions in $DATABASE;
---- LABELS
return type, signature, binary type, is persistent
---- RESULTS
@@ -314,37 +241,6 @@ show aggregate functions
STRING, STRING, STRING, STRING
====
---- QUERY
-# Call invalidate metadata and make sure the functions are still there
-invalidate metadata
----- RESULTS
----- TYPES
-====
----- QUERY
-show functions
----- LABELS
-return type, signature, binary type, is persistent
----- RESULTS
-'INT','fn2(INT)','NATIVE','true'
-'DOUBLE','fn(INT)','NATIVE','true'
-'INT','fn(INT, STRING)','NATIVE','true'
-'INT','fn(STRING, INT)','NATIVE','true'
----- TYPES
-STRING, STRING, STRING, STRING
-====
----- QUERY
-show aggregate functions
----- RESULTS
-'INT','agg_fn(INT, STRING)','NATIVE','true'
----- TYPES
-STRING, STRING, STRING, STRING
-====
----- QUERY
-show analytic functions
----- RESULTS
----- TYPES
-STRING, STRING, STRING, STRING
-====
----- QUERY
# Negative test for showing builtin scalar functions. The result
# should not contain aggregate or analytic functions. Note that
# the result must be non-empty for the test to suceed.
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ab9e54bc/testdata/workloads/functional-query/queries/QueryTest/truncate-table.test
----------------------------------------------------------------------
diff --git a/testdata/workloads/functional-query/queries/QueryTest/truncate-table.test b/testdata/workloads/functional-query/queries/QueryTest/truncate-table.test
index 19480ff..9a4c16e 100644
--- a/testdata/workloads/functional-query/queries/QueryTest/truncate-table.test
+++ b/testdata/workloads/functional-query/queries/QueryTest/truncate-table.test
@@ -1,7 +1,8 @@
====
---- QUERY
# First create a partitioned table
-create table t1 like functional.alltypes location '$FILESYSTEM_PREFIX/test-warehouse/t1';
+create table t1 like functional.alltypes
+location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/t1';
insert into t1 partition(year, month) select * from functional.alltypes;
compute incremental stats t1;
show table stats t1;
@@ -117,7 +118,8 @@ STRING, STRING, BIGINT, BIGINT, INT, DOUBLE
====
---- QUERY
# Create an unpartitioned table.
-create table t2 like functional.tinytable location '$FILESYSTEM_PREFIX/test-warehouse/t2';
+create table t2 like functional.tinytable
+location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/t2';
insert into t2 select * from functional.tinytable;
compute incremental stats t2;
show table stats t2;
@@ -167,7 +169,8 @@ truncate table if exists non_existent;
====
---- QUERY
# Create an unpartitioned table.
-create table t3 like functional.tinytable location '$FILESYSTEM_PREFIX/test-warehouse/t3';
+create table t3 like functional.tinytable
+location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/t3';
insert into t3 select * from functional.tinytable;
select count(*) from t3;
---- RESULTS
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ab9e54bc/testdata/workloads/functional-query/queries/QueryTest/views-ddl.test
----------------------------------------------------------------------
diff --git a/testdata/workloads/functional-query/queries/QueryTest/views-ddl.test b/testdata/workloads/functional-query/queries/QueryTest/views-ddl.test
index a30a668..b62955e 100644
--- a/testdata/workloads/functional-query/queries/QueryTest/views-ddl.test
+++ b/testdata/workloads/functional-query/queries/QueryTest/views-ddl.test
@@ -1,13 +1,13 @@
====
---- QUERY
# Create a simple view without renaming the columns.
-create view ddl_test_db.simple_view as
+create view $DATABASE.simple_view as
select * from functional.alltypes
---- RESULTS
====
---- QUERY
# Test that 'if not exists' swallows the error (view already exists)
-create view if not exists ddl_test_db.simple_view as
+create view if not exists $DATABASE.simple_view as
select * from functional.alltypesagg
---- RESULTS
====
@@ -15,19 +15,19 @@ select * from functional.alltypesagg
# Create another simple view with 'if not exists' on a subset of
# alltypes' columns using custom column names and comments
create view if not exists
-ddl_test_db.simple_view_sub (x, y comment 'hello', z) as
+$DATABASE.simple_view_sub (x, y comment 'hello', z) as
select int_col, string_col, timestamp_col from functional.alltypes
---- RESULTS
====
---- QUERY
# Create a view on a parquet table (Hive cannot create/read/write parquet)
-create view ddl_test_db.parquet_view as
+create view $DATABASE.parquet_view as
select * from functional_parquet.alltypes where id < 20
---- RESULTS
====
---- QUERY
# Create a complex view with predicates, joins, aggregates and order by
-create view ddl_test_db.complex_view (abc comment 'agg', xyz comment 'gby') as
+create view $DATABASE.complex_view (abc comment 'agg', xyz comment 'gby') as
select count(a.bigint_col), b.string_col from
functional.alltypesagg a inner join functional.alltypestiny b
on a.id = b.id where a.bigint_col < 50
@@ -37,13 +37,13 @@ order by b.string_col limit 100
====
---- QUERY
# Create a view on a view
-create view ddl_test_db.view_view (aaa, bbb) as
-select * from ddl_test_db.complex_view
+create view $DATABASE.view_view (aaa, bbb) as
+select * from $DATABASE.complex_view
---- RESULTS
====
---- QUERY
# Test that the views are displayed by 'show tables'
-show tables in ddl_test_db
+show tables in $DATABASE
---- RESULTS
'complex_view'
'parquet_view'
@@ -53,7 +53,7 @@ show tables in ddl_test_db
====
---- QUERY
# Test that the views can be described
-describe ddl_test_db.simple_view
+describe $DATABASE.simple_view
---- RESULTS
'id','int',''
'bool_col','boolean',''
@@ -72,7 +72,7 @@ describe ddl_test_db.simple_view
string,string,string
====
---- QUERY
-describe ddl_test_db.simple_view_sub
+describe $DATABASE.simple_view_sub
---- RESULTS
'x','int',''
'y','string','hello'
@@ -81,7 +81,7 @@ describe ddl_test_db.simple_view_sub
string,string,string
====
---- QUERY
-describe ddl_test_db.complex_view
+describe $DATABASE.complex_view
---- RESULTS
'abc','bigint','agg'
'xyz','string','gby'
@@ -89,7 +89,7 @@ describe ddl_test_db.complex_view
string,string,string
====
---- QUERY
-describe ddl_test_db.parquet_view
+describe $DATABASE.parquet_view
---- RESULTS
'id','int',''
'bool_col','boolean',''
@@ -108,7 +108,7 @@ describe ddl_test_db.parquet_view
string,string,string
====
---- QUERY
-describe ddl_test_db.view_view
+describe $DATABASE.view_view
---- RESULTS
'aaa','bigint',''
'bbb','string',''
@@ -117,35 +117,35 @@ string,string,string
====
---- QUERY
# Test that the views can be queried.
-select count(*) from ddl_test_db.simple_view
+select count(*) from $DATABASE.simple_view
---- RESULTS
7300
---- TYPES
bigint
====
---- QUERY
-select count(*) from ddl_test_db.simple_view_sub
+select count(*) from $DATABASE.simple_view_sub
---- RESULTS
7300
---- TYPES
bigint
====
---- QUERY
-select count(*) from ddl_test_db.complex_view
+select count(*) from $DATABASE.complex_view
---- RESULTS
2
---- TYPES
bigint
====
---- QUERY
-select count(*) from ddl_test_db.parquet_view
+select count(*) from $DATABASE.parquet_view
---- RESULTS
20
---- TYPES
bigint
====
---- QUERY
-select count(*) from ddl_test_db.view_view
+select count(*) from $DATABASE.view_view
---- RESULTS
2
---- TYPES
@@ -153,12 +153,12 @@ bigint
====
---- QUERY
# Test dropping a view
-drop view ddl_test_db.simple_view_sub
+drop view $DATABASE.simple_view_sub
---- RESULTS
====
---- QUERY
# Test that the view is gone
-show tables in ddl_test_db
+show tables in $DATABASE
---- RESULTS
'complex_view'
'parquet_view'
@@ -167,28 +167,28 @@ show tables in ddl_test_db
====
---- QUERY
# Test 'if exists' for dropping a view (view does not exist)
-drop view if exists ddl_test_db.bad_view
+drop view if exists $DATABASE.bad_view
---- RESULTS
====
---- QUERY
# Test 'if exists' does not drop a table with same name
-create table ddl_test_db.drop_tbl_test(a int)
+create table $DATABASE.drop_tbl_test(a int)
---- RESULTS
====
---- QUERY
-drop view if exists ddl_test_db.drop_tbl_test
+drop view if exists $DATABASE.drop_tbl_test
---- RESULTS
====
---- QUERY
# Test drop table 'if exists' does not drop a view with same name.
# We try to drop a table with name complex_view and it should should
# still be listed in the subsequent show tables output (as a view).
-drop table if exists ddl_test_db.complex_view
+drop table if exists $DATABASE.complex_view
---- RESULTS
====
---- QUERY
# Test that the table is present
-show tables in ddl_test_db
+show tables in $DATABASE
---- RESULTS
'drop_tbl_test'
'complex_view'
@@ -198,17 +198,17 @@ show tables in ddl_test_db
====
---- QUERY
# Test renaming a view
-alter view ddl_test_db.view_view rename to ddl_test_db.view_on_view
+alter view $DATABASE.view_view rename to $DATABASE.view_on_view
---- RESULTS
====
---- QUERY
# Test renaming a parquet view
-alter view ddl_test_db.parquet_view rename to ddl_test_db.new_parquet_view
+alter view $DATABASE.parquet_view rename to $DATABASE.new_parquet_view
---- RESULTS
====
---- QUERY
# Test that the view was renamed
-show tables in ddl_test_db
+show tables in $DATABASE
---- RESULTS
'drop_tbl_test'
'complex_view'
@@ -218,14 +218,14 @@ show tables in ddl_test_db
====
---- QUERY
# Test altering a with a new definition
-alter view ddl_test_db.new_parquet_view as
+alter view $DATABASE.new_parquet_view as
select bigint_col, string_col from functional_parquet.alltypesagg
where bigint_col is null limit 10
---- RESULTS
====
---- QUERY
# Test querying the altered view
-select count(bigint_col), count(string_col) from ddl_test_db.new_parquet_view
+select count(bigint_col), count(string_col) from $DATABASE.new_parquet_view
---- RESULTS
0,10
---- TYPES
@@ -233,12 +233,12 @@ bigint,bigint
====
---- QUERY
# Create a view on a constant select and try to query it.
-create view ddl_test_db.const_view
+create view $DATABASE.const_view
as select 1, 'a', cast(10.0 as float)
---- RESULTS
====
---- QUERY
-select * from ddl_test_db.const_view
+select * from $DATABASE.const_view
---- RESULTS
1,'a',10
---- TYPES
@@ -247,14 +247,14 @@ tinyint,string,float
---- QUERY
# Test that parentheses are preserved in view creation.
# If the parentheses were ignored the query would return a count > 0.
-create view ddl_test_db.paren_view as
+create view $DATABASE.paren_view as
select count(*) from functional.alltypessmall
where true and (true or false) and false
---- RESULTS
====
---- QUERY
# Test that parentheses are preserved in view creation.
-select * from ddl_test_db.paren_view
+select * from $DATABASE.paren_view
---- RESULTS
0
---- TYPES
@@ -262,13 +262,13 @@ bigint
====
---- QUERY
# Create a view with decimal columns. Regression test for IMPALA-1021.
-create view ddl_test_db.decimal_view as
+create view $DATABASE.decimal_view as
select * from functional.decimal_tbl
---- RESULTS
====
---- QUERY
# Query a view with decimal columns. Regression test for IMPALA-1021.
-select * from ddl_test_db.decimal_view
+select * from $DATABASE.decimal_view
---- RESULTS
1234,2222,1.2345678900,0.12345678900000000000000000000000000000,12345.78900,1
12345,333,123.4567890000,0.12345678900000000000000000000000000000,11.22000,1
@@ -281,14 +281,14 @@ decimal,decimal,decimal,decimal,decimal,decimal
---- QUERY
# Test that plan hints are stored in the view as end-of-line commented hints
# for view-compatibility with Hive.
-create view ddl_test_db.hints_test as
+create view $DATABASE.hints_test as
select /* +straight_join */ a.* from functional.alltypestiny a
inner join /* +broadcast */ functional.alltypes b on a.id = b.id
inner join /* +shuffle */ functional.alltypessmall c on b.id = c.id
---- RESULTS
====
---- QUERY
-describe formatted ddl_test_db.hints_test
+describe formatted $DATABASE.hints_test
---- TYPES
string,string,string
---- RESULTS: VERIFY_IS_SUBSET
@@ -310,7 +310,7 @@ string,string,string
====
---- QUERY
# Test querying the hinted view.
-select count(*) from ddl_test_db.hints_test
+select count(*) from $DATABASE.hints_test
---- RESULTS
8
---- TYPES
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ab9e54bc/tests/common/parametrize.py
----------------------------------------------------------------------
diff --git a/tests/common/parametrize.py b/tests/common/parametrize.py
index 02cf707..0ba4205 100644
--- a/tests/common/parametrize.py
+++ b/tests/common/parametrize.py
@@ -25,10 +25,19 @@ from tests.common.patterns import is_valid_impala_identifier
class UniqueDatabase(object):
@staticmethod
- def parametrize(name_prefix='test_db'):
- name_prefix = str(name_prefix)
- if not is_valid_impala_identifier(name_prefix):
- raise ValueError('name_prefix "{0}" is not a valid Impala identifier; check '
- 'value for long length or invalid '
- 'characters.'.format(name_prefix))
- return pytest.mark.parametrize('unique_database', [name_prefix], indirect=True)
+ def parametrize(name_prefix=None, sync_ddl=False, num_dbs=1):
+ named_params = {}
+ if name_prefix is not None:
+ name_prefix = str(name_prefix)
+ if not is_valid_impala_identifier(name_prefix):
+ raise ValueError('name_prefix "{0}" is not a valid Impala identifier; check '
+ 'value for long length or invalid '
+ 'characters.'.format(name_prefix))
+ named_params["name_prefix"] = name_prefix
+ if not isinstance(sync_ddl, bool):
+ raise ValueError('value {0} of sync_ddl is be a boolean'.format(sync_ddl))
+ named_params["sync_ddl"] = sync_ddl
+ if not isinstance(num_dbs, int) or num_dbs <= 0:
+ raise ValueError("num_dbs must be an integer >= 1 but '{0}' given".format(num_dbs))
+ named_params["num_dbs"] = num_dbs
+ return pytest.mark.parametrize('unique_database', [named_params], indirect=True)
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ab9e54bc/tests/conftest.py
----------------------------------------------------------------------
diff --git a/tests/conftest.py b/tests/conftest.py
index 259f43f..3193c9e 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -213,18 +213,26 @@ def unique_database(request, testid_checksum):
from tests.common.parametrize import UniqueDatabase
- @UniqueDatabase.parametrize(name_prefix='mydb')
+ @UniqueDatabase.parametrize(name_prefix='mydb', num_dbs=3, sync_ddl=True)
def test_something(self, vector, unique_database):
- # fixture creates database mydb_48A80F
+ # fixture creates databases mydb_48A80F, mydb_48A80F2, mydb_48A80F3 with sync_ddl
self.client.execute('DROP TABLE IF EXISTS `{0}`.`mytable`'.format(unique_database))
# test does other stuff with the unique_database name as needed
- The supported parameter:
+ The supported parameters:
- name_prefix: string (defaults to test function __name__) - prefix to be used for the
- database name
+ name_prefix: string (defaults to test function __name__)
+ - prefix to be used for the database name
- For a similar DB-API 2 compliant connection/cursor that use HS2 see the 'conn' and
+ num_dbs: integer (defaults to 1)
+ - number of unique databases to create
+ - the name of the 2nd, 3rd, etc. databases are generated by appending "2", "3",
+ etc., to the first database name (which does not have a "1" suffix)
+
+ sync_ddl: boolean (defaults to False)
+ - indicates whether the unique database should be created with sync_ddl
+
+ For a similar DB-API 2 compliant connection/cursor that uses HS2 see the 'conn' and
'unique_cursor' fixtures below.
"""
@@ -233,32 +241,47 @@ def unique_database(request, testid_checksum):
'the fixture must guarantee unique per-test '
'databases.')
- db_name_prefix = getattr(request, 'param', request.function.__name__)
-
- db_name = '{0}_{1}'.format(db_name_prefix, testid_checksum)
- if not is_valid_impala_identifier(db_name):
- raise ValueError('Unique database name "{0}" is not a valid Impala identifer; check '
- 'test function name or any prefixes for long length or invalid '
- 'characters.'.format(db_name))
+ db_name_prefix = request.function.__name__
+ sync_ddl = False
+ num_dbs = 1
+ fixture_params = getattr(request, 'param', None)
+ if fixture_params is not None:
+ if "name_prefix" in fixture_params: db_name_prefix = fixture_params["name_prefix"]
+ if "sync_ddl" in fixture_params: sync_ddl = fixture_params["sync_ddl"]
+ if "num_dbs" in fixture_params: num_dbs = fixture_params["num_dbs"]
+
+ first_db_name = '{0}_{1}'.format(db_name_prefix, testid_checksum)
+ db_names = [first_db_name]
+ for i in range(2, num_dbs + 1):
+ db_names.append(first_db_name + str(i))
+ for db_name in db_names:
+ if not is_valid_impala_identifier(db_name):
+ raise ValueError('Unique database name "{0}" is not a valid Impala identifer; check '
+ 'test function name or any prefixes for long length or invalid '
+ 'characters.'.format(db_name))
def cleanup():
# Make sure we don't try to drop the current session database
request.instance.execute_query_expect_success(request.instance.client, "use default")
- request.instance.execute_query_expect_success(
- request.instance.client, 'DROP DATABASE `{0}` CASCADE'.format(db_name))
- LOG.info('Dropped database "{0}" for test ID "{1}"'.format(db_name,
- str(request.node.nodeid)))
+ for db_name in db_names:
+ request.instance.execute_query_expect_success(
+ request.instance.client, 'DROP DATABASE `{0}` CASCADE'.format(db_name),
+ {'sync_ddl': sync_ddl})
+ LOG.info('Dropped database "{0}" for test ID "{1}"'.format(db_name,
+ str(request.node.nodeid)))
request.addfinalizer(cleanup)
- request.instance.execute_query_expect_success(
- request.instance.client, 'DROP DATABASE IF EXISTS `{0}` CASCADE'.format(db_name))
- request.instance.execute_query_expect_success(
- request.instance.client, 'CREATE DATABASE `{0}`'.format(db_name))
- LOG.info('Created database "{0}" for test ID "{1}"'.format(db_name,
- str(request.node.nodeid)))
- return db_name
-
+ for db_name in db_names:
+ request.instance.execute_query_expect_success(
+ request.instance.client, 'DROP DATABASE IF EXISTS `{0}` CASCADE'.format(db_name),
+ {'sync_ddl': sync_ddl})
+ request.instance.execute_query_expect_success(
+ request.instance.client, 'CREATE DATABASE `{0}`'.format(db_name),
+ {'sync_ddl': sync_ddl})
+ LOG.info('Created database "{0}" for test ID "{1}"'.format(db_name,
+ str(request.node.nodeid)))
+ return first_db_name
@pytest.yield_fixture
def kudu_client():