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 2014/08/06 22:01:41 UTC

svn commit: r1616333 - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/udf/generic/ test/queries/clientnegative/ test/queries/clientpositive/ test/results/clientnegative/ test/results/clientpositive/

Author: hashutosh
Date: Wed Aug  6 20:01:41 2014
New Revision: 1616333

URL: http://svn.apache.org/r1616333
Log:
HIVE-7426 : ClassCastException: ...IntWritable cannot be cast to ...Text involving ql.udf.generic.GenericUDFBasePad.evaluate (Matt McCline via Jason Dere)

Added:
    hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail0.q
    hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail1.q
    hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail2.q
    hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail3.q
    hive/trunk/ql/src/test/queries/clientpositive/char_pad_convert.q
    hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail0.q.out
    hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail1.q.out
    hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail2.q.out
    hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail3.q.out
    hive/trunk/ql/src/test/results/clientpositive/char_pad_convert.q.out
Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBasePad.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBasePad.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBasePad.java?rev=1616333&r1=1616332&r2=1616333&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBasePad.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBasePad.java Wed Aug  6 20:01:41 2014
@@ -48,9 +48,9 @@ public abstract class GenericUDFBasePad 
       throw new UDFArgumentException(udfName + " requires three arguments. Found :"
 	  + arguments.length);
     }
-    converter1 = checkArguments(arguments, 0);
-    converter2 = checkArguments(arguments, 1);
-    converter3 = checkArguments(arguments, 2);
+    converter1 = checkTextArguments(arguments, 0);
+    converter2 = checkIntArguments(arguments, 1);
+    converter3 = checkTextArguments(arguments, 2);
     return PrimitiveObjectInspectorFactory.writableStringObjectInspector;
   }
 
@@ -91,31 +91,39 @@ public abstract class GenericUDFBasePad 
   protected abstract void performOp(byte[] data, byte[] txt, byte[] padTxt, int len, Text str,
       Text pad);
 
-  private Converter checkArguments(ObjectInspector[] arguments, int i)
+  // Convert input arguments to Text, if necessary.
+  private Converter checkTextArguments(ObjectInspector[] arguments, int i)
     throws UDFArgumentException {
     if (arguments[i].getCategory() != ObjectInspector.Category.PRIMITIVE) {
       throw new UDFArgumentTypeException(i + 1, "Only primitive type arguments are accepted but "
-	  + arguments[i].getTypeName() + " is passed. as  arguments");
+      + arguments[i].getTypeName() + " is passed. as  arguments");
+    }
+
+    Converter converter = ObjectInspectorConverters.getConverter((PrimitiveObjectInspector) arguments[i],
+          PrimitiveObjectInspectorFactory.writableStringObjectInspector);
+
+    return converter;
+  }
+
+  private Converter checkIntArguments(ObjectInspector[] arguments, int i)
+    throws UDFArgumentException {
+    if (arguments[i].getCategory() != ObjectInspector.Category.PRIMITIVE) {
+      throw new UDFArgumentTypeException(i + 1, "Only primitive type arguments are accepted but "
+      + arguments[i].getTypeName() + " is passed. as  arguments");
     }
     PrimitiveCategory inputType = ((PrimitiveObjectInspector) arguments[i]).getPrimitiveCategory();
     Converter converter;
     switch (inputType) {
-    case STRING:
-    case CHAR:
-    case VARCHAR:
-      converter = ObjectInspectorConverters.getConverter((PrimitiveObjectInspector) arguments[i],
-	  PrimitiveObjectInspectorFactory.writableStringObjectInspector);
-      break;
     case INT:
     case SHORT:
     case BYTE:
       converter = ObjectInspectorConverters.getConverter((PrimitiveObjectInspector) arguments[i],
-	  PrimitiveObjectInspectorFactory.writableIntObjectInspector);
+      PrimitiveObjectInspectorFactory.writableIntObjectInspector);
       break;
     default:
       throw new UDFArgumentTypeException(i + 1, udfName
-	  + " only takes STRING/CHAR/INT/SHORT/BYTE/VARCHAR types as " + (i + 1) + "-ths argument, got "
-	  + inputType);
+      + " only takes INT/SHORT/BYTE types as " + (i + 1) + "-ths argument, got "
+      + inputType);
     }
     return converter;
   }

