mirror of
https://github.com/apache/impala.git
synced 2026-01-15 06:00:38 -05:00
In the BE we build partition names with the trailing char '/'. In the FE we build partition names without a trailing char. We should make this consistent because this causes some annoying string adjustments in the FE and can cause hidden bugs. This patch creates partition names without the trailing '/' both in the BE and the FE. This follows Hive's behavior that also prints partition names without the trailing '/'. Testing: * Ran exhaustive tests Change-Id: I7e40111e2d1148aeb01ebc985bbb15db7d6a6012 Reviewed-on: http://gerrit.cloudera.org:8080/16850 Reviewed-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
246 lines
3.3 KiB
Plaintext
246 lines
3.3 KiB
Plaintext
====
|
|
---- QUERY
|
|
create table insert_overwrite_nopart like $ORIGINAL_DB.insert_overwrite_nopart;
|
|
create table insert_overwrite_partitioned like $ORIGINAL_DB.insert_overwrite_partitioned;
|
|
====
|
|
---- QUERY
|
|
# insert overwrite into unpartitioned table
|
|
insert overwrite table insert_overwrite_nopart
|
|
select int_col
|
|
from functional.tinyinttable
|
|
---- RESULTS
|
|
: 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
|
|
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
|
|
select 10
|
|
from functional.tinyinttable
|
|
---- RESULTS
|
|
: 10
|
|
====
|
|
---- QUERY
|
|
# check results from previous insert
|
|
select col1
|
|
from insert_overwrite_nopart
|
|
order by col1
|
|
limit 20
|
|
---- TYPES
|
|
int
|
|
---- RESULTS
|
|
10
|
|
10
|
|
10
|
|
10
|
|
10
|
|
10
|
|
10
|
|
10
|
|
10
|
|
10
|
|
====
|
|
---- QUERY
|
|
insert overwrite table insert_overwrite_nopart
|
|
select 3
|
|
from functional.tinyinttable
|
|
limit 0
|
|
---- RESULTS
|
|
: 0
|
|
====
|
|
---- QUERY
|
|
select count(*) from insert_overwrite_nopart
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
0
|
|
====
|
|
---- QUERY
|
|
# Static partitioned insert
|
|
insert overwrite table insert_overwrite_partitioned
|
|
PARTITION(col2=5)
|
|
select int_col
|
|
from functional.tinyinttable
|
|
---- RESULTS
|
|
col2=5: 10
|
|
====
|
|
---- QUERY
|
|
# Check results of previous insert
|
|
select col1, col2 from insert_overwrite_partitioned
|
|
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
|
|
PARTITION(col2=6)
|
|
select int_col
|
|
from functional.tinyinttable
|
|
---- RESULTS
|
|
col2=6: 10
|
|
====
|
|
---- QUERY
|
|
# Check results of previous insert
|
|
select col1, col2 from
|
|
insert_overwrite_partitioned
|
|
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
|
|
partition(col2=5)
|
|
select 10 from functional.tinyinttable
|
|
---- RESULTS
|
|
col2=5: 10
|
|
====
|
|
---- QUERY
|
|
# Confirm that one partition is still intact
|
|
select col1, col2 from insert_overwrite_partitioned
|
|
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
|
|
partition(col2)
|
|
select int_col, int_col
|
|
from functional.tinyinttable
|
|
---- RESULTS
|
|
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
|
|
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
|
|
partition(col2)
|
|
select 10, 0 from functional.tinyinttable
|
|
where int_col = 0
|
|
---- RESULTS
|
|
col2=0: 1
|
|
====
|
|
---- QUERY
|
|
select col1, col2
|
|
from insert_overwrite_partitioned
|
|
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
|
|
====
|