| PREHOOK: query: create table masking_test_n11 as select cast(key as int) as key, value from src |
| PREHOOK: type: CREATETABLE_AS_SELECT |
| PREHOOK: Input: default@src |
| PREHOOK: Output: database:default |
| PREHOOK: Output: default@masking_test_n11 |
| POSTHOOK: query: create table masking_test_n11 as select cast(key as int) as key, value from src |
| POSTHOOK: type: CREATETABLE_AS_SELECT |
| POSTHOOK: Input: default@src |
| POSTHOOK: Output: database:default |
| POSTHOOK: Output: default@masking_test_n11 |
| POSTHOOK: Lineage: masking_test_n11.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] |
| POSTHOOK: Lineage: masking_test_n11.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] |
| PREHOOK: query: create table masking_test_subq_n2 as select cast(key as int) as key, value from src |
| PREHOOK: type: CREATETABLE_AS_SELECT |
| PREHOOK: Input: default@src |
| PREHOOK: Output: database:default |
| PREHOOK: Output: default@masking_test_subq_n2 |
| POSTHOOK: query: create table masking_test_subq_n2 as select cast(key as int) as key, value from src |
| POSTHOOK: type: CREATETABLE_AS_SELECT |
| POSTHOOK: Input: default@src |
| POSTHOOK: Output: database:default |
| POSTHOOK: Output: default@masking_test_subq_n2 |
| POSTHOOK: Lineage: masking_test_subq_n2.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] |
| POSTHOOK: Lineage: masking_test_subq_n2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] |
| PREHOOK: query: explain |
| with q1 as ( select key from q2 where key = '5'), |
| q2 as ( select key from src where key = '5') |
| select * from (select key from q1) a |
| PREHOOK: type: QUERY |
| PREHOOK: Input: default@src |
| #### A masked pattern was here #### |
| POSTHOOK: query: explain |
| with q1 as ( select key from q2 where key = '5'), |
| q2 as ( select key from src where key = '5') |
| select * from (select key from q1) a |
| POSTHOOK: type: QUERY |
| POSTHOOK: Input: default@src |
| #### A masked pattern was here #### |
| STAGE DEPENDENCIES: |
| Stage-0 is a root stage |
| |
| STAGE PLANS: |
| Stage: Stage-0 |
| Fetch Operator |
| limit: -1 |
| Processor Tree: |
| TableScan |
| alias: src |
| filterExpr: (key = '5') (type: boolean) |
| Filter Operator |
| predicate: (key = '5') (type: boolean) |
| Select Operator |
| expressions: '5' (type: string) |
| outputColumnNames: _col0 |
| ListSink |
| |
| PREHOOK: query: explain |
| with q1 as ( select * from masking_test_n11 where key = '5') |
| select * from q1 |
| PREHOOK: type: QUERY |
| PREHOOK: Input: default@masking_test_n11 |
| #### A masked pattern was here #### |
| POSTHOOK: query: explain |
| with q1 as ( select * from masking_test_n11 where key = '5') |
| select * from q1 |
| POSTHOOK: type: QUERY |
| POSTHOOK: Input: default@masking_test_n11 |
| #### A masked pattern was here #### |
| STAGE DEPENDENCIES: |
| Stage-0 is a root stage |
| |
| STAGE PLANS: |
| Stage: Stage-0 |
| Fetch Operator |
| limit: -1 |
| Processor Tree: |
| TableScan |
| alias: masking_test_n11 |
| filterExpr: ((key = 5) and ((key % 2) = 0)) (type: boolean) |
| Filter Operator |
| predicate: ((key = 5) and ((key % 2) = 0)) (type: boolean) |
| Select Operator |
| expressions: 5 (type: int), reverse(value) (type: string) |
| outputColumnNames: _col0, _col1 |
| ListSink |
| |
| PREHOOK: query: explain |
| with masking_test_subq_n2 as ( select * from masking_test_n11 where key = '5') |
| select * from masking_test_subq_n2 |
| PREHOOK: type: QUERY |
| PREHOOK: Input: default@masking_test_n11 |
| #### A masked pattern was here #### |
| POSTHOOK: query: explain |
| with masking_test_subq_n2 as ( select * from masking_test_n11 where key = '5') |
| select * from masking_test_subq_n2 |
| POSTHOOK: type: QUERY |
| POSTHOOK: Input: default@masking_test_n11 |
| #### A masked pattern was here #### |
| STAGE DEPENDENCIES: |
| Stage-0 is a root stage |
| |
| STAGE PLANS: |
| Stage: Stage-0 |
| Fetch Operator |
| limit: -1 |
| Processor Tree: |
| TableScan |
| alias: masking_test_n11 |
| filterExpr: ((key = 5) and ((key % 2) = 0)) (type: boolean) |
| Filter Operator |
| predicate: ((key = 5) and ((key % 2) = 0)) (type: boolean) |
| Select Operator |
| expressions: 5 (type: int), reverse(value) (type: string) |
| outputColumnNames: _col0, _col1 |
| ListSink |
| |
| PREHOOK: query: explain cbo |
| with q1 as ( select * from masking_test_n11 where key = '5') |
| select * from masking_test_subq_n2 |
| PREHOOK: type: QUERY |
| PREHOOK: Input: default@masking_test_subq_n2 |
| PREHOOK: Input: default@src |
| #### A masked pattern was here #### |
| POSTHOOK: query: explain cbo |
| with q1 as ( select * from masking_test_n11 where key = '5') |
| select * from masking_test_subq_n2 |
| POSTHOOK: type: QUERY |
| POSTHOOK: Input: default@masking_test_subq_n2 |
| POSTHOOK: Input: default@src |
| #### A masked pattern was here #### |
| CBO PLAN: |
| HiveProject(key=[$0], value=[$1]) |
| HiveSemiJoin(condition=[AND(=($0, $3), =($4, $2))], joinType=[semi]) |
| HiveProject(key=[$0], value=[$1], key1=[CAST($0):DOUBLE]) |
| HiveFilter(condition=[IS NOT NULL(CAST($0):DOUBLE)]) |
| HiveTableScan(table=[[default, masking_test_subq_n2]], table:alias=[masking_test_subq_n2]) |
| HiveProject(key=[$0], key0=[CAST($0):DOUBLE]) |
| HiveFilter(condition=[AND(IS NOT NULL(CAST($0):DOUBLE), IS NOT NULL($0))]) |
| HiveTableScan(table=[[default, src]], table:alias=[src]) |
| |
| PREHOOK: query: explain |
| with q1 as ( select * from masking_test_n11 where key = '5') |
| select * from masking_test_subq_n2 |
| PREHOOK: type: QUERY |
| PREHOOK: Input: default@masking_test_subq_n2 |
| PREHOOK: Input: default@src |
| #### A masked pattern was here #### |
| POSTHOOK: query: explain |
| with q1 as ( select * from masking_test_n11 where key = '5') |
| select * from masking_test_subq_n2 |
| POSTHOOK: type: QUERY |
| POSTHOOK: Input: default@masking_test_subq_n2 |
| POSTHOOK: Input: default@src |
| #### A masked pattern was here #### |
| STAGE DEPENDENCIES: |
| Stage-1 is a root stage |
| Stage-0 depends on stages: Stage-1 |
| |
| STAGE PLANS: |
| Stage: Stage-1 |
| Tez |
| #### A masked pattern was here #### |
| Edges: |
| Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE) |
| #### A masked pattern was here #### |
| Vertices: |
| Map 1 |
| Map Operator Tree: |
| TableScan |
| alias: masking_test_subq_n2 |
| filterExpr: UDFToDouble(key) is not null (type: boolean) |
| Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE |
| Filter Operator |
| predicate: UDFToDouble(key) is not null (type: boolean) |
| Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE |
| Select Operator |
| expressions: key (type: int), value (type: string), UDFToDouble(key) (type: double) |
| outputColumnNames: _col0, _col1, _col2 |
| Statistics: Num rows: 500 Data size: 51500 Basic stats: COMPLETE Column stats: COMPLETE |
| Reduce Output Operator |
| key expressions: UDFToDouble(_col0) (type: double), _col2 (type: double) |
| null sort order: zz |
| sort order: ++ |
| Map-reduce partition columns: UDFToDouble(_col0) (type: double), _col2 (type: double) |
| Statistics: Num rows: 500 Data size: 51500 Basic stats: COMPLETE Column stats: COMPLETE |
| value expressions: _col0 (type: int), _col1 (type: string) |
| Execution mode: vectorized, llap |
| LLAP IO: all inputs |
| Map 3 |
| Map Operator Tree: |
| TableScan |
| alias: src |
| filterExpr: (UDFToDouble(key) is not null and key is not null) (type: boolean) |
| Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE |
| Filter Operator |
| predicate: (UDFToDouble(key) is not null and key is not null) (type: boolean) |
| Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE |
| Select Operator |
| expressions: key (type: string), UDFToDouble(key) (type: double) |
| outputColumnNames: _col0, _col1 |
| Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE |
| Group By Operator |
| keys: _col0 (type: string), _col1 (type: double) |
| minReductionHashAggr: 0.4 |
| mode: hash |
| outputColumnNames: _col0, _col1 |
| Statistics: Num rows: 316 Data size: 30020 Basic stats: COMPLETE Column stats: COMPLETE |
| Reduce Output Operator |
| key expressions: UDFToDouble(_col0) (type: double), _col1 (type: double) |
| null sort order: zz |
| sort order: ++ |
| Map-reduce partition columns: UDFToDouble(_col0) (type: double), _col1 (type: double) |
| Statistics: Num rows: 316 Data size: 30020 Basic stats: COMPLETE Column stats: COMPLETE |
| Execution mode: vectorized, llap |
| LLAP IO: all inputs |
| Reducer 2 |
| Execution mode: llap |
| Reduce Operator Tree: |
| Merge Join Operator |
| condition map: |
| Left Semi Join 0 to 1 |
| keys: |
| 0 UDFToDouble(_col0) (type: double), _col2 (type: double) |
| 1 UDFToDouble(_col0) (type: double), _col1 (type: double) |
| outputColumnNames: _col0, _col1 |
| Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE |
| File Output Operator |
| compressed: false |
| Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE |
| 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 |
| |
| Stage: Stage-0 |
| Fetch Operator |
| limit: -1 |
| Processor Tree: |
| ListSink |
| |