Added: hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail0.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail0.q?rev=1616333&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail0.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail0.q Wed Aug  6 20:01:41 2014
@@ -0,0 +1,23 @@
+
+create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|';
+
+load data local inpath '../../data/files/over1k' into table over1k;
+
+-- Pass non-strings for the first and third arguments to test argument conversion
+-- Negative tests: LIST, MAP, STRUCT, UNION
+
+-- Integers
+select lpad(t, array(1,2,3), ' ') from over1k limit 5;
\ No newline at end of file

Added: hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail1.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail1.q?rev=1616333&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail1.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail1.q Wed Aug  6 20:01:41 2014
@@ -0,0 +1,23 @@
+
+create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|';
+
+load data local inpath '../../data/files/over1k' into table over1k;
+
+-- Pass non-strings for the first and third arguments to test argument conversion
+-- Negative tests: LIST, MAP, STRUCT, UNION
+
+-- Integers
+select lpad(array(1,2,3), 4, ' ') from over1k limit 5;
\ No newline at end of file

Added: hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail2.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail2.q?rev=1616333&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail2.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail2.q Wed Aug  6 20:01:41 2014
@@ -0,0 +1,23 @@
+
+create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|';
+
+load data local inpath '../../data/files/over1k' into table over1k;
+
+-- Pass non-strings for the first and third arguments to test argument conversion
+-- For negative testing, try LIST, MAP, STRUCT, UNION
+
+-- Integers
+select lpad({"key1":[1,2,3],"key2":[6,7,8]}, 4, ' ') from over1k limit 5;
\ No newline at end of file

Added: hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail3.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail3.q?rev=1616333&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail3.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/char_pad_convert_fail3.q Wed Aug  6 20:01:41 2014
@@ -0,0 +1,23 @@
+
+create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|';
+
+load data local inpath '../../data/files/over1k' into table over1k;
+
+-- Pass non-strings for the first and third arguments to test argument conversion
+-- For negative testing, try LIST, MAP, STRUCT, UNION
+
+-- Integers
+select lpad(create_union(0, 'Union'), 4, ' ') from over1k limit 5;
\ No newline at end of file

Added: hive/trunk/ql/src/test/queries/clientpositive/char_pad_convert.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/char_pad_convert.q?rev=1616333&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/char_pad_convert.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/char_pad_convert.q Wed Aug  6 20:01:41 2014
@@ -0,0 +1,70 @@
+
+create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|';
+
+load data local inpath '../../data/files/over1k' into table over1k;
+
+-- Pass non-strings for the first and third arguments to test argument conversion
+
+-- Integers
+select lpad(t, 4, ' '),
+       lpad(si, 2, ' '),
+       lpad(i, 9, 'z'),
+       lpad(b, 2, 'a') from over1k limit 5;
+
+select lpad("oh", 10, t),
+       lpad("my", 6, si),
+       lpad("other", 14, i),
+       lpad("one", 12, b) from over1k limit 5;
+
+-- Integers
+select rpad(t, 4, ' '),
+       rpad(si, 2, ' '),
+       rpad(i, 9, 'z'),
+       rpad(b, 2, 'a') from over1k limit 5;
+
+select rpad("oh", 10, t),
+       rpad("my", 6, si),
+       rpad("other", 14, i),
+       rpad("one", 12, b) from over1k limit 5;
+
+-- More
+select lpad(f, 4, ' '),
+       lpad(d, 2, ' '),
+       lpad(bo, 9, 'z'),
+       lpad(ts, 2, 'a'),
+       lpad(dec, 7, 'd'),
+       lpad(bin, 8, 'b') from over1k limit 5;
+
+select lpad("oh", 10, f),
+       lpad("my", 6, d),
+       lpad("other", 14, bo),
+       lpad("one", 12, ts),
+       lpad("two", 7, dec),
+       lpad("three", 8, bin) from over1k limit 5;
+
+select rpad(f, 4, ' '),
+       rpad(d, 2, ' '),
+       rpad(bo, 9, 'z'),
+       rpad(ts, 2, 'a'),
+       rpad(dec, 7, 'd'),
+       rpad(bin, 8, 'b') from over1k limit 5;
+
+select rpad("oh", 10, f),
+       rpad("my", 6, d),
+       rpad("other", 14, bo),
+       rpad("one", 12, ts),
+       rpad("two", 7, dec),
+       rpad("three", 8, bin) from over1k limit 5;
\ No newline at end of file

