blob: 23f7abc1b175626cf2fe6a56d19b8d1195b2a856 [file] [log] [blame]
====
---- QUERY
create external table mixed (
id INT COMMENT 'int commnet',
bool_col BOOLEAN COMMENT 'bool commnet',
tinyint_col TINYINT COMMENT 'tinyint comment',
smallint_col SMALLINT COMMENT 'smallint comment',
int_col INT COMMENT 'int comment',
bigint_col BIGINT COMMENT 'bigint comment',
float_col FLOAT COMMENT 'float comment',
double_col DOUBLE COMMENT 'double comment',
date_string_col STRING COMMENT 'string comment',
char_col char(2) COMMENT 'char comment',
varchar_col varchar(5) COMMENT 'varchar comment'
) partitioned by (part int) stored as $MAIN_TABLE_FORMAT;
====
---- QUERY
# Add a first partition which is not avro
insert into mixed partition (part = 1)
values (
1, false, 2, 3, 4, 5, 6.0, 7.0, '1985-07-15',
cast('c2' as char(2)),
cast('my varchar' as varchar(5)));
====
---- QUERY
# And a second partition which is avro
alter table mixed add partition (part = 2);
alter table mixed partition (part = 2) set fileformat avro;
====
---- QUERY
# The query should still yield the original types, even though there is
# now an avro partition.
select * from mixed;
---- TYPES
int, boolean, tinyint, smallint, int, bigint, float, double, string, char, string, int
---- RESULTS
1,false,2,3,4,5,6,7,'1985-07-15','c2','my va',1
====
---- QUERY
# invalidate should have no effect
invalidate metadata mixed;
select * from mixed;
---- TYPES
int, boolean, tinyint, smallint, int, bigint, float, double, string, char, string, int
---- RESULTS
1,false,2,3,4,5,6,7,'1985-07-15','c2','my va',1
====
---- QUERY
# Add incompatible data in the avro partition.
alter table mixed partition (part = 2)
set location '$FILESYSTEM_PREFIX/test-warehouse/alltypes_avro/year=2009/month=1';
refresh mixed;
====
---- QUERY
# Reading data from the Avro partition should fail.
select * from mixed;
---- CATCH
Unresolvable types for column 'tinyint_col': declared column type: TINYINT, table's Avro schema type: int
====
---- QUERY
# Reading data from the non-Avro partition should be fine, with the same types as before.
select * from mixed where part = 1;
---- TYPES
int, boolean, tinyint, smallint, int, bigint, float, double, string, char, string, int
---- RESULTS
1,false,2,3,4,5,6,7,'1985-07-15','c2','my va',1