commit af16942f83b23d18d0379ca30e635ea297c88371 Author: Andrew Sherman Date: Thu Jun 21 14:44:44 2018 -0700 HIVE-19581: add test to show unicode works as predicate in views. The bug originally reported in HIVE-19581 is already fixed, add a test to avoid regressions. diff --git ql/src/test/queries/clientpositive/unicode_data.q ql/src/test/queries/clientpositive/unicode_data.q new file mode 100644 index 0000000000000000000000000000000000000000..61aab73a74ad26bf3969f6dc69a27bfb9399b7d5 --- /dev/null +++ ql/src/test/queries/clientpositive/unicode_data.q @@ -0,0 +1,15 @@ +create database unicode_data_db; +use unicode_data_db; + +-- test simple unicode data +create table t_test (name string, value int) ; +insert into table t_test VALUES ('李四', 100),('ちぱっち', 200); +select name, value from t_test; +select name, value from t_test where name='李四'; + +-- test view with unicode predicate +create view t_view_test as select value from t_test where name='李四'; +explain select * from t_view_test; +select * from t_view_test; + +drop database unicode_data_db cascade; diff --git ql/src/test/results/clientpositive/unicode_data.q.out ql/src/test/results/clientpositive/unicode_data.q.out new file mode 100644 index 0000000000000000000000000000000000000000..4c1decc3db7172bc17bfdf59ccd296dac3e22362 --- /dev/null +++ ql/src/test/results/clientpositive/unicode_data.q.out @@ -0,0 +1,123 @@ +PREHOOK: query: create database unicode_data_db +PREHOOK: type: CREATEDATABASE +PREHOOK: Output: database:unicode_data_db +POSTHOOK: query: create database unicode_data_db +POSTHOOK: type: CREATEDATABASE +POSTHOOK: Output: database:unicode_data_db +PREHOOK: query: use unicode_data_db +PREHOOK: type: SWITCHDATABASE +PREHOOK: Input: database:unicode_data_db +POSTHOOK: query: use unicode_data_db +POSTHOOK: type: SWITCHDATABASE +POSTHOOK: Input: database:unicode_data_db +PREHOOK: query: create table t_test (name string, value int) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:unicode_data_db +PREHOOK: Output: unicode_data_db@t_test +POSTHOOK: query: create table t_test (name string, value int) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:unicode_data_db +POSTHOOK: Output: unicode_data_db@t_test +PREHOOK: query: insert into table t_test VALUES ('李四', 100),('ちぱっち', 200) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: unicode_data_db@t_test +POSTHOOK: query: insert into table t_test VALUES ('李四', 100),('ちぱっち', 200) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: unicode_data_db@t_test +POSTHOOK: Lineage: t_test.name SCRIPT [] +POSTHOOK: Lineage: t_test.value SCRIPT [] +PREHOOK: query: select name, value from t_test +PREHOOK: type: QUERY +PREHOOK: Input: unicode_data_db@t_test +#### A masked pattern was here #### +POSTHOOK: query: select name, value from t_test +POSTHOOK: type: QUERY +POSTHOOK: Input: unicode_data_db@t_test +#### A masked pattern was here #### +李四 100 +ちぱっち 200 +PREHOOK: query: select name, value from t_test where name='李四' +PREHOOK: type: QUERY +PREHOOK: Input: unicode_data_db@t_test +#### A masked pattern was here #### +POSTHOOK: query: select name, value from t_test where name='李四' +POSTHOOK: type: QUERY +POSTHOOK: Input: unicode_data_db@t_test +#### A masked pattern was here #### +李四 100 +PREHOOK: query: create view t_view_test as select value from t_test where name='李四' +PREHOOK: type: CREATEVIEW +PREHOOK: Input: unicode_data_db@t_test +PREHOOK: Output: database:unicode_data_db +PREHOOK: Output: unicode_data_db@t_view_test +POSTHOOK: query: create view t_view_test as select value from t_test where name='李四' +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: unicode_data_db@t_test +POSTHOOK: Output: database:unicode_data_db +POSTHOOK: Output: unicode_data_db@t_view_test +POSTHOOK: Lineage: t_view_test.value SIMPLE [(t_test)t_test.FieldSchema(name:value, type:int, comment:null), ] +PREHOOK: query: explain select * from t_view_test +PREHOOK: type: QUERY +POSTHOOK: query: explain select * from t_view_test +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: t_test + filterExpr: (name = '李四') (type: boolean) + properties: + insideView TRUE + Statistics: Num rows: 2 Data size: 26 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (name = '李四') (type: boolean) + Statistics: Num rows: 1 Data size: 13 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: value (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 13 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 13 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from t_view_test +PREHOOK: type: QUERY +PREHOOK: Input: unicode_data_db@t_test +PREHOOK: Input: unicode_data_db@t_view_test +#### A masked pattern was here #### +POSTHOOK: query: select * from t_view_test +POSTHOOK: type: QUERY +POSTHOOK: Input: unicode_data_db@t_test +POSTHOOK: Input: unicode_data_db@t_view_test +#### A masked pattern was here #### +100 +PREHOOK: query: drop database unicode_data_db cascade +PREHOOK: type: DROPDATABASE +PREHOOK: Input: database:unicode_data_db +PREHOOK: Output: database:unicode_data_db +PREHOOK: Output: unicode_data_db@t_test +PREHOOK: Output: unicode_data_db@t_view_test +POSTHOOK: query: drop database unicode_data_db cascade +POSTHOOK: type: DROPDATABASE +POSTHOOK: Input: database:unicode_data_db +POSTHOOK: Output: database:unicode_data_db +POSTHOOK: Output: unicode_data_db@t_test +POSTHOOK: Output: unicode_data_db@t_view_test