Added: hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail0.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail0.q.out?rev=1616333&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail0.q.out (added)
+++ hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail0.q.out Wed Aug  6 20:01:41 2014
@@ -0,0 +1,42 @@
+PREHOOK: query: create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|'
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|'
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@over1k
+PREHOOK: query: load data local inpath '../../data/files/over1k' into table over1k
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@over1k
+POSTHOOK: query: load data local inpath '../../data/files/over1k' into table over1k
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@over1k
+FAILED: SemanticException [Error 10016]: Line 7:29 Argument type mismatch '' '': Only primitive type arguments are accepted but array<int> is passed. as  arguments

Added: hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail1.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail1.q.out?rev=1616333&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail1.q.out (added)
+++ hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail1.q.out Wed Aug  6 20:01:41 2014
@@ -0,0 +1,42 @@
+PREHOOK: query: create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|'
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|'
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@over1k
+PREHOOK: query: load data local inpath '../../data/files/over1k' into table over1k
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@over1k
+POSTHOOK: query: load data local inpath '../../data/files/over1k' into table over1k
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@over1k
+FAILED: SemanticException [Error 10016]: Line 7:26 Argument type mismatch '4': Only primitive type arguments are accepted but array<int> is passed. as  arguments

Added: hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail2.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail2.q.out?rev=1616333&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail2.q.out (added)
+++ hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail2.q.out Wed Aug  6 20:01:41 2014
@@ -0,0 +1,42 @@
+PREHOOK: query: create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|'
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|'
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@over1k
+PREHOOK: query: load data local inpath '../../data/files/over1k' into table over1k
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@over1k
+POSTHOOK: query: load data local inpath '../../data/files/over1k' into table over1k
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@over1k
+FAILED: ParseException line 7:12 cannot recognize input near '{' '"key1"' ':' in function specification

Added: hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail3.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail3.q.out?rev=1616333&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail3.q.out (added)
+++ hive/trunk/ql/src/test/results/clientnegative/char_pad_convert_fail3.q.out Wed Aug  6 20:01:41 2014
@@ -0,0 +1,42 @@
+PREHOOK: query: create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|'
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|'
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@over1k
+PREHOOK: query: load data local inpath '../../data/files/over1k' into table over1k
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@over1k
+POSTHOOK: query: load data local inpath '../../data/files/over1k' into table over1k
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@over1k
+FAILED: SemanticException [Error 10016]: Line 7:38 Argument type mismatch '4': Only primitive type arguments are accepted but uniontype<string> is passed. as  arguments

