You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/04/30 00:03:37 UTC

svn commit: r1477368 - in /hive/trunk: data/files/ ql/src/java/org/apache/hadoop/hive/ql/parse/ ql/src/java/org/apache/hadoop/hive/ql/plan/ ql/src/test/queries/clientpositive/ ql/src/test/results/clientpositive/

Author: hashutosh
Date: Mon Apr 29 22:03:37 2013
New Revision: 1477368

URL: http://svn.apache.org/r1477368
Log:
HIVE-3682 : when output hive table to file,users should could have a separator of their own choice (Sushanth Sowmyan via Ashutosh Chauhan)

Added:
    hive/trunk/data/files/array_table.txt
    hive/trunk/data/files/map_table.txt
    hive/trunk/ql/src/test/queries/clientpositive/insert_overwrite_local_directory_1.q
    hive/trunk/ql/src/test/results/clientpositive/insert_overwrite_local_directory_1.q.out
Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/QB.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java

Added: hive/trunk/data/files/array_table.txt
URL: http://svn.apache.org/viewvc/hive/trunk/data/files/array_table.txt?rev=1477368&view=auto
==============================================================================
--- hive/trunk/data/files/array_table.txt (added)
+++ hive/trunk/data/files/array_table.txt Mon Apr 29 22:03:37 2013
@@ -0,0 +1,2 @@
+a1,a2,a3	b1,b2,b3,b4
+a21,a22,a23	b21,b22,b23,b24

Added: hive/trunk/data/files/map_table.txt
URL: http://svn.apache.org/viewvc/hive/trunk/data/files/map_table.txt?rev=1477368&view=auto
==============================================================================
--- hive/trunk/data/files/map_table.txt (added)
+++ hive/trunk/data/files/map_table.txt Mon Apr 29 22:03:37 2013
@@ -0,0 +1,2 @@
+foo1	k1:v1,k2:v2,k3:v3
+foo2	k21:v21,k22:v22,k31:v31

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g?rev=1477368&r1=1477367&r2=1477368&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g Mon Apr 29 22:03:37 2013
@@ -1878,7 +1878,7 @@ destination
 @init { msgs.push("destination specification"); }
 @after { msgs.pop(); }
    :
-     KW_LOCAL KW_DIRECTORY StringLiteral -> ^(TOK_LOCAL_DIR StringLiteral)
+     KW_LOCAL KW_DIRECTORY StringLiteral tableRowFormat? tableFileFormat? -> ^(TOK_LOCAL_DIR StringLiteral tableRowFormat? tableFileFormat?)
    | KW_DIRECTORY StringLiteral -> ^(TOK_DIR StringLiteral)
    | KW_TABLE tableOrPartition -> tableOrPartition
    ;

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/QB.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/QB.java?rev=1477368&r1=1477367&r2=1477368&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/QB.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/QB.java Mon Apr 29 22:03:37 2013
@@ -51,6 +51,7 @@ public class QB {
   private boolean isQuery;
   private boolean isAnalyzeRewrite;
   private CreateTableDesc tblDesc = null; // table descriptor of the final
+  private CreateTableDesc localDirectoryDesc = null ;
 
   // used by PTFs
   /*
@@ -227,6 +228,14 @@ public class QB {
     tblDesc = desc;
   }
 
+  public CreateTableDesc getLLocalDirectoryDesc() {
+    return localDirectoryDesc;
+  }
+
+  public void setLocalDirectoryDesc(CreateTableDesc localDirectoryDesc) {
+    this.localDirectoryDesc = localDirectoryDesc;
+  }
+
   /**
    * Whether this QB is for a CREATE-TABLE-AS-SELECT.
    */

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=1477368&r1=1477367&r2=1477368&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Mon Apr 29 22:03:37 2013
@@ -1192,6 +1192,10 @@ public class SemanticAnalyzer extends Ba
         }
       }
 
+      RowFormatParams rowFormatParams = new RowFormatParams();
+      AnalyzeCreateCommonVars shared = new AnalyzeCreateCommonVars();
+      StorageFormat storageFormat = new StorageFormat();
+
       LOG.info("Get metadata for destination tables");
       // Go over all the destination structures and populate the related
       // metadata
@@ -1279,6 +1283,45 @@ public class SemanticAnalyzer extends Ba
           }
           qb.getMetaData().setDestForAlias(name, fname,
               (ast.getToken().getType() == HiveParser.TOK_DIR));
+
+          CreateTableDesc localDirectoryDesc = new CreateTableDesc();
+          boolean localDirectoryDescIsSet = false;
+          int numCh = ast.getChildCount();
+          for (int num = 1; num < numCh ; num++){
+            ASTNode child = (ASTNode) ast.getChild(num);
+            if (ast.getChild(num) != null){
+              switch (child.getToken().getType()) {
+                case HiveParser.TOK_TABLEROWFORMAT:
+                  rowFormatParams.analyzeRowFormat(shared, child);
+                  localDirectoryDesc.setFieldDelim(rowFormatParams.fieldDelim);
+                  localDirectoryDesc.setLineDelim(rowFormatParams.lineDelim);
+                  localDirectoryDesc.setCollItemDelim(rowFormatParams.collItemDelim);
+                  localDirectoryDesc.setMapKeyDelim(rowFormatParams.mapKeyDelim);
+                  localDirectoryDesc.setFieldEscape(rowFormatParams.fieldEscape);
+                  localDirectoryDescIsSet=true;
+                  break;
+                case HiveParser.TOK_TABLESERIALIZER:
+                  ASTNode serdeChild = (ASTNode) child.getChild(0);
+                  shared.serde = unescapeSQLString(serdeChild.getChild(0).getText());
+                  localDirectoryDesc.setSerName(shared.serde);
+                  localDirectoryDescIsSet=true;
+                  break;
+                case HiveParser.TOK_TBLSEQUENCEFILE:
+                case HiveParser.TOK_TBLTEXTFILE:
+                case HiveParser.TOK_TBLRCFILE:
+                case HiveParser.TOK_TBLORCFILE:
+                case HiveParser.TOK_TABLEFILEFORMAT:
+                  storageFormat.fillStorageFormat(child, shared);
+                  localDirectoryDesc.setOutputFormat(storageFormat.outputFormat);
+                  localDirectoryDesc.setSerName(shared.serde);
+                  localDirectoryDescIsSet=true;
+                  break;
+              }
+            }
+          }
+          if (localDirectoryDescIsSet){
+            qb.setLocalDirectoryDesc(localDirectoryDesc);
+          }
           break;
         }
         default:
@@ -5180,8 +5223,7 @@ public class SemanticAnalyzer extends Ba
           String fileFormat = HiveConf.getVar(conf, HiveConf.ConfVars.HIVEQUERYRESULTFILEFORMAT);
           table_desc = PlanUtils.getDefaultQueryOutputTableDesc(cols, colTypes, fileFormat);
         } else {
-          table_desc = PlanUtils.getDefaultTableDesc(Integer
-              .toString(Utilities.ctrlaCode), cols, colTypes, false);
+          table_desc = PlanUtils.getDefaultTableDesc(qb.getLLocalDirectoryDesc(), cols, colTypes);
         }
       } else {
         table_desc = PlanUtils.getTableDesc(tblDesc, cols, colTypes);

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java?rev=1477368&r1=1477367&r2=1477368&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java Mon Apr 29 22:03:37 2013
@@ -100,6 +100,56 @@ public final class PlanUtils {
     }
   }
 
+  public static TableDesc getDefaultTableDesc(CreateTableDesc localDirectoryDesc,
+      String cols, String colTypes ) {
+    TableDesc tableDesc = getDefaultTableDesc(Integer.toString(Utilities.ctrlaCode), cols,
+        colTypes, false);;
+    if (localDirectoryDesc == null) {
+      return tableDesc;
+    }
+
+    try {
+      if (localDirectoryDesc.getFieldDelim() != null) {
+        tableDesc.getProperties().setProperty(
+            serdeConstants.FIELD_DELIM, localDirectoryDesc.getFieldDelim());
+        tableDesc.getProperties().setProperty(
+            serdeConstants.SERIALIZATION_FORMAT, localDirectoryDesc.getFieldDelim());
+      }
+      if (localDirectoryDesc.getLineDelim() != null) {
+        tableDesc.getProperties().setProperty(
+            serdeConstants.LINE_DELIM, localDirectoryDesc.getLineDelim());
+      }
+      if (localDirectoryDesc.getCollItemDelim() != null) {
+        tableDesc.getProperties().setProperty(
+            serdeConstants.COLLECTION_DELIM, localDirectoryDesc.getCollItemDelim());
+      }
+      if (localDirectoryDesc.getMapKeyDelim() != null) {
+        tableDesc.getProperties().setProperty(
+            serdeConstants.MAPKEY_DELIM, localDirectoryDesc.getMapKeyDelim());
+      }
+      if (localDirectoryDesc.getFieldEscape() !=null) {
+        tableDesc.getProperties().setProperty(
+            serdeConstants.ESCAPE_CHAR, localDirectoryDesc.getFieldEscape());
+      }
+      if (localDirectoryDesc.getSerName() != null) {
+        tableDesc.setSerdeClassName(localDirectoryDesc.getSerName());
+        tableDesc.getProperties().setProperty(
+            serdeConstants.SERIALIZATION_LIB, localDirectoryDesc.getSerName());
+        tableDesc.setDeserializerClass(
+            (Class<? extends Deserializer>) Class.forName(localDirectoryDesc.getSerName()));
+      }
+      if (localDirectoryDesc.getOutputFormat() != null){
+          tableDesc.setOutputFileFormatClass(Class.forName(localDirectoryDesc.getOutputFormat()));
+      }
+    } catch (ClassNotFoundException e) {
+      // mimicking behaviour in CreateTableDesc tableDesc creation
+      // returning null table description for output.
+      e.printStackTrace();
+      return null;
+    }
+    return tableDesc;
+  }
+
   /**
    * Generate the table descriptor of MetadataTypedColumnsetSerDe with the
    * separatorCode and column names (comma separated string).

Added: hive/trunk/ql/src/test/queries/clientpositive/insert_overwrite_local_directory_1.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/insert_overwrite_local_directory_1.q?rev=1477368&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/insert_overwrite_local_directory_1.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/insert_overwrite_local_directory_1.q Mon Apr 29 22:03:37 2013
@@ -0,0 +1,109 @@
+insert overwrite local directory '../data/files/local_src_table_1'
+select * from src ;
+dfs -cat ../data/files/local_src_table_1/000000_0;
+
+insert overwrite local directory '../data/files/local_src_table_2'
+row format delimited 
+FIELDS TERMINATED BY ':' 
+select * from src ;
+
+dfs -cat ../data/files/local_src_table_2/000000_0;
+
+create table array_table (a array<string>, b array<string>)
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY '\t'
+COLLECTION ITEMS TERMINATED BY ',';
+
+load data local inpath "../data/files/array_table.txt" overwrite into table array_table;
+
+insert overwrite local directory '../data/files/local_array_table_1'
+select * from array_table;
+dfs -cat ../data/files/local_array_table_1/000000_0;
+
+insert overwrite local directory '../data/files/local_array_table_2'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+select * from array_table;
+
+dfs -cat ../data/files/local_array_table_2/000000_0;
+
+insert overwrite local directory '../data/files/local_array_table_2_withfields'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+select b,a from array_table;
+
+dfs -cat ../data/files/local_array_table_2_withfields/000000_0;
+
+
+create table map_table (foo STRING , bar MAP<STRING, STRING>)
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY '\t'
+COLLECTION ITEMS TERMINATED BY ','
+MAP KEYS TERMINATED BY ':'
+STORED AS TEXTFILE;
+
+load data local inpath "../data/files/map_table.txt" overwrite into table map_table;
+
+insert overwrite local directory '../data/files/local_map_table_1'
+select * from map_table;
+dfs -cat ../data/files/local_map_table_1/000000_0;
+
+insert overwrite local directory '../data/files/local_map_table_2'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+MAP KEYS TERMINATED BY '='
+select * from map_table;
+
+dfs -cat ../data/files/local_map_table_2/000000_0;
+
+insert overwrite local directory '../data/files/local_map_table_2_withfields'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+MAP KEYS TERMINATED BY '='
+select bar,foo from map_table;
+
+dfs -cat ../data/files/local_map_table_2_withfields/000000_0;
+
+insert overwrite local directory '../data/files/local_array_table_3'
+ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe'
+STORED AS TEXTFILE
+select * from array_table;
+
+dfs -cat ../data/files/local_array_table_3/000000_0;
+
+insert overwrite local directory '../data/files/local_map_table_3'
+ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe'
+STORED AS TEXTFILE
+select * from map_table;
+
+dfs -cat ../data/files/local_map_table_3/000000_0;
+
+insert overwrite local directory '../data/files/local_rctable'
+STORED AS RCFILE
+select value,key from src;
+
+dfs ${system:test.dfs.mkdir} ${system:test.tmp.dir}/local_rctable/temp;
+dfs -rmr ${system:test.tmp.dir}/local_rctable;
+dfs ${system:test.dfs.mkdir}  ${system:test.tmp.dir}/local_rctable;
+dfs -put ../data/files/local_rctable/000000_0 ${system:test.tmp.dir}/local_rctable/000000_0;
+
+create external table local_rctable(value string, key string)
+STORED AS RCFILE
+LOCATION '${system:test.tmp.dir}/local_rctable';
+
+insert overwrite local directory '../data/files/local_rctable_out'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY '\t'
+select key,value from local_rctable;
+
+dfs -cat ../data/files/local_rctable_out/000000_0;
+
+drop table local_rctable;
+drop table array_table;
+drop table map_table;
+dfs -rmr ${system:test.tmp.dir}/local_rctable;
+

Added: hive/trunk/ql/src/test/results/clientpositive/insert_overwrite_local_directory_1.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/insert_overwrite_local_directory_1.q.out?rev=1477368&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/insert_overwrite_local_directory_1.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/insert_overwrite_local_directory_1.q.out Mon Apr 29 22:03:37 2013
@@ -0,0 +1,1755 @@
+PREHOOK: query: insert overwrite local directory '../data/files/local_src_table_1'
+select * from src
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: ../data/files/local_src_table_1
+POSTHOOK: query: insert overwrite local directory '../data/files/local_src_table_1'
+select * from src
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: ../data/files/local_src_table_1
+238val_238
+86val_86
+311val_311
+27val_27
+165val_165
+409val_409
+255val_255
+278val_278
+98val_98
+484val_484
+265val_265
+193val_193
+401val_401
+150val_150
+273val_273
+224val_224
+369val_369
+66val_66
+128val_128
+213val_213
+146val_146
+406val_406
+429val_429
+374val_374
+152val_152
+469val_469
+145val_145
+495val_495
+37val_37
+327val_327
+281val_281
+277val_277
+209val_209
+15val_15
+82val_82
+403val_403
+166val_166
+417val_417
+430val_430
+252val_252
+292val_292
+219val_219
+287val_287
+153val_153
+193val_193
+338val_338
+446val_446
+459val_459
+394val_394
+237val_237
+482val_482
+174val_174
+413val_413
+494val_494
+207val_207
+199val_199
+466val_466
+208val_208
+174val_174
+399val_399
+396val_396
+247val_247
+417val_417
+489val_489
+162val_162
+377val_377
+397val_397
+309val_309
+365val_365
+266val_266
+439val_439
+342val_342
+367val_367
+325val_325
+167val_167
+195val_195
+475val_475
+17val_17
+113val_113
+155val_155
+203val_203
+339val_339
+0val_0
+455val_455
+128val_128
+311val_311
+316val_316
+57val_57
+302val_302
+205val_205
+149val_149
+438val_438
+345val_345
+129val_129
+170val_170
+20val_20
+489val_489
+157val_157
+378val_378
+221val_221
+92val_92
+111val_111
+47val_47
+72val_72
+4val_4
+280val_280
+35val_35
+427val_427
+277val_277
+208val_208
+356val_356
+399val_399
+169val_169
+382val_382
+498val_498
+125val_125
+386val_386
+437val_437
+469val_469
+192val_192
+286val_286
+187val_187
+176val_176
+54val_54
+459val_459
+51val_51
+138val_138
+103val_103
+239val_239
+213val_213
+216val_216
+430val_430
+278val_278
+176val_176
+289val_289
+221val_221
+65val_65
+318val_318
+332val_332
+311val_311
+275val_275
+137val_137
+241val_241
+83val_83
+333val_333
+180val_180
+284val_284
+12val_12
+230val_230
+181val_181
+67val_67
+260val_260
+404val_404
+384val_384
+489val_489
+353val_353
+373val_373
+272val_272
+138val_138
+217val_217
+84val_84
+348val_348
+466val_466
+58val_58
+8val_8
+411val_411
+230val_230
+208val_208
+348val_348
+24val_24
+463val_463
+431val_431
+179val_179
+172val_172
+42val_42
+129val_129
+158val_158
+119val_119
+496val_496
+0val_0
+322val_322
+197val_197
+468val_468
+393val_393
+454val_454
+100val_100
+298val_298
+199val_199
+191val_191
+418val_418
+96val_96
+26val_26
+165val_165
+327val_327
+230val_230
+205val_205
+120val_120
+131val_131
+51val_51
+404val_404
+43val_43
+436val_436
+156val_156
+469val_469
+468val_468
+308val_308
+95val_95
+196val_196
+288val_288
+481val_481
+457val_457
+98val_98
+282val_282
+197val_197
+187val_187
+318val_318
+318val_318
+409val_409
+470val_470
+137val_137
+369val_369
+316val_316
+169val_169
+413val_413
+85val_85
+77val_77
+0val_0
+490val_490
+87val_87
+364val_364
+179val_179
+118val_118
+134val_134
+395val_395
+282val_282
+138val_138
+238val_238
+419val_419
+15val_15
+118val_118
+72val_72
+90val_90
+307val_307
+19val_19
+435val_435
+10val_10
+277val_277
+273val_273
+306val_306
+224val_224
+309val_309
+389val_389
+327val_327
+242val_242
+369val_369
+392val_392
+272val_272
+331val_331
+401val_401
+242val_242
+452val_452
+177val_177
+226val_226
+5val_5
+497val_497
+402val_402
+396val_396
+317val_317
+395val_395
+58val_58
+35val_35
+336val_336
+95val_95
+11val_11
+168val_168
+34val_34
+229val_229
+233val_233
+143val_143
+472val_472
+322val_322
+498val_498
+160val_160
+195val_195
+42val_42
+321val_321
+430val_430
+119val_119
+489val_489
+458val_458
+78val_78
+76val_76
+41val_41
+223val_223
+492val_492
+149val_149
+449val_449
+218val_218
+228val_228
+138val_138
+453val_453
+30val_30
+209val_209
+64val_64
+468val_468
+76val_76
+74val_74
+342val_342
+69val_69
+230val_230
+33val_33
+368val_368
+103val_103
+296val_296
+113val_113
+216val_216
+367val_367
+344val_344
+167val_167
+274val_274
+219val_219
+239val_239
+485val_485
+116val_116
+223val_223
+256val_256
+263val_263
+70val_70
+487val_487
+480val_480
+401val_401
+288val_288
+191val_191
+5val_5
+244val_244
+438val_438
+128val_128
+467val_467
+432val_432
+202val_202
+316val_316
+229val_229
+469val_469
+463val_463
+280val_280
+2val_2
+35val_35
+283val_283
+331val_331
+235val_235
+80val_80
+44val_44
+193val_193
+321val_321
+335val_335
+104val_104
+466val_466
+366val_366
+175val_175
+403val_403
+483val_483
+53val_53
+105val_105
+257val_257
+406val_406
+409val_409
+190val_190
+406val_406
+401val_401
+114val_114
+258val_258
+90val_90
+203val_203
+262val_262
+348val_348
+424val_424
+12val_12
+396val_396
+201val_201
+217val_217
+164val_164
+431val_431
+454val_454
+478val_478
+298val_298
+125val_125
+431val_431
+164val_164
+424val_424
+187val_187
+382val_382
+5val_5
+70val_70
+397val_397
+480val_480
+291val_291
+24val_24
+351val_351
+255val_255
+104val_104
+70val_70
+163val_163
+438val_438
+119val_119
+414val_414
+200val_200
+491val_491
+237val_237
+439val_439
+360val_360
+248val_248
+479val_479
+305val_305
+417val_417
+199val_199
+444val_444
+120val_120
+429val_429
+169val_169
+443val_443
+323val_323
+325val_325
+277val_277
+230val_230
+478val_478
+178val_178
+468val_468
+310val_310
+317val_317
+333val_333
+493val_493
+460val_460
+207val_207
+249val_249
+265val_265
+480val_480
+83val_83
+136val_136
+353val_353
+172val_172
+214val_214
+462val_462
+233val_233
+406val_406
+133val_133
+175val_175
+189val_189
+454val_454
+375val_375
+401val_401
+421val_421
+407val_407
+384val_384
+256val_256
+26val_26
+134val_134
+67val_67
+384val_384
+379val_379
+18val_18
+462val_462
+492val_492
+100val_100
+298val_298
+9val_9
+341val_341
+498val_498
+146val_146
+458val_458
+362val_362
+186val_186
+285val_285
+348val_348
+167val_167
+18val_18
+273val_273
+183val_183
+281val_281
+344val_344
+97val_97
+469val_469
+315val_315
+84val_84
+28val_28
+37val_37
+448val_448
+152val_152
+348val_348
+307val_307
+194val_194
+414val_414
+477val_477
+222val_222
+126val_126
+90val_90
+169val_169
+403val_403
+400val_400
+200val_200
+97val_97
+PREHOOK: query: insert overwrite local directory '../data/files/local_src_table_2'
+row format delimited 
+FIELDS TERMINATED BY ':' 
+select * from src
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: ../data/files/local_src_table_2
+POSTHOOK: query: insert overwrite local directory '../data/files/local_src_table_2'
+row format delimited 
+FIELDS TERMINATED BY ':' 
+select * from src
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: ../data/files/local_src_table_2
+238:val_238
+86:val_86
+311:val_311
+27:val_27
+165:val_165
+409:val_409
+255:val_255
+278:val_278
+98:val_98
+484:val_484
+265:val_265
+193:val_193
+401:val_401
+150:val_150
+273:val_273
+224:val_224
+369:val_369
+66:val_66
+128:val_128
+213:val_213
+146:val_146
+406:val_406
+429:val_429
+374:val_374
+152:val_152
+469:val_469
+145:val_145
+495:val_495
+37:val_37
+327:val_327
+281:val_281
+277:val_277
+209:val_209
+15:val_15
+82:val_82
+403:val_403
+166:val_166
+417:val_417
+430:val_430
+252:val_252
+292:val_292
+219:val_219
+287:val_287
+153:val_153
+193:val_193
+338:val_338
+446:val_446
+459:val_459
+394:val_394
+237:val_237
+482:val_482
+174:val_174
+413:val_413
+494:val_494
+207:val_207
+199:val_199
+466:val_466
+208:val_208
+174:val_174
+399:val_399
+396:val_396
+247:val_247
+417:val_417
+489:val_489
+162:val_162
+377:val_377
+397:val_397
+309:val_309
+365:val_365
+266:val_266
+439:val_439
+342:val_342
+367:val_367
+325:val_325
+167:val_167
+195:val_195
+475:val_475
+17:val_17
+113:val_113
+155:val_155
+203:val_203
+339:val_339
+0:val_0
+455:val_455
+128:val_128
+311:val_311
+316:val_316
+57:val_57
+302:val_302
+205:val_205
+149:val_149
+438:val_438
+345:val_345
+129:val_129
+170:val_170
+20:val_20
+489:val_489
+157:val_157
+378:val_378
+221:val_221
+92:val_92
+111:val_111
+47:val_47
+72:val_72
+4:val_4
+280:val_280
+35:val_35
+427:val_427
+277:val_277
+208:val_208
+356:val_356
+399:val_399
+169:val_169
+382:val_382
+498:val_498
+125:val_125
+386:val_386
+437:val_437
+469:val_469
+192:val_192
+286:val_286
+187:val_187
+176:val_176
+54:val_54
+459:val_459
+51:val_51
+138:val_138
+103:val_103
+239:val_239
+213:val_213
+216:val_216
+430:val_430
+278:val_278
+176:val_176
+289:val_289
+221:val_221
+65:val_65
+318:val_318
+332:val_332
+311:val_311
+275:val_275
+137:val_137
+241:val_241
+83:val_83
+333:val_333
+180:val_180
+284:val_284
+12:val_12
+230:val_230
+181:val_181
+67:val_67
+260:val_260
+404:val_404
+384:val_384
+489:val_489
+353:val_353
+373:val_373
+272:val_272
+138:val_138
+217:val_217
+84:val_84
+348:val_348
+466:val_466
+58:val_58
+8:val_8
+411:val_411
+230:val_230
+208:val_208
+348:val_348
+24:val_24
+463:val_463
+431:val_431
+179:val_179
+172:val_172
+42:val_42
+129:val_129
+158:val_158
+119:val_119
+496:val_496
+0:val_0
+322:val_322
+197:val_197
+468:val_468
+393:val_393
+454:val_454
+100:val_100
+298:val_298
+199:val_199
+191:val_191
+418:val_418
+96:val_96
+26:val_26
+165:val_165
+327:val_327
+230:val_230
+205:val_205
+120:val_120
+131:val_131
+51:val_51
+404:val_404
+43:val_43
+436:val_436
+156:val_156
+469:val_469
+468:val_468
+308:val_308
+95:val_95
+196:val_196
+288:val_288
+481:val_481
+457:val_457
+98:val_98
+282:val_282
+197:val_197
+187:val_187
+318:val_318
+318:val_318
+409:val_409
+470:val_470
+137:val_137
+369:val_369
+316:val_316
+169:val_169
+413:val_413
+85:val_85
+77:val_77
+0:val_0
+490:val_490
+87:val_87
+364:val_364
+179:val_179
+118:val_118
+134:val_134
+395:val_395
+282:val_282
+138:val_138
+238:val_238
+419:val_419
+15:val_15
+118:val_118
+72:val_72
+90:val_90
+307:val_307
+19:val_19
+435:val_435
+10:val_10
+277:val_277
+273:val_273
+306:val_306
+224:val_224
+309:val_309
+389:val_389
+327:val_327
+242:val_242
+369:val_369
+392:val_392
+272:val_272
+331:val_331
+401:val_401
+242:val_242
+452:val_452
+177:val_177
+226:val_226
+5:val_5
+497:val_497
+402:val_402
+396:val_396
+317:val_317
+395:val_395
+58:val_58
+35:val_35
+336:val_336
+95:val_95
+11:val_11
+168:val_168
+34:val_34
+229:val_229
+233:val_233
+143:val_143
+472:val_472
+322:val_322
+498:val_498
+160:val_160
+195:val_195
+42:val_42
+321:val_321
+430:val_430
+119:val_119
+489:val_489
+458:val_458
+78:val_78
+76:val_76
+41:val_41
+223:val_223
+492:val_492
+149:val_149
+449:val_449
+218:val_218
+228:val_228
+138:val_138
+453:val_453
+30:val_30
+209:val_209
+64:val_64
+468:val_468
+76:val_76
+74:val_74
+342:val_342
+69:val_69
+230:val_230
+33:val_33
+368:val_368
+103:val_103
+296:val_296
+113:val_113
+216:val_216
+367:val_367
+344:val_344
+167:val_167
+274:val_274
+219:val_219
+239:val_239
+485:val_485
+116:val_116
+223:val_223
+256:val_256
+263:val_263
+70:val_70
+487:val_487
+480:val_480
+401:val_401
+288:val_288
+191:val_191
+5:val_5
+244:val_244
+438:val_438
+128:val_128
+467:val_467
+432:val_432
+202:val_202
+316:val_316
+229:val_229
+469:val_469
+463:val_463
+280:val_280
+2:val_2
+35:val_35
+283:val_283
+331:val_331
+235:val_235
+80:val_80
+44:val_44
+193:val_193
+321:val_321
+335:val_335
+104:val_104
+466:val_466
+366:val_366
+175:val_175
+403:val_403
+483:val_483
+53:val_53
+105:val_105
+257:val_257
+406:val_406
+409:val_409
+190:val_190
+406:val_406
+401:val_401
+114:val_114
+258:val_258
+90:val_90
+203:val_203
+262:val_262
+348:val_348
+424:val_424
+12:val_12
+396:val_396
+201:val_201
+217:val_217
+164:val_164
+431:val_431
+454:val_454
+478:val_478
+298:val_298
+125:val_125
+431:val_431
+164:val_164
+424:val_424
+187:val_187
+382:val_382
+5:val_5
+70:val_70
+397:val_397
+480:val_480
+291:val_291
+24:val_24
+351:val_351
+255:val_255
+104:val_104
+70:val_70
+163:val_163
+438:val_438
+119:val_119
+414:val_414
+200:val_200
+491:val_491
+237:val_237
+439:val_439
+360:val_360
+248:val_248
+479:val_479
+305:val_305
+417:val_417
+199:val_199
+444:val_444
+120:val_120
+429:val_429
+169:val_169
+443:val_443
+323:val_323
+325:val_325
+277:val_277
+230:val_230
+478:val_478
+178:val_178
+468:val_468
+310:val_310
+317:val_317
+333:val_333
+493:val_493
+460:val_460
+207:val_207
+249:val_249
+265:val_265
+480:val_480
+83:val_83
+136:val_136
+353:val_353
+172:val_172
+214:val_214
+462:val_462
+233:val_233
+406:val_406
+133:val_133
+175:val_175
+189:val_189
+454:val_454
+375:val_375
+401:val_401
+421:val_421
+407:val_407
+384:val_384
+256:val_256
+26:val_26
+134:val_134
+67:val_67
+384:val_384
+379:val_379
+18:val_18
+462:val_462
+492:val_492
+100:val_100
+298:val_298
+9:val_9
+341:val_341
+498:val_498
+146:val_146
+458:val_458
+362:val_362
+186:val_186
+285:val_285
+348:val_348
+167:val_167
+18:val_18
+273:val_273
+183:val_183
+281:val_281
+344:val_344
+97:val_97
+469:val_469
+315:val_315
+84:val_84
+28:val_28
+37:val_37
+448:val_448
+152:val_152
+348:val_348
+307:val_307
+194:val_194
+414:val_414
+477:val_477
+222:val_222
+126:val_126
+90:val_90
+169:val_169
+403:val_403
+400:val_400
+200:val_200
+97:val_97
+PREHOOK: query: create table array_table (a array<string>, b array<string>)
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY '\t'
+COLLECTION ITEMS TERMINATED BY ','
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: create table array_table (a array<string>, b array<string>)
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY '\t'
+COLLECTION ITEMS TERMINATED BY ','
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@array_table
+PREHOOK: query: load data local inpath "../data/files/array_table.txt" overwrite into table array_table
+PREHOOK: type: LOAD
+PREHOOK: Output: default@array_table
+POSTHOOK: query: load data local inpath "../data/files/array_table.txt" overwrite into table array_table
+POSTHOOK: type: LOAD
+POSTHOOK: Output: default@array_table
+PREHOOK: query: insert overwrite local directory '../data/files/local_array_table_1'
+select * from array_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@array_table
+PREHOOK: Output: ../data/files/local_array_table_1
+POSTHOOK: query: insert overwrite local directory '../data/files/local_array_table_1'
+select * from array_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@array_table
+POSTHOOK: Output: ../data/files/local_array_table_1
+a1a2a3b1b2b3b4
+a21a22a23b21b22b23b24
+PREHOOK: query: insert overwrite local directory '../data/files/local_array_table_2'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+select * from array_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@array_table
+PREHOOK: Output: ../data/files/local_array_table_2
+POSTHOOK: query: insert overwrite local directory '../data/files/local_array_table_2'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+select * from array_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@array_table
+POSTHOOK: Output: ../data/files/local_array_table_2
+a1#a2#a3:b1#b2#b3#b4
+a21#a22#a23:b21#b22#b23#b24
+PREHOOK: query: insert overwrite local directory '../data/files/local_array_table_2_withfields'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+select b,a from array_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@array_table
+PREHOOK: Output: ../data/files/local_array_table_2_withfields
+POSTHOOK: query: insert overwrite local directory '../data/files/local_array_table_2_withfields'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+select b,a from array_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@array_table
+POSTHOOK: Output: ../data/files/local_array_table_2_withfields
+b1#b2#b3#b4:a1#a2#a3
+b21#b22#b23#b24:a21#a22#a23
+PREHOOK: query: create table map_table (foo STRING , bar MAP<STRING, STRING>)
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY '\t'
+COLLECTION ITEMS TERMINATED BY ','
+MAP KEYS TERMINATED BY ':'
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: create table map_table (foo STRING , bar MAP<STRING, STRING>)
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY '\t'
+COLLECTION ITEMS TERMINATED BY ','
+MAP KEYS TERMINATED BY ':'
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@map_table
+PREHOOK: query: load data local inpath "../data/files/map_table.txt" overwrite into table map_table
+PREHOOK: type: LOAD
+PREHOOK: Output: default@map_table
+POSTHOOK: query: load data local inpath "../data/files/map_table.txt" overwrite into table map_table
+POSTHOOK: type: LOAD
+POSTHOOK: Output: default@map_table
+PREHOOK: query: insert overwrite local directory '../data/files/local_map_table_1'
+select * from map_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@map_table
+PREHOOK: Output: ../data/files/local_map_table_1
+POSTHOOK: query: insert overwrite local directory '../data/files/local_map_table_1'
+select * from map_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@map_table
+POSTHOOK: Output: ../data/files/local_map_table_1
+foo1k1v1k2v2k3v3
+foo2k21v21k22v22k31v31
+PREHOOK: query: insert overwrite local directory '../data/files/local_map_table_2'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+MAP KEYS TERMINATED BY '='
+select * from map_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@map_table
+PREHOOK: Output: ../data/files/local_map_table_2
+POSTHOOK: query: insert overwrite local directory '../data/files/local_map_table_2'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+MAP KEYS TERMINATED BY '='
+select * from map_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@map_table
+POSTHOOK: Output: ../data/files/local_map_table_2
+foo1:k1=v1#k2=v2#k3=v3
+foo2:k21=v21#k22=v22#k31=v31
+PREHOOK: query: insert overwrite local directory '../data/files/local_map_table_2_withfields'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+MAP KEYS TERMINATED BY '='
+select bar,foo from map_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@map_table
+PREHOOK: Output: ../data/files/local_map_table_2_withfields
+POSTHOOK: query: insert overwrite local directory '../data/files/local_map_table_2_withfields'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY ':'
+COLLECTION ITEMS TERMINATED BY '#'
+MAP KEYS TERMINATED BY '='
+select bar,foo from map_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@map_table
+POSTHOOK: Output: ../data/files/local_map_table_2_withfields
+k1=v1#k2=v2#k3=v3:foo1
+k21=v21#k22=v22#k31=v31:foo2
+PREHOOK: query: insert overwrite local directory '../data/files/local_array_table_3'
+ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe'
+STORED AS TEXTFILE
+select * from array_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@array_table
+PREHOOK: Output: ../data/files/local_array_table_3
+POSTHOOK: query: insert overwrite local directory '../data/files/local_array_table_3'
+ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe'
+STORED AS TEXTFILE
+select * from array_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@array_table
+POSTHOOK: Output: ../data/files/local_array_table_3
+["a1","a2","a3"]["b1","b2","b3","b4"]
+["a21","a22","a23"]["b21","b22","b23","b24"]
+PREHOOK: query: insert overwrite local directory '../data/files/local_map_table_3'
+ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe'
+STORED AS TEXTFILE
+select * from map_table
+PREHOOK: type: QUERY
+PREHOOK: Input: default@map_table
+PREHOOK: Output: ../data/files/local_map_table_3
+POSTHOOK: query: insert overwrite local directory '../data/files/local_map_table_3'
+ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe'
+STORED AS TEXTFILE
+select * from map_table
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@map_table
+POSTHOOK: Output: ../data/files/local_map_table_3
+foo1{"k1":"v1","k2":"v2","k3":"v3"}
+foo2{"k21":"v21","k22":"v22","k31":"v31"}
+PREHOOK: query: insert overwrite local directory '../data/files/local_rctable'
+STORED AS RCFILE
+select value,key from src
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: ../data/files/local_rctable
+POSTHOOK: query: insert overwrite local directory '../data/files/local_rctable'
+STORED AS RCFILE
+select value,key from src
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: ../data/files/local_rctable
+#### A masked pattern was here ####
+PREHOOK: query: create external table local_rctable(value string, key string)
+STORED AS RCFILE
+#### A masked pattern was here ####
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: create external table local_rctable(value string, key string)
+STORED AS RCFILE
+#### A masked pattern was here ####
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@local_rctable
+PREHOOK: query: insert overwrite local directory '../data/files/local_rctable_out'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY '\t'
+select key,value from local_rctable
+PREHOOK: type: QUERY
+PREHOOK: Input: default@local_rctable
+PREHOOK: Output: ../data/files/local_rctable_out
+POSTHOOK: query: insert overwrite local directory '../data/files/local_rctable_out'
+ROW FORMAT DELIMITED
+FIELDS TERMINATED BY '\t'
+select key,value from local_rctable
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@local_rctable
+POSTHOOK: Output: ../data/files/local_rctable_out
+238	val_238
+86	val_86
+311	val_311
+27	val_27
+165	val_165
+409	val_409
+255	val_255
+278	val_278
+98	val_98
+484	val_484
+265	val_265
+193	val_193
+401	val_401
+150	val_150
+273	val_273
+224	val_224
+369	val_369
+66	val_66
+128	val_128
+213	val_213
+146	val_146
+406	val_406
+429	val_429
+374	val_374
+152	val_152
+469	val_469
+145	val_145
+495	val_495
+37	val_37
+327	val_327
+281	val_281
+277	val_277
+209	val_209
+15	val_15
+82	val_82
+403	val_403
+166	val_166
+417	val_417
+430	val_430
+252	val_252
+292	val_292
+219	val_219
+287	val_287
+153	val_153
+193	val_193
+338	val_338
+446	val_446
+459	val_459
+394	val_394
+237	val_237
+482	val_482
+174	val_174
+413	val_413
+494	val_494
+207	val_207
+199	val_199
+466	val_466
+208	val_208
+174	val_174
+399	val_399
+396	val_396
+247	val_247
+417	val_417
+489	val_489
+162	val_162
+377	val_377
+397	val_397
+309	val_309
+365	val_365
+266	val_266
+439	val_439
+342	val_342
+367	val_367
+325	val_325
+167	val_167
+195	val_195
+475	val_475
+17	val_17
+113	val_113
+155	val_155
+203	val_203
+339	val_339
+0	val_0
+455	val_455
+128	val_128
+311	val_311
+316	val_316
+57	val_57
+302	val_302
+205	val_205
+149	val_149
+438	val_438
+345	val_345
+129	val_129
+170	val_170
+20	val_20
+489	val_489
+157	val_157
+378	val_378
+221	val_221
+92	val_92
+111	val_111
+47	val_47
+72	val_72
+4	val_4
+280	val_280
+35	val_35
+427	val_427
+277	val_277
+208	val_208
+356	val_356
+399	val_399
+169	val_169
+382	val_382
+498	val_498
+125	val_125
+386	val_386
+437	val_437
+469	val_469
+192	val_192
+286	val_286
+187	val_187
+176	val_176
+54	val_54
+459	val_459
+51	val_51
+138	val_138
+103	val_103
+239	val_239
+213	val_213
+216	val_216
+430	val_430
+278	val_278
+176	val_176
+289	val_289
+221	val_221
+65	val_65
+318	val_318
+332	val_332
+311	val_311
+275	val_275
+137	val_137
+241	val_241
+83	val_83
+333	val_333
+180	val_180
+284	val_284
+12	val_12
+230	val_230
+181	val_181
+67	val_67
+260	val_260
+404	val_404
+384	val_384
+489	val_489
+353	val_353
+373	val_373
+272	val_272
+138	val_138
+217	val_217
+84	val_84
+348	val_348
+466	val_466
+58	val_58
+8	val_8
+411	val_411
+230	val_230
+208	val_208
+348	val_348
+24	val_24
+463	val_463
+431	val_431
+179	val_179
+172	val_172
+42	val_42
+129	val_129
+158	val_158
+119	val_119
+496	val_496
+0	val_0
+322	val_322
+197	val_197
+468	val_468
+393	val_393
+454	val_454
+100	val_100
+298	val_298
+199	val_199
+191	val_191
+418	val_418
+96	val_96
+26	val_26
+165	val_165
+327	val_327
+230	val_230
+205	val_205
+120	val_120
+131	val_131
+51	val_51
+404	val_404
+43	val_43
+436	val_436
+156	val_156
+469	val_469
+468	val_468
+308	val_308
+95	val_95
+196	val_196
+288	val_288
+481	val_481
+457	val_457
+98	val_98
+282	val_282
+197	val_197
+187	val_187
+318	val_318
+318	val_318
+409	val_409
+470	val_470
+137	val_137
+369	val_369
+316	val_316
+169	val_169
+413	val_413
+85	val_85
+77	val_77
+0	val_0
+490	val_490
+87	val_87
+364	val_364
+179	val_179
+118	val_118
+134	val_134
+395	val_395
+282	val_282
+138	val_138
+238	val_238
+419	val_419
+15	val_15
+118	val_118
+72	val_72
+90	val_90
+307	val_307
+19	val_19
+435	val_435
+10	val_10
+277	val_277
+273	val_273
+306	val_306
+224	val_224
+309	val_309
+389	val_389
+327	val_327
+242	val_242
+369	val_369
+392	val_392
+272	val_272
+331	val_331
+401	val_401
+242	val_242
+452	val_452
+177	val_177
+226	val_226
+5	val_5
+497	val_497
+402	val_402
+396	val_396
+317	val_317
+395	val_395
+58	val_58
+35	val_35
+336	val_336
+95	val_95
+11	val_11
+168	val_168
+34	val_34
+229	val_229
+233	val_233
+143	val_143
+472	val_472
+322	val_322
+498	val_498
+160	val_160
+195	val_195
+42	val_42
+321	val_321
+430	val_430
+119	val_119
+489	val_489
+458	val_458
+78	val_78
+76	val_76
+41	val_41
+223	val_223
+492	val_492
+149	val_149
+449	val_449
+218	val_218
+228	val_228
+138	val_138
+453	val_453
+30	val_30
+209	val_209
+64	val_64
+468	val_468
+76	val_76
+74	val_74
+342	val_342
+69	val_69
+230	val_230
+33	val_33
+368	val_368
+103	val_103
+296	val_296
+113	val_113
+216	val_216
+367	val_367
+344	val_344
+167	val_167
+274	val_274
+219	val_219
+239	val_239
+485	val_485
+116	val_116
+223	val_223
+256	val_256
+263	val_263
+70	val_70
+487	val_487
+480	val_480
+401	val_401
+288	val_288
+191	val_191
+5	val_5
+244	val_244
+438	val_438
+128	val_128
+467	val_467
+432	val_432
+202	val_202
+316	val_316
+229	val_229
+469	val_469
+463	val_463
+280	val_280
+2	val_2
+35	val_35
+283	val_283
+331	val_331
+235	val_235
+80	val_80
+44	val_44
+193	val_193
+321	val_321
+335	val_335
+104	val_104
+466	val_466
+366	val_366
+175	val_175
+403	val_403
+483	val_483
+53	val_53
+105	val_105
+257	val_257
+406	val_406
+409	val_409
+190	val_190
+406	val_406
+401	val_401
+114	val_114
+258	val_258
+90	val_90
+203	val_203
+262	val_262
+348	val_348
+424	val_424
+12	val_12
+396	val_396
+201	val_201
+217	val_217
+164	val_164
+431	val_431
+454	val_454
+478	val_478
+298	val_298
+125	val_125
+431	val_431
+164	val_164
+424	val_424
+187	val_187
+382	val_382
+5	val_5
+70	val_70
+397	val_397
+480	val_480
+291	val_291
+24	val_24
+351	val_351
+255	val_255
+104	val_104
+70	val_70
+163	val_163
+438	val_438
+119	val_119
+414	val_414
+200	val_200
+491	val_491
+237	val_237
+439	val_439
+360	val_360
+248	val_248
+479	val_479
+305	val_305
+417	val_417
+199	val_199
+444	val_444
+120	val_120
+429	val_429
+169	val_169
+443	val_443
+323	val_323
+325	val_325
+277	val_277
+230	val_230
+478	val_478
+178	val_178
+468	val_468
+310	val_310
+317	val_317
+333	val_333
+493	val_493
+460	val_460
+207	val_207
+249	val_249
+265	val_265
+480	val_480
+83	val_83
+136	val_136
+353	val_353
+172	val_172
+214	val_214
+462	val_462
+233	val_233
+406	val_406
+133	val_133
+175	val_175
+189	val_189
+454	val_454
+375	val_375
+401	val_401
+421	val_421
+407	val_407
+384	val_384
+256	val_256
+26	val_26
+134	val_134
+67	val_67
+384	val_384
+379	val_379
+18	val_18
+462	val_462
+492	val_492
+100	val_100
+298	val_298
+9	val_9
+341	val_341
+498	val_498
+146	val_146
+458	val_458
+362	val_362
+186	val_186
+285	val_285
+348	val_348
+167	val_167
+18	val_18
+273	val_273
+183	val_183
+281	val_281
+344	val_344
+97	val_97
+469	val_469
+315	val_315
+84	val_84
+28	val_28
+37	val_37
+448	val_448
+152	val_152
+348	val_348
+307	val_307
+194	val_194
+414	val_414
+477	val_477
+222	val_222
+126	val_126
+90	val_90
+169	val_169
+403	val_403
+400	val_400
+200	val_200
+97	val_97
+PREHOOK: query: drop table local_rctable
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@local_rctable
+PREHOOK: Output: default@local_rctable
+POSTHOOK: query: drop table local_rctable
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@local_rctable
+POSTHOOK: Output: default@local_rctable
+PREHOOK: query: drop table array_table
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@array_table
+PREHOOK: Output: default@array_table
+POSTHOOK: query: drop table array_table
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@array_table
+POSTHOOK: Output: default@array_table
+PREHOOK: query: drop table map_table
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@map_table
+PREHOOK: Output: default@map_table
+POSTHOOK: query: drop table map_table
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@map_table
+POSTHOOK: Output: default@map_table
+#### A masked pattern was here ####