====
---- QUERY
# Test to select from table with additional columns at the end that are not in the 
# schema and with missing columns
select * from tblwithraggedcolumns
---- RESULTS
'hello',1
'\\r\\r\\n',NULL
'',NULL
'foo',2
'a',3
'',NULL
'b',4
'c',NULL
'd',NULL
'ColumnWithCarriageReturn',123
'at16bytes',NULL
'NoDelimiter',0
---- TYPES
string, int
====
---- QUERY
select int_col from tblwithraggedcolumns
---- RESULTS
0
1
123
2
3
4
NULL
NULL
NULL
NULL
NULL
NULL
---- TYPES
int
====
---- QUERY
select str_col from tblwithraggedcolumns
---- RESULTS
'hello'
'\\r\\r\\n'
''
'foo'
'a'
''
'b'
'c'
'd'
'ColumnWithCarriageReturn'
'at16bytes'
'NoDelimiter'
---- TYPES
string
====
---- QUERY
# Quoting test
SELECT `table_alias`.`int_col` AS `default_int_col`
FROM `functional`.`alltypes` `table_alias`
GROUP BY `default_int_col`
LIMIT 10
---- RESULTS
0
7
3
9
4
6
1
5
2
8
---- TYPES
int
====
---- QUERY
# Test string-literal escape sequences
SELECT ASCII("\0"), ASCII("\\"), ASCII("\b"), ASCII("\n"), ASCII("\r"), ASCII("\t"), ASCII("\Z")
---- RESULTS
0,92,8,10,13,9,26
---- TYPES
int, int, int, int, int, int, int
====
---- QUERY
# Test escaping non-escape chars. We expect the escape to be simply removed.
SELECT ASCII("\a"), ASCII("\X"), ASCII("\z"), ASCII("\?"), ASCII("\*")
---- RESULTS
97,88,122,63,42
---- TYPES
int, int, int, int, int
====
---- QUERY
# Test escaping '%' and '_' which handled specially.
# We expect '\\%' and '\%' to result in '\%' (similarly for '_')
SELECT "\%", "\\%", "\_", "\\_"
---- RESULTS
'\\%','\\%','\\_','\\_'
---- TYPES
string, string, string, string
====
---- QUERY
# Test query filed in IMPALA-65
SELECT "quote \"", 'quote \''
---- RESULTS
'quote "','quote ''
---- TYPES
string, string
====
---- QUERY
#  Select from table that contains unsupported primitive types
SELECT int_col, str_col, bigint_col from functional.unsupported_types
---- RESULTS
0,'aaaa',0
1,'bbbb',10
2,'cccc',20
NULL,'NULL',NULL
4,'eeee',40
---- TYPES
int, string, bigint
====
---- QUERY
# where clause is a SlotRef
SELECT count(*) from functional.alltypes where bool_col
---- RESULTS
3650
---- TYPES
bigint
====
---- QUERY
# having clause is a SlotRef
SELECT count(*) from functional.alltypes group by bool_col having bool_col
---- RESULTS
3650
---- TYPES
bigint
====
---- QUERY
# IMPALA-3812: Verfiy that the correct error message is shown when the star expansion adds
# the DATE unsupported type to the select list.
select * from functional.unsupported_types
---- CATCH
Unsupported type 'DATE' in 'functional.unsupported_types.date_col'.
====
---- QUERY
# IMPALA-3812: Verfiy that DATE type is displayed correctly in the describe table.
describe functional.unsupported_types
---- RESULTS
'int_col','int',''
'dec_col','decimal(10,0)',''
'date_col','date',''
'str_col','string',''
'bin_col','binary',''
'bigint_col','bigint',''
---- TYPES
STRING, STRING, STRING
====