Added: hive/trunk/ql/src/test/results/clientpositive/char_pad_convert.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/char_pad_convert.q.out?rev=1616333&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/char_pad_convert.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/char_pad_convert.q.out Wed Aug  6 20:01:41 2014
@@ -0,0 +1,219 @@
+PREHOOK: query: create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|'
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: create table over1k(
+           t tinyint,
+           si smallint,
+           i int,
+           b bigint,
+           f float,
+           d double,
+           bo boolean,
+           s string,
+           ts timestamp,
+           dec decimal(4,2),
+           bin binary)
+       row format delimited
+       fields terminated by '|'
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@over1k
+PREHOOK: query: load data local inpath '../../data/files/over1k' into table over1k
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@over1k
+POSTHOOK: query: load data local inpath '../../data/files/over1k' into table over1k
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@over1k
+PREHOOK: query: -- Pass non-strings for the first and third arguments to test argument conversion
+
+-- Integers
+select lpad(t, 4, ' '),
+       lpad(si, 2, ' '),
+       lpad(i, 9, 'z'),
+       lpad(b, 2, 'a') from over1k limit 5
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over1k
+#### A masked pattern was here ####
+POSTHOOK: query: -- Pass non-strings for the first and third arguments to test argument conversion
+
+-- Integers
+select lpad(t, 4, ' '),
+       lpad(si, 2, ' '),
+       lpad(i, 9, 'z'),
+       lpad(b, 2, 'a') from over1k limit 5
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over1k
+#### A masked pattern was here ####
+ 124	33	zzzz65664	42
+  19	44	zzzz65553	42
+  35	38	zzzz65619	42
+ 111	37	zzzz65656	42
+  54	31	zzzz65547	42
+PREHOOK: query: select lpad("oh", 10, t),
+       lpad("my", 6, si),
+       lpad("other", 14, i),
+       lpad("one", 12, b) from over1k limit 5
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over1k
+#### A masked pattern was here ####
+POSTHOOK: query: select lpad("oh", 10, t),
+       lpad("my", 6, si),
+       lpad("other", 14, i),
+       lpad("one", 12, b) from over1k limit 5
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over1k
+#### A masked pattern was here ####
+12412412oh	3363my	656646566other	429496743one
+19191919oh	4424my	655536555other	429496738one
+35353535oh	3873my	656196561other	429496745one
+11111111oh	3723my	656566565other	429496731one
+54545454oh	3173my	655476554other	429496740one
+PREHOOK: query: -- Integers
+select rpad(t, 4, ' '),
+       rpad(si, 2, ' '),
+       rpad(i, 9, 'z'),
+       rpad(b, 2, 'a') from over1k limit 5
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over1k
+#### A masked pattern was here ####
+POSTHOOK: query: -- Integers
+select rpad(t, 4, ' '),
+       rpad(si, 2, ' '),
+       rpad(i, 9, 'z'),
+       rpad(b, 2, 'a') from over1k limit 5
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over1k
+#### A masked pattern was here ####
+124 	33	65664zzzz	42
+19  	44	65553zzzz	42
+35  	38	65619zzzz	42
+111 	37	65656zzzz	42
+54  	31	65547zzzz	42
+PREHOOK: query: select rpad("oh", 10, t),
+       rpad("my", 6, si),
+       rpad("other", 14, i),
+       rpad("one", 12, b) from over1k limit 5
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over1k
+#### A masked pattern was here ####
+POSTHOOK: query: select rpad("oh", 10, t),
+       rpad("my", 6, si),
+       rpad("other", 14, i),
+       rpad("one", 12, b) from over1k limit 5
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over1k
+#### A masked pattern was here ####
+oh12412412	my3363	other656646566	one429496743
+oh19191919	my4424	other655536555	one429496738
+oh35353535	my3873	other656196561	one429496745
+oh11111111	my3723	other656566565	one429496731
+oh54545454	my3173	other655476554	one429496740
+PREHOOK: query: -- More
+select lpad(f, 4, ' '),
+       lpad(d, 2, ' '),
+       lpad(bo, 9, 'z'),
+       lpad(ts, 2, 'a'),
+       lpad(dec, 7, 'd'),
+       lpad(bin, 8, 'b') from over1k limit 5
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over1k
+#### A masked pattern was here ####
+POSTHOOK: query: -- More
+select lpad(f, 4, ' '),
+       lpad(d, 2, ' '),
+       lpad(bo, 9, 'z'),
+       lpad(ts, 2, 'a'),
+       lpad(dec, 7, 'd'),
+       lpad(bin, 8, 'b') from over1k limit 5
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over1k
+#### A masked pattern was here ####
+74.7	42	zzzzzTRUE	20	ddd45.4	yard du
+26.4	37	zzzzzTRUE	20	dd29.62	history
+96.9	18	zzzzFALSE	20	dd27.32	history
+13.0	34	zzzzFALSE	20	dd23.91	topolog
+60.7	2.	zzzzFALSE	20	dd90.21	geology
+PREHOOK: query: select lpad("oh", 10, f),
+       lpad("my", 6, d),
+       lpad("other", 14, bo),
+       lpad("one", 12, ts),
+       lpad("two", 7, dec),
+       lpad("three", 8, bin) from over1k limit 5
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over1k
+#### A masked pattern was here ####
+POSTHOOK: query: select lpad("oh", 10, f),
+       lpad("my", 6, d),
+       lpad("other", 14, bo),
+       lpad("one", 12, ts),
+       lpad("two", 7, dec),
+       lpad("three", 8, bin) from over1k limit 5
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over1k
+#### A masked pattern was here ####
+74.7274.oh	42.4my	TRUETRUETother	2013-03-0one	45.4two	yathree
+26.4326.oh	37.7my	TRUETRUETother	2013-03-0one	29.6two	hithree
+96.9196.oh	18.8my	FALSEFALSother	2013-03-0one	27.3two	hithree
+13.0113.oh	34.9my	FALSEFALSother	2013-03-0one	23.9two	tothree
+60.7160.oh	2.09my	FALSEFALSother	2013-03-0one	90.2two	gethree
+PREHOOK: query: select rpad(f, 4, ' '),
+       rpad(d, 2, ' '),
+       rpad(bo, 9, 'z'),
+       rpad(ts, 2, 'a'),
+       rpad(dec, 7, 'd'),
+       rpad(bin, 8, 'b') from over1k limit 5
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over1k
+#### A masked pattern was here ####
+POSTHOOK: query: select rpad(f, 4, ' '),
+       rpad(d, 2, ' '),
+       rpad(bo, 9, 'z'),
+       rpad(ts, 2, 'a'),
+       rpad(dec, 7, 'd'),
+       rpad(bin, 8, 'b') from over1k limit 5
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over1k
+#### A masked pattern was here ####
+74.7	42	TRUEzzzzz	20	45.4ddd	yard du
+26.4	37	TRUEzzzzz	20	29.62dd	history
+96.9	18	FALSEzzzz	20	27.32dd	history
+13.0	34	FALSEzzzz	20	23.91dd	topolog
+60.7	2.	FALSEzzzz	20	90.21dd	geology
+PREHOOK: query: select rpad("oh", 10, f),
+       rpad("my", 6, d),
+       rpad("other", 14, bo),
+       rpad("one", 12, ts),
+       rpad("two", 7, dec),
+       rpad("three", 8, bin) from over1k limit 5
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over1k
+#### A masked pattern was here ####
+POSTHOOK: query: select rpad("oh", 10, f),
+       rpad("my", 6, d),
+       rpad("other", 14, bo),
+       rpad("one", 12, ts),
+       rpad("two", 7, dec),
+       rpad("three", 8, bin) from over1k limit 5
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over1k
+#### A masked pattern was here ####
+oh74.7274.	my42.4	otherTRUETRUET	one2013-03-0	two45.4	threeya
+oh26.4326.	my37.7	otherTRUETRUET	one2013-03-0	two29.6	threehi
+oh96.9196.	my18.8	otherFALSEFALS	one2013-03-0	two27.3	threehi
+oh13.0113.	my34.9	otherFALSEFALS	one2013-03-0	two23.9	threeto
+oh60.7160.	my2.09	otherFALSEFALS	one2013-03-0	two90.2	threege