Files
impala/testdata/workloads/functional-query/queries/QueryTest/insert_overwrite.test
Lenni Kuff ef48f65e76 Add test framework for running Impala query tests via Python
This is the first set of changes required to start getting our functional test
infrastructure moved from JUnit to Python. After investigating a number of
option, I decided to go with a python test executor named py.test
(http://pytest.org/). It is very flexible, open source (MIT licensed), and will
enable us to do some cool things like parallel test execution.

As part of this change, we now use our "test vectors" for query test execution.
This will be very nice because it means if load the "core" dataset you know you
will be able to run the "core" query tests (specified by --exploration_strategy
when running the tests).

You will see that now each combination of table format + query exec options is
treated like an individual test case. this will make it much easier to debug
exactly where something failed.

These new tests can be run using the script at tests/run-tests.sh
2014-01-08 10:46:50 -08:00

258 lines
3.7 KiB
Plaintext

====
---- QUERY
# insert overwrite into unpartitioned table
insert overwrite table insert_overwrite_nopart$TABLE
select int_col
from tinyinttable
---- SETUP
RESET insert_overwrite_nopart$TABLE
---- RESULTS
---- PARTITIONS
/: 10
====
---- QUERY
# Check results - note larger limit than expected in case there's more data written than there should be
select col1
from insert_overwrite_nopart$TABLE
order by col1
limit 20
---- TYPES
int
---- RESULTS
0
1
2
3
4
5
6
7
8
9
====
---- QUERY
# Now do an overwrite that should delete what was just written
insert overwrite table insert_overwrite_nopart$TABLE
select 10
from tinyinttable
---- RESULTS
---- PARTITIONS
/: 10
====
---- QUERY
# check results from previous insert
select col1
from insert_overwrite_nopart$TABLE
order by col1
limit 20
---- TYPES
int
---- RESULTS
10
10
10
10
10
10
10
10
10
10
====
---- QUERY
# TODO: IMP-240 - Hive will delete data even for inserts that write nothing. When we fix IMP-240, this test should fail.
insert overwrite table insert_overwrite_nopart$TABLE
select 3
from tinyinttable
limit 0
---- RESULTS
---- PARTITIONS
====
---- QUERY
select count(*) from insert_overwrite_nopart$TABLE
---- TYPES
bigint
---- RESULTS
10
====
---- QUERY
# Static partitioned insert
insert overwrite table insert_overwrite_partitioned$TABLE
PARTITION(col2=5)
select int_col
from tinyinttable
---- SETUP
RESET insert_overwrite_partitioned$TABLE
---- RESULTS
---- PARTITIONS
/col2=5/: 10
====
---- QUERY
# Check results of previous insert
select col1, col2 from insert_overwrite_partitioned$TABLE
order by col1
limit 20
---- TYPES
int,int
---- RESULTS
0,5
1,5
2,5
3,5
4,5
5,5
6,5
7,5
8,5
9,5
====
---- QUERY
# Insert into another partition, to check that original partition stays intact
insert overwrite table insert_overwrite_partitioned$TABLE
PARTITION(col2=6)
select int_col
from tinyinttable
---- SETUP
RESET insert_overwrite_nopart$TABLE
---- RESULTS
---- PARTITIONS
/col2=6/: 10
====
---- QUERY
# Check results of previous insert
select col1, col2 from
insert_overwrite_partitioned$TABLE
order by col2, col1
limit 30
---- TYPES
int,int
---- RESULTS
0,5
1,5
2,5
3,5
4,5
5,5
6,5
7,5
8,5
9,5
0,6
1,6
2,6
3,6
4,6
5,6
6,6
7,6
8,6
9,6
====
---- QUERY
# Overwrite one partition, check that the other partition remains intact
insert overwrite table insert_overwrite_partitioned$TABLE
partition(col2=5)
select 10 from tinyinttable
---- RESULTS
---- PARTITIONS
/col2=5/: 10
====
---- QUERY
# Confirm that one partition is still intact
select col1, col2 from insert_overwrite_partitioned$TABLE
order by col2, col1 limit 30
---- TYPES
int,int
---- RESULTS
10,5
10,5
10,5
10,5
10,5
10,5
10,5
10,5
10,5
10,5
0,6
1,6
2,6
3,6
4,6
5,6
6,6
7,6
8,6
9,6
====
---- QUERY
# Dynamic partitions
insert overwrite table insert_overwrite_partitioned$TABLE
partition(col2)
select int_col, int_col
from tinyinttable
---- SETUP
DROP PARTITIONS insert_overwrite_partitioned$TABLE
---- RESULTS
---- PARTITIONS
/col2=0/: 1
/col2=1/: 1
/col2=2/: 1
/col2=3/: 1
/col2=4/: 1
/col2=5/: 1
/col2=6/: 1
/col2=7/: 1
/col2=8/: 1
/col2=9/: 1
====
---- QUERY
# Confirm results of previous insert
select col1, col2
from insert_overwrite_partitioned$TABLE
order by col2
limit 30
---- TYPES
int,int
---- RESULTS
0,0
1,1
2,2
3,3
4,4
5,5
6,6
7,7
8,8
9,9
====
---- QUERY
# Overwrite dynamic partition. Limit to 1 row without actually using limit, which forces non-parallel insert
insert overwrite table insert_overwrite_partitioned$TABLE
partition(col2)
select 10, 0 from tinyinttable
where int_col = 0
---- RESULTS
---- PARTITIONS
/col2=0/: 1
====
---- QUERY
select col1, col2
from insert_overwrite_partitioned$TABLE
order by col2
limit 30
---- TYPES
int,int
---- RESULTS
10,0
1,1
2,2
3,3
4,4
5,5
6,6
7,7
8,8
9,9
====