diff --git itests/src/test/resources/testconfiguration.properties itests/src/test/resources/testconfiguration.properties index f07449d..b38d866 100644 --- itests/src/test/resources/testconfiguration.properties +++ itests/src/test/resources/testconfiguration.properties @@ -906,6 +906,7 @@ spark.query.files=add_part_multiple.q, \ transform_ppr1.q, \ transform_ppr2.q, \ udf_example_add.q, \ + udf_in_file.q, \ union.q, \ union10.q, \ union11.q, \ diff --git ql/src/test/results/clientpositive/spark/udf_in_file.q.out ql/src/test/results/clientpositive/spark/udf_in_file.q.out new file mode 100644 index 0000000..c769d1f --- /dev/null +++ ql/src/test/results/clientpositive/spark/udf_in_file.q.out @@ -0,0 +1,96 @@ +PREHOOK: query: DESCRIBE FUNCTION in_file +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION in_file +POSTHOOK: type: DESCFUNCTION +in_file(str, filename) - Returns true if str appears in the file +PREHOOK: query: CREATE TABLE value_src (str_val char(3), ch_val STRING, vch_val varchar(10), + str_val_neg char(3), ch_val_neg STRING, vch_val_neg varchar(10)) + ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@value_src +POSTHOOK: query: CREATE TABLE value_src (str_val char(3), ch_val STRING, vch_val varchar(10), + str_val_neg char(3), ch_val_neg STRING, vch_val_neg varchar(10)) + ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@value_src +PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/in_file.dat' INTO TABLE value_src +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@value_src +POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/in_file.dat' INTO TABLE value_src +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@value_src +PREHOOK: query: EXPLAIN +SELECT in_file(str_val, "../../data/files/test2.dat"), + in_file(ch_val, "../../data/files/test2.dat"), + in_file(vch_val, "../../data/files/test2.dat"), + in_file(str_val_neg, "../../data/files/test2.dat"), + in_file(ch_val_neg, "../../data/files/test2.dat"), + in_file(vch_val_neg, "../../data/files/test2.dat"), + in_file("303", "../../data/files/test2.dat"), + in_file("304", "../../data/files/test2.dat"), + in_file(CAST(NULL AS STRING), "../../data/files/test2.dat") +FROM value_src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT in_file(str_val, "../../data/files/test2.dat"), + in_file(ch_val, "../../data/files/test2.dat"), + in_file(vch_val, "../../data/files/test2.dat"), + in_file(str_val_neg, "../../data/files/test2.dat"), + in_file(ch_val_neg, "../../data/files/test2.dat"), + in_file(vch_val_neg, "../../data/files/test2.dat"), + in_file("303", "../../data/files/test2.dat"), + in_file("304", "../../data/files/test2.dat"), + in_file(CAST(NULL AS STRING), "../../data/files/test2.dat") +FROM value_src LIMIT 1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-0 + Fetch Operator + limit: 1 + Processor Tree: + TableScan + alias: value_src + Statistics: Num rows: 0 Data size: 24 Basic stats: PARTIAL Column stats: NONE + Select Operator + expressions: in_file(str_val, '../../data/files/test2.dat') (type: boolean), in_file(ch_val, '../../data/files/test2.dat') (type: boolean), in_file(vch_val, '../../data/files/test2.dat') (type: boolean), in_file(str_val_neg, '../../data/files/test2.dat') (type: boolean), in_file(ch_val_neg, '../../data/files/test2.dat') (type: boolean), in_file(vch_val_neg, '../../data/files/test2.dat') (type: boolean), in_file('303', '../../data/files/test2.dat') (type: boolean), in_file('304', '../../data/files/test2.dat') (type: boolean), in_file(UDFToString(null), '../../data/files/test2.dat') (type: boolean) + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 + Statistics: Num rows: 0 Data size: 24 Basic stats: PARTIAL Column stats: NONE + Limit + Number of rows: 1 + Statistics: Num rows: 0 Data size: 24 Basic stats: PARTIAL Column stats: NONE + ListSink + +PREHOOK: query: SELECT in_file(str_val, "../../data/files/test2.dat"), + in_file(ch_val, "../../data/files/test2.dat"), + in_file(vch_val, "../../data/files/test2.dat"), + in_file(str_val_neg, "../../data/files/test2.dat"), + in_file(ch_val_neg, "../../data/files/test2.dat"), + in_file(vch_val_neg, "../../data/files/test2.dat"), + in_file("303", "../../data/files/test2.dat"), + in_file("304", "../../data/files/test2.dat"), + in_file(CAST(NULL AS STRING), "../../data/files/test2.dat") +FROM value_src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@value_src +#### A masked pattern was here #### +POSTHOOK: query: SELECT in_file(str_val, "../../data/files/test2.dat"), + in_file(ch_val, "../../data/files/test2.dat"), + in_file(vch_val, "../../data/files/test2.dat"), + in_file(str_val_neg, "../../data/files/test2.dat"), + in_file(ch_val_neg, "../../data/files/test2.dat"), + in_file(vch_val_neg, "../../data/files/test2.dat"), + in_file("303", "../../data/files/test2.dat"), + in_file("304", "../../data/files/test2.dat"), + in_file(CAST(NULL AS STRING), "../../data/files/test2.dat") +FROM value_src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@value_src +#### A masked pattern was here #### +true true true false false false true false NULL