commit 184dd84253cb671e815bc90354a9652af4a21d75 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..b6ffacf241251c52d63ed703c7cc1d320bce0dc6 --- /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) ; +insert into table t_test VALUES ('李四'),('ちぱっち'); +select * from t_test; +select * from t_test where name='李四'; + +-- test view with unicode predicate +create view t_view_test as select * 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..3e087d8ccdb216fce23fd2246084aae39601f529 --- /dev/null +++ ql/src/test/results/clientpositive/unicode_data.q.out @@ -0,0 +1,122 @@ +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) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:unicode_data_db +PREHOOK: Output: unicode_data_db@t_test +POSTHOOK: query: create table t_test (name string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:unicode_data_db +POSTHOOK: Output: unicode_data_db@t_test +PREHOOK: query: insert into table t_test VALUES ('李四'),('ちぱっち') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: unicode_data_db@t_test +POSTHOOK: query: insert into table t_test VALUES ('李四'),('ちぱっち') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: unicode_data_db@t_test +POSTHOOK: Lineage: t_test.name SCRIPT [] +PREHOOK: query: select * from t_test +PREHOOK: type: QUERY +PREHOOK: Input: unicode_data_db@t_test +#### A masked pattern was here #### +POSTHOOK: query: select * from t_test +POSTHOOK: type: QUERY +POSTHOOK: Input: unicode_data_db@t_test +#### A masked pattern was here #### +李四 +ちぱっち +PREHOOK: query: select * from t_test where name='李四' +PREHOOK: type: QUERY +PREHOOK: Input: unicode_data_db@t_test +#### A masked pattern was here #### +POSTHOOK: query: select * from t_test where name='李四' +POSTHOOK: type: QUERY +POSTHOOK: Input: unicode_data_db@t_test +#### A masked pattern was here #### +李四 +PREHOOK: query: create view t_view_test as select * 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 * 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.name SIMPLE [] +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: 18 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (name = '李四') (type: boolean) + Statistics: Num rows: 1 Data size: 9 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: '李四' (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 9 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 9 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 #### +李四 +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