You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by px...@apache.org on 2016/03/20 18:51:25 UTC
[1/5] hive git commit: HIVE-13125: Support masking and filtering of
rows/columns (Pengcheng Xiong, reviewed by Ashutosh Chauhan)
Repository: hive
Updated Branches:
refs/heads/master c0c08a3a0 -> a0a53713a
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/results/clientpositive/masking_disablecbo_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/masking_disablecbo_4.q.out b/ql/src/test/results/clientpositive/masking_disablecbo_4.q.out
new file mode 100644
index 0000000..8233936
--- /dev/null
+++ b/ql/src/test/results/clientpositive/masking_disablecbo_4.q.out
@@ -0,0 +1,229 @@
+PREHOOK: query: create table masking_test 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
+POSTHOOK: query: create table masking_test 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
+POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: masking_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: create table masking_test_subq 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
+POSTHOOK: query: create table masking_test_subq 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
+POSTHOOK: Lineage: masking_test_subq.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: masking_test_subq.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
+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
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (key = '5') (type: boolean)
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: '5' (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 250 Data size: 2656 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: --should mask masking_test
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from q1
+PREHOOK: type: QUERY
+POSTHOOK: query: --should mask masking_test
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from q1
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key = 5)) (type: boolean)
+ Statistics: Num rows: 41 Data size: 435 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: 5 (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 41 Data size: 435 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 41 Data size: 435 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: --should not mask masking_test_subq
+
+explain
+with masking_test_subq as ( select * from masking_test where key = '5')
+select * from masking_test_subq
+PREHOOK: type: QUERY
+POSTHOOK: query: --should not mask masking_test_subq
+
+explain
+with masking_test_subq as ( select * from masking_test where key = '5')
+select * from masking_test_subq
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key = 5)) (type: boolean)
+ Statistics: Num rows: 41 Data size: 435 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: 5 (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 41 Data size: 435 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 41 Data size: 435 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: --should mask masking_test_subq
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from masking_test_subq
+PREHOOK: type: QUERY
+POSTHOOK: query: --should mask masking_test_subq
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from masking_test_subq
+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: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ value expressions: key (type: int), value (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: string), _col1 (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ 1 UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
[2/5] hive git commit: HIVE-13125: Support masking and filtering of
rows/columns (Pengcheng Xiong, reviewed by Ashutosh Chauhan)
Posted by px...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/results/clientpositive/masking_disablecbo_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/masking_disablecbo_3.q.out b/ql/src/test/results/clientpositive/masking_disablecbo_3.q.out
new file mode 100644
index 0000000..8826500
--- /dev/null
+++ b/ql/src/test/results/clientpositive/masking_disablecbo_3.q.out
@@ -0,0 +1,7737 @@
+PREHOOK: query: create table masking_test_subq 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
+POSTHOOK: query: create table masking_test_subq 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
+POSTHOOK: Lineage: masking_test_subq.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: masking_test_subq.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: explain select * from masking_test_subq
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test_subq
+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: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ value expressions: key (type: int), value (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: string), _col1 (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ 1 UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test_subq
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test_subq
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test_subq
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test_subq
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+0 val_0
+0 val_0
+0 val_0
+2 val_2
+4 val_4
+5 val_5
+5 val_5
+5 val_5
+8 val_8
+9 val_9
+10 val_10
+11 val_11
+12 val_12
+12 val_12
+15 val_15
+15 val_15
+17 val_17
+18 val_18
+18 val_18
+19 val_19
+20 val_20
+24 val_24
+24 val_24
+26 val_26
+26 val_26
+27 val_27
+28 val_28
+30 val_30
+33 val_33
+34 val_34
+35 val_35
+35 val_35
+35 val_35
+37 val_37
+37 val_37
+41 val_41
+42 val_42
+42 val_42
+43 val_43
+44 val_44
+47 val_47
+51 val_51
+51 val_51
+53 val_53
+54 val_54
+57 val_57
+58 val_58
+58 val_58
+64 val_64
+65 val_65
+66 val_66
+67 val_67
+67 val_67
+69 val_69
+70 val_70
+70 val_70
+70 val_70
+72 val_72
+72 val_72
+74 val_74
+76 val_76
+76 val_76
+77 val_77
+78 val_78
+80 val_80
+82 val_82
+83 val_83
+83 val_83
+84 val_84
+84 val_84
+85 val_85
+86 val_86
+87 val_87
+90 val_90
+90 val_90
+90 val_90
+92 val_92
+95 val_95
+95 val_95
+96 val_96
+97 val_97
+97 val_97
+98 val_98
+98 val_98
+100 val_100
+100 val_100
+103 val_103
+103 val_103
+104 val_104
+104 val_104
+105 val_105
+111 val_111
+113 val_113
+113 val_113
+114 val_114
+116 val_116
+118 val_118
+118 val_118
+119 val_119
+119 val_119
+119 val_119
+120 val_120
+120 val_120
+125 val_125
+125 val_125
+126 val_126
+128 val_128
+128 val_128
+128 val_128
+129 val_129
+129 val_129
+131 val_131
+133 val_133
+134 val_134
+134 val_134
+136 val_136
+137 val_137
+137 val_137
+138 val_138
+138 val_138
+138 val_138
+138 val_138
+143 val_143
+145 val_145
+146 val_146
+146 val_146
+149 val_149
+149 val_149
+150 val_150
+152 val_152
+152 val_152
+153 val_153
+155 val_155
+156 val_156
+157 val_157
+158 val_158
+160 val_160
+162 val_162
+163 val_163
+164 val_164
+164 val_164
+165 val_165
+165 val_165
+166 val_166
+167 val_167
+167 val_167
+167 val_167
+168 val_168
+169 val_169
+169 val_169
+169 val_169
+169 val_169
+170 val_170
+172 val_172
+172 val_172
+174 val_174
+174 val_174
+175 val_175
+175 val_175
+176 val_176
+176 val_176
+177 val_177
+178 val_178
+179 val_179
+179 val_179
+180 val_180
+181 val_181
+183 val_183
+186 val_186
+187 val_187
+187 val_187
+187 val_187
+189 val_189
+190 val_190
+191 val_191
+191 val_191
+192 val_192
+193 val_193
+193 val_193
+193 val_193
+194 val_194
+195 val_195
+195 val_195
+196 val_196
+197 val_197
+197 val_197
+199 val_199
+199 val_199
+199 val_199
+200 val_200
+200 val_200
+201 val_201
+202 val_202
+203 val_203
+203 val_203
+205 val_205
+205 val_205
+207 val_207
+207 val_207
+208 val_208
+208 val_208
+208 val_208
+209 val_209
+209 val_209
+213 val_213
+213 val_213
+214 val_214
+216 val_216
+216 val_216
+217 val_217
+217 val_217
+218 val_218
+219 val_219
+219 val_219
+221 val_221
+221 val_221
+222 val_222
+223 val_223
+223 val_223
+224 val_224
+224 val_224
+226 val_226
+228 val_228
+229 val_229
+229 val_229
+230 val_230
+230 val_230
+230 val_230
+230 val_230
+230 val_230
+233 val_233
+233 val_233
+235 val_235
+237 val_237
+237 val_237
+238 val_238
+238 val_238
+239 val_239
+239 val_239
+241 val_241
+242 val_242
+242 val_242
+244 val_244
+247 val_247
+248 val_248
+249 val_249
+252 val_252
+255 val_255
+255 val_255
+256 val_256
+256 val_256
+257 val_257
+258 val_258
+260 val_260
+262 val_262
+263 val_263
+265 val_265
+265 val_265
+266 val_266
+272 val_272
+272 val_272
+273 val_273
+273 val_273
+273 val_273
+274 val_274
+275 val_275
+277 val_277
+277 val_277
+277 val_277
+277 val_277
+278 val_278
+278 val_278
+280 val_280
+280 val_280
+281 val_281
+281 val_281
+282 val_282
+282 val_282
+283 val_283
+284 val_284
+285 val_285
+286 val_286
+287 val_287
+288 val_288
+288 val_288
+289 val_289
+291 val_291
+292 val_292
+296 val_296
+298 val_298
+298 val_298
+298 val_298
+302 val_302
+305 val_305
+306 val_306
+307 val_307
+307 val_307
+308 val_308
+309 val_309
+309 val_309
+310 val_310
+311 val_311
+311 val_311
+311 val_311
+315 val_315
+316 val_316
+316 val_316
+316 val_316
+317 val_317
+317 val_317
+318 val_318
+318 val_318
+318 val_318
+321 val_321
+321 val_321
+322 val_322
+322 val_322
+323 val_323
+325 val_325
+325 val_325
+327 val_327
+327 val_327
+327 val_327
+331 val_331
+331 val_331
+332 val_332
+333 val_333
+333 val_333
+335 val_335
+336 val_336
+338 val_338
+339 val_339
+341 val_341
+342 val_342
+342 val_342
+344 val_344
+344 val_344
+345 val_345
+348 val_348
+348 val_348
+348 val_348
+348 val_348
+348 val_348
+351 val_351
+353 val_353
+353 val_353
+356 val_356
+360 val_360
+362 val_362
+364 val_364
+365 val_365
+366 val_366
+367 val_367
+367 val_367
+368 val_368
+369 val_369
+369 val_369
+369 val_369
+373 val_373
+374 val_374
+375 val_375
+377 val_377
+378 val_378
+379 val_379
+382 val_382
+382 val_382
+384 val_384
+384 val_384
+384 val_384
+386 val_386
+389 val_389
+392 val_392
+393 val_393
+394 val_394
+395 val_395
+395 val_395
+396 val_396
+396 val_396
+396 val_396
+397 val_397
+397 val_397
+399 val_399
+399 val_399
+400 val_400
+401 val_401
+401 val_401
+401 val_401
+401 val_401
+401 val_401
+402 val_402
+403 val_403
+403 val_403
+403 val_403
+404 val_404
+404 val_404
+406 val_406
+406 val_406
+406 val_406
+406 val_406
+407 val_407
+409 val_409
+409 val_409
+409 val_409
+411 val_411
+413 val_413
+413 val_413
+414 val_414
+414 val_414
+417 val_417
+417 val_417
+417 val_417
+418 val_418
+419 val_419
+421 val_421
+424 val_424
+424 val_424
+427 val_427
+429 val_429
+429 val_429
+430 val_430
+430 val_430
+430 val_430
+431 val_431
+431 val_431
+431 val_431
+432 val_432
+435 val_435
+436 val_436
+437 val_437
+438 val_438
+438 val_438
+438 val_438
+439 val_439
+439 val_439
+443 val_443
+444 val_444
+446 val_446
+448 val_448
+449 val_449
+452 val_452
+453 val_453
+454 val_454
+454 val_454
+454 val_454
+455 val_455
+457 val_457
+458 val_458
+458 val_458
+459 val_459
+459 val_459
+460 val_460
+462 val_462
+462 val_462
+463 val_463
+463 val_463
+466 val_466
+466 val_466
+466 val_466
+467 val_467
+468 val_468
+468 val_468
+468 val_468
+468 val_468
+469 val_469
+469 val_469
+469 val_469
+469 val_469
+469 val_469
+470 val_470
+472 val_472
+475 val_475
+477 val_477
+478 val_478
+478 val_478
+479 val_479
+480 val_480
+480 val_480
+480 val_480
+481 val_481
+482 val_482
+483 val_483
+484 val_484
+485 val_485
+487 val_487
+489 val_489
+489 val_489
+489 val_489
+489 val_489
+490 val_490
+491 val_491
+492 val_492
+492 val_492
+493 val_493
+494 val_494
+495 val_495
+496 val_496
+497 val_497
+498 val_498
+498 val_498
+498 val_498
+PREHOOK: query: explain select * from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test_subq where key > 0
+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: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (UDFToDouble(key) is not null and (key > 0)) (type: boolean)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ value expressions: key (type: int), value (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: string), _col1 (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ 1 UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test_subq
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test_subq where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test_subq
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+2 val_2
+4 val_4
+5 val_5
+5 val_5
+5 val_5
+8 val_8
+9 val_9
+10 val_10
+11 val_11
+12 val_12
+12 val_12
+15 val_15
+15 val_15
+17 val_17
+18 val_18
+18 val_18
+19 val_19
+20 val_20
+24 val_24
+24 val_24
+26 val_26
+26 val_26
+27 val_27
+28 val_28
+30 val_30
+33 val_33
+34 val_34
+35 val_35
+35 val_35
+35 val_35
+37 val_37
+37 val_37
+41 val_41
+42 val_42
+42 val_42
+43 val_43
+44 val_44
+47 val_47
+51 val_51
+51 val_51
+53 val_53
+54 val_54
+57 val_57
+58 val_58
+58 val_58
+64 val_64
+65 val_65
+66 val_66
+67 val_67
+67 val_67
+69 val_69
+70 val_70
+70 val_70
+70 val_70
+72 val_72
+72 val_72
+74 val_74
+76 val_76
+76 val_76
+77 val_77
+78 val_78
+80 val_80
+82 val_82
+83 val_83
+83 val_83
+84 val_84
+84 val_84
+85 val_85
+86 val_86
+87 val_87
+90 val_90
+90 val_90
+90 val_90
+92 val_92
+95 val_95
+95 val_95
+96 val_96
+97 val_97
+97 val_97
+98 val_98
+98 val_98
+100 val_100
+100 val_100
+103 val_103
+103 val_103
+104 val_104
+104 val_104
+105 val_105
+111 val_111
+113 val_113
+113 val_113
+114 val_114
+116 val_116
+118 val_118
+118 val_118
+119 val_119
+119 val_119
+119 val_119
+120 val_120
+120 val_120
+125 val_125
+125 val_125
+126 val_126
+128 val_128
+128 val_128
+128 val_128
+129 val_129
+129 val_129
+131 val_131
+133 val_133
+134 val_134
+134 val_134
+136 val_136
+137 val_137
+137 val_137
+138 val_138
+138 val_138
+138 val_138
+138 val_138
+143 val_143
+145 val_145
+146 val_146
+146 val_146
+149 val_149
+149 val_149
+150 val_150
+152 val_152
+152 val_152
+153 val_153
+155 val_155
+156 val_156
+157 val_157
+158 val_158
+160 val_160
+162 val_162
+163 val_163
+164 val_164
+164 val_164
+165 val_165
+165 val_165
+166 val_166
+167 val_167
+167 val_167
+167 val_167
+168 val_168
+169 val_169
+169 val_169
+169 val_169
+169 val_169
+170 val_170
+172 val_172
+172 val_172
+174 val_174
+174 val_174
+175 val_175
+175 val_175
+176 val_176
+176 val_176
+177 val_177
+178 val_178
+179 val_179
+179 val_179
+180 val_180
+181 val_181
+183 val_183
+186 val_186
+187 val_187
+187 val_187
+187 val_187
+189 val_189
+190 val_190
+191 val_191
+191 val_191
+192 val_192
+193 val_193
+193 val_193
+193 val_193
+194 val_194
+195 val_195
+195 val_195
+196 val_196
+197 val_197
+197 val_197
+199 val_199
+199 val_199
+199 val_199
+200 val_200
+200 val_200
+201 val_201
+202 val_202
+203 val_203
+203 val_203
+205 val_205
+205 val_205
+207 val_207
+207 val_207
+208 val_208
+208 val_208
+208 val_208
+209 val_209
+209 val_209
+213 val_213
+213 val_213
+214 val_214
+216 val_216
+216 val_216
+217 val_217
+217 val_217
+218 val_218
+219 val_219
+219 val_219
+221 val_221
+221 val_221
+222 val_222
+223 val_223
+223 val_223
+224 val_224
+224 val_224
+226 val_226
+228 val_228
+229 val_229
+229 val_229
+230 val_230
+230 val_230
+230 val_230
+230 val_230
+230 val_230
+233 val_233
+233 val_233
+235 val_235
+237 val_237
+237 val_237
+238 val_238
+238 val_238
+239 val_239
+239 val_239
+241 val_241
+242 val_242
+242 val_242
+244 val_244
+247 val_247
+248 val_248
+249 val_249
+252 val_252
+255 val_255
+255 val_255
+256 val_256
+256 val_256
+257 val_257
+258 val_258
+260 val_260
+262 val_262
+263 val_263
+265 val_265
+265 val_265
+266 val_266
+272 val_272
+272 val_272
+273 val_273
+273 val_273
+273 val_273
+274 val_274
+275 val_275
+277 val_277
+277 val_277
+277 val_277
+277 val_277
+278 val_278
+278 val_278
+280 val_280
+280 val_280
+281 val_281
+281 val_281
+282 val_282
+282 val_282
+283 val_283
+284 val_284
+285 val_285
+286 val_286
+287 val_287
+288 val_288
+288 val_288
+289 val_289
+291 val_291
+292 val_292
+296 val_296
+298 val_298
+298 val_298
+298 val_298
+302 val_302
+305 val_305
+306 val_306
+307 val_307
+307 val_307
+308 val_308
+309 val_309
+309 val_309
+310 val_310
+311 val_311
+311 val_311
+311 val_311
+315 val_315
+316 val_316
+316 val_316
+316 val_316
+317 val_317
+317 val_317
+318 val_318
+318 val_318
+318 val_318
+321 val_321
+321 val_321
+322 val_322
+322 val_322
+323 val_323
+325 val_325
+325 val_325
+327 val_327
+327 val_327
+327 val_327
+331 val_331
+331 val_331
+332 val_332
+333 val_333
+333 val_333
+335 val_335
+336 val_336
+338 val_338
+339 val_339
+341 val_341
+342 val_342
+342 val_342
+344 val_344
+344 val_344
+345 val_345
+348 val_348
+348 val_348
+348 val_348
+348 val_348
+348 val_348
+351 val_351
+353 val_353
+353 val_353
+356 val_356
+360 val_360
+362 val_362
+364 val_364
+365 val_365
+366 val_366
+367 val_367
+367 val_367
+368 val_368
+369 val_369
+369 val_369
+369 val_369
+373 val_373
+374 val_374
+375 val_375
+377 val_377
+378 val_378
+379 val_379
+382 val_382
+382 val_382
+384 val_384
+384 val_384
+384 val_384
+386 val_386
+389 val_389
+392 val_392
+393 val_393
+394 val_394
+395 val_395
+395 val_395
+396 val_396
+396 val_396
+396 val_396
+397 val_397
+397 val_397
+399 val_399
+399 val_399
+400 val_400
+401 val_401
+401 val_401
+401 val_401
+401 val_401
+401 val_401
+402 val_402
+403 val_403
+403 val_403
+403 val_403
+404 val_404
+404 val_404
+406 val_406
+406 val_406
+406 val_406
+406 val_406
+407 val_407
+409 val_409
+409 val_409
+409 val_409
+411 val_411
+413 val_413
+413 val_413
+414 val_414
+414 val_414
+417 val_417
+417 val_417
+417 val_417
+418 val_418
+419 val_419
+421 val_421
+424 val_424
+424 val_424
+427 val_427
+429 val_429
+429 val_429
+430 val_430
+430 val_430
+430 val_430
+431 val_431
+431 val_431
+431 val_431
+432 val_432
+435 val_435
+436 val_436
+437 val_437
+438 val_438
+438 val_438
+438 val_438
+439 val_439
+439 val_439
+443 val_443
+444 val_444
+446 val_446
+448 val_448
+449 val_449
+452 val_452
+453 val_453
+454 val_454
+454 val_454
+454 val_454
+455 val_455
+457 val_457
+458 val_458
+458 val_458
+459 val_459
+459 val_459
+460 val_460
+462 val_462
+462 val_462
+463 val_463
+463 val_463
+466 val_466
+466 val_466
+466 val_466
+467 val_467
+468 val_468
+468 val_468
+468 val_468
+468 val_468
+469 val_469
+469 val_469
+469 val_469
+469 val_469
+469 val_469
+470 val_470
+472 val_472
+475 val_475
+477 val_477
+478 val_478
+478 val_478
+479 val_479
+480 val_480
+480 val_480
+480 val_480
+481 val_481
+482 val_482
+483 val_483
+484 val_484
+485 val_485
+487 val_487
+489 val_489
+489 val_489
+489 val_489
+489 val_489
+490 val_490
+491 val_491
+492 val_492
+492 val_492
+493 val_493
+494 val_494
+495 val_495
+496 val_496
+497 val_497
+498 val_498
+498 val_498
+498 val_498
+PREHOOK: query: explain select key from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select key from masking_test_subq where key > 0
+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: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (UDFToDouble(key) is not null and (key > 0)) (type: boolean)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ value expressions: key (type: int)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: string), _col1 (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ 1 UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ outputColumnNames: _col0
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select key from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test_subq
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select key from masking_test_subq where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test_subq
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+2
+4
+5
+5
+5
+8
+9
+10
+11
+12
+12
+15
+15
+17
+18
+18
+19
+20
+24
+24
+26
+26
+27
+28
+30
+33
+34
+35
+35
+35
+37
+37
+41
+42
+42
+43
+44
+47
+51
+51
+53
+54
+57
+58
+58
+64
+65
+66
+67
+67
+69
+70
+70
+70
+72
+72
+74
+76
+76
+77
+78
+80
+82
+83
+83
+84
+84
+85
+86
+87
+90
+90
+90
+92
+95
+95
+96
+97
+97
+98
+98
+100
+100
+103
+103
+104
+104
+105
+111
+113
+113
+114
+116
+118
+118
+119
+119
+119
+120
+120
+125
+125
+126
+128
+128
+128
+129
+129
+131
+133
+134
+134
+136
+137
+137
+138
+138
+138
+138
+143
+145
+146
+146
+149
+149
+150
+152
+152
+153
+155
+156
+157
+158
+160
+162
+163
+164
+164
+165
+165
+166
+167
+167
+167
+168
+169
+169
+169
+169
+170
+172
+172
+174
+174
+175
+175
+176
+176
+177
+178
+179
+179
+180
+181
+183
+186
+187
+187
+187
+189
+190
+191
+191
+192
+193
+193
+193
+194
+195
+195
+196
+197
+197
+199
+199
+199
+200
+200
+201
+202
+203
+203
+205
+205
+207
+207
+208
+208
+208
+209
+209
+213
+213
+214
+216
+216
+217
+217
+218
+219
+219
+221
+221
+222
+223
+223
+224
+224
+226
+228
+229
+229
+230
+230
+230
+230
+230
+233
+233
+235
+237
+237
+238
+238
+239
+239
+241
+242
+242
+244
+247
+248
+249
+252
+255
+255
+256
+256
+257
+258
+260
+262
+263
+265
+265
+266
+272
+272
+273
+273
+273
+274
+275
+277
+277
+277
+277
+278
+278
+280
+280
+281
+281
+282
+282
+283
+284
+285
+286
+287
+288
+288
+289
+291
+292
+296
+298
+298
+298
+302
+305
+306
+307
+307
+308
+309
+309
+310
+311
+311
+311
+315
+316
+316
+316
+317
+317
+318
+318
+318
+321
+321
+322
+322
+323
+325
+325
+327
+327
+327
+331
+331
+332
+333
+333
+335
+336
+338
+339
+341
+342
+342
+344
+344
+345
+348
+348
+348
+348
+348
+351
+353
+353
+356
+360
+362
+364
+365
+366
+367
+367
+368
+369
+369
+369
+373
+374
+375
+377
+378
+379
+382
+382
+384
+384
+384
+386
+389
+392
+393
+394
+395
+395
+396
+396
+396
+397
+397
+399
+399
+400
+401
+401
+401
+401
+401
+402
+403
+403
+403
+404
+404
+406
+406
+406
+406
+407
+409
+409
+409
+411
+413
+413
+414
+414
+417
+417
+417
+418
+419
+421
+424
+424
+427
+429
+429
+430
+430
+430
+431
+431
+431
+432
+435
+436
+437
+438
+438
+438
+439
+439
+443
+444
+446
+448
+449
+452
+453
+454
+454
+454
+455
+457
+458
+458
+459
+459
+460
+462
+462
+463
+463
+466
+466
+466
+467
+468
+468
+468
+468
+469
+469
+469
+469
+469
+470
+472
+475
+477
+478
+478
+479
+480
+480
+480
+481
+482
+483
+484
+485
+487
+489
+489
+489
+489
+490
+491
+492
+492
+493
+494
+495
+496
+497
+498
+498
+498
+PREHOOK: query: explain select value from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select value from masking_test_subq where key > 0
+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: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (UDFToDouble(key) is not null and (key > 0)) (type: boolean)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ value expressions: value (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: string), _col1 (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ 1 UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ outputColumnNames: _col1
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col1 (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select value from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test_subq
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select value from masking_test_subq where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test_subq
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+val_2
+val_4
+val_5
+val_5
+val_5
+val_8
+val_9
+val_10
+val_11
+val_12
+val_12
+val_15
+val_15
+val_17
+val_18
+val_18
+val_19
+val_20
+val_24
+val_24
+val_26
+val_26
+val_27
+val_28
+val_30
+val_33
+val_34
+val_35
+val_35
+val_35
+val_37
+val_37
+val_41
+val_42
+val_42
+val_43
+val_44
+val_47
+val_51
+val_51
+val_53
+val_54
+val_57
+val_58
+val_58
+val_64
+val_65
+val_66
+val_67
+val_67
+val_69
+val_70
+val_70
+val_70
+val_72
+val_72
+val_74
+val_76
+val_76
+val_77
+val_78
+val_80
+val_82
+val_83
+val_83
+val_84
+val_84
+val_85
+val_86
+val_87
+val_90
+val_90
+val_90
+val_92
+val_95
+val_95
+val_96
+val_97
+val_97
+val_98
+val_98
+val_100
+val_100
+val_103
+val_103
+val_104
+val_104
+val_105
+val_111
+val_113
+val_113
+val_114
+val_116
+val_118
+val_118
+val_119
+val_119
+val_119
+val_120
+val_120
+val_125
+val_125
+val_126
+val_128
+val_128
+val_128
+val_129
+val_129
+val_131
+val_133
+val_134
+val_134
+val_136
+val_137
+val_137
+val_138
+val_138
+val_138
+val_138
+val_143
+val_145
+val_146
+val_146
+val_149
+val_149
+val_150
+val_152
+val_152
+val_153
+val_155
+val_156
+val_157
+val_158
+val_160
+val_162
+val_163
+val_164
+val_164
+val_165
+val_165
+val_166
+val_167
+val_167
+val_167
+val_168
+val_169
+val_169
+val_169
+val_169
+val_170
+val_172
+val_172
+val_174
+val_174
+val_175
+val_175
+val_176
+val_176
+val_177
+val_178
+val_179
+val_179
+val_180
+val_181
+val_183
+val_186
+val_187
+val_187
+val_187
+val_189
+val_190
+val_191
+val_191
+val_192
+val_193
+val_193
+val_193
+val_194
+val_195
+val_195
+val_196
+val_197
+val_197
+val_199
+val_199
+val_199
+val_200
+val_200
+val_201
+val_202
+val_203
+val_203
+val_205
+val_205
+val_207
+val_207
+val_208
+val_208
+val_208
+val_209
+val_209
+val_213
+val_213
+val_214
+val_216
+val_216
+val_217
+val_217
+val_218
+val_219
+val_219
+val_221
+val_221
+val_222
+val_223
+val_223
+val_224
+val_224
+val_226
+val_228
+val_229
+val_229
+val_230
+val_230
+val_230
+val_230
+val_230
+val_233
+val_233
+val_235
+val_237
+val_237
+val_238
+val_238
+val_239
+val_239
+val_241
+val_242
+val_242
+val_244
+val_247
+val_248
+val_249
+val_252
+val_255
+val_255
+val_256
+val_256
+val_257
+val_258
+val_260
+val_262
+val_263
+val_265
+val_265
+val_266
+val_272
+val_272
+val_273
+val_273
+val_273
+val_274
+val_275
+val_277
+val_277
+val_277
+val_277
+val_278
+val_278
+val_280
+val_280
+val_281
+val_281
+val_282
+val_282
+val_283
+val_284
+val_285
+val_286
+val_287
+val_288
+val_288
+val_289
+val_291
+val_292
+val_296
+val_298
+val_298
+val_298
+val_302
+val_305
+val_306
+val_307
+val_307
+val_308
+val_309
+val_309
+val_310
+val_311
+val_311
+val_311
+val_315
+val_316
+val_316
+val_316
+val_317
+val_317
+val_318
+val_318
+val_318
+val_321
+val_321
+val_322
+val_322
+val_323
+val_325
+val_325
+val_327
+val_327
+val_327
+val_331
+val_331
+val_332
+val_333
+val_333
+val_335
+val_336
+val_338
+val_339
+val_341
+val_342
+val_342
+val_344
+val_344
+val_345
+val_348
+val_348
+val_348
+val_348
+val_348
+val_351
+val_353
+val_353
+val_356
+val_360
+val_362
+val_364
+val_365
+val_366
+val_367
+val_367
+val_368
+val_369
+val_369
+val_369
+val_373
+val_374
+val_375
+val_377
+val_378
+val_379
+val_382
+val_382
+val_384
+val_384
+val_384
+val_386
+val_389
+val_392
+val_393
+val_394
+val_395
+val_395
+val_396
+val_396
+val_396
+val_397
+val_397
+val_399
+val_399
+val_400
+val_401
+val_401
+val_401
+val_401
+val_401
+val_402
+val_403
+val_403
+val_403
+val_404
+val_404
+val_406
+val_406
+val_406
+val_406
+val_407
+val_409
+val_409
+val_409
+val_411
+val_413
+val_413
+val_414
+val_414
+val_417
+val_417
+val_417
+val_418
+val_419
+val_421
+val_424
+val_424
+val_427
+val_429
+val_429
+val_430
+val_430
+val_430
+val_431
+val_431
+val_431
+val_432
+val_435
+val_436
+val_437
+val_438
+val_438
+val_438
+val_439
+val_439
+val_443
+val_444
+val_446
+val_448
+val_449
+val_452
+val_453
+val_454
+val_454
+val_454
+val_455
+val_457
+val_458
+val_458
+val_459
+val_459
+val_460
+val_462
+val_462
+val_463
+val_463
+val_466
+val_466
+val_466
+val_467
+val_468
+val_468
+val_468
+val_468
+val_469
+val_469
+val_469
+val_469
+val_469
+val_470
+val_472
+val_475
+val_477
+val_478
+val_478
+val_479
+val_480
+val_480
+val_480
+val_481
+val_482
+val_483
+val_484
+val_485
+val_487
+val_489
+val_489
+val_489
+val_489
+val_490
+val_491
+val_492
+val_492
+val_493
+val_494
+val_495
+val_496
+val_497
+val_498
+val_498
+val_498
+PREHOOK: query: explain select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ value expressions: key (type: int), value (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), key (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: string), _col1 (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ sort order: ++
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ 1 UDFToDouble(_col0) (type: double), UDFToDouble(_col1) (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double)
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int), _col1 (type: string)
+ TableScan
+ alias: srcpart
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(key) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(key) (type: double)
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ value expressions: key (type: string), value (type: string), ds (type: string), hr (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 UDFToDouble(_col0) (type: double)
+ 1 UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 2200 Data size: 23372 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2200 Data size: 23372 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test_subq
+PREHOOK: Input: default@src
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test_subq
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-09 12
+2 val_2 2 val_2 2008-04-09 11
+2 val_2 2 val_2 2008-04-08 11
+2 val_2 2 val_2 2008-04-09 12
+2 val_2 2 val_2 2008-04-08 12
+4 val_4 4 val_4 2008-04-08 12
+4 val_4 4 val_4 2008-04-09 12
+4 val_4 4 val_4 2008-04-08 11
+4 val_4 4 val_4 2008-04-09 11
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 12
+8 val_8 8 val_8 2008-04-08 11
+8 val_8 8 val_8 2008-04-09 11
+8 val_8 8 val_8 2008-04-08 12
+8 val_8 8 val_8 2008-04-09 12
+9 val_9 9 val_9 2008-04-08 12
+9 val_9 9 val_9 2008-04-09 12
+9 val_9 9 val_9 2008-04-09 11
+9 val_9 9 val_9 2008-04-08 11
+10 val_10 10 val_10 2008-04-09 11
+10 val_10 10 val_10 2008-04-09 12
+10 val_10 10 val_10 2008-04-08 12
+10 val_10 10 val_10 2008-04-08 11
+11 val_11 11 val_11 2008-04-09 12
+11 val_11 11 val_11 2008-04-09 11
+11 val_11 11 val_11 2008-04-08 12
+11 val_11 11 val_11 2008-04-08 11
+12 val_12 12 val_12 2008-04-09 12
+12 val_12 12 val_12 2008-04-08 11
+12 val_12 12 val_12 2008-04-09 11
+12 val_12 12 val_12 2008-04-08 12
+12 val_12 12 val_12 2008-04-08 11
+12 val_12 12 val_12 2008-04-08 12
+12 val_12 12 val_12 2008-04-09 11
+12 val_12 12 val_12 2008-04-09 12
+12 val_12 12 val_12 2008-04-09 12
+12 val_12 12 val_12 2008-04-08 11
+12 val_12 12 val_12 2008-04-09 11
+12 val_12 12 val_12 2008-04-08 12
+12 val_12 12 val_12 2008-04-08 11
+12 val_12 12 val_12 2008-04-08 12
+12 val_12 12 val_12 2008-04-09 11
+12 val_12 12 val_12 2008-04-09 12
+15 val_15 15 val_15 2008-04-08 12
+15 val_15 15 val_15 2008-04-08 11
+15 val_15 15 val_15 2008-04-09 12
+15 val_15 15 val_15 2008-04-09 12
+15 val_15 15 val_15 2008-04-09 11
+15 val_15 15 val_15 2008-04-08 11
+15 val_15 15 val_15 2008-04-09 11
+15 val_15 15 val_15 2008-04-08 12
+15 val_15 15 val_15 2008-04-08 12
+15 val_15 15 val_15 2008-04-08 11
+15 val_15 15 val_15 2008-04-09 12
+15 val_15 15 val_15 2008-04-09 12
+15 val_15 15 val_15 2008-04-09 11
+15 val_15 15 val_15 2008-04-08 11
+15 val_15 15 val_15 2008-04-09 11
+15 val_15 15 val_15 2008-04-08 12
+17 val_17 17 val_17 2008-04-09 11
+17 val_17 17 val_17 2008-04-09 12
+17 val_17 17 val_17 2008-04-08 12
+17 val_17 17 val_17 2008-04-08 11
+18 val_18 18 val_18 2008-04-08 12
+18 val_18 18 val_18 2008-04-08 12
+18 val_18 18 val_18 2008-04-08 11
+18 val_18 18 val_18 2008-04-09 12
+18 val_18 18 val_18 2008-04-09 12
+18 val_18 18 val_18 2008-04-09 11
+18 val_18 18 val_18 2008-04-09 11
+18 val_18 18 val_18 2008-04-08 11
+18 val_18 18 val_18 2008-04-08 12
+18 val_18 18 val_18 2008-04-08 12
+18 val_18 18 val_18 2008-04-08 11
+18 val_18 18 val_18 2008-04-09 12
+18 val_18 18 val_18 2008-04-09 12
+18 val_18 18 val_18 2008-04-09 11
+18 val_18 18 val_18 2008-04-09 11
+18 val_18 18 val_18 2008-04-08 11
+19 val_19 19 val_19 2008-04-09 11
+19 val_19 19 val_19 2008-04-09 12
+19 val_19 19 val_19 2008-04-08 11
+19 val_19 19 val_19 2008-04-08 12
+20 val_20 20 val_20 2008-04-08 11
+20 val_20 20 val_20 2008-04-09 11
+20 val_20 20 val_20 2008-04-08 12
+20 val_20 20 val_20 2008-04-09 12
+24 val_24 24 val_24 2008-04-09 12
+24 val_24 24 val_24 2008-04-08 11
+24 val_24 24 val_24 2008-04-08 11
+24 val_24 24 val_24 2008-04-09 12
+24 val_24 24 val_24 2008-04-08 12
+24 val_24 24 val_24 2008-04-08 12
+24 val_24 24 val_24 2008-04-09 11
+24 val_24 24 val_24 2008-04-09 11
+24 val_24 24 val_24 2008-04-09 12
+24 val_24 24 val_24 2008-04-08 11
+24 val_24 24 val_24 2008-04-08 11
+24 val_24 24 val_24 2008-04-09 12
+24 val_24 24 val_24 2008-04-08 12
+24 val_24 24 val_24 2008-04-08 12
+24 val_24 24 val_24 2008-04-09 11
+24 val_24 24 val_24 2008-04-09 11
+26 val_26 26 val_26 2008-04-09 12
+26 val_26 26 val_26 2008-04-08 11
+26 val_26 26 val_26 2008-04-09 11
+26 val_26 26 val_26 2008-04-09 12
+26 val_26 26 val_26 2008-04-09 11
+26 val_26 26 val_26 2008-04-08 12
+26 val_26 26 val_26 2008-04-08 12
+26 val_26 26 val_26 2008-04-08 11
+26 val_26 26 val_26 2008-04-09 12
+26 val_26 26 val_26 2008-04-08 11
+26 val_26 26 val_26 2008-04-09 11
+26 val_26 26 val_26 2008-04-09 12
+26 val_26 26 val_26 2008-04-09 11
+26 val_26 26 val_26 2008-04-08 12
+26 val_26 26 val_26 2008-04-08 12
+26 val_26 26 val_26 2008-04-08 11
+27 val_27 27 val_27 2008-04-09 12
+27 val_27 27 val_27 2008-04-09 11
+27 val_27 27 val_27 2008-04-08 12
+27 val_27 27 val_27 2008-04-08 11
+28 val_28 28 val_28 2008-04-08 12
+28 val_28 28 val_28 2008-04-09 11
+28 val_28 28 val_28 2008-04-09 12
+28 val_28 28 val_28 2008-04-08 11
+30 val_30 30 val_30 2008-04-09 12
+30 val_30 30 val_30 2008-04-09 11
+30 val_30 30 val_30 2008-04-08 11
+30 val_30 30 val_30 2008-04-08 12
+33 val_33 33 val_33 2008-04-08 11
+33 val_33 33 val_33 2008-04-08 12
+33 val_33 33 val_33 2008-04-09 11
+33 val_33 33 val_33 2008-04-09 12
+34 val_34 34 val_34 2008-04-09 11
+34 val_34 34 val_34 2008-04-09 12
+34 val_34 34 val_34 2008-04-08 11
+34 val_34 34 val_34 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-09 11
+37 val_37 37 val_37 2008-04-09 12
+37 val_37 37 val_37 2008-04-08 12
+37 val_37 37 val_37 2008-04-08 11
+37 val_37 37 val_37 2008-04-09 11
+37 val_37 37 val_37 2008-04-09 11
+37 val_37 37 val_37 2008-04-09 12
+37 val_37 37 val_37 2008-04-08 12
+37 val_37 37 val_37 2008-04-08 11
+37 val_37 37 val_37 2008-04-09 12
+37 val_37 37 val_37 2008-04-08 12
+37 val_37 37 val_37 2008-04-08 11
+37 val_37 37 val_37 2008-04-09 11
+37 val_37 37 val_37 2008-04-09 11
+37 val_37 37 val_37 2008-04-09 12
+37 val_37 37 val_37 2008-04-08 12
+37 val_37 37 val_37 2008-04-08 11
+41 val_41 41 val_41 2008-04-08 11
+41 val_41 41 val_41 2008-04-09 11
+41 val_41 41 val_41 2008-04-09 12
+41 val_41 41 val_41 2008-04-08 12
+42 val_42 42 val_42 2008-04-09 12
+42 val_42 42 val_42 2008-04-09 11
+42 val_42 42 val_42 2008-04-08 12
+42 val_42 42 val_42 2008-04-08 12
+42 val_42 42 val_42 2008-04-09 12
+42 val_42 42 val_42 2008-04-08 11
+42 val_42 42 val_42 2008-04-09 11
+42 val_42 42 val_42 2008-04-08 11
+42 val_42 42 val_42 2008-04-09 12
+42 val_42 42 val_42 2008-04-09 11
+42 val_42 42 val_42 2008-04-08 12
+42 val_42 42 val_42 2008-04-08 12
+42 val_42 42 val_42 2008-04-09 12
+42 val_42 42 val_42 2008-04-08 11
+42 val_42 42 val_42 2008-04-09 11
+42 val_42 42 val_42 2008-04-08 11
+43 val_43 43 val_43 2008-04-09 12
+43 val_43 43 val_43 2008-04-08 12
+43 val_43 43 val_43 2008-04-09 11
+43 val_43 43 val_43 2008-04-08 11
+44 val_44 44 val_44 2008-04-09 11
+44 val_44 44 val_44 2008-04-08 11
+44 val_44 44 val_44 2008-04-09 12
+44 val_44 44 val_44 2008-04-08 12
+47 val_47 47 val_47 2008-04-08 11
+47 val_47 47 val_47 2008-04-08 12
+47 val_47 47 val_47 2008-04-09 12
+47 val_47 47 val_47 2008-04-09 11
+51 val_51 51 val_51 2008-04-09 12
+51 val_51 51 val_51 2008-04-08 12
+51 val_51 51 val_51 2008-04-08 11
+51 val_51 51 val_51 2008-04-08 11
+51 val_51 51 val_51 2008-04-09 11
+51 val_51 51 val_51 2008-04-09 12
+51 val_51 51 val_51 2008-04-08 12
+51 val_51 51 val_51 2008-04-09 11
+51 val_51 51 val_51 2008-04-09 12
+51 val_51 51 val_51 2008-04-08 12
+51 val_51 51 val_51 2008-04-08 11
+51 val_51 51 val_51 2008-04-08 11
+51 val_51 51 val_51 2008-04-09 11
+51 val_51 51 val_51 2008-04-09 12
+51 val_51 51 val_51 2008-04-08 12
+51 val_51 51 val_51 2008-04-09 11
+53 val_53 53 val_53 2008-04-08 11
+53 val_53 53 val_53 2008-04-09 11
+53 val_53 53 val_53 2008-04-09 12
+53 val_53 53 val_53 2008-04-08 12
+54 val_54 54 val_54 2008-04-08 11
+54 val_54 54 val_54 2008-04-09 12
+54 val_54 54 val_54 2008-04-09 11
+54 val_54 54 val_54 2008-04-08 12
+57 val_57 57 val_57 2008-04-08 12
+57 val_57 57 val_57 2008-04-08 11
+57 val_57 57 val_57 2008-04-09 11
+57 val_57 57 val_57 2008-04-09 12
+58 val_58 58 val_58 2008-04-08 11
+58 val_58 58 val_58 2008-04-09 11
+58 val_58 58 val_58 2008-04-09 12
+58 val_58 58 val_58 2008-04-08 11
+58 val_58 58 val_58 2008-04-08 12
+58 val_58 58 val_58 2008-04-09 11
+58 val_58 58 val_58 2008-04-09 12
+58 val_58 58 val_58 2008-04-08 12
+58 val_58 58 val_58 2008-04-08 11
+58 val_58 58 val_58 2008-04-09 11
+58 val_58 58 val_58 2008-04-09 12
+58 val_58 58 val_58 2008-04-08 11
+58 val_58 58 val_58 2008-04-08 12
+58 val_58 58 val_58 2008-04-09 11
+58 val_58 58 val_58 2008-04-09 12
+58 val_58 58 val_58 2008-04-08 12
+64 val_64 64 val_64 2008-04-09 12
+64 val_64 64 val_64 2008-04-08 11
+64 val_64 64 val_64 2008-04-08 12
+64 val_64 64 val_64 2008-04-09 11
+65 val_65 65 val_65 2008-04-09 11
+65 val_65 65 val_65 2008-04-09 12
+65 val_65 65 val_65 2008-04-08 11
+65 val_65 65 val_65 2008-04-08 12
+66 val_66 66 val_66 2008-04-09 12
+66 val_66 66 val_66 2008-04-09 11
+66 val_66 66 val_66 2008-04-08 11
+66 val_66 66 val_66 2008-04-08 12
+67 val_67 67 val_67 2008-04-09 12
+67 val_67 67 val_67 2008-04-09 11
+67 val_67 67 val_67 2008-04-09 12
+67 val_67 67 val_67 2008-04-09 11
+67 val_67 67 val_67 2008-04-08 11
+67 val_67 67 val_67 2008-04-08 12
+67 val_67 67 val_67 2008-04-08 11
+67 val_67 67 val_67 2008-04-08 12
+67 val_67 67 val_67 2008-04-09 12
+67 val_67 67 val_67 2008-04-09 11
+67 val_67 67 val_67 2008-04-09 12
+67 val_67 67 val_67 2008-04-09 11
+67 val_67 67 val_67 2008-04-08 11
+67 val_67 67 val_67 2008-04-08 12
+67 val_67 67 val_67 2008-04-08 11
+67 val_67 67 val_67 2008-04-08 12
+69 val_69 69 val_69 2008-04-09 12
+69 val_69 69 val_69 2008-04-08 11
+69 val_69 69 val_69 2008-04-08 12
+69 val_69 69 val_69 2008-04-09 11
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+72 val_72 72 val_72 2008-04-09 12
+72 val_72 72 val_72 2008-04-08 12
+72 val_72 72 val_72 2008-04-08 12
+72 val_72 72 val_72 2008-04-09 11
+72 val_72 72 val_72 2008-04-08 11
+72 val_72 72 val_72 2008-04-09 12
+72 val_72 72 val_72 2008-04-08 11
+72 val_72 72 val_72 2008-04-09 11
+72 val_72 72 val_72 2008-04-09 12
+72 val_72 72 val_72 2008-04-08 12
+72 val_72 72 val_72 2008-04-08 12
+72 val_72 72 val_72 2008-04-09 11
+72 val_72 72 val_72 2008-04-08 11
+72 val_72 72 val_72 2008-04-09 12
+72 val_72 72 val_72 2008-04-08 11
+72 val_72 72 val_72 2008-04-09 11
+74 val_74 74 val_74 2008-04-09 11
+74 val_74 74 val_74 2008-04-08 12
+74 val_74 74 val_74 2008-04-09 12
+74 val_74 74 val_74 2008-04-08 11
+76 val_76 76 val_76 2008-04-08 11
+76 val_76 76 val_76 2008-04-08 12
+76 val_76 76 val_76 2008-04-08 12
+76 val_76 76 val_76 2008-04-08 11
+76 val_76 76 val_76 2008-04-09 12
+76 val_76 76 val_76 2008-04-09 12
+76 val_76 76 val_76 2008-04-09 11
+76 val_76 76 val_76 2008-04-09 11
+76 val_76 76 val_76 2008-04-08 11
+76 val_76 76 val_76 2008-04-08 12
+76 val_76 76 val_76 2008-04-08 12
+76 val_76 76 val_76 2008-04-08 11
+76 val_76 76 val_76 2008-04-09 12
+76 val_76 76 val_76 2008-04-09 12
+76 val_76 76 val_76 2008-04-09 11
+76 val_76 76 val_76 2008-04-09 11
+77 val_77 77 val_77 2008-04-08 12
+77 val_77 77 val_77 2008-04-09 12
+77 val_77 77 val_77 2008-04-09 11
+77 val_77 77 val_77 2008-04-08 11
+78 val_78 78 val_78 2008-04-09 11
+78 val_78 78 val_78 2008-04-08 11
+78 val_78 78 val_78 2008-04-09 12
+78 val_78 78 val_78 2008-04-08 12
+80 val_80 80 val_80 2008-04-09 11
+80 val_80 80 val_80 2008-04-08 11
+80 val_80 80 val_80 2008-04-09 12
+80 val_80 80 val_80 2008-04-08 12
+82 val_82 82 val_82 2008-04-08 12
+82 val_82 82 val_82 2008-04-09 11
+82 val_82 82 val_82 2008-04-08 11
+82 val_82 82 val_82 2008-04-09 12
+83 val_83 83 val_83 2008-04-08 12
+83 val_83 83 val_83 2008-04-09 12
+83 val_83 83 val_83 2008-04-09 11
+83 val_83 83 val_83 2008-04-09 12
+83 val_83 83 val_83 2008-04-08 11
+83 val_83 83 val_83 2008-04-08 12
+83 val_83 83 val_83 2008-04-09 11
+83 val_83 83 val_83 2008-04-08 11
+83 val_83 83 val_83 2008-04-08 12
+83 val_83 83 val_83 2008-04-09 12
+83 val_83 83 val_83 2008-04-09 11
+83 val_83 83 val_83 2008-04-09 12
+83 val_83 83 val_83 2008-04-08 11
+83 val_83 83 val_83 2008-04-08 12
+83 val_83 83 val_83 2008-04-09 11
+83 val_83 83 val_83 2008-04-08 11
+84 val_84 84 val_84 2008-04-09 12
+84 val_84 84 val_84 2008-04-08 11
+84 val_84 84 val_84 2008-04-08 11
+84 val_84 84 val_84 2008-04-09 12
+84 val_84 84 val_84 2008-04-08 12
+84 val_84 84 val_84 2008-04-09 11
+84 val_84 84 val_84 2008-04-09 11
+84 val_84 84 val_84 2008-04-08 12
+84 val_84 84 val_84 2008-04-09 12
+84 val_84 84 val_84 2008-04-08 11
+84 val_84 84 val_84 2008-04-08 11
+84 val_84 84 val_84 2008-04-09 12
+84 val_84 84 val_84 2008-04-08 12
+84 val_84 84 val_84 2008-04-09 11
+84 val_84 84 val_84 2008-04-09 11
+84 val_84 84 val_84 2008-04-08 12
+85 val_85 85 val_85 2008-04-09 12
+85 val_85 85 val_85 2008-04-09 11
+85 val_85 85 val_85 2008-04-08 11
+85 val_85 85 val_85 2008-04-08 12
+86 val_86 86 val_86 2008-04-08 12
+86 val_86 86 val_86 2008-04-09 11
+86 val_86 86 val_86 2008-04-08 11
+86 val_86 86 val_86 2008-04-09 12
+87 val_87 87 val_87 2008-04-09 12
+87 val_87 87 val_87 2008-04-08 11
+87 val_87 87 val_87 2008-04-08 12
+87 val_87 87 val_87 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 11
+92 val_92 92 val_92 2008-04-09 11
+92 val_92 92 val_92 2008-04-09 12
+92 val_92 92 val_92 2008-04-08 12
+92 val_92 92 val_92 2008-04-08 11
+95 val_95 95 val_95 2008-04-08 11
+95 val_95 95 val_95 2008-04-09 12
+95 val_95 95 val_95 2008-04-08 12
+95 val_95 95 val_95 2008-04-09 11
+95 val_95 95 val_95 2008-04-08 12
+95 val_95 95 val_95 2008-04-09 11
+95 val_95 95 val_95 2008-04-09 12
+95 val_95 95 val_95 2008-04-08 11
+95 val_95 95 val_95 2008-04-08 11
+95 val_95 95 val_95 2008-04-09 12
+95 val_95 95 val_95 2008-04-08 12
+95 val_95 95 val_95 2008-04-09 11
+95 val_95 95 val_95 2008-04-08 12
+95 val_95 95 val_95 2008-04-09 11
+95 val_95 95 val_95 2008-04-09 12
+95 val_95 95 val_95 2008-04-08 11
+96 val_96 96 val_96 2008-04-09 12
+96 val_96 96 val_96 2008-04-08 11
+96 val_96 96 val_96 2008-04-08 12
+96 val_96 96 val_96 2008-04-09 11
+97 val_97 97 val_97 2008-04-09 12
+97 val_97 97 val_97 2008-04-09 12
+97 val_97 97 val_97 2008-04-09 11
+97 val_97 97 val_97 2008-04-09 11
+97 val_97 97 val_97 2008-04-08 12
+97 val_97 97 val_97 2008-04-08 12
+97 val_97 97 val_97 2008-04-08 11
+97 val_97 97 val_97 2008-04-08 11
+97 val_97 97 val_97 2008-04-09 12
+97 val_97 97 val_97 2008-04-09 12
+97 val_97 97 val_97 2008-04-09 11
+97 val_97 97 val_97 2008-04-09 11
+97 val_97 97 val_97 2008-04-08 12
+97 val_97 97 val_97 2008-04-08 12
+97 val_97 97 val_97 2008-04-08 11
+97 val_97 97 val_97 2008-04-08 11
+98 val_98 98 val_98 2008-04-08 11
+98 val_98 98 val_98 2008-04-08 11
+98 val_98 98 val_98 2008-04-08 12
+98 val_98 98 val_98 2008-04-09 12
+98 val_98 98 val_98 2008-04-09 11
+98 val_98 98 val_98 2008-04-09 11
+98 val_98 98 val_98 2008-04-08 12
+98 val_98 98 val_98 2008-04-09 12
+98 val_98 98 val_98 2008-04-08 11
+98 val_98 98 val_98 2008-04-08 11
+98 val_98 98 val_98 2008-04-08 12
+98 val_98 98 val_98 2008-04-09 12
+98 val_98 98 val_98 2008-04-09 11
+98 val_98 98 val_98 2008-04-09 11
+98 val_98 98 val_98 2008-04-08 12
+98 val_98 98 val_98 2008-04-09 12
+100 val_100 100 val_100 2008-04-09 11
+100 val_100 100 val_100 2008-04-08 11
+100 val_100 100 val_100 2008-04-09 12
+100 val_100 100 val_100 2008-04-08 12
+100 val_100 100 val_100 2008-04-08 12
+100 val_100 100 val_100 2008-04-09 12
+100 val_100 100 val_100 2008-04-08 11
+100 val_100 100 val_100 2008-04-09 11
+100 val_100 100 val_100 2008-04-09 11
+100 val_100 100 val_100 2008-04-08 11
+100 val_100 100 val_100 2008-04-09 12
+100 val_100 100 val_100 2008-04-08 12
+100 val_100 100 val_100 2008-04-08 12
+100 val_100 100 val_100 2008-04-09 12
+100 val_100 100 val_100 2008-04-08 11
+100 val_100 100 val_100 2008-04-09 11
+103 val_103 103 val_103 2008-04-08 11
+103 val_103 103 val_103 2008-04-09 12
+103 val_103 103 val_103 2008-04-09 11
+103 val_103 103 val_103 2008-04-08 11
+103 val_103 103 val_103 2008-04-09 11
+103 val_103 103 val_103 2008-04-08 12
+103 val_103 103 val_103 2008-04-08 12
+103 val_103 103 val_103 2008-04-09 12
+103 val_103 103 val_103 2008-04-08 11
+103 val_103 103 val_103 2008-04-09 12
+103 val_103 103 val_103 2008-04-09 11
+103 val_103 103 val_103 2008-04-08 11
+103 val_103 103 val_103 2008-04-09 11
+103 val_103 103 val_103 2008-04-08 12
+103 val_103 103 val_103 2008-04-08 12
+103 val_103 103 val_103 2008-04-09 12
+104 val_104 104 val_104 2008-04-08 11
+104 val_104 104 val_104 2008-04-09 12
+104 val_104 104 val_104 2008-04-09 11
+104 val_104 104 val_104 2008-04-08 12
+104 val_104 104 val_104 2008-04-08 11
+104 val_104 104 val_104 2008-04-09 12
+104 val_104 104 val_104 2008-04-08 12
+104 val_104 104 val_104 2008-04-09 11
+104 val_104 104 val_104 2008-04-08 11
+104 val_104 104 val_104 2008-04-09 12
+104 val_104 104 val_104 2008-04-09 11
+104 val_104 104 val_104 2008-04-08 12
+104 val_104 104 val_104 2008-04-08 11
+104 val_104 104 val_104 2008-04-09 12
+104 val_104 104 val_104 2008-04-08 12
+104 val_104 104 val_104 2008-04-09 11
+105 val_105 105 val_105 2008-04-09 12
+105 val_105 105 val_105 2008-04-09 11
+105 val_105 105 val_105 2008-04-08 11
+105 val_105 105 val_105 2008-04-08 12
+111 val_111 111 val_111 2008-04-08 12
+111 val_111 111 val_111 2008-04-08 11
+111 val_111 111 val_111 2008-04-09 12
+111 val_111 111 val_111 2008-04-09 11
+113 val_113 113 val_113 2008-04-09 12
+113 val_113 113 val_113 2008-04-08 11
+113 val_113 113 val_113 2008-04-08 12
+113 val_113 113 val_113 2008-04-08 12
+113 val_113 113 val_113 2008-04-09 11
+113 val_113 113 val_113 2008-04-09 11
+113 val_113 113 val_113 2008-04-08 11
+113 val_113 113 val_113 2008-04-09 12
+113 val_113 113 val_113 2008-04-09 12
+113 val_113 113 val_113 2008-04-08 11
+113 val_113 113 val_113 2008-04-08 12
+113 val_113 113 val_113 2008-04-08 12
+113 val_113 113 val_113 2008-04-09 11
+113 val_113 113 val_113 2008-04-09 11
+113 val_113 113 val_113 2008-04-08 11
+113 val_113 113 val_113 2008-04-09 12
+114 val_114 114 val_114 2008-04-09 11
+114 val_114 114 val_114 2008-04-09 12
+114 val_114 114 val_114 2008-04-08 12
+114 val_114 114 val_114 2008-04-08 11
+116 val_116 116 val_116 2008-04-08 12
+116 val_116 116 val_116 2008-04-09 11
+116 val_116 116 val_116 2008-04-08 11
+116 val_116 116 val_116 2008-04-09 12
+118 val_118 118 val_118 2008-04-09 12
+118 val_118 118 val_118 2008-04-08 11
+118 val_118 118 val_118 2008-04-09 11
+118 val_118 118 val_118 2008-04-09 12
+118 val_118 118 val_118 2008-04-08 11
+118 val_118 118 val_118 2008-04-08 12
+118 val_118 118 val_118 2008-04-08 12
+118 val_118 118 val_118 2008-04-09 11
+118 val_118 118 val_118 2008-04-09 12
+118 val_118 118 val_118 2008-04-08 11
+118 val_118 118 val_118 2008-04-09 11
+118 val_118 118 val_118 2008-04-09 12
+118 val_118 118 val_118 2008-04-08 11
+118 val_118 118 val_118 2008-04-08 12
+118 val_118 118 val_118 2008-04-08 12
+118 val_118 118 val_118 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 12
+120 val_120 120 val_120 2008-04-09 11
+120 val_120 120 val_120 2008-04-08 11
+120 val_120 120 val_120 2008-04-09 12
+120 val_120 120 val_120 2008-04-08 12
+120 val_120 120 val_120 2008-04-09 12
+120 val_120 120 val_120 2008-04-08 12
+120 val_120 120 val_120 2008-04-08 11
+120 val_120 120 val_120 2008-04-09 11
+120 val_120 120 val_120 2008-04-09 11
+120 val_120 120 val_120 2008-04-08 11
+120 val_120 120 val_120 2008-04-09 12
+120 val_120 120 val_120 2008-04-08 12
+120 val_120 120 val_120 2008-04-09 12
+120 val_120 120 val_120 2008-04-08 12
+120 val_120 120 val_120 2008-04-08 11
+120 val_120 120 val_120 2008-04-09 11
+125 val_125 125 val_125 2008-04-09 12
+125 val_125 125 val_125 2008-04-08 11
+125 val_125 125 val_125 2008-04-09 11
+125 val_125 125 val_125 2008-04-08 11
+125 val_125 125 val_125 2008-04-09 12
+125 val_125 125 val_125 2008-04-09 11
+125 val_125 125 val_125 2008-04-08 12
+125 val_125 125 val_125 2008-04-08 12
+125 val_125 125 val_125 2008-04-09 12
+125 val_125 125 val_125 2008-04-08 11
+125 val_125 125 val_125 2008-04-09 11
+125 val_125 125 val_125 2008-04-08 11
+125 val_125 125 val_125 2008-04-09 12
+125 val_125 125 val_125 2008-04-09 11
+125 val_125 125 val_125 2008-04-08 12
+125 val_125 125 val_125 2008-04-08 12
+126 val_126 126 val_126 2008-04-08 11
+126 val_126 126 val_126 2008-04-08 12
+126 val_126 126 val_126 2008-04-09 12
+126 val_126 126 val_126 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-08 12
+129 val_129 129 val_129 2008-04-09 12
+129 val_129 129 val_129 2008-04-08 12
+129 val_129 129 val_129 2008-04-09 12
+129 val_129 129 val_129 2008-04-08 12
+129 val_129 129 val_129 2008-04-09 11
+129 val_129 129 val_129 2008-04-08 11
+129 val_129 129 val_129 2008-04-09 11
+129 val_129 129 val_129 2008-04-08 11
+129 val_129 129 val_129 2008-04-09 12
+129 val_129 129 val_129 2008-04-08 12
+129 val_129 129 val_129 2008-04-09 12
+129 val_129 129 val_129 2008-04-08 12
+129 val_129 129 val_129 2008-04-09 11
+129 val_129 129 val_129 2008-04-08 11
+129 val_129 129 val_129 2008-04-09 11
+129 val_129 129 val_129 2008-04-08 11
+131 val_131 131 val_131 2008-04-08 12
+131 val_131 131 val_131 2008-04-09 12
+131 val_131 131 val_131 2008-04-09 11
+131 val_131 131 val_131 2008-04-08 11
+133 val_133 133 val_133 2008-04-08 11
+133 val_133 133 val_133 2008-04-08 12
+133 val_133 133 val_133 2008-04-09 11
+133 val_133 133 val_133 2008-04-09 12
+134 val_134 134 val_134 2008-04-08 12
+134 val_134 134 val_134 2008-04-09 11
+134 val_134 134 val_134 2008-04-08 11
+134 val_134 134 val_134 2008-04-09 11
+134 val_134 134 val_134 2008-04-09 12
+134 val_134 134 val_134 2008-04-08 12
+134 val_134 134 val_134 2008-04-09 12
+134 val_134 134 val_134 2008-04-08 11
+134 val_134 134 val_134 2008-04-08 12
+134 val_134 134 val_134 2008-04-09 11
+134 val_134 134 val_134 2008-04-08 11
+134 val_134 134 val_134 2008-04-09 11
+134 val_134 134 val_134 2008-04-09 12
+134 val_134 134 val_134 2008-04-08 12
+134 val_134 134 val_134 2008-04-09 12
+134 val_134 134 val_134 2008-04-08 11
+136 val_136 136 val_136 2008-04-09 12
+136 val_136 136 val_136 2008-04-08 12
+136 val_136 136 val_136 2008-04-08 11
+136 val_136 136 val_136 2008-04-09 11
+137 val_137 137 val_137 2008-04-08 11
+137 val_137 137 val_137 2008-04-09 12
+137 val_137 137 val_137 2008-04-09 11
+137 val_137 137 val_137 2008-04-09 11
+137 val_137 137 val_137 2008-04-09 12
+137 val_137 137 val_137 2008-04-08 12
+137 val_137 137 val_137 2008-04-08 11
+137 val_137 137 val_137 2008-04-08 12
+137 val_137 137 val_137 2008-04-08 11
+137 val_137 137 val_137 2008-04-09 12
+137 val_137 137 val_137 2008-04-09 11
+137 val_137 137 val_137 2008-04-09 11
+137 val_137 137 val_137 2008-04-09 12
+137 val_137 137 val_137 2008-04-08 12
+137 val_137 137 val_137 2008-04-08 11
+137 val_137 137 val_137 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+143 val_143 143 val_143 2008-04-09 12
+143 val_143 143 val_143 2008-04-08 11
+143 val_143 143 val_143 2008-04-09 11
+143 val_143 143 val_143 2008-04-08 12
+145 val_145 145 val_145 2008-04-09 11
+145 val_145 145 val_145 2008-04-08 11
+145 val_145 145 val_145 2008-04-08 12
+145 val_145 145 val_145 2008-04-09 12
+146 val_146 146 val_146 2008-04-08 11
+146 val_146 146 val_146 2008-04-09 11
+146 val_146 146 val_146 2008-04-08 12
+146 val_146 146 val_146 2008-04-08 11
+146 val_146 146 val_146 2008-04-09 12
+146 val_146 146 val_146 2008-04-09 12
+146 val_146 146 val_146 2008-04-09 11
+146 val_146 146 val_146 2008-04-08 12
+146 val_146 146 val_146 2008-04-08 11
+146 val_146 146 val_146 2008-04-09 11
+146 val_146 146 val_146 2008-04-08 12
+146 val_146 146 val_146 2008-04-08 11
+146 val_146 146 val_146 2008-04-09 12
+146 val_146 146 val_146 2008-04-09 12
+146 val_146 146 val_146 2008-04-09 11
+146 val_146 146 val_146 2008-04-08 12
+149 val_149 149 val_149 2008-04-08 12
+149 val_149 149 val_149 2008-04-09 12
+149 val_149 149 val_149 2008-04-09 12
+149 val_149 149 val_149 2008-04-09 11
+149 val_149 149 val_149 2008-04-09 11
+149 val_149 149 val_149 2008-04-08 11
+149 val_149 149 val_149 2008-04-08 11
+149 val_149 149 val_149 2008-04-08 12
+149 val_149 149 val_149 2008-04-08 12
+149 val_149 149 val_149 2008-04-09 12
+149 val_149 149 val_149 2008-04-09 12
+149 val_149 149 val_149 2008-04-09 11
+149 val_149 149 val_149 2008-04-09 11
+149 val_149 149 val_149 2008-04-08 11
+149 val_149 149 val_149 2008-04-08 11
+149 val_149 149 val_149 2008-04-08 12
+150 val_150 150 val_150 2008-04-09 11
+150 val_150 150 val_150 2008-04-09 12
+150 val_150 150 val_150 2008-04-08 11
+150 val_150 150 val_150 2008-04-08 12
+152 val_152 152 val_152 2008-04-08 11
+152 val_152 152 val_152 2008-04-08 12
+152 val_152 152 val_152 2008-04-09 11
+152 val_152 152 val_152 2008-04-08 11
+152 val_152 152 val_152 2008-04-09 12
+152 val_152 152 val_152 2008-04-09 11
+152 val_152 152 val_152 2008-04-09 12
+152 val_152 152 val_152 2008-04-08 12
+152 val_152 152 val_152 2008-04-08 11
+152 val_152 152 val_152 2008-04-08 12
+152 val_152 152 val_152 2008-04-09 11
+152 val_152 152 val_152 2008-04-08 11
+152 val_152 152 val_152 2008-04-09 12
+152 val_152 152 val_152 2008-04-09 11
+152 val_152 152 val_152 2008-04-09 12
+152 val_152 152 val_152 2008-04-08 12
+153 val_153 153 val_153 2008-04-09 11
+153 val_153 153 val_153 2008-04-08 11
+153 val_153 153 val_153 2008-04-08 12
+153 val_153 153 val_153 2008-04-09 12
+155 val_155 155 val_155 2008-04-08 12
+155 val_155 155 val_155 2008-04-08 11
+155 val_155 155 val_155 2008-04-09 12
+155 val_155 155 val_155 2008-04-09 11
+156 val_156 156 val_156 2008-04-08 12
+156 val_156 156 val_156 2008-04-09 12
+156 val_156 156 val_156 2008-04-09 11
+156 val_156 156 val_156 2008-04-08 11
+157 val_157 157 val_157 2008-04-09 11
+157 val_157 157 val_157 2008-04-08 12
+157 val_157 157 val_157 2008-04-08 11
+157 val_157 157 val_157 2008-04-09 12
+158 val_158 158 val_158 2008-04-08 11
+158 val_158 158 val_158 2008-04-09 11
+158 val_158 158 val_158 2008-04-09 12
+158 val_158 158 val_158 2008-04-08 12
+160 val_160 160 val_160 2008-04-09 11
+160 val_160 160 val_160 2008-04-09 12
+160 val_160 160 val_160 2008-04-08 11
+160 val_160 160 val_160 2008-04-08 12
+162 val_162 162 val_162 2008-04-09 11
+162 val_162 162 val_162 2008-04-08 12
+162 val_162 162 val_162 2008-04-08 11
+162 val_162 162 val_162 2008-04-09 12
+163 val_163 163 val_163 2008-04-09 11
+163 val_163 163 val_163 2008-04-09 12
+163 val_163 163 val_163 2008-04-08 11
+163 val_163 163 val_163 2008-04-08 12
+164 val_164 164 val_164 2008-04-08 11
+164 val_164 164 val_164 2008-04-09 11
+164 val_164 164 val_164 2008-04-08 11
+164 val_164 164 val_164 2008-04-09 12
+164 val_164 164 val_164 2008-04-09 11
+164 val_164 164 val_164 2008-04-09 12
+164 val_164 164 val_164 2008-04-08 12
+164 val_164 164 val_164 2008-04-08 12
+164 val_164 164 val_164 2008-04-08 11
+164 val_164 164 val_164 2008-04-09 11
+164 val_164 164 val_164 2008-04-08 11
+164 val_164 164 val_164 2008-04-09 12
+164 val_164 164 val_164 2008-04-09 11
+164 val_164 164 val_164 2008-04-09 12
+164 val_164 164 val_164 2008-04-08 12
+164 val_164 164 val_164 2008-04-08 12
+165 val_165 165 val_165 2008-04-08 11
+165 val_165 165 val_165 2008-04-09 11
+165 val_165 165 val_165 2008-04-09 12
+165 val_165 165 val_165 2008-04-08 12
+165 val_165 165 val_165 2008-04-09 12
+165 val_165 165 val_165 2008-04-08 12
+165 val_165 165 val_165 2008-04-08 11
+165 val_165 165 val_165 2008-04-09 11
+165 val_165 165 val_165 2008-04-08 11
+165 val_165 165 val_165 2008-04-09 11
+165 val_165 165 val_165 2008-04-09 12
+165 val_165 165 val_165 2008-04-08 12
+165 val_165 165 val_165 2008-04-09 12
+165 val_165 165 val_165 2008-04-08 12
+165 val_165 165 val_165 2008-04-08 11
+165 val_165 165 val_165 2008-04-09 11
+166 val_166 166 val_166 2008-04-08 12
+166 val_166 166 val_166 2008-04-08 11
+166 val_166 166 val_166 2008-04-09 12
+166 val_166 166 val_166 2008-04-09 11
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 12
+168 val_168 168 val_168 2008-04-08 11
+168 val_168 168 val_168 2008-04-08 12
+168 val_168 168 val_168 2008-04-09 11
+168 val_168 168 val_168 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-08 11
+170 val_170 170 val_170 2008-04-09 11
+170 val_170 170 val_170 2008-04-09 12
+170 val_170 170 val_170 2008-04-08 11
+170 val_170 170 val_170 2008-04-08 12
+172 val_172 172 val_172 2008-04-08 11
+172 val_172 172 val_172 2008-04-09 11
+172 val_172 172 val_172 2008-04-08 12
+172 val_172 172 val_172 2008-04-09 12
+172 val_172 172 val_172 2008-04-08 11
+172 val_172 172 val_172 2008-04-08 12
+172 val_172 172 val_172 2008-04-09 12
+172 val_172 172 val_172 2008-04-09 11
+172 val_172 172 val_172 2008-04-08 11
+172 val_172 172 val_172 2008-04-09 11
+172 val_172 172 val_172 2008-04-08 12
+172 val_172 172 val_172 2008-04-09 12
+172 val_172 172 val_172 2008-04-08 11
+172 val_172 172 val_172 2008-04-08 12
+172 val_172 172 val_172 2008-04-09 12
+172 val_172 172 val_172 2008-04-09 11
+174 val_174 174 val_174 2008-04-08 12
+174 val_174 174 val_174 2008-04-09 12
+174 val_174 174 val_174 2008-04-09 12
+174 val_174 174 val_174 2008-04-08 11
+174 val_174 174 val_174 2008-04-08 11
+174 val_174 174 val_174 2008-04-08 12
+174 val_174 174 val_174 2008-04-09 11
+174 val_174 174 val_174 2008-04-09 11
+174 val_174 174 val_174 2008-04-08 12
+174 val_174 174 val_174 2008-04-09 12
+174 val_174 174 val_174 2008-04-09 12
+174 val_174 174 val_174 2008-04-08 11
+174 val_174 174 val_174 2008-04-08 11
+174 val_174 174 val_174 2008-04-08 12
+174 val_174 174 val_174 2008-04-09 11
+174 val_174 174 val_174 2008-04-09 11
+175 val_175 175 val_175 2008-04-09 12
+175 val_175 175 val_175 2008-04-08 11
+175 val_175 175 val_175 2008-04-09 12
+175 val_175 175 val_175 2008-04-08 11
+175 val_175 175 val_175 2008-04-09 11
+175 val_175 175 val_175 2008-04-09 11
+175 val_175 175 val_175 2008-04-08 12
+175 val_175 175 val_175 2008-04-08 12
+175 val_175 175 val_175 2008-04-09 12
+175 val_175 175 val_175 2008-04-08 11
+175 val_175 175 val_175 2008-04-09 12
+175 val_175 175 val_175 2008-04-08 11
+175 val_175 175 val_175 2008-04-09 11
+175 val_175 175 val_175 2008-04-09 11
+175 val_175 175 val_175 2008-04-08 12
+175 val_175 175 val_175 2008-04-08 12
+176 val_176 176 val_176 2008-04-08 11
+176 val_176 176 val_176 2008-04-09 12
+176 val_176 176 val_176 2008-04-08 12
+176 val_176 176 val_176 2008-04-09 12
+176 val_176 176 val_176 2008-04-08 11
+176 val_176 176 val_176 2008-04-09 11
+176 val_176 176 val_176 2008-04-09 11
+176 val_176 176 val_176 2008-04-08 12
+176 val_176 176 val_176 2008-04-08 11
+176 val_176 176 val_176 2008-04-09 12
+176 val_176 176 val_176 2008-04-08 12
+176 val_176 176 val_176 2008-04-09 12
+176 val_176 176 val_176 2008-04-08 11
+176 val_176 176 val_176 2008-04-09 11
+176 val_176 176 val_176 2008-04-09 11
+176 val_176 176 val_176 2008-04-08 12
+177 val_177 177 val_177 2008-04-08 12
+177 val_177 177 val_177 2008-04-08 11
+177 val_177 177 val_177 2008-04-09 11
+177 val_177 177 val_177 2008-04-09 12
+178 val_178 178 val_178 2008-04-08 12
+178 val_178 178 val_178 2008-04-09 11
+178 val_178 178 val_178 2008-04-08 11
+178 val_178 178 val_178 2008-04-09 12
+179 val_179 179 val_179 2008-04-08 12
+179 val_179 179 val_179 2008-04-09 12
+179 val_179 179 val_179 2008-04-08 12
+179 val_179 179 val_179 2008-04-09 11
+179 val_179 179 val_179 2008-04-09 12
+179 val_179 179 val_179 2008-04-09 11
+179 val_179 179 val_179 2008-04-08 11
+179 val_179 179 val_179 2008-04-08 11
+179 val_179 179 val_179 2008-04-08 12
+179 val_179 179 val_179 2008-04-09 12
+179 val_179 179 val_179 2008-04-08 12
+179 val_179 179 val_179 2008-04-09 11
+179 val_179 179 val_179 2008-04-09 12
+179 val_179 179 val_179 2008-04-09 11
+179 val_179 179 val_179 2008-04-08 11
+179 val_179 179 val_179 2008-04-08 11
+180 val_180 180 val_180 2008-04-09 11
+180 val_180 180 val_180 2008-04-09 12
+180 val_180 180 val_180 2008-04-08 11
+180 val_180 180 val_180 2008-04-08 12
+181 val_181 181 val_181 2008-04-09 11
+181 val_181 181 val_181 2008-04-09 12
+181 val_181 181 val_181 2008-04-08 11
+181 val_181 181 val_181 2008-04-08 12
+183 val_183 183 val_183 2008-04-08 12
+183 val_183 183 val_183 2008-04-08 11
+183 val_183 183 val_183 2008-04-09 12
+183 val_183 183 val_183 2008-04-09 11
+186 val_186 186 val_186 2008-04-08 11
+186 val_186 186 val_186 2008-04-08 12
+186 val_186 186 val_186 2008-04-09 11
+186 val_186 186 val_186 2008-04-09 12
+187 val_187 187 val_187 2008-04-09 11
+187 val_187 187 val_187 2008-04-08 12
+187 val_187 187 val_187 2008-04-08 11
+187 val_187 187 val_187 2008-04-08 12
+187 val_187 187 val_187 2008-04-09 12
+187 val_187 187 val_187 2008-04-08 11
+187 val_187 187 val_187 2008-04-09 12
+187 val_187 187 val_187 2008-04-09 12
+187 val_187 187 val_187 2008-04-08 11
+187 val_187 187 val_187 2008-04-09 11
+187 val_187 187 val_187 2008-04-09 11
+187 val_187 187 val_187 2008-04-08 12
+187 val_187 187 val_187 2008-04-09 11
+187 val_187 187 val_187 2008-04-08 12
+187 val_187 187 val_187 2008-04-08 11
+187 val_187 187 val_187 2008-04-08 12
+187 val_187 187 val_187 2008-04-09 12
+187 val_187 187 v
<TRUNCATED>
[4/5] hive git commit: HIVE-13125: Support masking and filtering of
rows/columns (Pengcheng Xiong, reviewed by Ashutosh Chauhan)
Posted by px...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/results/clientpositive/masking_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/masking_3.q.out b/ql/src/test/results/clientpositive/masking_3.q.out
new file mode 100644
index 0000000..55c9e8f
--- /dev/null
+++ b/ql/src/test/results/clientpositive/masking_3.q.out
@@ -0,0 +1,7765 @@
+PREHOOK: query: create table masking_test_subq 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
+POSTHOOK: query: create table masking_test_subq 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
+POSTHOOK: Lineage: masking_test_subq.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: masking_test_subq.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: explain select * from masking_test_subq
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test_subq
+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: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), value (type: string), UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col2 (type: double), _col3 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col2 (type: double), _col3 (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int), _col1 (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: double), _col1 (type: double)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: double), _col1 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: double), _col1 (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 _col2 (type: double), _col3 (type: double)
+ 1 _col0 (type: double), _col1 (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test_subq
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test_subq
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test_subq
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test_subq
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+0 val_0
+0 val_0
+0 val_0
+2 val_2
+4 val_4
+5 val_5
+5 val_5
+5 val_5
+8 val_8
+9 val_9
+10 val_10
+11 val_11
+12 val_12
+12 val_12
+15 val_15
+15 val_15
+17 val_17
+18 val_18
+18 val_18
+19 val_19
+20 val_20
+24 val_24
+24 val_24
+26 val_26
+26 val_26
+27 val_27
+28 val_28
+30 val_30
+33 val_33
+34 val_34
+35 val_35
+35 val_35
+35 val_35
+37 val_37
+37 val_37
+41 val_41
+42 val_42
+42 val_42
+43 val_43
+44 val_44
+47 val_47
+51 val_51
+51 val_51
+53 val_53
+54 val_54
+57 val_57
+58 val_58
+58 val_58
+64 val_64
+65 val_65
+66 val_66
+67 val_67
+67 val_67
+69 val_69
+70 val_70
+70 val_70
+70 val_70
+72 val_72
+72 val_72
+74 val_74
+76 val_76
+76 val_76
+77 val_77
+78 val_78
+80 val_80
+82 val_82
+83 val_83
+83 val_83
+84 val_84
+84 val_84
+85 val_85
+86 val_86
+87 val_87
+90 val_90
+90 val_90
+90 val_90
+92 val_92
+95 val_95
+95 val_95
+96 val_96
+97 val_97
+97 val_97
+98 val_98
+98 val_98
+100 val_100
+100 val_100
+103 val_103
+103 val_103
+104 val_104
+104 val_104
+105 val_105
+111 val_111
+113 val_113
+113 val_113
+114 val_114
+116 val_116
+118 val_118
+118 val_118
+119 val_119
+119 val_119
+119 val_119
+120 val_120
+120 val_120
+125 val_125
+125 val_125
+126 val_126
+128 val_128
+128 val_128
+128 val_128
+129 val_129
+129 val_129
+131 val_131
+133 val_133
+134 val_134
+134 val_134
+136 val_136
+137 val_137
+137 val_137
+138 val_138
+138 val_138
+138 val_138
+138 val_138
+143 val_143
+145 val_145
+146 val_146
+146 val_146
+149 val_149
+149 val_149
+150 val_150
+152 val_152
+152 val_152
+153 val_153
+155 val_155
+156 val_156
+157 val_157
+158 val_158
+160 val_160
+162 val_162
+163 val_163
+164 val_164
+164 val_164
+165 val_165
+165 val_165
+166 val_166
+167 val_167
+167 val_167
+167 val_167
+168 val_168
+169 val_169
+169 val_169
+169 val_169
+169 val_169
+170 val_170
+172 val_172
+172 val_172
+174 val_174
+174 val_174
+175 val_175
+175 val_175
+176 val_176
+176 val_176
+177 val_177
+178 val_178
+179 val_179
+179 val_179
+180 val_180
+181 val_181
+183 val_183
+186 val_186
+187 val_187
+187 val_187
+187 val_187
+189 val_189
+190 val_190
+191 val_191
+191 val_191
+192 val_192
+193 val_193
+193 val_193
+193 val_193
+194 val_194
+195 val_195
+195 val_195
+196 val_196
+197 val_197
+197 val_197
+199 val_199
+199 val_199
+199 val_199
+200 val_200
+200 val_200
+201 val_201
+202 val_202
+203 val_203
+203 val_203
+205 val_205
+205 val_205
+207 val_207
+207 val_207
+208 val_208
+208 val_208
+208 val_208
+209 val_209
+209 val_209
+213 val_213
+213 val_213
+214 val_214
+216 val_216
+216 val_216
+217 val_217
+217 val_217
+218 val_218
+219 val_219
+219 val_219
+221 val_221
+221 val_221
+222 val_222
+223 val_223
+223 val_223
+224 val_224
+224 val_224
+226 val_226
+228 val_228
+229 val_229
+229 val_229
+230 val_230
+230 val_230
+230 val_230
+230 val_230
+230 val_230
+233 val_233
+233 val_233
+235 val_235
+237 val_237
+237 val_237
+238 val_238
+238 val_238
+239 val_239
+239 val_239
+241 val_241
+242 val_242
+242 val_242
+244 val_244
+247 val_247
+248 val_248
+249 val_249
+252 val_252
+255 val_255
+255 val_255
+256 val_256
+256 val_256
+257 val_257
+258 val_258
+260 val_260
+262 val_262
+263 val_263
+265 val_265
+265 val_265
+266 val_266
+272 val_272
+272 val_272
+273 val_273
+273 val_273
+273 val_273
+274 val_274
+275 val_275
+277 val_277
+277 val_277
+277 val_277
+277 val_277
+278 val_278
+278 val_278
+280 val_280
+280 val_280
+281 val_281
+281 val_281
+282 val_282
+282 val_282
+283 val_283
+284 val_284
+285 val_285
+286 val_286
+287 val_287
+288 val_288
+288 val_288
+289 val_289
+291 val_291
+292 val_292
+296 val_296
+298 val_298
+298 val_298
+298 val_298
+302 val_302
+305 val_305
+306 val_306
+307 val_307
+307 val_307
+308 val_308
+309 val_309
+309 val_309
+310 val_310
+311 val_311
+311 val_311
+311 val_311
+315 val_315
+316 val_316
+316 val_316
+316 val_316
+317 val_317
+317 val_317
+318 val_318
+318 val_318
+318 val_318
+321 val_321
+321 val_321
+322 val_322
+322 val_322
+323 val_323
+325 val_325
+325 val_325
+327 val_327
+327 val_327
+327 val_327
+331 val_331
+331 val_331
+332 val_332
+333 val_333
+333 val_333
+335 val_335
+336 val_336
+338 val_338
+339 val_339
+341 val_341
+342 val_342
+342 val_342
+344 val_344
+344 val_344
+345 val_345
+348 val_348
+348 val_348
+348 val_348
+348 val_348
+348 val_348
+351 val_351
+353 val_353
+353 val_353
+356 val_356
+360 val_360
+362 val_362
+364 val_364
+365 val_365
+366 val_366
+367 val_367
+367 val_367
+368 val_368
+369 val_369
+369 val_369
+369 val_369
+373 val_373
+374 val_374
+375 val_375
+377 val_377
+378 val_378
+379 val_379
+382 val_382
+382 val_382
+384 val_384
+384 val_384
+384 val_384
+386 val_386
+389 val_389
+392 val_392
+393 val_393
+394 val_394
+395 val_395
+395 val_395
+396 val_396
+396 val_396
+396 val_396
+397 val_397
+397 val_397
+399 val_399
+399 val_399
+400 val_400
+401 val_401
+401 val_401
+401 val_401
+401 val_401
+401 val_401
+402 val_402
+403 val_403
+403 val_403
+403 val_403
+404 val_404
+404 val_404
+406 val_406
+406 val_406
+406 val_406
+406 val_406
+407 val_407
+409 val_409
+409 val_409
+409 val_409
+411 val_411
+413 val_413
+413 val_413
+414 val_414
+414 val_414
+417 val_417
+417 val_417
+417 val_417
+418 val_418
+419 val_419
+421 val_421
+424 val_424
+424 val_424
+427 val_427
+429 val_429
+429 val_429
+430 val_430
+430 val_430
+430 val_430
+431 val_431
+431 val_431
+431 val_431
+432 val_432
+435 val_435
+436 val_436
+437 val_437
+438 val_438
+438 val_438
+438 val_438
+439 val_439
+439 val_439
+443 val_443
+444 val_444
+446 val_446
+448 val_448
+449 val_449
+452 val_452
+453 val_453
+454 val_454
+454 val_454
+454 val_454
+455 val_455
+457 val_457
+458 val_458
+458 val_458
+459 val_459
+459 val_459
+460 val_460
+462 val_462
+462 val_462
+463 val_463
+463 val_463
+466 val_466
+466 val_466
+466 val_466
+467 val_467
+468 val_468
+468 val_468
+468 val_468
+468 val_468
+469 val_469
+469 val_469
+469 val_469
+469 val_469
+469 val_469
+470 val_470
+472 val_472
+475 val_475
+477 val_477
+478 val_478
+478 val_478
+479 val_479
+480 val_480
+480 val_480
+480 val_480
+481 val_481
+482 val_482
+483 val_483
+484 val_484
+485 val_485
+487 val_487
+489 val_489
+489 val_489
+489 val_489
+489 val_489
+490 val_490
+491 val_491
+492 val_492
+492 val_492
+493 val_493
+494 val_494
+495 val_495
+496 val_496
+497 val_497
+498 val_498
+498 val_498
+498 val_498
+PREHOOK: query: explain select * from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test_subq where key > 0
+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: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((key > 0) and UDFToDouble(key) is not null) (type: boolean)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), value (type: string), UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col2 (type: double), _col3 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col2 (type: double), _col3 (type: double)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int), _col1 (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: double), _col1 (type: double)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: double), _col1 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: double), _col1 (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 _col2 (type: double), _col3 (type: double)
+ 1 _col0 (type: double), _col1 (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test_subq
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test_subq where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test_subq
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+2 val_2
+4 val_4
+5 val_5
+5 val_5
+5 val_5
+8 val_8
+9 val_9
+10 val_10
+11 val_11
+12 val_12
+12 val_12
+15 val_15
+15 val_15
+17 val_17
+18 val_18
+18 val_18
+19 val_19
+20 val_20
+24 val_24
+24 val_24
+26 val_26
+26 val_26
+27 val_27
+28 val_28
+30 val_30
+33 val_33
+34 val_34
+35 val_35
+35 val_35
+35 val_35
+37 val_37
+37 val_37
+41 val_41
+42 val_42
+42 val_42
+43 val_43
+44 val_44
+47 val_47
+51 val_51
+51 val_51
+53 val_53
+54 val_54
+57 val_57
+58 val_58
+58 val_58
+64 val_64
+65 val_65
+66 val_66
+67 val_67
+67 val_67
+69 val_69
+70 val_70
+70 val_70
+70 val_70
+72 val_72
+72 val_72
+74 val_74
+76 val_76
+76 val_76
+77 val_77
+78 val_78
+80 val_80
+82 val_82
+83 val_83
+83 val_83
+84 val_84
+84 val_84
+85 val_85
+86 val_86
+87 val_87
+90 val_90
+90 val_90
+90 val_90
+92 val_92
+95 val_95
+95 val_95
+96 val_96
+97 val_97
+97 val_97
+98 val_98
+98 val_98
+100 val_100
+100 val_100
+103 val_103
+103 val_103
+104 val_104
+104 val_104
+105 val_105
+111 val_111
+113 val_113
+113 val_113
+114 val_114
+116 val_116
+118 val_118
+118 val_118
+119 val_119
+119 val_119
+119 val_119
+120 val_120
+120 val_120
+125 val_125
+125 val_125
+126 val_126
+128 val_128
+128 val_128
+128 val_128
+129 val_129
+129 val_129
+131 val_131
+133 val_133
+134 val_134
+134 val_134
+136 val_136
+137 val_137
+137 val_137
+138 val_138
+138 val_138
+138 val_138
+138 val_138
+143 val_143
+145 val_145
+146 val_146
+146 val_146
+149 val_149
+149 val_149
+150 val_150
+152 val_152
+152 val_152
+153 val_153
+155 val_155
+156 val_156
+157 val_157
+158 val_158
+160 val_160
+162 val_162
+163 val_163
+164 val_164
+164 val_164
+165 val_165
+165 val_165
+166 val_166
+167 val_167
+167 val_167
+167 val_167
+168 val_168
+169 val_169
+169 val_169
+169 val_169
+169 val_169
+170 val_170
+172 val_172
+172 val_172
+174 val_174
+174 val_174
+175 val_175
+175 val_175
+176 val_176
+176 val_176
+177 val_177
+178 val_178
+179 val_179
+179 val_179
+180 val_180
+181 val_181
+183 val_183
+186 val_186
+187 val_187
+187 val_187
+187 val_187
+189 val_189
+190 val_190
+191 val_191
+191 val_191
+192 val_192
+193 val_193
+193 val_193
+193 val_193
+194 val_194
+195 val_195
+195 val_195
+196 val_196
+197 val_197
+197 val_197
+199 val_199
+199 val_199
+199 val_199
+200 val_200
+200 val_200
+201 val_201
+202 val_202
+203 val_203
+203 val_203
+205 val_205
+205 val_205
+207 val_207
+207 val_207
+208 val_208
+208 val_208
+208 val_208
+209 val_209
+209 val_209
+213 val_213
+213 val_213
+214 val_214
+216 val_216
+216 val_216
+217 val_217
+217 val_217
+218 val_218
+219 val_219
+219 val_219
+221 val_221
+221 val_221
+222 val_222
+223 val_223
+223 val_223
+224 val_224
+224 val_224
+226 val_226
+228 val_228
+229 val_229
+229 val_229
+230 val_230
+230 val_230
+230 val_230
+230 val_230
+230 val_230
+233 val_233
+233 val_233
+235 val_235
+237 val_237
+237 val_237
+238 val_238
+238 val_238
+239 val_239
+239 val_239
+241 val_241
+242 val_242
+242 val_242
+244 val_244
+247 val_247
+248 val_248
+249 val_249
+252 val_252
+255 val_255
+255 val_255
+256 val_256
+256 val_256
+257 val_257
+258 val_258
+260 val_260
+262 val_262
+263 val_263
+265 val_265
+265 val_265
+266 val_266
+272 val_272
+272 val_272
+273 val_273
+273 val_273
+273 val_273
+274 val_274
+275 val_275
+277 val_277
+277 val_277
+277 val_277
+277 val_277
+278 val_278
+278 val_278
+280 val_280
+280 val_280
+281 val_281
+281 val_281
+282 val_282
+282 val_282
+283 val_283
+284 val_284
+285 val_285
+286 val_286
+287 val_287
+288 val_288
+288 val_288
+289 val_289
+291 val_291
+292 val_292
+296 val_296
+298 val_298
+298 val_298
+298 val_298
+302 val_302
+305 val_305
+306 val_306
+307 val_307
+307 val_307
+308 val_308
+309 val_309
+309 val_309
+310 val_310
+311 val_311
+311 val_311
+311 val_311
+315 val_315
+316 val_316
+316 val_316
+316 val_316
+317 val_317
+317 val_317
+318 val_318
+318 val_318
+318 val_318
+321 val_321
+321 val_321
+322 val_322
+322 val_322
+323 val_323
+325 val_325
+325 val_325
+327 val_327
+327 val_327
+327 val_327
+331 val_331
+331 val_331
+332 val_332
+333 val_333
+333 val_333
+335 val_335
+336 val_336
+338 val_338
+339 val_339
+341 val_341
+342 val_342
+342 val_342
+344 val_344
+344 val_344
+345 val_345
+348 val_348
+348 val_348
+348 val_348
+348 val_348
+348 val_348
+351 val_351
+353 val_353
+353 val_353
+356 val_356
+360 val_360
+362 val_362
+364 val_364
+365 val_365
+366 val_366
+367 val_367
+367 val_367
+368 val_368
+369 val_369
+369 val_369
+369 val_369
+373 val_373
+374 val_374
+375 val_375
+377 val_377
+378 val_378
+379 val_379
+382 val_382
+382 val_382
+384 val_384
+384 val_384
+384 val_384
+386 val_386
+389 val_389
+392 val_392
+393 val_393
+394 val_394
+395 val_395
+395 val_395
+396 val_396
+396 val_396
+396 val_396
+397 val_397
+397 val_397
+399 val_399
+399 val_399
+400 val_400
+401 val_401
+401 val_401
+401 val_401
+401 val_401
+401 val_401
+402 val_402
+403 val_403
+403 val_403
+403 val_403
+404 val_404
+404 val_404
+406 val_406
+406 val_406
+406 val_406
+406 val_406
+407 val_407
+409 val_409
+409 val_409
+409 val_409
+411 val_411
+413 val_413
+413 val_413
+414 val_414
+414 val_414
+417 val_417
+417 val_417
+417 val_417
+418 val_418
+419 val_419
+421 val_421
+424 val_424
+424 val_424
+427 val_427
+429 val_429
+429 val_429
+430 val_430
+430 val_430
+430 val_430
+431 val_431
+431 val_431
+431 val_431
+432 val_432
+435 val_435
+436 val_436
+437 val_437
+438 val_438
+438 val_438
+438 val_438
+439 val_439
+439 val_439
+443 val_443
+444 val_444
+446 val_446
+448 val_448
+449 val_449
+452 val_452
+453 val_453
+454 val_454
+454 val_454
+454 val_454
+455 val_455
+457 val_457
+458 val_458
+458 val_458
+459 val_459
+459 val_459
+460 val_460
+462 val_462
+462 val_462
+463 val_463
+463 val_463
+466 val_466
+466 val_466
+466 val_466
+467 val_467
+468 val_468
+468 val_468
+468 val_468
+468 val_468
+469 val_469
+469 val_469
+469 val_469
+469 val_469
+469 val_469
+470 val_470
+472 val_472
+475 val_475
+477 val_477
+478 val_478
+478 val_478
+479 val_479
+480 val_480
+480 val_480
+480 val_480
+481 val_481
+482 val_482
+483 val_483
+484 val_484
+485 val_485
+487 val_487
+489 val_489
+489 val_489
+489 val_489
+489 val_489
+490 val_490
+491 val_491
+492 val_492
+492 val_492
+493 val_493
+494 val_494
+495 val_495
+496 val_496
+497 val_497
+498 val_498
+498 val_498
+498 val_498
+PREHOOK: query: explain select key from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select key from masking_test_subq where key > 0
+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: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((key > 0) and UDFToDouble(key) is not null) (type: boolean)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col1 (type: double), _col2 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col1 (type: double), _col2 (type: double)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: double), _col1 (type: double)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: double), _col1 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: double), _col1 (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 _col1 (type: double), _col2 (type: double)
+ 1 _col0 (type: double), _col1 (type: double)
+ outputColumnNames: _col0
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select key from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test_subq
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select key from masking_test_subq where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test_subq
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+2
+4
+5
+5
+5
+8
+9
+10
+11
+12
+12
+15
+15
+17
+18
+18
+19
+20
+24
+24
+26
+26
+27
+28
+30
+33
+34
+35
+35
+35
+37
+37
+41
+42
+42
+43
+44
+47
+51
+51
+53
+54
+57
+58
+58
+64
+65
+66
+67
+67
+69
+70
+70
+70
+72
+72
+74
+76
+76
+77
+78
+80
+82
+83
+83
+84
+84
+85
+86
+87
+90
+90
+90
+92
+95
+95
+96
+97
+97
+98
+98
+100
+100
+103
+103
+104
+104
+105
+111
+113
+113
+114
+116
+118
+118
+119
+119
+119
+120
+120
+125
+125
+126
+128
+128
+128
+129
+129
+131
+133
+134
+134
+136
+137
+137
+138
+138
+138
+138
+143
+145
+146
+146
+149
+149
+150
+152
+152
+153
+155
+156
+157
+158
+160
+162
+163
+164
+164
+165
+165
+166
+167
+167
+167
+168
+169
+169
+169
+169
+170
+172
+172
+174
+174
+175
+175
+176
+176
+177
+178
+179
+179
+180
+181
+183
+186
+187
+187
+187
+189
+190
+191
+191
+192
+193
+193
+193
+194
+195
+195
+196
+197
+197
+199
+199
+199
+200
+200
+201
+202
+203
+203
+205
+205
+207
+207
+208
+208
+208
+209
+209
+213
+213
+214
+216
+216
+217
+217
+218
+219
+219
+221
+221
+222
+223
+223
+224
+224
+226
+228
+229
+229
+230
+230
+230
+230
+230
+233
+233
+235
+237
+237
+238
+238
+239
+239
+241
+242
+242
+244
+247
+248
+249
+252
+255
+255
+256
+256
+257
+258
+260
+262
+263
+265
+265
+266
+272
+272
+273
+273
+273
+274
+275
+277
+277
+277
+277
+278
+278
+280
+280
+281
+281
+282
+282
+283
+284
+285
+286
+287
+288
+288
+289
+291
+292
+296
+298
+298
+298
+302
+305
+306
+307
+307
+308
+309
+309
+310
+311
+311
+311
+315
+316
+316
+316
+317
+317
+318
+318
+318
+321
+321
+322
+322
+323
+325
+325
+327
+327
+327
+331
+331
+332
+333
+333
+335
+336
+338
+339
+341
+342
+342
+344
+344
+345
+348
+348
+348
+348
+348
+351
+353
+353
+356
+360
+362
+364
+365
+366
+367
+367
+368
+369
+369
+369
+373
+374
+375
+377
+378
+379
+382
+382
+384
+384
+384
+386
+389
+392
+393
+394
+395
+395
+396
+396
+396
+397
+397
+399
+399
+400
+401
+401
+401
+401
+401
+402
+403
+403
+403
+404
+404
+406
+406
+406
+406
+407
+409
+409
+409
+411
+413
+413
+414
+414
+417
+417
+417
+418
+419
+421
+424
+424
+427
+429
+429
+430
+430
+430
+431
+431
+431
+432
+435
+436
+437
+438
+438
+438
+439
+439
+443
+444
+446
+448
+449
+452
+453
+454
+454
+454
+455
+457
+458
+458
+459
+459
+460
+462
+462
+463
+463
+466
+466
+466
+467
+468
+468
+468
+468
+469
+469
+469
+469
+469
+470
+472
+475
+477
+478
+478
+479
+480
+480
+480
+481
+482
+483
+484
+485
+487
+489
+489
+489
+489
+490
+491
+492
+492
+493
+494
+495
+496
+497
+498
+498
+498
+PREHOOK: query: explain select value from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select value from masking_test_subq where key > 0
+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: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((key > 0) and UDFToDouble(key) is not null) (type: boolean)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: value (type: string), UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col1 (type: double), _col2 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col1 (type: double), _col2 (type: double)
+ Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: double), _col1 (type: double)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: double), _col1 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: double), _col1 (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 _col1 (type: double), _col2 (type: double)
+ 1 _col0 (type: double), _col1 (type: double)
+ outputColumnNames: _col0
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select value from masking_test_subq where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test_subq
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select value from masking_test_subq where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test_subq
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+val_2
+val_4
+val_5
+val_5
+val_5
+val_8
+val_9
+val_10
+val_11
+val_12
+val_12
+val_15
+val_15
+val_17
+val_18
+val_18
+val_19
+val_20
+val_24
+val_24
+val_26
+val_26
+val_27
+val_28
+val_30
+val_33
+val_34
+val_35
+val_35
+val_35
+val_37
+val_37
+val_41
+val_42
+val_42
+val_43
+val_44
+val_47
+val_51
+val_51
+val_53
+val_54
+val_57
+val_58
+val_58
+val_64
+val_65
+val_66
+val_67
+val_67
+val_69
+val_70
+val_70
+val_70
+val_72
+val_72
+val_74
+val_76
+val_76
+val_77
+val_78
+val_80
+val_82
+val_83
+val_83
+val_84
+val_84
+val_85
+val_86
+val_87
+val_90
+val_90
+val_90
+val_92
+val_95
+val_95
+val_96
+val_97
+val_97
+val_98
+val_98
+val_100
+val_100
+val_103
+val_103
+val_104
+val_104
+val_105
+val_111
+val_113
+val_113
+val_114
+val_116
+val_118
+val_118
+val_119
+val_119
+val_119
+val_120
+val_120
+val_125
+val_125
+val_126
+val_128
+val_128
+val_128
+val_129
+val_129
+val_131
+val_133
+val_134
+val_134
+val_136
+val_137
+val_137
+val_138
+val_138
+val_138
+val_138
+val_143
+val_145
+val_146
+val_146
+val_149
+val_149
+val_150
+val_152
+val_152
+val_153
+val_155
+val_156
+val_157
+val_158
+val_160
+val_162
+val_163
+val_164
+val_164
+val_165
+val_165
+val_166
+val_167
+val_167
+val_167
+val_168
+val_169
+val_169
+val_169
+val_169
+val_170
+val_172
+val_172
+val_174
+val_174
+val_175
+val_175
+val_176
+val_176
+val_177
+val_178
+val_179
+val_179
+val_180
+val_181
+val_183
+val_186
+val_187
+val_187
+val_187
+val_189
+val_190
+val_191
+val_191
+val_192
+val_193
+val_193
+val_193
+val_194
+val_195
+val_195
+val_196
+val_197
+val_197
+val_199
+val_199
+val_199
+val_200
+val_200
+val_201
+val_202
+val_203
+val_203
+val_205
+val_205
+val_207
+val_207
+val_208
+val_208
+val_208
+val_209
+val_209
+val_213
+val_213
+val_214
+val_216
+val_216
+val_217
+val_217
+val_218
+val_219
+val_219
+val_221
+val_221
+val_222
+val_223
+val_223
+val_224
+val_224
+val_226
+val_228
+val_229
+val_229
+val_230
+val_230
+val_230
+val_230
+val_230
+val_233
+val_233
+val_235
+val_237
+val_237
+val_238
+val_238
+val_239
+val_239
+val_241
+val_242
+val_242
+val_244
+val_247
+val_248
+val_249
+val_252
+val_255
+val_255
+val_256
+val_256
+val_257
+val_258
+val_260
+val_262
+val_263
+val_265
+val_265
+val_266
+val_272
+val_272
+val_273
+val_273
+val_273
+val_274
+val_275
+val_277
+val_277
+val_277
+val_277
+val_278
+val_278
+val_280
+val_280
+val_281
+val_281
+val_282
+val_282
+val_283
+val_284
+val_285
+val_286
+val_287
+val_288
+val_288
+val_289
+val_291
+val_292
+val_296
+val_298
+val_298
+val_298
+val_302
+val_305
+val_306
+val_307
+val_307
+val_308
+val_309
+val_309
+val_310
+val_311
+val_311
+val_311
+val_315
+val_316
+val_316
+val_316
+val_317
+val_317
+val_318
+val_318
+val_318
+val_321
+val_321
+val_322
+val_322
+val_323
+val_325
+val_325
+val_327
+val_327
+val_327
+val_331
+val_331
+val_332
+val_333
+val_333
+val_335
+val_336
+val_338
+val_339
+val_341
+val_342
+val_342
+val_344
+val_344
+val_345
+val_348
+val_348
+val_348
+val_348
+val_348
+val_351
+val_353
+val_353
+val_356
+val_360
+val_362
+val_364
+val_365
+val_366
+val_367
+val_367
+val_368
+val_369
+val_369
+val_369
+val_373
+val_374
+val_375
+val_377
+val_378
+val_379
+val_382
+val_382
+val_384
+val_384
+val_384
+val_386
+val_389
+val_392
+val_393
+val_394
+val_395
+val_395
+val_396
+val_396
+val_396
+val_397
+val_397
+val_399
+val_399
+val_400
+val_401
+val_401
+val_401
+val_401
+val_401
+val_402
+val_403
+val_403
+val_403
+val_404
+val_404
+val_406
+val_406
+val_406
+val_406
+val_407
+val_409
+val_409
+val_409
+val_411
+val_413
+val_413
+val_414
+val_414
+val_417
+val_417
+val_417
+val_418
+val_419
+val_421
+val_424
+val_424
+val_427
+val_429
+val_429
+val_430
+val_430
+val_430
+val_431
+val_431
+val_431
+val_432
+val_435
+val_436
+val_437
+val_438
+val_438
+val_438
+val_439
+val_439
+val_443
+val_444
+val_446
+val_448
+val_449
+val_452
+val_453
+val_454
+val_454
+val_454
+val_455
+val_457
+val_458
+val_458
+val_459
+val_459
+val_460
+val_462
+val_462
+val_463
+val_463
+val_466
+val_466
+val_466
+val_467
+val_468
+val_468
+val_468
+val_468
+val_469
+val_469
+val_469
+val_469
+val_469
+val_470
+val_472
+val_475
+val_477
+val_478
+val_478
+val_479
+val_480
+val_480
+val_480
+val_481
+val_482
+val_483
+val_484
+val_485
+val_487
+val_489
+val_489
+val_489
+val_489
+val_490
+val_491
+val_492
+val_492
+val_493
+val_494
+val_495
+val_496
+val_497
+val_498
+val_498
+val_498
+PREHOOK: query: explain select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (UDFToDouble(key) is not null and key is not null) (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), value (type: string), UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col2 (type: double), _col3 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col2 (type: double), _col3 (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int), _col1 (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: double), _col1 (type: double)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: double), _col1 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: double), _col1 (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 _col2 (type: double), _col3 (type: double)
+ 1 _col0 (type: double), _col1 (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double)
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int), _col1 (type: string)
+ TableScan
+ alias: srcpart
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), value (type: string), ds (type: string), hr (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double)
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 UDFToDouble(_col0) (type: double)
+ 1 UDFToDouble(_col0) (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 2200 Data size: 23372 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2200 Data size: 23372 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test_subq
+PREHOOK: Input: default@src
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test_subq
+POSTHOOK: Input: default@src
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-08 11
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-08 12
+0 val_0 0 val_0 2008-04-09 11
+0 val_0 0 val_0 2008-04-09 12
+2 val_2 2 val_2 2008-04-09 11
+2 val_2 2 val_2 2008-04-08 11
+2 val_2 2 val_2 2008-04-09 12
+2 val_2 2 val_2 2008-04-08 12
+4 val_4 4 val_4 2008-04-08 12
+4 val_4 4 val_4 2008-04-09 12
+4 val_4 4 val_4 2008-04-08 11
+4 val_4 4 val_4 2008-04-09 11
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-08 11
+5 val_5 5 val_5 2008-04-09 12
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-09 11
+5 val_5 5 val_5 2008-04-08 12
+5 val_5 5 val_5 2008-04-09 12
+8 val_8 8 val_8 2008-04-08 11
+8 val_8 8 val_8 2008-04-09 11
+8 val_8 8 val_8 2008-04-08 12
+8 val_8 8 val_8 2008-04-09 12
+9 val_9 9 val_9 2008-04-08 12
+9 val_9 9 val_9 2008-04-09 12
+9 val_9 9 val_9 2008-04-09 11
+9 val_9 9 val_9 2008-04-08 11
+10 val_10 10 val_10 2008-04-09 11
+10 val_10 10 val_10 2008-04-09 12
+10 val_10 10 val_10 2008-04-08 12
+10 val_10 10 val_10 2008-04-08 11
+11 val_11 11 val_11 2008-04-09 12
+11 val_11 11 val_11 2008-04-09 11
+11 val_11 11 val_11 2008-04-08 12
+11 val_11 11 val_11 2008-04-08 11
+12 val_12 12 val_12 2008-04-09 12
+12 val_12 12 val_12 2008-04-08 11
+12 val_12 12 val_12 2008-04-09 11
+12 val_12 12 val_12 2008-04-08 12
+12 val_12 12 val_12 2008-04-08 11
+12 val_12 12 val_12 2008-04-08 12
+12 val_12 12 val_12 2008-04-09 11
+12 val_12 12 val_12 2008-04-09 12
+12 val_12 12 val_12 2008-04-09 12
+12 val_12 12 val_12 2008-04-08 11
+12 val_12 12 val_12 2008-04-09 11
+12 val_12 12 val_12 2008-04-08 12
+12 val_12 12 val_12 2008-04-08 11
+12 val_12 12 val_12 2008-04-08 12
+12 val_12 12 val_12 2008-04-09 11
+12 val_12 12 val_12 2008-04-09 12
+15 val_15 15 val_15 2008-04-08 12
+15 val_15 15 val_15 2008-04-08 11
+15 val_15 15 val_15 2008-04-09 12
+15 val_15 15 val_15 2008-04-09 12
+15 val_15 15 val_15 2008-04-09 11
+15 val_15 15 val_15 2008-04-08 11
+15 val_15 15 val_15 2008-04-09 11
+15 val_15 15 val_15 2008-04-08 12
+15 val_15 15 val_15 2008-04-08 12
+15 val_15 15 val_15 2008-04-08 11
+15 val_15 15 val_15 2008-04-09 12
+15 val_15 15 val_15 2008-04-09 12
+15 val_15 15 val_15 2008-04-09 11
+15 val_15 15 val_15 2008-04-08 11
+15 val_15 15 val_15 2008-04-09 11
+15 val_15 15 val_15 2008-04-08 12
+17 val_17 17 val_17 2008-04-09 11
+17 val_17 17 val_17 2008-04-09 12
+17 val_17 17 val_17 2008-04-08 12
+17 val_17 17 val_17 2008-04-08 11
+18 val_18 18 val_18 2008-04-08 12
+18 val_18 18 val_18 2008-04-08 12
+18 val_18 18 val_18 2008-04-08 11
+18 val_18 18 val_18 2008-04-09 12
+18 val_18 18 val_18 2008-04-09 12
+18 val_18 18 val_18 2008-04-09 11
+18 val_18 18 val_18 2008-04-09 11
+18 val_18 18 val_18 2008-04-08 11
+18 val_18 18 val_18 2008-04-08 12
+18 val_18 18 val_18 2008-04-08 12
+18 val_18 18 val_18 2008-04-08 11
+18 val_18 18 val_18 2008-04-09 12
+18 val_18 18 val_18 2008-04-09 12
+18 val_18 18 val_18 2008-04-09 11
+18 val_18 18 val_18 2008-04-09 11
+18 val_18 18 val_18 2008-04-08 11
+19 val_19 19 val_19 2008-04-09 11
+19 val_19 19 val_19 2008-04-09 12
+19 val_19 19 val_19 2008-04-08 11
+19 val_19 19 val_19 2008-04-08 12
+20 val_20 20 val_20 2008-04-08 11
+20 val_20 20 val_20 2008-04-09 11
+20 val_20 20 val_20 2008-04-08 12
+20 val_20 20 val_20 2008-04-09 12
+24 val_24 24 val_24 2008-04-09 12
+24 val_24 24 val_24 2008-04-08 11
+24 val_24 24 val_24 2008-04-08 11
+24 val_24 24 val_24 2008-04-09 12
+24 val_24 24 val_24 2008-04-08 12
+24 val_24 24 val_24 2008-04-08 12
+24 val_24 24 val_24 2008-04-09 11
+24 val_24 24 val_24 2008-04-09 11
+24 val_24 24 val_24 2008-04-09 12
+24 val_24 24 val_24 2008-04-08 11
+24 val_24 24 val_24 2008-04-08 11
+24 val_24 24 val_24 2008-04-09 12
+24 val_24 24 val_24 2008-04-08 12
+24 val_24 24 val_24 2008-04-08 12
+24 val_24 24 val_24 2008-04-09 11
+24 val_24 24 val_24 2008-04-09 11
+26 val_26 26 val_26 2008-04-09 12
+26 val_26 26 val_26 2008-04-08 11
+26 val_26 26 val_26 2008-04-09 11
+26 val_26 26 val_26 2008-04-09 12
+26 val_26 26 val_26 2008-04-09 11
+26 val_26 26 val_26 2008-04-08 12
+26 val_26 26 val_26 2008-04-08 12
+26 val_26 26 val_26 2008-04-08 11
+26 val_26 26 val_26 2008-04-09 12
+26 val_26 26 val_26 2008-04-08 11
+26 val_26 26 val_26 2008-04-09 11
+26 val_26 26 val_26 2008-04-09 12
+26 val_26 26 val_26 2008-04-09 11
+26 val_26 26 val_26 2008-04-08 12
+26 val_26 26 val_26 2008-04-08 12
+26 val_26 26 val_26 2008-04-08 11
+27 val_27 27 val_27 2008-04-09 12
+27 val_27 27 val_27 2008-04-09 11
+27 val_27 27 val_27 2008-04-08 12
+27 val_27 27 val_27 2008-04-08 11
+28 val_28 28 val_28 2008-04-08 12
+28 val_28 28 val_28 2008-04-09 11
+28 val_28 28 val_28 2008-04-09 12
+28 val_28 28 val_28 2008-04-08 11
+30 val_30 30 val_30 2008-04-09 12
+30 val_30 30 val_30 2008-04-09 11
+30 val_30 30 val_30 2008-04-08 11
+30 val_30 30 val_30 2008-04-08 12
+33 val_33 33 val_33 2008-04-08 11
+33 val_33 33 val_33 2008-04-08 12
+33 val_33 33 val_33 2008-04-09 11
+33 val_33 33 val_33 2008-04-09 12
+34 val_34 34 val_34 2008-04-09 11
+34 val_34 34 val_34 2008-04-09 12
+34 val_34 34 val_34 2008-04-08 11
+34 val_34 34 val_34 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-08 12
+35 val_35 35 val_35 2008-04-09 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-08 11
+35 val_35 35 val_35 2008-04-09 12
+35 val_35 35 val_35 2008-04-09 11
+37 val_37 37 val_37 2008-04-09 12
+37 val_37 37 val_37 2008-04-08 12
+37 val_37 37 val_37 2008-04-08 11
+37 val_37 37 val_37 2008-04-09 11
+37 val_37 37 val_37 2008-04-09 11
+37 val_37 37 val_37 2008-04-09 12
+37 val_37 37 val_37 2008-04-08 12
+37 val_37 37 val_37 2008-04-08 11
+37 val_37 37 val_37 2008-04-09 12
+37 val_37 37 val_37 2008-04-08 12
+37 val_37 37 val_37 2008-04-08 11
+37 val_37 37 val_37 2008-04-09 11
+37 val_37 37 val_37 2008-04-09 11
+37 val_37 37 val_37 2008-04-09 12
+37 val_37 37 val_37 2008-04-08 12
+37 val_37 37 val_37 2008-04-08 11
+41 val_41 41 val_41 2008-04-08 11
+41 val_41 41 val_41 2008-04-09 11
+41 val_41 41 val_41 2008-04-09 12
+41 val_41 41 val_41 2008-04-08 12
+42 val_42 42 val_42 2008-04-09 12
+42 val_42 42 val_42 2008-04-09 11
+42 val_42 42 val_42 2008-04-08 12
+42 val_42 42 val_42 2008-04-08 12
+42 val_42 42 val_42 2008-04-09 12
+42 val_42 42 val_42 2008-04-08 11
+42 val_42 42 val_42 2008-04-09 11
+42 val_42 42 val_42 2008-04-08 11
+42 val_42 42 val_42 2008-04-09 12
+42 val_42 42 val_42 2008-04-09 11
+42 val_42 42 val_42 2008-04-08 12
+42 val_42 42 val_42 2008-04-08 12
+42 val_42 42 val_42 2008-04-09 12
+42 val_42 42 val_42 2008-04-08 11
+42 val_42 42 val_42 2008-04-09 11
+42 val_42 42 val_42 2008-04-08 11
+43 val_43 43 val_43 2008-04-09 12
+43 val_43 43 val_43 2008-04-08 12
+43 val_43 43 val_43 2008-04-09 11
+43 val_43 43 val_43 2008-04-08 11
+44 val_44 44 val_44 2008-04-09 11
+44 val_44 44 val_44 2008-04-08 11
+44 val_44 44 val_44 2008-04-09 12
+44 val_44 44 val_44 2008-04-08 12
+47 val_47 47 val_47 2008-04-08 11
+47 val_47 47 val_47 2008-04-08 12
+47 val_47 47 val_47 2008-04-09 12
+47 val_47 47 val_47 2008-04-09 11
+51 val_51 51 val_51 2008-04-09 12
+51 val_51 51 val_51 2008-04-08 12
+51 val_51 51 val_51 2008-04-08 11
+51 val_51 51 val_51 2008-04-08 11
+51 val_51 51 val_51 2008-04-09 11
+51 val_51 51 val_51 2008-04-09 12
+51 val_51 51 val_51 2008-04-08 12
+51 val_51 51 val_51 2008-04-09 11
+51 val_51 51 val_51 2008-04-09 12
+51 val_51 51 val_51 2008-04-08 12
+51 val_51 51 val_51 2008-04-08 11
+51 val_51 51 val_51 2008-04-08 11
+51 val_51 51 val_51 2008-04-09 11
+51 val_51 51 val_51 2008-04-09 12
+51 val_51 51 val_51 2008-04-08 12
+51 val_51 51 val_51 2008-04-09 11
+53 val_53 53 val_53 2008-04-08 11
+53 val_53 53 val_53 2008-04-09 11
+53 val_53 53 val_53 2008-04-09 12
+53 val_53 53 val_53 2008-04-08 12
+54 val_54 54 val_54 2008-04-08 11
+54 val_54 54 val_54 2008-04-09 12
+54 val_54 54 val_54 2008-04-09 11
+54 val_54 54 val_54 2008-04-08 12
+57 val_57 57 val_57 2008-04-08 12
+57 val_57 57 val_57 2008-04-08 11
+57 val_57 57 val_57 2008-04-09 11
+57 val_57 57 val_57 2008-04-09 12
+58 val_58 58 val_58 2008-04-08 11
+58 val_58 58 val_58 2008-04-09 11
+58 val_58 58 val_58 2008-04-09 12
+58 val_58 58 val_58 2008-04-08 11
+58 val_58 58 val_58 2008-04-08 12
+58 val_58 58 val_58 2008-04-09 11
+58 val_58 58 val_58 2008-04-09 12
+58 val_58 58 val_58 2008-04-08 12
+58 val_58 58 val_58 2008-04-08 11
+58 val_58 58 val_58 2008-04-09 11
+58 val_58 58 val_58 2008-04-09 12
+58 val_58 58 val_58 2008-04-08 11
+58 val_58 58 val_58 2008-04-08 12
+58 val_58 58 val_58 2008-04-09 11
+58 val_58 58 val_58 2008-04-09 12
+58 val_58 58 val_58 2008-04-08 12
+64 val_64 64 val_64 2008-04-09 12
+64 val_64 64 val_64 2008-04-08 11
+64 val_64 64 val_64 2008-04-08 12
+64 val_64 64 val_64 2008-04-09 11
+65 val_65 65 val_65 2008-04-09 11
+65 val_65 65 val_65 2008-04-09 12
+65 val_65 65 val_65 2008-04-08 11
+65 val_65 65 val_65 2008-04-08 12
+66 val_66 66 val_66 2008-04-09 12
+66 val_66 66 val_66 2008-04-09 11
+66 val_66 66 val_66 2008-04-08 11
+66 val_66 66 val_66 2008-04-08 12
+67 val_67 67 val_67 2008-04-09 12
+67 val_67 67 val_67 2008-04-09 11
+67 val_67 67 val_67 2008-04-09 12
+67 val_67 67 val_67 2008-04-09 11
+67 val_67 67 val_67 2008-04-08 11
+67 val_67 67 val_67 2008-04-08 12
+67 val_67 67 val_67 2008-04-08 11
+67 val_67 67 val_67 2008-04-08 12
+67 val_67 67 val_67 2008-04-09 12
+67 val_67 67 val_67 2008-04-09 11
+67 val_67 67 val_67 2008-04-09 12
+67 val_67 67 val_67 2008-04-09 11
+67 val_67 67 val_67 2008-04-08 11
+67 val_67 67 val_67 2008-04-08 12
+67 val_67 67 val_67 2008-04-08 11
+67 val_67 67 val_67 2008-04-08 12
+69 val_69 69 val_69 2008-04-09 12
+69 val_69 69 val_69 2008-04-08 11
+69 val_69 69 val_69 2008-04-08 12
+69 val_69 69 val_69 2008-04-09 11
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 12
+70 val_70 70 val_70 2008-04-09 11
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+70 val_70 70 val_70 2008-04-08 11
+70 val_70 70 val_70 2008-04-09 12
+72 val_72 72 val_72 2008-04-09 12
+72 val_72 72 val_72 2008-04-08 12
+72 val_72 72 val_72 2008-04-08 12
+72 val_72 72 val_72 2008-04-09 11
+72 val_72 72 val_72 2008-04-08 11
+72 val_72 72 val_72 2008-04-09 12
+72 val_72 72 val_72 2008-04-08 11
+72 val_72 72 val_72 2008-04-09 11
+72 val_72 72 val_72 2008-04-09 12
+72 val_72 72 val_72 2008-04-08 12
+72 val_72 72 val_72 2008-04-08 12
+72 val_72 72 val_72 2008-04-09 11
+72 val_72 72 val_72 2008-04-08 11
+72 val_72 72 val_72 2008-04-09 12
+72 val_72 72 val_72 2008-04-08 11
+72 val_72 72 val_72 2008-04-09 11
+74 val_74 74 val_74 2008-04-09 11
+74 val_74 74 val_74 2008-04-08 12
+74 val_74 74 val_74 2008-04-09 12
+74 val_74 74 val_74 2008-04-08 11
+76 val_76 76 val_76 2008-04-08 11
+76 val_76 76 val_76 2008-04-08 12
+76 val_76 76 val_76 2008-04-08 12
+76 val_76 76 val_76 2008-04-08 11
+76 val_76 76 val_76 2008-04-09 12
+76 val_76 76 val_76 2008-04-09 12
+76 val_76 76 val_76 2008-04-09 11
+76 val_76 76 val_76 2008-04-09 11
+76 val_76 76 val_76 2008-04-08 11
+76 val_76 76 val_76 2008-04-08 12
+76 val_76 76 val_76 2008-04-08 12
+76 val_76 76 val_76 2008-04-08 11
+76 val_76 76 val_76 2008-04-09 12
+76 val_76 76 val_76 2008-04-09 12
+76 val_76 76 val_76 2008-04-09 11
+76 val_76 76 val_76 2008-04-09 11
+77 val_77 77 val_77 2008-04-08 12
+77 val_77 77 val_77 2008-04-09 12
+77 val_77 77 val_77 2008-04-09 11
+77 val_77 77 val_77 2008-04-08 11
+78 val_78 78 val_78 2008-04-09 11
+78 val_78 78 val_78 2008-04-08 11
+78 val_78 78 val_78 2008-04-09 12
+78 val_78 78 val_78 2008-04-08 12
+80 val_80 80 val_80 2008-04-09 11
+80 val_80 80 val_80 2008-04-08 11
+80 val_80 80 val_80 2008-04-09 12
+80 val_80 80 val_80 2008-04-08 12
+82 val_82 82 val_82 2008-04-08 12
+82 val_82 82 val_82 2008-04-09 11
+82 val_82 82 val_82 2008-04-08 11
+82 val_82 82 val_82 2008-04-09 12
+83 val_83 83 val_83 2008-04-08 12
+83 val_83 83 val_83 2008-04-09 12
+83 val_83 83 val_83 2008-04-09 11
+83 val_83 83 val_83 2008-04-09 12
+83 val_83 83 val_83 2008-04-08 11
+83 val_83 83 val_83 2008-04-08 12
+83 val_83 83 val_83 2008-04-09 11
+83 val_83 83 val_83 2008-04-08 11
+83 val_83 83 val_83 2008-04-08 12
+83 val_83 83 val_83 2008-04-09 12
+83 val_83 83 val_83 2008-04-09 11
+83 val_83 83 val_83 2008-04-09 12
+83 val_83 83 val_83 2008-04-08 11
+83 val_83 83 val_83 2008-04-08 12
+83 val_83 83 val_83 2008-04-09 11
+83 val_83 83 val_83 2008-04-08 11
+84 val_84 84 val_84 2008-04-09 12
+84 val_84 84 val_84 2008-04-08 11
+84 val_84 84 val_84 2008-04-08 11
+84 val_84 84 val_84 2008-04-09 12
+84 val_84 84 val_84 2008-04-08 12
+84 val_84 84 val_84 2008-04-09 11
+84 val_84 84 val_84 2008-04-09 11
+84 val_84 84 val_84 2008-04-08 12
+84 val_84 84 val_84 2008-04-09 12
+84 val_84 84 val_84 2008-04-08 11
+84 val_84 84 val_84 2008-04-08 11
+84 val_84 84 val_84 2008-04-09 12
+84 val_84 84 val_84 2008-04-08 12
+84 val_84 84 val_84 2008-04-09 11
+84 val_84 84 val_84 2008-04-09 11
+84 val_84 84 val_84 2008-04-08 12
+85 val_85 85 val_85 2008-04-09 12
+85 val_85 85 val_85 2008-04-09 11
+85 val_85 85 val_85 2008-04-08 11
+85 val_85 85 val_85 2008-04-08 12
+86 val_86 86 val_86 2008-04-08 12
+86 val_86 86 val_86 2008-04-09 11
+86 val_86 86 val_86 2008-04-08 11
+86 val_86 86 val_86 2008-04-09 12
+87 val_87 87 val_87 2008-04-09 12
+87 val_87 87 val_87 2008-04-08 11
+87 val_87 87 val_87 2008-04-08 12
+87 val_87 87 val_87 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-09 11
+90 val_90 90 val_90 2008-04-09 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 12
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-08 11
+90 val_90 90 val_90 2008-04-09 11
+92 val_92 92 val_92 2008-04-09 11
+92 val_92 92 val_92 2008-04-09 12
+92 val_92 92 val_92 2008-04-08 12
+92 val_92 92 val_92 2008-04-08 11
+95 val_95 95 val_95 2008-04-08 11
+95 val_95 95 val_95 2008-04-09 12
+95 val_95 95 val_95 2008-04-08 12
+95 val_95 95 val_95 2008-04-09 11
+95 val_95 95 val_95 2008-04-08 12
+95 val_95 95 val_95 2008-04-09 11
+95 val_95 95 val_95 2008-04-09 12
+95 val_95 95 val_95 2008-04-08 11
+95 val_95 95 val_95 2008-04-08 11
+95 val_95 95 val_95 2008-04-09 12
+95 val_95 95 val_95 2008-04-08 12
+95 val_95 95 val_95 2008-04-09 11
+95 val_95 95 val_95 2008-04-08 12
+95 val_95 95 val_95 2008-04-09 11
+95 val_95 95 val_95 2008-04-09 12
+95 val_95 95 val_95 2008-04-08 11
+96 val_96 96 val_96 2008-04-09 12
+96 val_96 96 val_96 2008-04-08 11
+96 val_96 96 val_96 2008-04-08 12
+96 val_96 96 val_96 2008-04-09 11
+97 val_97 97 val_97 2008-04-09 12
+97 val_97 97 val_97 2008-04-09 12
+97 val_97 97 val_97 2008-04-09 11
+97 val_97 97 val_97 2008-04-09 11
+97 val_97 97 val_97 2008-04-08 12
+97 val_97 97 val_97 2008-04-08 12
+97 val_97 97 val_97 2008-04-08 11
+97 val_97 97 val_97 2008-04-08 11
+97 val_97 97 val_97 2008-04-09 12
+97 val_97 97 val_97 2008-04-09 12
+97 val_97 97 val_97 2008-04-09 11
+97 val_97 97 val_97 2008-04-09 11
+97 val_97 97 val_97 2008-04-08 12
+97 val_97 97 val_97 2008-04-08 12
+97 val_97 97 val_97 2008-04-08 11
+97 val_97 97 val_97 2008-04-08 11
+98 val_98 98 val_98 2008-04-08 11
+98 val_98 98 val_98 2008-04-08 11
+98 val_98 98 val_98 2008-04-08 12
+98 val_98 98 val_98 2008-04-09 12
+98 val_98 98 val_98 2008-04-09 11
+98 val_98 98 val_98 2008-04-09 11
+98 val_98 98 val_98 2008-04-08 12
+98 val_98 98 val_98 2008-04-09 12
+98 val_98 98 val_98 2008-04-08 11
+98 val_98 98 val_98 2008-04-08 11
+98 val_98 98 val_98 2008-04-08 12
+98 val_98 98 val_98 2008-04-09 12
+98 val_98 98 val_98 2008-04-09 11
+98 val_98 98 val_98 2008-04-09 11
+98 val_98 98 val_98 2008-04-08 12
+98 val_98 98 val_98 2008-04-09 12
+100 val_100 100 val_100 2008-04-09 11
+100 val_100 100 val_100 2008-04-08 11
+100 val_100 100 val_100 2008-04-09 12
+100 val_100 100 val_100 2008-04-08 12
+100 val_100 100 val_100 2008-04-08 12
+100 val_100 100 val_100 2008-04-09 12
+100 val_100 100 val_100 2008-04-08 11
+100 val_100 100 val_100 2008-04-09 11
+100 val_100 100 val_100 2008-04-09 11
+100 val_100 100 val_100 2008-04-08 11
+100 val_100 100 val_100 2008-04-09 12
+100 val_100 100 val_100 2008-04-08 12
+100 val_100 100 val_100 2008-04-08 12
+100 val_100 100 val_100 2008-04-09 12
+100 val_100 100 val_100 2008-04-08 11
+100 val_100 100 val_100 2008-04-09 11
+103 val_103 103 val_103 2008-04-08 11
+103 val_103 103 val_103 2008-04-09 12
+103 val_103 103 val_103 2008-04-09 11
+103 val_103 103 val_103 2008-04-08 11
+103 val_103 103 val_103 2008-04-09 11
+103 val_103 103 val_103 2008-04-08 12
+103 val_103 103 val_103 2008-04-08 12
+103 val_103 103 val_103 2008-04-09 12
+103 val_103 103 val_103 2008-04-08 11
+103 val_103 103 val_103 2008-04-09 12
+103 val_103 103 val_103 2008-04-09 11
+103 val_103 103 val_103 2008-04-08 11
+103 val_103 103 val_103 2008-04-09 11
+103 val_103 103 val_103 2008-04-08 12
+103 val_103 103 val_103 2008-04-08 12
+103 val_103 103 val_103 2008-04-09 12
+104 val_104 104 val_104 2008-04-08 11
+104 val_104 104 val_104 2008-04-09 12
+104 val_104 104 val_104 2008-04-09 11
+104 val_104 104 val_104 2008-04-08 12
+104 val_104 104 val_104 2008-04-08 11
+104 val_104 104 val_104 2008-04-09 12
+104 val_104 104 val_104 2008-04-08 12
+104 val_104 104 val_104 2008-04-09 11
+104 val_104 104 val_104 2008-04-08 11
+104 val_104 104 val_104 2008-04-09 12
+104 val_104 104 val_104 2008-04-09 11
+104 val_104 104 val_104 2008-04-08 12
+104 val_104 104 val_104 2008-04-08 11
+104 val_104 104 val_104 2008-04-09 12
+104 val_104 104 val_104 2008-04-08 12
+104 val_104 104 val_104 2008-04-09 11
+105 val_105 105 val_105 2008-04-09 12
+105 val_105 105 val_105 2008-04-09 11
+105 val_105 105 val_105 2008-04-08 11
+105 val_105 105 val_105 2008-04-08 12
+111 val_111 111 val_111 2008-04-08 12
+111 val_111 111 val_111 2008-04-08 11
+111 val_111 111 val_111 2008-04-09 12
+111 val_111 111 val_111 2008-04-09 11
+113 val_113 113 val_113 2008-04-09 12
+113 val_113 113 val_113 2008-04-08 11
+113 val_113 113 val_113 2008-04-08 12
+113 val_113 113 val_113 2008-04-08 12
+113 val_113 113 val_113 2008-04-09 11
+113 val_113 113 val_113 2008-04-09 11
+113 val_113 113 val_113 2008-04-08 11
+113 val_113 113 val_113 2008-04-09 12
+113 val_113 113 val_113 2008-04-09 12
+113 val_113 113 val_113 2008-04-08 11
+113 val_113 113 val_113 2008-04-08 12
+113 val_113 113 val_113 2008-04-08 12
+113 val_113 113 val_113 2008-04-09 11
+113 val_113 113 val_113 2008-04-09 11
+113 val_113 113 val_113 2008-04-08 11
+113 val_113 113 val_113 2008-04-09 12
+114 val_114 114 val_114 2008-04-09 11
+114 val_114 114 val_114 2008-04-09 12
+114 val_114 114 val_114 2008-04-08 12
+114 val_114 114 val_114 2008-04-08 11
+116 val_116 116 val_116 2008-04-08 12
+116 val_116 116 val_116 2008-04-09 11
+116 val_116 116 val_116 2008-04-08 11
+116 val_116 116 val_116 2008-04-09 12
+118 val_118 118 val_118 2008-04-09 12
+118 val_118 118 val_118 2008-04-08 11
+118 val_118 118 val_118 2008-04-09 11
+118 val_118 118 val_118 2008-04-09 12
+118 val_118 118 val_118 2008-04-08 11
+118 val_118 118 val_118 2008-04-08 12
+118 val_118 118 val_118 2008-04-08 12
+118 val_118 118 val_118 2008-04-09 11
+118 val_118 118 val_118 2008-04-09 12
+118 val_118 118 val_118 2008-04-08 11
+118 val_118 118 val_118 2008-04-09 11
+118 val_118 118 val_118 2008-04-09 12
+118 val_118 118 val_118 2008-04-08 11
+118 val_118 118 val_118 2008-04-08 12
+118 val_118 118 val_118 2008-04-08 12
+118 val_118 118 val_118 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 11
+119 val_119 119 val_119 2008-04-09 12
+119 val_119 119 val_119 2008-04-08 11
+119 val_119 119 val_119 2008-04-09 12
+120 val_120 120 val_120 2008-04-09 11
+120 val_120 120 val_120 2008-04-08 11
+120 val_120 120 val_120 2008-04-09 12
+120 val_120 120 val_120 2008-04-08 12
+120 val_120 120 val_120 2008-04-09 12
+120 val_120 120 val_120 2008-04-08 12
+120 val_120 120 val_120 2008-04-08 11
+120 val_120 120 val_120 2008-04-09 11
+120 val_120 120 val_120 2008-04-09 11
+120 val_120 120 val_120 2008-04-08 11
+120 val_120 120 val_120 2008-04-09 12
+120 val_120 120 val_120 2008-04-08 12
+120 val_120 120 val_120 2008-04-09 12
+120 val_120 120 val_120 2008-04-08 12
+120 val_120 120 val_120 2008-04-08 11
+120 val_120 120 val_120 2008-04-09 11
+125 val_125 125 val_125 2008-04-09 12
+125 val_125 125 val_125 2008-04-08 11
+125 val_125 125 val_125 2008-04-09 11
+125 val_125 125 val_125 2008-04-08 11
+125 val_125 125 val_125 2008-04-09 12
+125 val_125 125 val_125 2008-04-09 11
+125 val_125 125 val_125 2008-04-08 12
+125 val_125 125 val_125 2008-04-08 12
+125 val_125 125 val_125 2008-04-09 12
+125 val_125 125 val_125 2008-04-08 11
+125 val_125 125 val_125 2008-04-09 11
+125 val_125 125 val_125 2008-04-08 11
+125 val_125 125 val_125 2008-04-09 12
+125 val_125 125 val_125 2008-04-09 11
+125 val_125 125 val_125 2008-04-08 12
+125 val_125 125 val_125 2008-04-08 12
+126 val_126 126 val_126 2008-04-08 11
+126 val_126 126 val_126 2008-04-08 12
+126 val_126 126 val_126 2008-04-09 12
+126 val_126 126 val_126 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 11
+128 val_128 128 val_128 2008-04-09 11
+128 val_128 128 val_128 2008-04-09 12
+128 val_128 128 val_128 2008-04-08 12
+128 val_128 128 val_128 2008-04-08 12
+129 val_129 129 val_129 2008-04-09 12
+129 val_129 129 val_129 2008-04-08 12
+129 val_129 129 val_129 2008-04-09 12
+129 val_129 129 val_129 2008-04-08 12
+129 val_129 129 val_129 2008-04-09 11
+129 val_129 129 val_129 2008-04-08 11
+129 val_129 129 val_129 2008-04-09 11
+129 val_129 129 val_129 2008-04-08 11
+129 val_129 129 val_129 2008-04-09 12
+129 val_129 129 val_129 2008-04-08 12
+129 val_129 129 val_129 2008-04-09 12
+129 val_129 129 val_129 2008-04-08 12
+129 val_129 129 val_129 2008-04-09 11
+129 val_129 129 val_129 2008-04-08 11
+129 val_129 129 val_129 2008-04-09 11
+129 val_129 129 val_129 2008-04-08 11
+131 val_131 131 val_131 2008-04-08 12
+131 val_131 131 val_131 2008-04-09 12
+131 val_131 131 val_131 2008-04-09 11
+131 val_131 131 val_131 2008-04-08 11
+133 val_133 133 val_133 2008-04-08 11
+133 val_133 133 val_133 2008-04-08 12
+133 val_133 133 val_133 2008-04-09 11
+133 val_133 133 val_133 2008-04-09 12
+134 val_134 134 val_134 2008-04-08 12
+134 val_134 134 val_134 2008-04-09 11
+134 val_134 134 val_134 2008-04-08 11
+134 val_134 134 val_134 2008-04-09 11
+134 val_134 134 val_134 2008-04-09 12
+134 val_134 134 val_134 2008-04-08 12
+134 val_134 134 val_134 2008-04-09 12
+134 val_134 134 val_134 2008-04-08 11
+134 val_134 134 val_134 2008-04-08 12
+134 val_134 134 val_134 2008-04-09 11
+134 val_134 134 val_134 2008-04-08 11
+134 val_134 134 val_134 2008-04-09 11
+134 val_134 134 val_134 2008-04-09 12
+134 val_134 134 val_134 2008-04-08 12
+134 val_134 134 val_134 2008-04-09 12
+134 val_134 134 val_134 2008-04-08 11
+136 val_136 136 val_136 2008-04-09 12
+136 val_136 136 val_136 2008-04-08 12
+136 val_136 136 val_136 2008-04-08 11
+136 val_136 136 val_136 2008-04-09 11
+137 val_137 137 val_137 2008-04-08 11
+137 val_137 137 val_137 2008-04-09 12
+137 val_137 137 val_137 2008-04-09 11
+137 val_137 137 val_137 2008-04-09 11
+137 val_137 137 val_137 2008-04-09 12
+137 val_137 137 val_137 2008-04-08 12
+137 val_137 137 val_137 2008-04-08 11
+137 val_137 137 val_137 2008-04-08 12
+137 val_137 137 val_137 2008-04-08 11
+137 val_137 137 val_137 2008-04-09 12
+137 val_137 137 val_137 2008-04-09 11
+137 val_137 137 val_137 2008-04-09 11
+137 val_137 137 val_137 2008-04-09 12
+137 val_137 137 val_137 2008-04-08 12
+137 val_137 137 val_137 2008-04-08 11
+137 val_137 137 val_137 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-09 12
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 12
+138 val_138 138 val_138 2008-04-09 11
+138 val_138 138 val_138 2008-04-08 11
+138 val_138 138 val_138 2008-04-08 12
+143 val_143 143 val_143 2008-04-09 12
+143 val_143 143 val_143 2008-04-08 11
+143 val_143 143 val_143 2008-04-09 11
+143 val_143 143 val_143 2008-04-08 12
+145 val_145 145 val_145 2008-04-09 11
+145 val_145 145 val_145 2008-04-08 11
+145 val_145 145 val_145 2008-04-08 12
+145 val_145 145 val_145 2008-04-09 12
+146 val_146 146 val_146 2008-04-08 11
+146 val_146 146 val_146 2008-04-09 11
+146 val_146 146 val_146 2008-04-08 12
+146 val_146 146 val_146 2008-04-08 11
+146 val_146 146 val_146 2008-04-09 12
+146 val_146 146 val_146 2008-04-09 12
+146 val_146 146 val_146 2008-04-09 11
+146 val_146 146 val_146 2008-04-08 12
+146 val_146 146 val_146 2008-04-08 11
+146 val_146 146 val_146 2008-04-09 11
+146 val_146 146 val_146 2008-04-08 12
+146 val_146 146 val_146 2008-04-08 11
+146 val_146 146 val_146 2008-04-09 12
+146 val_146 146 val_146 2008-04-09 12
+146 val_146 146 val_146 2008-04-09 11
+146 val_146 146 val_146 2008-04-08 12
+149 val_149 149 val_149 2008-04-08 12
+149 val_149 149 val_149 2008-04-09 12
+149 val_149 149 val_149 2008-04-09 12
+149 val_149 149 val_149 2008-04-09 11
+149 val_149 149 val_149 2008-04-09 11
+149 val_149 149 val_149 2008-04-08 11
+149 val_149 149 val_149 2008-04-08 11
+149 val_149 149 val_149 2008-04-08 12
+149 val_149 149 val_149 2008-04-08 12
+149 val_149 149 val_149 2008-04-09 12
+149 val_149 149 val_149 2008-04-09 12
+149 val_149 149 val_149 2008-04-09 11
+149 val_149 149 val_149 2008-04-09 11
+149 val_149 149 val_149 2008-04-08 11
+149 val_149 149 val_149 2008-04-08 11
+149 val_149 149 val_149 2008-04-08 12
+150 val_150 150 val_150 2008-04-09 11
+150 val_150 150 val_150 2008-04-09 12
+150 val_150 150 val_150 2008-04-08 11
+150 val_150 150 val_150 2008-04-08 12
+152 val_152 152 val_152 2008-04-08 11
+152 val_152 152 val_152 2008-04-08 12
+152 val_152 152 val_152 2008-04-09 11
+152 val_152 152 val_152 2008-04-08 11
+152 val_152 152 val_152 2008-04-09 12
+152 val_152 152 val_152 2008-04-09 11
+152 val_152 152 val_152 2008-04-09 12
+152 val_152 152 val_152 2008-04-08 12
+152 val_152 152 val_152 2008-04-08 11
+152 val_152 152 val_152 2008-04-08 12
+152 val_152 152 val_152 2008-04-09 11
+152 val_152 152 val_152 2008-04-08 11
+152 val_152 152 val_152 2008-04-09 12
+152 val_152 152 val_152 2008-04-09 11
+152 val_152 152 val_152 2008-04-09 12
+152 val_152 152 val_152 2008-04-08 12
+153 val_153 153 val_153 2008-04-09 11
+153 val_153 153 val_153 2008-04-08 11
+153 val_153 153 val_153 2008-04-08 12
+153 val_153 153 val_153 2008-04-09 12
+155 val_155 155 val_155 2008-04-08 12
+155 val_155 155 val_155 2008-04-08 11
+155 val_155 155 val_155 2008-04-09 12
+155 val_155 155 val_155 2008-04-09 11
+156 val_156 156 val_156 2008-04-08 12
+156 val_156 156 val_156 2008-04-09 12
+156 val_156 156 val_156 2008-04-09 11
+156 val_156 156 val_156 2008-04-08 11
+157 val_157 157 val_157 2008-04-09 11
+157 val_157 157 val_157 2008-04-08 12
+157 val_157 157 val_157 2008-04-08 11
+157 val_157 157 val_157 2008-04-09 12
+158 val_158 158 val_158 2008-04-08 11
+158 val_158 158 val_158 2008-04-09 11
+158 val_158 158 val_158 2008-04-09 12
+158 val_158 158 val_158 2008-04-08 12
+160 val_160 160 val_160 2008-04-09 11
+160 val_160 160 val_160 2008-04-09 12
+160 val_160 160 val_160 2008-04-08 11
+160 val_160 160 val_160 2008-04-08 12
+162 val_162 162 val_162 2008-04-09 11
+162 val_162 162 val_162 2008-04-08 12
+162 val_162 162 val_162 2008-04-08 11
+162 val_162 162 val_162 2008-04-09 12
+163 val_163 163 val_163 2008-04-09 11
+163 val_163 163 val_163 2008-04-09 12
+163 val_163 163 val_163 2008-04-08 11
+163 val_163 163 val_163 2008-04-08 12
+164 val_164 164 val_164 2008-04-08 11
+164 val_164 164 val_164 2008-04-09 11
+164 val_164 164 val_164 2008-04-08 11
+164 val_164 164 val_164 2008-04-09 12
+164 val_164 164 val_164 2008-04-09 11
+164 val_164 164 val_164 2008-04-09 12
+164 val_164 164 val_164 2008-04-08 12
+164 val_164 164 val_164 2008-04-08 12
+164 val_164 164 val_164 2008-04-08 11
+164 val_164 164 val_164 2008-04-09 11
+164 val_164 164 val_164 2008-04-08 11
+164 val_164 164 val_164 2008-04-09 12
+164 val_164 164 val_164 2008-04-09 11
+164 val_164 164 val_164 2008-04-09 12
+164 val_164 164 val_164 2008-04-08 12
+164 val_164 164 val_164 2008-04-08 12
+165 val_165 165 val_165 2008-04-08 11
+165 val_165 165 val_165 2008-04-09 11
+165 val_165 165 val_165 2008-04-09 12
+165 val_165 165 val_165 2008-04-08 12
+165 val_165 165 val_165 2008-04-09 12
+165 val_165 165 val_165 2008-04-08 12
+165 val_165 165 val_165 2008-04-08 11
+165 val_165 165 val_165 2008-04-09 11
+165 val_165 165 val_165 2008-04-08 11
+165 val_165 165 val_165 2008-04-09 11
+165 val_165 165 val_165 2008-04-09 12
+165 val_165 165 val_165 2008-04-08 12
+165 val_165 165 val_165 2008-04-09 12
+165 val_165 165 val_165 2008-04-08 12
+165 val_165 165 val_165 2008-04-08 11
+165 val_165 165 val_165 2008-04-09 11
+166 val_166 166 val_166 2008-04-08 12
+166 val_166 166 val_166 2008-04-08 11
+166 val_166 166 val_166 2008-04-09 12
+166 val_166 166 val_166 2008-04-09 11
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-08 12
+167 val_167 167 val_167 2008-04-09 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 11
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-09 12
+167 val_167 167 val_167 2008-04-08 12
+168 val_168 168 val_168 2008-04-08 11
+168 val_168 168 val_168 2008-04-08 12
+168 val_168 168 val_168 2008-04-09 11
+168 val_168 168 val_168 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-08 12
+169 val_169 169 val_169 2008-04-09 11
+169 val_169 169 val_169 2008-04-09 12
+169 val_169 169 val_169 2008-04-08 11
+169 val_169 169 val_169 2008-04-08 11
+170 val_170 170 val_170 2008-04-09 11
+170 val_170 170 val_170 2008-04-09 12
+170 val_170 170 val_170 2008-04-08 11
+170 val_170 170 val_170 2008-04-08 12
+172 val_172 172 val_172 2008-04-08 11
+172 val_172 172 val_172 2008-04-09 11
+172 val_172 172 val_172 2008-04-08 12
+172 val_172 172 val_172 2008-04-09 12
+172 val_172 172 val_172 2008-04-08 11
+172 val_172 172 val_172 2008-04-08 12
+172 val_172 172 val_172 2008-04-09 12
+172 val_172 172 val_172 2008-04-09 11
+172 val_172 172 val_172 2008-04-08 11
+172 val_172 172 val_172 2008-04-09 11
+172 val_172 172 val_172 2008-04-08 12
+172 val_172 172 val_172 2008-04-09 12
+172 val_172 172 val_172 2008-04-08 11
+172 val_172 172 val_172 2008-04-08 12
+172 val_172 172 val_172 2008-04-09 12
+172 val_172 172 val_172 2008-04-09 11
+174 val_174 174 val_174 2008-04-08 12
+174 val_174 174 val_174 2008-04-09 12
+174 val_174 174 val_174 2008-04-09 12
+174 val_174 174 val_174 2008-04-08 11
+174 val_174 174 val_174 2008-04-08 11
+174 val_174 174 val_174 2008-04-08 12
+174 val_174 174 val_174 2008-04-09 11
+174 val_174 174 val_174 2008-04-09 11
+174 val_174 174 val_174 2008-04-08 12
+174 val_174 174 val_174 2008-04-09 12
+174 val_174 174 val_174 2008-04-09 12
+174 val_174 174 val_174 2008-04-08 11
+174 val_174 174 val_174 2008-04-08 11
+174 val_174 174 val_174 2008-04-08 12
+174 val_174 174 val_174 2008-04-09 11
+174 val_174 174 val_174 2008-04-09 11
+175 val_175 175 val_175 2008-04-09 12
+175 val_175 175 val_175 2008-04-08 11
+175 val_175 175 val_175 2008-04-09 12
+175 val_175 175 val_175 2008-04-08 11
+175 val_175 175 val_175 2008-04-09 11
+175 val_175 175 val_175 2008-04-09 11
+175 val_175 175 val_175 2008-04-08 12
+175 val_175 175 val_175 2008-04-08 12
+175 val_175 175 val_175 2008-04-09 12
+175 val_175 175 val_175 2008-04-08 11
+175 val_175 175 val_175 2008-04-09 12
+175 val_175 175 val_175 2008-04-08 11
+175 val_175 175 val_175 2008-04-09 11
+175 val_175 175 val_175 2008-04-09 11
+175 val_175 175 val_175 2008-04-08 12
+175 val_175 175 val_175 2008-04-08 12
+176 val_176 176 val_176 2008-04-08 11
+176 val_176 176 val_176 2008-04-09 12
+176 val_176 176 val_176 2008-04-08 12
+176 val_176 176 val_176 2008-04-09 12
+176 val_176 176 val_176 2008-04-08 11
+176 val_176 176 val_176 2008-04-09 11
+176 val_176 176 val_176 2008-04-09 11
+176 val_176 176 val_176 2008-04-08 12
+176 val_176 176 val_176 2008-04-08 11
+176 val_176 176 val_176 2008-04-09 12
+176 val_176 176 val_176 2008-04-08 12
+176 val_176 176 val_176 2008-04-09 12
+176 val_176 176 val_176 2008-04-08 11
+176 val_176 176 val_176 2008-04-09 11
+176 val_176 176 val_176 2008-04-09 11
+176 val_176 176 val_176 2008-04-08 12
+177 val_177 177 val_177 2008-04-08 12
+177 val_177 177 val_177 2008-04-08 11
+177 val_177 177 val_177 2008-04-09 11
+177 val_177 177 val_177 2008-04-09 12
+178 val_178 178 val_178 2008-04-08 12
+178 val_178 178 val_178 2008-04-09 11
+178 val_178 178 val_178 2008-04-08 11
+178 val_178 178 val_178 2008-04-09 12
+179 val_179 179 val_179 2008-04-08 12
+179 val_179 179 val_179 2008-04-09 12
+179 val_179 179 val_179 2008-04-08 12
+179 val_179 179 val_179 2008-04-09 11
+179 val_179 179 val_179 2008-04-09 12
+179 val_179 179 val_179 2008-04-09 11
+179 val_179 179 val_179 2008-04-08 11
+179 val_179 179 val_179 2008-04-08 11
+179 val_179 179 val_179 2008-04-08 12
+179 val_179 179 val_179 2008-04-09 12
+179 val_179 179 val_179 2008-04-08 12
+179 val_179 179 val_179 2008-04-09 11
+179 val_179 179 val_179 2008-04-09 12
+179 val_179 179 val_179 2008-04-09 11
+179 val_179 179 val_179 2008-04-08 11
+179 val_179 179 val_179 2008-04-08 11
+180 val_180 180 val_180 2008-04-09 11
+180 val_180 180 val_180 2008-04-09 12
+180 val_180 180 val_180 2008-04-08 11
+180 val_180 180 val_180 2008-04-08 12
+181 val_1
<TRUNCATED>
[5/5] hive git commit: HIVE-13125: Support masking and filtering of
rows/columns (Pengcheng Xiong, reviewed by Ashutosh Chauhan)
Posted by px...@apache.org.
HIVE-13125: Support masking and filtering of rows/columns (Pengcheng Xiong, reviewed by Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/a0a53713
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/a0a53713
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/a0a53713
Branch: refs/heads/master
Commit: a0a53713aa982a39f6ccb26c752473a0cf37286d
Parents: c0c08a3
Author: Pengcheng Xiong <px...@apache.org>
Authored: Sun Mar 20 10:50:47 2016 -0700
Committer: Pengcheng Xiong <px...@apache.org>
Committed: Sun Mar 20 10:50:47 2016 -0700
----------------------------------------------------------------------
...SQLStdHiveAuthorizationValidatorForTest.java | 29 +
.../hadoop/hive/ql/parse/SemanticAnalyzer.java | 161 +
.../apache/hadoop/hive/ql/parse/TableMask.java | 127 +
.../plugin/HiveAuthorizationValidator.java | 11 +
.../authorization/plugin/HiveAuthorizer.java | 69 +
.../plugin/HiveAuthorizerImpl.java | 23 +
.../authorization/plugin/HiveV1Authorizer.java | 25 +
.../sqlstd/DummyHiveAuthorizationValidator.java | 23 +
.../SQLStdHiveAuthorizationValidator.java | 22 +
ql/src/test/queries/clientpositive/masking_1.q | 27 +
ql/src/test/queries/clientpositive/masking_2.q | 17 +
ql/src/test/queries/clientpositive/masking_3.q | 27 +
ql/src/test/queries/clientpositive/masking_4.q | 30 +
ql/src/test/queries/clientpositive/masking_5.q | 22 +
.../clientpositive/masking_disablecbo_1.q | 28 +
.../clientpositive/masking_disablecbo_2.q | 18 +
.../clientpositive/masking_disablecbo_3.q | 28 +
.../clientpositive/masking_disablecbo_4.q | 31 +
.../test/results/clientpositive/masking_1.q.out | 466 ++
.../test/results/clientpositive/masking_2.q.out | 321 +
.../test/results/clientpositive/masking_3.q.out | 7765 ++++++++++++++++++
.../test/results/clientpositive/masking_4.q.out | 233 +
.../test/results/clientpositive/masking_5.q.out | 189 +
.../clientpositive/masking_disablecbo_1.q.out | 462 ++
.../clientpositive/masking_disablecbo_2.q.out | 355 +
.../clientpositive/masking_disablecbo_3.q.out | 7737 +++++++++++++++++
.../clientpositive/masking_disablecbo_4.q.out | 229 +
27 files changed, 18475 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidatorForTest.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidatorForTest.java b/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidatorForTest.java
index fd39c67..c0387e2 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidatorForTest.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidatorForTest.java
@@ -25,6 +25,7 @@ import javax.annotation.Nullable;
import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.parse.SemanticException;
import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAccessControlException;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthzContext;
@@ -104,4 +105,32 @@ public class SQLStdHiveAuthorizationValidatorForTest extends SQLStdHiveAuthoriza
}
+ public String getRowFilterExpression(String database, String table) throws SemanticException {
+ if (table.equals("masking_test")) {
+ return "key % 2 = 0 and key < 10";
+ } else if (table.equals("masking_test_subq")) {
+ return "key in (select key from src where src.key = masking_test_subq.key)";
+ }
+ return null;
+ }
+
+ public boolean needTransform() {
+ // In the future, we can add checking for username, groupname, etc based on
+ // HiveAuthenticationProvider. For example,
+ // "hive_test_user".equals(context.getUserName());
+ return true;
+ }
+
+ public boolean needTransform(String database, String table) {
+ return "masking_test".equals(table) || "masking_test_subq".equals(table);
+ }
+
+ public String getCellValueTransformer(String database, String table, String columnName)
+ throws SemanticException {
+ if (table.equals("masking_test") && columnName.equals("value")) {
+ return "reverse(value)";
+ }
+ return columnName;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
index 0845bc9..58887d2 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
@@ -32,8 +32,10 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Queue;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeSet;
@@ -67,6 +69,7 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.MetaException;
import org.apache.hadoop.hive.metastore.api.Order;
import org.apache.hadoop.hive.ql.CompilationOpContext;
+import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.QueryProperties;
import org.apache.hadoop.hive.ql.exec.AbstractMapJoinOperator;
@@ -311,6 +314,8 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
*/
boolean rootTasksResolved;
+ private final TableMask tableMask;
+
CreateTableDesc tableDesc;
/** Not thread-safe. */
@@ -318,6 +323,14 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
protected AnalyzeRewriteContext analyzeRewrite;
+ // A mapping from a tableName to a table object in metastore.
+ Map<String, Table> tableNameToMetaDataTableObject;
+
+ // The tokens we should ignore when we are trying to do table masking.
+ private final Set<Integer> ignoredTokens = Sets.newHashSet(HiveParser.TOK_GROUPBY,
+ HiveParser.TOK_ORDERBY, HiveParser.TOK_WINDOWSPEC, HiveParser.TOK_CLUSTERBY,
+ HiveParser.TOK_DISTRIBUTEBY, HiveParser.TOK_SORTBY);
+
static class Phase1Ctx {
String dest;
int nextNum;
@@ -357,6 +370,8 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
globalLimitCtx = new GlobalLimitCtx();
viewAliasToInput = new HashMap<String, ReadEntity>();
noscan = partialscan = false;
+ tableMask = new TableMask(this, conf);
+ tableNameToMetaDataTableObject = new HashMap<>();
}
@Override
@@ -10307,6 +10322,145 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
}
}
+ private Table getMetaDataTableObjectByName(String tableName) throws HiveException {
+ if (!tableNameToMetaDataTableObject.containsKey(tableName)) {
+ Table table = db.getTable(tableName);
+ tableNameToMetaDataTableObject.put(tableName, table);
+ return table;
+ } else {
+ return tableNameToMetaDataTableObject.get(tableName);
+ }
+ }
+
+ private void walkASTMarkTABREF(ASTNode ast, Set<String> cteAlias)
+ throws SemanticException {
+ Queue<Node> queue = new LinkedList<>();
+ queue.add(ast);
+ while (!queue.isEmpty()) {
+ ASTNode astNode = (ASTNode) queue.poll();
+ if (astNode.getToken().getType() == HiveParser.TOK_TABREF) {
+ int aliasIndex = 0;
+ StringBuffer additionalTabInfo = new StringBuffer();
+ for (int index = 1; index < astNode.getChildCount(); index++) {
+ ASTNode ct = (ASTNode) astNode.getChild(index);
+ // TODO: support TOK_TABLEBUCKETSAMPLE, TOK_TABLESPLITSAMPLE, and
+ // TOK_TABLEPROPERTIES
+ if (ct.getToken().getType() == HiveParser.TOK_TABLEBUCKETSAMPLE
+ || ct.getToken().getType() == HiveParser.TOK_TABLESPLITSAMPLE
+ || ct.getToken().getType() == HiveParser.TOK_TABLEPROPERTIES) {
+ additionalTabInfo.append(ctx.getTokenRewriteStream().toString(ct.getTokenStartIndex(),
+ ct.getTokenStopIndex()));
+ } else {
+ aliasIndex = index;
+ }
+ }
+
+ ASTNode tableTree = (ASTNode) (astNode.getChild(0));
+
+ String tabIdName = getUnescapedName(tableTree);
+
+ String alias;
+ if (aliasIndex != 0) {
+ alias = unescapeIdentifier(astNode.getChild(aliasIndex).getText());
+ } else {
+ alias = getUnescapedUnqualifiedTableName(tableTree);
+ }
+
+ // We need to know if it is CTE or not.
+ // A CTE may have the same name as a table.
+ // For example,
+ // with select TAB1 [masking] as TAB2
+ // select * from TAB2 [no masking]
+ if (cteAlias.contains(tabIdName)) {
+ continue;
+ }
+
+ String replacementText = null;
+ Table table = null;
+ try {
+ table = getMetaDataTableObjectByName(tabIdName);
+ } catch (HiveException e) {
+ throw new SemanticException("Table " + tabIdName + " is not found.");
+ }
+
+ if (tableMask.needTransform(table.getDbName(), table.getTableName())) {
+ replacementText = tableMask.create(table, additionalTabInfo.toString(), alias);
+ }
+ if (replacementText != null) {
+ tableMask.setNeedsRewrite(true);
+ // we replace the tabref with replacementText here.
+ tableMask.addTableMasking(astNode, replacementText);
+ }
+ }
+ if (astNode.getChildCount() > 0 && !ignoredTokens.contains(astNode.getToken().getType())) {
+ for (Node child : astNode.getChildren()) {
+ queue.offer(child);
+ }
+ }
+ }
+ }
+
+ // We walk through the AST.
+ // We replace all the TOK_TABREF by adding additional masking and filter if
+ // the table needs to be masked or filtered.
+ // For the replacement, we leverage the methods that are used for
+ // unparseTranslator.
+ public ASTNode rewriteASTWithMaskAndFilter(ASTNode ast) throws SemanticException {
+ // 1. collect information about CTE if there is any.
+ // The base table of CTE should be masked.
+ // The CTE itself should not be masked in the references in the following main query.
+ Set<String> cteAlias = new HashSet<>();
+ if (ast.getChildCount() > 0
+ && HiveParser.TOK_CTE == ((ASTNode) ast.getChild(0)).getToken().getType()) {
+ // the structure inside CTE is like this
+ // TOK_CTE
+ // TOK_SUBQUERY
+ // sq1 (may refer to sq2)
+ // ...
+ // TOK_SUBQUERY
+ // sq2
+ ASTNode cte = (ASTNode) ast.getChild(0);
+ // we start from sq2, end up with sq1.
+ for (int index = cte.getChildCount() - 1; index >= 0; index--) {
+ ASTNode subq = (ASTNode) cte.getChild(index);
+ String alias = unescapeIdentifier(subq.getChild(1).getText());
+ if (cteAlias.contains(alias)) {
+ throw new SemanticException("Duplicate definition of " + alias);
+ } else {
+ cteAlias.add(alias);
+ walkASTMarkTABREF(subq, cteAlias);
+ }
+ }
+ // walk the other part of ast
+ for (int index = 1; index < ast.getChildCount(); index++) {
+ walkASTMarkTABREF((ASTNode) ast.getChild(index), cteAlias);
+ }
+ }
+ // there is no CTE, walk the whole AST
+ else {
+ walkASTMarkTABREF(ast, cteAlias);
+ }
+ // 2. rewrite the AST, replace TABREF with masking/filtering
+ if (tableMask.needsRewrite()) {
+ tableMask.applyTableMasking(ctx.getTokenRewriteStream());
+ String rewrittenQuery = ctx.getTokenRewriteStream().toString(ast.getTokenStartIndex(),
+ ast.getTokenStopIndex());
+ ASTNode rewrittenTree;
+ // Parse the rewritten query string
+ // check if we need to ctx.setCmd(rewrittenQuery);
+ ParseDriver pd = new ParseDriver();
+ try {
+ rewrittenTree = pd.parse(rewrittenQuery);
+ } catch (ParseException e) {
+ throw new SemanticException(e);
+ }
+ rewrittenTree = ParseUtils.findRootNonNullToken(rewrittenTree);
+ return rewrittenTree;
+ } else {
+ return ast;
+ }
+ }
+
boolean genResolvedParseTree(ASTNode ast, PlannerContext plannerCtx) throws SemanticException {
ASTNode child = ast;
this.ast = ast;
@@ -10362,6 +10516,13 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
SessionState.get().setCommandType(SemanticAnalyzerFactory.getOperation(ast.getToken().getType()));
return false;
}
+
+ // masking and filtering should be done here
+ // the basic idea is similar to unparseTranslator.
+ if (!unparseTranslator.isEnabled() && tableMask.isEnabled()) {
+ child = rewriteASTWithMaskAndFilter(ast);
+ }
+
// 4. continue analyzing from the child ASTNode.
Phase1Ctx ctx_1 = initPhase1Ctx();
preProcessForInsert(child, qb);
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/java/org/apache/hadoop/hive/ql/parse/TableMask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/TableMask.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/TableMask.java
new file mode 100644
index 0000000..c47c2bd
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/TableMask.java
@@ -0,0 +1,127 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.ql.parse;
+
+import java.util.List;
+
+import org.antlr.runtime.TokenRewriteStream;
+import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.metastore.api.FieldSchema;
+import org.apache.hadoop.hive.ql.metadata.Table;
+import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizer;
+import org.apache.hadoop.hive.ql.session.SessionState;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The main purpose for this class is for authorization. More specifically, row
+ * filtering and column masking are done through this class. We first call
+ * create function to create the corresponding strings for row filtering and
+ * column masking. We then replace the TAB_REF with the strings.
+ */
+public class TableMask {
+
+ protected final Logger LOG = LoggerFactory.getLogger(TableMask.class);
+ HiveAuthorizer authorizer;
+ private UnparseTranslator translator;
+ private boolean enable;
+ private boolean needsRewrite;
+
+ public TableMask(SemanticAnalyzer analyzer, HiveConf conf) throws SemanticException {
+ try {
+ authorizer = SessionState.get().getAuthorizerV2();
+ if (authorizer != null && needTransform()) {
+ enable = true;
+ translator = new UnparseTranslator(conf);
+ translator.enable();
+ }
+ } catch (Exception e) {
+ LOG.warn("Failed to initialize masking policy");
+ throw new SemanticException(e);
+ }
+ }
+
+ private String createRowMask(String db, String name) throws SemanticException {
+ return authorizer.getRowFilterExpression(db, name);
+ }
+
+ private String createExpressions(String db, String tbl, String colName) throws SemanticException {
+ return authorizer.getCellValueTransformer(db, tbl, colName);
+ }
+
+ public boolean isEnabled() throws SemanticException {
+ return enable;
+ }
+
+ public boolean needTransform() throws SemanticException {
+ return authorizer.needTransform();
+ }
+
+ public boolean needTransform(String database, String table) throws SemanticException {
+ return authorizer.needTransform(database, table);
+ }
+
+ public String create(Table table, String additionalTabInfo, String alias) throws SemanticException {
+ String db = table.getDbName();
+ String tbl = table.getTableName();
+ StringBuilder sb = new StringBuilder();
+ sb.append("(SELECT ");
+ List<FieldSchema> cols = table.getAllCols();
+ boolean firstOne = true;
+ for (FieldSchema fs : cols) {
+ if (!firstOne) {
+ sb.append(", ");
+ } else {
+ firstOne = false;
+ }
+ String colName = fs.getName();
+ String expr = createExpressions(db, tbl, colName);
+ if (expr == null) {
+ sb.append(colName);
+ } else {
+ sb.append(expr + " AS " + colName);
+ }
+ }
+ sb.append(" FROM " + tbl);
+ sb.append(" " + additionalTabInfo);
+ String filter = createRowMask(db, tbl);
+ if (filter != null) {
+ sb.append(" WHERE " + filter);
+ }
+ sb.append(")" + alias);
+ LOG.debug("TableMask creates `" + sb.toString() + "`");
+ return sb.toString();
+ }
+
+ void addTableMasking(ASTNode node, String replacementText) throws SemanticException {
+ translator.addTranslation(node, replacementText);
+ }
+
+ void applyTableMasking(TokenRewriteStream tokenRewriteStream) throws SemanticException {
+ translator.applyTranslations(tokenRewriteStream);
+ }
+
+ public boolean needsRewrite() {
+ return needsRewrite;
+ }
+
+ public void setNeedsRewrite(boolean needsRewrite) {
+ this.needsRewrite = needsRewrite;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizationValidator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizationValidator.java b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizationValidator.java
index 59aabe4..1b366c2 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizationValidator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizationValidator.java
@@ -20,6 +20,8 @@ package org.apache.hadoop.hive.ql.security.authorization.plugin;
import java.util.List;
import org.apache.hadoop.classification.InterfaceAudience.Private;
+import org.apache.hadoop.hive.ql.parse.SemanticException;
+import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider;
/**
* Interface used to check if user has privileges to perform certain action.
@@ -40,4 +42,13 @@ public interface HiveAuthorizationValidator {
List<HivePrivilegeObject> filterListCmdObjects(List<HivePrivilegeObject> listObjs,
HiveAuthzContext context);
+ public String getRowFilterExpression(String database, String table) throws SemanticException;
+
+ public String getCellValueTransformer(String database, String table, String columnName)
+ throws SemanticException;
+
+ public boolean needTransform();
+
+ public boolean needTransform(String database, String table);
+
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizer.java b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizer.java
index c93e334..6e2ef8d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizer.java
@@ -23,6 +23,8 @@ import org.apache.hadoop.hive.common.classification.InterfaceAudience.LimitedPri
import org.apache.hadoop.hive.common.classification.InterfaceStability.Evolving;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.parse.SemanticException;
+import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider;
import org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider;
/**
@@ -234,5 +236,72 @@ public interface HiveAuthorizer {
*/
Object getHiveAuthorizationTranslator() throws HiveAuthzPluginException;
+ /**
+ * TableMaskingPolicy defines how users can access base tables. It defines a
+ * policy on what columns and rows are hidden, masked or redacted based on
+ * user, role or location.
+ */
+ /**
+ * getRowFilterExpression is called once for each table in a query. It expects
+ * a valid filter condition to be returned. Null indicates no filtering is
+ * required.
+ *
+ * Example: table foo(c int) -> "c > 0 && c % 2 = 0"
+ *
+ * @param database
+ * the name of the database in which the table lives
+ * @param table
+ * the name of the table in question
+ * @return
+ * @throws SemanticException
+ */
+ public String getRowFilterExpression(String database, String table) throws SemanticException;
+
+ /**
+ * needTransform() is called once per user in a query. If the function returns
+ * true a call to needTransform(String database, String table) will happen.
+ * Returning false short-circuits the generation of row/column transforms.
+ *
+ * @return
+ * @throws SemanticException
+ */
+ public boolean needTransform();
+
+ /**
+ * needTransform(String database, String table) is called once per table in a
+ * query. If the function returns true a call to getRowFilterExpression and
+ * getCellValueTransformer will happen. Returning false short-circuits the
+ * generation of row/column transforms.
+ *
+ * @param database
+ * the name of the database in which the table lives
+ * @param table
+ * the name of the table in question
+ * @return
+ * @throws SemanticException
+ */
+ public boolean needTransform(String database, String table);
+
+ /**
+ * getCellValueTransformer is called once per column in each table accessed by
+ * the query. It expects a valid expression as used in a select clause. Null
+ * is not a valid option. If no transformation is needed simply return the
+ * column name.
+ *
+ * Example: column a -> "a" (no transform)
+ *
+ * Example: column a -> "reverse(a)" (call the reverse function on a)
+ *
+ * Example: column a -> "5" (replace column a with the constant 5)
+ *
+ * @param database
+ * @param table
+ * @param columnName
+ * @return
+ * @throws SemanticException
+ */
+ public String getCellValueTransformer(String database, String table, String columnName)
+ throws SemanticException;
+
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizerImpl.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizerImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizerImpl.java
index 00fa8cf..c73d667 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizerImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveAuthorizerImpl.java
@@ -22,6 +22,8 @@ import java.util.List;
import org.apache.hadoop.hive.common.classification.InterfaceAudience.LimitedPrivate;
import org.apache.hadoop.hive.common.classification.InterfaceStability.Evolving;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.parse.SemanticException;
+import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider;
/**
* Convenience implementation of HiveAuthorizer.
@@ -135,4 +137,25 @@ public class HiveAuthorizerImpl extends AbstractHiveAuthorizer {
accessController.applyAuthorizationConfigPolicy(hiveConf);
}
+ @Override
+ public String getRowFilterExpression(String database, String table) throws SemanticException {
+ return authValidator.getRowFilterExpression(table, table);
+ }
+
+ @Override
+ public String getCellValueTransformer(String database, String table, String columnName)
+ throws SemanticException {
+ return authValidator.getCellValueTransformer(database, table, columnName);
+ }
+
+ @Override
+ public boolean needTransform() {
+ return authValidator.needTransform();
+ }
+
+ @Override
+ public boolean needTransform(String database, String table) {
+ return authValidator.needTransform(database, table);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveV1Authorizer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveV1Authorizer.java b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveV1Authorizer.java
index 8a03989..c8aa9db 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveV1Authorizer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/HiveV1Authorizer.java
@@ -37,6 +37,8 @@ import org.apache.hadoop.hive.metastore.api.RolePrincipalGrant;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.metadata.Table;
+import org.apache.hadoop.hive.ql.parse.SemanticException;
+import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider;
import org.apache.hadoop.hive.ql.security.authorization.AuthorizationUtils;
import org.apache.hadoop.hive.ql.security.authorization.PrivilegeScope;
import org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAccessController;
@@ -394,4 +396,27 @@ public class HiveV1Authorizer extends AbstractHiveAuthorizer {
return listObjs;
}
+
+ @Override
+ public String getRowFilterExpression(String database, String table) throws SemanticException {
+ return null;
+ }
+
+
+ @Override
+ public boolean needTransform() {
+ return false;
+ }
+
+ @Override
+ public boolean needTransform(String database, String table) {
+ return false;
+ }
+
+ @Override
+ public String getCellValueTransformer(String database, String table, String columnName)
+ throws SemanticException {
+ return null;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/DummyHiveAuthorizationValidator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/DummyHiveAuthorizationValidator.java b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/DummyHiveAuthorizationValidator.java
index 26e3a2c..e4ddc9b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/DummyHiveAuthorizationValidator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/DummyHiveAuthorizationValidator.java
@@ -21,6 +21,8 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.apache.hadoop.hive.ql.parse.SemanticException;
+import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAccessControlException;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizationValidator;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthzContext;
@@ -48,4 +50,25 @@ public class DummyHiveAuthorizationValidator implements HiveAuthorizationValidat
return listObjs;
}
+ @Override
+ public String getRowFilterExpression(String database, String table) throws SemanticException {
+ return null;
+ }
+
+ @Override
+ public String getCellValueTransformer(String database, String table, String columnName)
+ throws SemanticException {
+ return null;
+ }
+
+ @Override
+ public boolean needTransform() {
+ return false;
+ }
+
+ @Override
+ public boolean needTransform(String database, String table) {
+ return false;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidator.java b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidator.java
index 9f586be..c5d60b3 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidator.java
@@ -27,6 +27,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.metastore.IMetaStoreClient;
+import org.apache.hadoop.hive.ql.parse.SemanticException;
import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAccessControlException;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizationValidator;
@@ -149,4 +150,25 @@ public class SQLStdHiveAuthorizationValidator implements HiveAuthorizationValida
return listObjs;
}
+ @Override
+ public String getRowFilterExpression(String database, String table) throws SemanticException {
+ return null;
+ }
+
+ @Override
+ public String getCellValueTransformer(String database, String table, String columnName)
+ throws SemanticException {
+ return null;
+ }
+
+ @Override
+ public boolean needTransform() {
+ return false;
+ }
+
+ @Override
+ public boolean needTransform(String database, String table) {
+ return false;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/queries/clientpositive/masking_1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/masking_1.q b/ql/src/test/queries/clientpositive/masking_1.q
new file mode 100644
index 0000000..90f009d
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/masking_1.q
@@ -0,0 +1,27 @@
+set hive.mapred.mode=nonstrict;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+
+create table masking_test as select cast(key as int) as key, value from src;
+
+explain select * from masking_test;
+select * from masking_test;
+
+explain select * from masking_test where key > 0;
+select * from masking_test where key > 0;
+
+explain select key from masking_test where key > 0;
+select key from masking_test where key > 0;
+
+explain select value from masking_test where key > 0;
+select value from masking_test where key > 0;
+
+explain select * from masking_test join srcpart on (masking_test.key = srcpart.key);
+select * from masking_test join srcpart on (masking_test.key = srcpart.key);
+
+explain select * from default.masking_test where key > 0;
+select * from default.masking_test where key > 0;
+
+explain select * from masking_test where masking_test.key > 0;
+select * from masking_test where masking_test.key > 0;
+
+explain select key, value from (select key, value from (select key, upper(value) as value from src where key > 0) t where key < 10) t2 where key % 2 = 0;
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/queries/clientpositive/masking_2.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/masking_2.q b/ql/src/test/queries/clientpositive/masking_2.q
new file mode 100644
index 0000000..fc4a71e
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/masking_2.q
@@ -0,0 +1,17 @@
+set hive.mapred.mode=nonstrict;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+
+create view masking_test as select cast(key as int) as key, value from src;
+
+explain select * from masking_test;
+select * from masking_test;
+
+explain select * from masking_test where key > 0;
+select * from masking_test where key > 0;
+
+explain select * from src a join masking_test b on a.key = b.value where b.key > 0;
+
+explain select a.*, b.key from masking_test a join masking_test b on a.key = b.value where b.key > 0;
+
+explain select * from masking_test a union select b.* from masking_test b where b.key > 0;
+
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/queries/clientpositive/masking_3.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/masking_3.q b/ql/src/test/queries/clientpositive/masking_3.q
new file mode 100644
index 0000000..584dac1
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/masking_3.q
@@ -0,0 +1,27 @@
+set hive.mapred.mode=nonstrict;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+
+create table masking_test_subq as select cast(key as int) as key, value from src;
+
+explain select * from masking_test_subq;
+select * from masking_test_subq;
+
+explain select * from masking_test_subq where key > 0;
+select * from masking_test_subq where key > 0;
+
+explain select key from masking_test_subq where key > 0;
+select key from masking_test_subq where key > 0;
+
+explain select value from masking_test_subq where key > 0;
+select value from masking_test_subq where key > 0;
+
+explain select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key);
+select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key);
+
+explain select * from default.masking_test_subq where key > 0;
+select * from default.masking_test_subq where key > 0;
+
+explain select * from masking_test_subq where masking_test_subq.key > 0;
+select * from masking_test_subq where masking_test_subq.key > 0;
+
+explain select key, value from (select key, value from (select key, upper(value) as value from src where key > 0) t where key < 10) t2 where key % 2 = 0;
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/queries/clientpositive/masking_4.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/masking_4.q b/ql/src/test/queries/clientpositive/masking_4.q
new file mode 100644
index 0000000..04dd185
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/masking_4.q
@@ -0,0 +1,30 @@
+set hive.mapred.mode=nonstrict;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+
+create table masking_test as select cast(key as int) as key, value from src;
+create table masking_test_subq as select cast(key as int) as key, value from src;
+
+
+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;
+
+
+--should mask masking_test
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from q1;
+
+--should not mask masking_test_subq
+
+explain
+with masking_test_subq as ( select * from masking_test where key = '5')
+select * from masking_test_subq;
+
+--should mask masking_test_subq
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from masking_test_subq;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/queries/clientpositive/masking_5.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/masking_5.q b/ql/src/test/queries/clientpositive/masking_5.q
new file mode 100644
index 0000000..a2f7d18
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/masking_5.q
@@ -0,0 +1,22 @@
+set hive.mapred.mode=nonstrict;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+
+create table masking_test as select cast(key as int) as key, value from src;
+
+explain select * from masking_test tablesample (10 rows);
+select * from masking_test tablesample (10 rows);
+
+explain
+select * from masking_test tablesample(1 percent);
+select * from masking_test tablesample(1 percent);
+
+drop table masking_test;
+
+CREATE TABLE masking_test(key int, value string) CLUSTERED BY (key) INTO 2 BUCKETS;
+
+insert overwrite table masking_test
+select * from src;
+
+explain
+select * from masking_test tablesample (bucket 1 out of 2) s;
+select * from masking_test tablesample (bucket 1 out of 2) s;
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/queries/clientpositive/masking_disablecbo_1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/masking_disablecbo_1.q b/ql/src/test/queries/clientpositive/masking_disablecbo_1.q
new file mode 100644
index 0000000..8fefbcf
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/masking_disablecbo_1.q
@@ -0,0 +1,28 @@
+set hive.cbo.enable=false;
+set hive.mapred.mode=nonstrict;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+
+create table masking_test as select cast(key as int) as key, value from src;
+
+explain select * from masking_test;
+select * from masking_test;
+
+explain select * from masking_test where key > 0;
+select * from masking_test where key > 0;
+
+explain select key from masking_test where key > 0;
+select key from masking_test where key > 0;
+
+explain select value from masking_test where key > 0;
+select value from masking_test where key > 0;
+
+explain select * from masking_test join srcpart on (masking_test.key = srcpart.key);
+select * from masking_test join srcpart on (masking_test.key = srcpart.key);
+
+explain select * from default.masking_test where key > 0;
+select * from default.masking_test where key > 0;
+
+explain select * from masking_test where masking_test.key > 0;
+select * from masking_test where masking_test.key > 0;
+
+explain select key, value from (select key, value from (select key, upper(value) as value from src where key > 0) t where key < 10) t2 where key % 2 = 0;
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/queries/clientpositive/masking_disablecbo_2.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/masking_disablecbo_2.q b/ql/src/test/queries/clientpositive/masking_disablecbo_2.q
new file mode 100644
index 0000000..8375c52
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/masking_disablecbo_2.q
@@ -0,0 +1,18 @@
+set hive.cbo.enable=false;
+set hive.mapred.mode=nonstrict;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+
+create view masking_test as select cast(key as int) as key, value from src;
+
+explain select * from masking_test;
+select * from masking_test;
+
+explain select * from masking_test where key > 0;
+select * from masking_test where key > 0;
+
+explain select * from src a join masking_test b on a.key = b.value where b.key > 0;
+
+explain select a.*, b.key from masking_test a join masking_test b on a.key = b.value where b.key > 0;
+
+explain select * from masking_test a union select b.* from masking_test b where b.key > 0;
+
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/queries/clientpositive/masking_disablecbo_3.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/masking_disablecbo_3.q b/ql/src/test/queries/clientpositive/masking_disablecbo_3.q
new file mode 100644
index 0000000..9501edd
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/masking_disablecbo_3.q
@@ -0,0 +1,28 @@
+set hive.cbo.enable=false;
+set hive.mapred.mode=nonstrict;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+
+create table masking_test_subq as select cast(key as int) as key, value from src;
+
+explain select * from masking_test_subq;
+select * from masking_test_subq;
+
+explain select * from masking_test_subq where key > 0;
+select * from masking_test_subq where key > 0;
+
+explain select key from masking_test_subq where key > 0;
+select key from masking_test_subq where key > 0;
+
+explain select value from masking_test_subq where key > 0;
+select value from masking_test_subq where key > 0;
+
+explain select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key);
+select * from masking_test_subq join srcpart on (masking_test_subq.key = srcpart.key);
+
+explain select * from default.masking_test_subq where key > 0;
+select * from default.masking_test_subq where key > 0;
+
+explain select * from masking_test_subq where masking_test_subq.key > 0;
+select * from masking_test_subq where masking_test_subq.key > 0;
+
+explain select key, value from (select key, value from (select key, upper(value) as value from src where key > 0) t where key < 10) t2 where key % 2 = 0;
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/queries/clientpositive/masking_disablecbo_4.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/masking_disablecbo_4.q b/ql/src/test/queries/clientpositive/masking_disablecbo_4.q
new file mode 100644
index 0000000..7279114
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/masking_disablecbo_4.q
@@ -0,0 +1,31 @@
+set hive.cbo.enable=false;
+set hive.mapred.mode=nonstrict;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+
+create table masking_test as select cast(key as int) as key, value from src;
+create table masking_test_subq as select cast(key as int) as key, value from src;
+
+
+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;
+
+
+--should mask masking_test
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from q1;
+
+--should not mask masking_test_subq
+
+explain
+with masking_test_subq as ( select * from masking_test where key = '5')
+select * from masking_test_subq;
+
+--should mask masking_test_subq
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from masking_test_subq;
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/results/clientpositive/masking_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/masking_1.q.out b/ql/src/test/results/clientpositive/masking_1.q.out
new file mode 100644
index 0000000..ba2297e
--- /dev/null
+++ b/ql/src/test/results/clientpositive/masking_1.q.out
@@ -0,0 +1,466 @@
+PREHOOK: query: create table masking_test 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
+POSTHOOK: query: create table masking_test 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
+POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: masking_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: explain select * from masking_test
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((key % 2) = 0) and (key < 10)) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 83 Data size: 881 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+0 0_lav
+4 4_lav
+8 8_lav
+0 0_lav
+0 0_lav
+2 2_lav
+PREHOOK: query: explain select * from masking_test where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test where key > 0
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+4 4_lav
+8 8_lav
+2 2_lav
+PREHOOK: query: explain select key from masking_test where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select key from masking_test where key > 0
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select key from masking_test where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select key from masking_test where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+4
+8
+2
+PREHOOK: query: explain select value from masking_test where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select value from masking_test where key > 0
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: reverse(value) (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select value from masking_test where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select value from masking_test where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+4_lav
+8_lav
+2_lav
+PREHOOK: query: explain select * from masking_test join srcpart on (masking_test.key = srcpart.key)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test join srcpart on (masking_test.key = srcpart.key)
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((key % 2) = 0) and (key < 10)) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int), _col1 (type: string)
+ TableScan
+ alias: srcpart
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), value (type: string), ds (type: string), hr (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double)
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 UDFToDouble(_col0) (type: double)
+ 1 UDFToDouble(_col0) (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 2200 Data size: 23372 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2200 Data size: 23372 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test join srcpart on (masking_test.key = srcpart.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test join srcpart on (masking_test.key = srcpart.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-09 12
+2 2_lav 2 val_2 2008-04-09 11
+2 2_lav 2 val_2 2008-04-08 11
+2 2_lav 2 val_2 2008-04-09 12
+2 2_lav 2 val_2 2008-04-08 12
+4 4_lav 4 val_4 2008-04-08 12
+4 4_lav 4 val_4 2008-04-09 12
+4 4_lav 4 val_4 2008-04-08 11
+4 4_lav 4 val_4 2008-04-09 11
+8 8_lav 8 val_8 2008-04-08 11
+8 8_lav 8 val_8 2008-04-09 11
+8 8_lav 8 val_8 2008-04-08 12
+8 8_lav 8 val_8 2008-04-09 12
+PREHOOK: query: explain select * from default.masking_test where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from default.masking_test where key > 0
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from default.masking_test where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from default.masking_test where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+4 4_lav
+8 8_lav
+2 2_lav
+PREHOOK: query: explain select * from masking_test where masking_test.key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test where masking_test.key > 0
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test where masking_test.key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test where masking_test.key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+4 4_lav
+8 8_lav
+2 2_lav
+PREHOOK: query: explain select key, value from (select key, value from (select key, upper(value) as value from src where key > 0) t where key < 10) t2 where key % 2 = 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select key, value from (select key, value from (select key, upper(value) as value from src where key > 0) t where key < 10) t2 where key % 2 = 0
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((UDFToDouble(key) > 0.0) and (UDFToDouble(key) < 10.0)) and ((UDFToDouble(key) % 2.0) = 0.0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), upper(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/results/clientpositive/masking_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/masking_2.q.out b/ql/src/test/results/clientpositive/masking_2.q.out
new file mode 100644
index 0000000..3feaa24
--- /dev/null
+++ b/ql/src/test/results/clientpositive/masking_2.q.out
@@ -0,0 +1,321 @@
+PREHOOK: query: create view masking_test as select cast(key as int) as key, value from src
+PREHOOK: type: CREATEVIEW
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@masking_test
+POSTHOOK: query: create view masking_test as select cast(key as int) as key, value from src
+POSTHOOK: type: CREATEVIEW
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@masking_test
+PREHOOK: query: explain select * from masking_test
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((UDFToInteger(key) % 2) = 0) and (UDFToInteger(key) < 10)) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 83 Data size: 881 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+0 0_lav
+4 4_lav
+8 8_lav
+0 0_lav
+0 0_lav
+2 2_lav
+PREHOOK: query: explain select * from masking_test where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test where key > 0
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((UDFToInteger(key) % 2) = 0) and (UDFToInteger(key) < 10)) and (UDFToInteger(key) > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+4 4_lav
+8 8_lav
+2 2_lav
+PREHOOK: query: explain select * from src a join masking_test b on a.key = b.value where b.key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from src a join masking_test b on a.key = b.value where b.key > 0
+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: a
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((((UDFToInteger(key) % 2) = 0) and (UDFToInteger(key) < 10)) and (UDFToInteger(key) > 0)) and reverse(value) is not null) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col1 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col1 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain select a.*, b.key from masking_test a join masking_test b on a.key = b.value where b.key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select a.*, b.key from masking_test a join masking_test b on a.key = b.value where b.key > 0
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((UDFToInteger(key) % 2) = 0) and (UDFToInteger(key) < 10)) and UDFToInteger(key) is not null) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int), _col1 (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((((UDFToInteger(key) % 2) = 0) and (UDFToInteger(key) < 10)) and (UDFToInteger(key) > 0)) and reverse(value) is not null) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col1) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(_col1) (type: double)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 UDFToDouble(_col0) (type: double)
+ 1 UDFToDouble(_col1) (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 91 Data size: 969 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 91 Data size: 969 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain select * from masking_test a union select b.* from masking_test b where b.key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test a union select b.* from masking_test b where b.key > 0
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((UDFToInteger(key) % 2) = 0) and (UDFToInteger(key) < 10)) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Union
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: string)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((UDFToInteger(key) % 2) = 0) and (UDFToInteger(key) < 10)) and (UDFToInteger(key) > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Union
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: string)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 583 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
[3/5] hive git commit: HIVE-13125: Support masking and filtering of
rows/columns (Pengcheng Xiong, reviewed by Ashutosh Chauhan)
Posted by px...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/results/clientpositive/masking_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/masking_4.q.out b/ql/src/test/results/clientpositive/masking_4.q.out
new file mode 100644
index 0000000..d2ab52e
--- /dev/null
+++ b/ql/src/test/results/clientpositive/masking_4.q.out
@@ -0,0 +1,233 @@
+PREHOOK: query: create table masking_test 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
+POSTHOOK: query: create table masking_test 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
+POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: masking_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: create table masking_test_subq 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
+POSTHOOK: query: create table masking_test_subq 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
+POSTHOOK: Lineage: masking_test_subq.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: masking_test_subq.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
+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
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (key = '5') (type: boolean)
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: '5' (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 250 Data size: 2656 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: --should mask masking_test
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from q1
+PREHOOK: type: QUERY
+POSTHOOK: query: --should mask masking_test
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from q1
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key = 5)) (type: boolean)
+ Statistics: Num rows: 41 Data size: 435 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: 5 (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 41 Data size: 435 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 41 Data size: 435 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: --should not mask masking_test_subq
+
+explain
+with masking_test_subq as ( select * from masking_test where key = '5')
+select * from masking_test_subq
+PREHOOK: type: QUERY
+POSTHOOK: query: --should not mask masking_test_subq
+
+explain
+with masking_test_subq as ( select * from masking_test where key = '5')
+select * from masking_test_subq
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key = 5)) (type: boolean)
+ Statistics: Num rows: 41 Data size: 435 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: 5 (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 41 Data size: 435 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 41 Data size: 435 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: --should mask masking_test_subq
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from masking_test_subq
+PREHOOK: type: QUERY
+POSTHOOK: query: --should mask masking_test_subq
+
+explain
+with q1 as ( select * from masking_test where key = '5')
+select * from masking_test_subq
+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: masking_test_subq
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), value (type: string), UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col2 (type: double), _col3 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col2 (type: double), _col3 (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int), _col1 (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToDouble(key) (type: double), UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: double), _col1 (type: double)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: double), _col1 (type: double)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: double), _col1 (type: double)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Semi Join 0 to 1
+ keys:
+ 0 _col2 (type: double), _col3 (type: double)
+ 1 _col0 (type: double), _col1 (type: double)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/results/clientpositive/masking_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/masking_5.q.out b/ql/src/test/results/clientpositive/masking_5.q.out
new file mode 100644
index 0000000..161ce1c
--- /dev/null
+++ b/ql/src/test/results/clientpositive/masking_5.q.out
@@ -0,0 +1,189 @@
+PREHOOK: query: create table masking_test 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
+POSTHOOK: query: create table masking_test 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
+POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: masking_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: explain select * from masking_test tablesample (10 rows)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test tablesample (10 rows)
+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: masking_test
+ Row Limit Per Split: 10
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((key % 2) = 0) and (key < 10)) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 83 Data size: 881 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test tablesample (10 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test tablesample (10 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+PREHOOK: query: explain
+select * from masking_test tablesample(1 percent)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select * from masking_test tablesample(1 percent)
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((key % 2) = 0) and (key < 10)) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 83 Data size: 881 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test tablesample(1 percent)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test tablesample(1 percent)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+0 0_lav
+4 4_lav
+8 8_lav
+0 0_lav
+0 0_lav
+2 2_lav
+PREHOOK: query: drop table masking_test
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@masking_test
+PREHOOK: Output: default@masking_test
+POSTHOOK: query: drop table masking_test
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@masking_test
+POSTHOOK: Output: default@masking_test
+PREHOOK: query: CREATE TABLE masking_test(key int, value string) CLUSTERED BY (key) INTO 2 BUCKETS
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@masking_test
+POSTHOOK: query: CREATE TABLE masking_test(key int, value string) CLUSTERED BY (key) INTO 2 BUCKETS
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@masking_test
+PREHOOK: query: insert overwrite table masking_test
+select * from src
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@masking_test
+POSTHOOK: query: insert overwrite table masking_test
+select * from src
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@masking_test
+POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: masking_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: explain
+select * from masking_test tablesample (bucket 1 out of 2) s
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select * from masking_test tablesample (bucket 1 out of 2) s
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((((hash(key) & 2147483647) % 2) = 0) and ((key % 2) = 0)) and (key < 10)) (type: boolean)
+ Statistics: Num rows: 41 Data size: 435 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 41 Data size: 435 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 41 Data size: 435 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test tablesample (bucket 1 out of 2) s
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test tablesample (bucket 1 out of 2) s
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+2 2_lav
+0 0_lav
+0 0_lav
+8 8_lav
+4 4_lav
+0 0_lav
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/results/clientpositive/masking_disablecbo_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/masking_disablecbo_1.q.out b/ql/src/test/results/clientpositive/masking_disablecbo_1.q.out
new file mode 100644
index 0000000..8a2bc9d
--- /dev/null
+++ b/ql/src/test/results/clientpositive/masking_disablecbo_1.q.out
@@ -0,0 +1,462 @@
+PREHOOK: query: create table masking_test 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
+POSTHOOK: query: create table masking_test 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
+POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: masking_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: explain select * from masking_test
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((key % 2) = 0) and (key < 10)) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 83 Data size: 881 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+0 0_lav
+4 4_lav
+8 8_lav
+0 0_lav
+0 0_lav
+2 2_lav
+PREHOOK: query: explain select * from masking_test where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test where key > 0
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+4 4_lav
+8 8_lav
+2 2_lav
+PREHOOK: query: explain select key from masking_test where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select key from masking_test where key > 0
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select key from masking_test where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select key from masking_test where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+4
+8
+2
+PREHOOK: query: explain select value from masking_test where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select value from masking_test where key > 0
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: reverse(value) (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select value from masking_test where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select value from masking_test where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+4_lav
+8_lav
+2_lav
+PREHOOK: query: explain select * from masking_test join srcpart on (masking_test.key = srcpart.key)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test join srcpart on (masking_test.key = srcpart.key)
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and UDFToDouble(key) is not null) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int), _col1 (type: string)
+ TableScan
+ alias: srcpart
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(key) is not null (type: boolean)
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(key) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(key) (type: double)
+ Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
+ value expressions: key (type: string), value (type: string), ds (type: string), hr (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 UDFToDouble(_col0) (type: double)
+ 1 UDFToDouble(key) (type: double)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 2200 Data size: 23372 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2200 Data size: 23372 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test join srcpart on (masking_test.key = srcpart.key)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+PREHOOK: Input: default@srcpart
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test join srcpart on (masking_test.key = srcpart.key)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+POSTHOOK: Input: default@srcpart
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
+#### A masked pattern was here ####
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-08 11
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-08 12
+0 0_lav 0 val_0 2008-04-09 11
+0 0_lav 0 val_0 2008-04-09 12
+2 2_lav 2 val_2 2008-04-09 11
+2 2_lav 2 val_2 2008-04-08 11
+2 2_lav 2 val_2 2008-04-09 12
+2 2_lav 2 val_2 2008-04-08 12
+4 4_lav 4 val_4 2008-04-08 12
+4 4_lav 4 val_4 2008-04-09 12
+4 4_lav 4 val_4 2008-04-08 11
+4 4_lav 4 val_4 2008-04-09 11
+8 8_lav 8 val_8 2008-04-08 11
+8 8_lav 8 val_8 2008-04-09 11
+8 8_lav 8 val_8 2008-04-08 12
+8 8_lav 8 val_8 2008-04-09 12
+PREHOOK: query: explain select * from default.masking_test where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from default.masking_test where key > 0
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from default.masking_test where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from default.masking_test where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+4 4_lav
+8 8_lav
+2 2_lav
+PREHOOK: query: explain select * from masking_test where masking_test.key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test where masking_test.key > 0
+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: masking_test
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((key % 2) = 0) and (key < 10)) and (key > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: int), reverse(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test where masking_test.key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test where masking_test.key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+#### A masked pattern was here ####
+4 4_lav
+8 8_lav
+2 2_lav
+PREHOOK: query: explain select key, value from (select key, value from (select key, upper(value) as value from src where key > 0) t where key < 10) t2 where key % 2 = 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select key, value from (select key, value from (select key, upper(value) as value from src where key > 0) t where key < 10) t2 where key % 2 = 0
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((key > 0) and (key < 10)) and ((key % 2) = 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: key (type: string), upper(value) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
http://git-wip-us.apache.org/repos/asf/hive/blob/a0a53713/ql/src/test/results/clientpositive/masking_disablecbo_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/masking_disablecbo_2.q.out b/ql/src/test/results/clientpositive/masking_disablecbo_2.q.out
new file mode 100644
index 0000000..57a8fca
--- /dev/null
+++ b/ql/src/test/results/clientpositive/masking_disablecbo_2.q.out
@@ -0,0 +1,355 @@
+PREHOOK: query: create view masking_test as select cast(key as int) as key, value from src
+PREHOOK: type: CREATEVIEW
+PREHOOK: Input: default@src
+PREHOOK: Output: database:default
+PREHOOK: Output: default@masking_test
+POSTHOOK: query: create view masking_test as select cast(key as int) as key, value from src
+POSTHOOK: type: CREATEVIEW
+POSTHOOK: Input: default@src
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@masking_test
+PREHOOK: query: explain select * from masking_test
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((_col0 % 2) = 0) and (_col0 < 10)) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: int), reverse(_col1) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 83 Data size: 881 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+0 0_lav
+4 4_lav
+8 8_lav
+0 0_lav
+0 0_lav
+2 2_lav
+PREHOOK: query: explain select * from masking_test where key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test where key > 0
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((_col0 % 2) = 0) and (_col0 < 10)) and (_col0 > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: int), reverse(_col1) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 27 Data size: 286 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select * from masking_test where key > 0
+PREHOOK: type: QUERY
+PREHOOK: Input: default@masking_test
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select * from masking_test where key > 0
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@masking_test
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+4 4_lav
+8 8_lav
+2 2_lav
+PREHOOK: query: explain select * from src a join masking_test b on a.key = b.value where b.key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from src a join masking_test b on a.key = b.value where b.key > 0
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((_col0 % 2) = 0) and (_col0 < 10)) and (_col0 > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: int), reverse(_col1) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: _col1 is not null (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col1 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int)
+ TableScan
+ alias: a
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: key is not null (type: boolean)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: key (type: string)
+ sort order: +
+ Map-reduce partition columns: key (type: string)
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ value expressions: value (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 key (type: string)
+ 1 _col1 (type: string)
+ outputColumnNames: _col0, _col1, _col5, _col6
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: string), _col5 (type: int), _col6 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 550 Data size: 5843 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain select a.*, b.key from masking_test a join masking_test b on a.key = b.value where b.key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select a.*, b.key from masking_test a join masking_test b on a.key = b.value where b.key > 0
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((_col0 % 2) = 0) and (_col0 < 10)) and UDFToDouble(_col0) is not null) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: int), reverse(_col1) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col0) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(_col0) (type: double)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int), _col1 (type: string)
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((_col0 % 2) = 0) and (_col0 < 10)) and (_col0 > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: int), reverse(_col1) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: UDFToDouble(_col1) is not null (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: UDFToDouble(_col1) (type: double)
+ sort order: +
+ Map-reduce partition columns: UDFToDouble(_col1) (type: double)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: int)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 UDFToDouble(_col0) (type: double)
+ 1 UDFToDouble(_col1) (type: double)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 91 Data size: 969 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 91 Data size: 969 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain select * from masking_test a union select b.* from masking_test b where b.key > 0
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from masking_test a union select b.* from masking_test b where b.key > 0
+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: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (((_col0 % 2) = 0) and (_col0 < 10)) (type: boolean)
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: int), reverse(_col1) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column stats: NONE
+ Union
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: string)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: UDFToInteger(key) (type: int), value (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: ((((_col0 % 2) = 0) and (_col0 < 10)) and (_col0 > 0)) (type: boolean)
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: int), reverse(_col1) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 27 Data size: 286 Basic stats: COMPLETE Column stats: NONE
+ Union
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ Group By Operator
+ keys: _col0 (type: int), _col1 (type: string)
+ mode: hash
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int), _col1 (type: string)
+ sort order: ++
+ Map-reduce partition columns: _col0 (type: int), _col1 (type: string)
+ Statistics: Num rows: 110 Data size: 1167 Basic stats: COMPLETE Column stats: NONE
+ Reduce Operator Tree:
+ Group By Operator
+ keys: KEY._col0 (type: int), KEY._col1 (type: string)
+ mode: mergepartial
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 55 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 55 Data size: 583 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
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+