mirror of
https://github.com/apache/impala.git
synced 2025-12-30 12:02:10 -05:00
Before this commit it was quite random which DDL oprations returned a result set and which didn't. With this commit, every DDL operations return a summary of its execution. They declare their result set schema in Frontend.java, and provide the summary in CalatogOpExecutor.java. Updated the tests according to the new behavior. Change-Id: Ic542fb8e49e850052416ac663ee329ee3974e3b9 Reviewed-on: http://gerrit.cloudera.org:8080/9090 Reviewed-by: Alex Behm <alex.behm@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
131 lines
4.3 KiB
Plaintext
131 lines
4.3 KiB
Plaintext
====
|
|
---- QUERY
|
|
create function if not exists hive_pi() returns double
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/hive-exec.jar'
|
|
symbol='org.apache.hadoop.hive.ql.udf.UDFPI';
|
|
---- RESULTS
|
|
'Function has been created.'
|
|
====
|
|
---- QUERY
|
|
create function if not exists foo() returns double
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/not-a-real-file.so'
|
|
symbol='FnDoesNotExist';
|
|
---- CATCH
|
|
Could not load binary: $FILESYSTEM_PREFIX/test-warehouse/not-a-real-file.so
|
|
====
|
|
---- QUERY
|
|
create function if not exists foo() returns double
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/not-a-real-file.so'
|
|
symbol='FnDoesNotExist';
|
|
---- CATCH
|
|
Could not load binary: $FILESYSTEM_PREFIX/test-warehouse/not-a-real-file.so
|
|
====
|
|
---- QUERY
|
|
create function if not exists foo (string, string) returns string location
|
|
'$FILESYSTEM_PREFIX/test-warehouse/$DATABASE_bad_udf.ll' symbol='MyAwesomeUdf';
|
|
---- CATCH
|
|
Could not load binary: $FILESYSTEM_PREFIX/test-warehouse/$DATABASE_bad_udf.ll
|
|
Invalid bitcode signature
|
|
====
|
|
---- QUERY
|
|
# This test is run with codegen disabled. Interpretation only handles up to 20 arguments.
|
|
create function if not exists twenty_args(int, int, int, int, int, int,
|
|
int, int, int, int, int, int, int, int, int, int, int, int, int, int) returns int
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so'
|
|
symbol='TwentyArgs';
|
|
---- RESULTS
|
|
'Function has been created.'
|
|
====
|
|
---- QUERY
|
|
# Verifies that interpretation can support up to 20 arguments
|
|
select twenty_args(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
|
|
---- TYPES
|
|
INT
|
|
---- RESULTS
|
|
210
|
|
====
|
|
---- QUERY
|
|
# This test is run with codegen disabled. Interpretation only handles up to 20 arguments.
|
|
create function if not exists twenty_one_args(int, int, int, int, int, int,
|
|
int, int, int, int, int, int, int, int, int, int, int, int, int, int, int) returns int
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so'
|
|
symbol='TwentyOneArgs';
|
|
---- RESULTS
|
|
'Function has been created.'
|
|
====
|
|
---- QUERY
|
|
# Verifies that interpretation fails with more than 20 arguments.
|
|
select twenty_one_args(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
|
|
---- CATCH
|
|
Cannot interpret native UDF 'twenty_one_args': number of arguments is more than 20. Codegen is needed. Please set DISABLE_CODEGEN to false.
|
|
====
|
|
---- QUERY
|
|
# This test is run with codegen disabled. IR UDF will fail.
|
|
create function if not exists nine_args_ir(int, int, int, int, int, int,
|
|
int, int, int) returns int
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/test-udfs.ll'
|
|
symbol='NineArgs';
|
|
---- RESULTS
|
|
'Function has been created.'
|
|
====
|
|
---- QUERY
|
|
select nine_args_ir(1,2,3,4,5,6,7,8,9);
|
|
---- CATCH
|
|
Cannot interpret LLVM IR UDF 'nine_args_ir': Codegen is needed. Please set DISABLE_CODEGEN to false.
|
|
====
|
|
---- QUERY
|
|
create function if not exists bad_expr(double) returns boolean
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so'
|
|
symbol='BadExpr' prepare_fn='BadExprPrepare' close_fn='BadExprClose';
|
|
---- RESULTS
|
|
'Function has been created.'
|
|
====
|
|
---- QUERY
|
|
create function if not exists bad_expr2(double) returns boolean
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/libTestUdfs.so'
|
|
symbol='BadExpr' prepare_fn='BadExpr2Prepare' close_fn='BadExprClose';
|
|
---- RESULTS
|
|
'Function has been created.'
|
|
====
|
|
---- QUERY
|
|
select count(t1.int_col) from functional.alltypes t1 join functional.alltypes t2
|
|
on (bad_expr(rand()) = (t2.bool_col && t1.bool_col));
|
|
---- CATCH
|
|
BadExpr prepare error
|
|
====
|
|
---- QUERY
|
|
select count(t1.int_col) from functional.alltypes t1 join functional.alltypes t2
|
|
on (bad_expr2(rand()) = (t2.bool_col && t1.bool_col));
|
|
---- CATCH
|
|
BadExpr error
|
|
====
|
|
---- QUERY
|
|
select count(int_col) from functional.alltypes where bad_expr(rand());
|
|
---- CATCH
|
|
BadExpr prepare error
|
|
====
|
|
---- QUERY
|
|
select count(int_col) from functional.alltypes where bad_expr2(rand());
|
|
---- CATCH
|
|
BadExpr2 prepare error
|
|
====
|
|
---- QUERY
|
|
use default;
|
|
drop database $DATABASE;
|
|
---- CATCH
|
|
Cannot drop non-empty database:
|
|
====
|
|
---- QUERY
|
|
use $DATABASE;
|
|
drop function hive_pi();
|
|
drop function twenty_args(int, int, int, int, int, int, int, int,
|
|
int, int, int, int, int, int, int, int, int, int, int, int);
|
|
drop function twenty_one_args(int, int, int, int, int, int, int, int,
|
|
int, int, int, int, int, int, int, int, int, int, int, int, int);
|
|
drop function nine_args_ir(int, int, int, int, int, int, int, int, int);
|
|
drop function bad_expr(double);
|
|
drop function bad_expr2(double);
|
|
---- RESULTS
|
|
'Function has been dropped.'
|
|
====
|