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 2015/05/31 09:08:13 UTC

hive git commit: HIVE-10834 : Support First_value()/last_value() over x preceding and y preceding windowing (Aihua Xu via Ashutosh Chauhan)

Repository: hive
Updated Branches:
  refs/heads/master cfab025a1 -> 6d413db8b


HIVE-10834 : Support First_value()/last_value() over x preceding and y preceding windowing (Aihua Xu via Ashutosh Chauhan)

Signed-off-by: Ashutosh Chauhan <ha...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/6d413db8
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/6d413db8
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/6d413db8

Branch: refs/heads/master
Commit: 6d413db8bb8a26c92daaa9ee76dea99d54250ca9
Parents: cfab025
Author: Aihua Xu <ai...@gmail.com>
Authored: Sat May 30 13:47:00 2015 -0700
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Sun May 31 00:07:41 2015 -0700

----------------------------------------------------------------------
 .../ql/udf/generic/GenericUDAFFirstValue.java   |  41 +-
 .../ql/udf/generic/GenericUDAFLastValue.java    |  33 +-
 .../generic/GenericUDAFStreamingEvaluator.java  |  22 -
 .../clientpositive/windowing_windowspec2.q      |  12 +
 .../clientpositive/windowing_windowspec2.q.out  | 868 +++++++++++++++++++
 5 files changed, 926 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/6d413db8/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFFirstValue.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFFirstValue.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFFirstValue.java
index dd9eaf3..1bed46b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFFirstValue.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFFirstValue.java
@@ -154,9 +154,7 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
 
     @Override
     public GenericUDAFEvaluator getWindowingEvaluator(WindowFrameDef wFrmDef) {
-      BoundaryDef start = wFrmDef.getStart();
-      BoundaryDef end = wFrmDef.getEnd();
-      return new FirstValStreamingFixedWindow(this, start.getAmt(), end.getAmt());
+      return new FirstValStreamingFixedWindow(this, wFrmDef);
     }
 
   }
@@ -180,7 +178,7 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
 
       public State(AggregationBuffer buf) {
         super(buf);
-        valueChain = new ArrayDeque<ValIndexPair>(numPreceding + numFollowing + 1);
+        valueChain = new ArrayDeque<ValIndexPair>(wFrameDef.isStartUnbounded() ? 1 : wFrameDef.getWindowSize());
       }
 
       @Override
@@ -192,7 +190,7 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
         if (underlying == -1) {
           return -1;
         }
-        if (numPreceding == BoundarySpec.UNBOUNDED_AMOUNT) {
+        if (wFrameDef.isStartUnbounded()) {
           return -1;
         }
         /*
@@ -201,7 +199,7 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
          * underlying * wdwSz sz of maxChain = sz of underlying * wdwSz
          */
 
-        int wdwSz = numPreceding + numFollowing + 1;
+        int wdwSz = wFrameDef.getWindowSize();
         return underlying + (underlying * wdwSz) + (underlying * wdwSz) + (3
                                                                            * JavaDataModel.PRIMITIVES1);
       }
@@ -212,9 +210,8 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
       }
     }
 
-    public FirstValStreamingFixedWindow(GenericUDAFEvaluator wrappedEval, int numPreceding,
-      int numFollowing) {
-      super(wrappedEval, numPreceding, numFollowing);
+    public FirstValStreamingFixedWindow(GenericUDAFEvaluator wrappedEval, WindowFrameDef wFrameDef) {
+      super(wrappedEval, wFrameDef);
     }
 
     @Override
@@ -243,6 +240,10 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
        */
       if (fb.firstRow) {
         wrappedEval.iterate(fb, parameters);
+        // We need to insert 'null' before processing first row for the case: X preceding and y preceding
+        for (int i = wFrameDef.getEnd().getRelativeOffset(); i < 0; i++) {
+          s.results.add(null);
+        }
       }
 
       Object o = ObjectInspectorUtils.copyToStandardObject(parameters[0], inputOI(),
@@ -252,7 +253,7 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
        * add row to chain. except in case of UNB preceding: - only 1 firstVal
        * needs to be tracked.
        */
-      if (numPreceding != BoundarySpec.UNBOUNDED_AMOUNT || s.valueChain.isEmpty()) {
+      if (!wFrameDef.isStartUnbounded() || s.valueChain.isEmpty()) {
         /*
          * add value to chain if it is not null or if skipNulls is false.
          */
@@ -261,7 +262,7 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
         }
       }
 
-      if (s.numRows >= numFollowing) {
+      if (s.numRows >= wFrameDef.getEnd().getRelativeOffset()) {
         /*
          * if skipNulls is true and there are no rows in valueChain => all rows
          * in partition are null so far; so add null in o/p
@@ -276,8 +277,8 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
 
       if (s.valueChain.size() > 0) {
         int fIdx = (Integer) s.valueChain.getFirst().idx;
-        if (numPreceding != BoundarySpec.UNBOUNDED_AMOUNT
-            && s.numRows > fIdx + numPreceding + numFollowing) {
+        if (!wFrameDef.isStartUnbounded()
+            && s.numRows >= fIdx +  wFrameDef.getWindowSize()) {
           s.valueChain.removeFirst();
         }
       }
@@ -288,13 +289,16 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
       State s = (State) agg;
       ValIndexPair r = s.valueChain.size() == 0 ? null : s.valueChain.getFirst();
 
-      for (int i = 0; i < numFollowing; i++) {
+      // After all the rows are processed, continue to generate results for the rows that results haven't generated.
+      // For the case: X following and Y following, process first Y-X results and then insert X nulls.
+      // For the case X preceding and Y following, process Y results.
+      for (int i = Math.max(0, wFrameDef.getStart().getRelativeOffset()); i < wFrameDef.getEnd().getRelativeOffset(); i++) {
         s.results.add(r == null ? null : r.val);
         s.numRows++;
         if (r != null) {
           int fIdx = (Integer) r.idx;
-          if (numPreceding != BoundarySpec.UNBOUNDED_AMOUNT
-              && s.numRows > fIdx + numPreceding + numFollowing
+          if (!wFrameDef.isStartUnbounded()
+              && s.numRows + i >= fIdx + wFrameDef.getWindowSize()
               && !s.valueChain.isEmpty()) {
             s.valueChain.removeFirst();
             r = !s.valueChain.isEmpty() ? s.valueChain.getFirst() : r;
@@ -302,6 +306,11 @@ public class GenericUDAFFirstValue extends AbstractGenericUDAFResolver {
         }
       }
 
+      for (int i = 0; i < wFrameDef.getStart().getRelativeOffset(); i++) {
+        s.results.add(null);
+        s.numRows++;
+      }
+
       return null;
     }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/6d413db8/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFLastValue.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFLastValue.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFLastValue.java
index 3ed6de7..aa98cc9 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFLastValue.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFLastValue.java
@@ -141,9 +141,7 @@ public class GenericUDAFLastValue extends AbstractGenericUDAFResolver {
 
     @Override
     public GenericUDAFEvaluator getWindowingEvaluator(WindowFrameDef wFrmDef) {
-      BoundaryDef start = wFrmDef.getStart();
-      BoundaryDef end = wFrmDef.getEnd();
-      return new LastValStreamingFixedWindow(this, start.getAmt(), end.getAmt());
+      return new LastValStreamingFixedWindow(this, wFrmDef);
     }
   }
 
@@ -179,9 +177,8 @@ public class GenericUDAFLastValue extends AbstractGenericUDAFResolver {
       }
     }
 
-    public LastValStreamingFixedWindow(GenericUDAFEvaluator wrappedEval, int numPreceding,
-      int numFollowing) {
-      super(wrappedEval, numPreceding, numFollowing);
+    public LastValStreamingFixedWindow(GenericUDAFEvaluator wrappedEval, WindowFrameDef wFrameDef) {
+      super(wrappedEval, wFrameDef);
     }
 
     @Override
@@ -210,6 +207,11 @@ public class GenericUDAFLastValue extends AbstractGenericUDAFResolver {
        */
       if (lb.firstRow) {
         wrappedEval.iterate(lb, parameters);
+
+        // We need to insert 'null' before processing first row for the case: X preceding and y preceding
+        for (int i = wFrameDef.getEnd().getRelativeOffset(); i < 0; i++) {
+          s.results.add(null);
+        }
       }
 
       Object o = ObjectInspectorUtils.copyToStandardObject(parameters[0], inputOI(),
@@ -219,14 +221,14 @@ public class GenericUDAFLastValue extends AbstractGenericUDAFResolver {
         s.lastValue = o;
         s.lastIdx = s.numRows;
       } else if (lb.skipNulls && s.lastIdx != -1) {
-        if (numPreceding != BoundarySpec.UNBOUNDED_AMOUNT
-            && s.numRows > s.lastIdx + numPreceding + numFollowing) {
+        if (!wFrameDef.isStartUnbounded()
+            && s.numRows >= s.lastIdx + wFrameDef.getWindowSize()) {
           s.lastValue = null;
           s.lastIdx = -1;
         }
       }
 
-      if (s.numRows >= (numFollowing)) {
+      if (s.numRows >= wFrameDef.getEnd().getRelativeOffset()) {
         s.results.add(s.lastValue);
       }
       s.numRows++;
@@ -238,16 +240,23 @@ public class GenericUDAFLastValue extends AbstractGenericUDAFResolver {
       LastValueBuffer lb = (LastValueBuffer) s.wrappedBuf;
 
       if (lb.skipNulls && s.lastIdx != -1) {
-        if (numPreceding != BoundarySpec.UNBOUNDED_AMOUNT
-            && s.numRows > s.lastIdx + numPreceding + numFollowing) {
+        if (!wFrameDef.isStartUnbounded()
+            && s.numRows >= s.lastIdx + wFrameDef.getWindowSize()) {
           s.lastValue = null;
           s.lastIdx = -1;
         }
       }
 
-      for (int i = 0; i < numFollowing; i++) {
+      // After all the rows are processed, continue to generate results for the rows that results haven't generated.
+      // For the case: X following and Y following, process first Y-X results and then insert X nulls.
+      // For the case X preceding and Y following, process Y results.
+      for (int i = Math.max(0, wFrameDef.getStart().getRelativeOffset()); i < wFrameDef.getEnd().getRelativeOffset(); i++) {
         s.results.add(s.lastValue);
       }
+      for (int i = 0; i < wFrameDef.getStart().getRelativeOffset(); i++) {
+        s.results.add(null);
+        s.numRows++;
+      }
 
       return null;
     }

http://git-wip-us.apache.org/repos/asf/hive/blob/6d413db8/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFStreamingEvaluator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFStreamingEvaluator.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFStreamingEvaluator.java
index f27d066..3c76404 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFStreamingEvaluator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFStreamingEvaluator.java
@@ -34,33 +34,11 @@ public abstract class GenericUDAFStreamingEvaluator<T1> extends
   protected final GenericUDAFEvaluator wrappedEval;
   protected final WindowFrameDef wFrameDef;
 
-  protected final int numPreceding;
-  protected final int numFollowing;
-
-  /**
-   * @param wrappedEval
-   * @param numPreceding
-   * @param numFollowing
-   * @deprecated
-   */
-  public GenericUDAFStreamingEvaluator(GenericUDAFEvaluator wrappedEval,
-      int numPreceding, int numFollowing) {
-    this.wrappedEval = wrappedEval;
-    this.wFrameDef = null;
-    this.mode = wrappedEval.mode;
-
-    this.numPreceding = numPreceding;
-    this.numFollowing = numFollowing;
-  }
-
   public GenericUDAFStreamingEvaluator(GenericUDAFEvaluator wrappedEval,
       WindowFrameDef wFrameDef) {
     this.wrappedEval = wrappedEval;
     this.wFrameDef = wFrameDef;
     this.mode = wrappedEval.mode;
-
-    this.numPreceding = -1;
-    this.numFollowing = -1;
   }
 
   class StreamingState extends AbstractAggregationBuffer {

http://git-wip-us.apache.org/repos/asf/hive/blob/6d413db8/ql/src/test/queries/clientpositive/windowing_windowspec2.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/windowing_windowspec2.q b/ql/src/test/queries/clientpositive/windowing_windowspec2.q
index e77c4eb..e270a86 100644
--- a/ql/src/test/queries/clientpositive/windowing_windowspec2.q
+++ b/ql/src/test/queries/clientpositive/windowing_windowspec2.q
@@ -40,3 +40,15 @@ select ts, f, min(f) over (partition by ts order by t rows between 2 preceding a
 select ts, f, min(f) over (partition by ts order by t rows between unbounded preceding and 1 preceding) from over10k limit 100;
 select ts, f, min(f) over (partition by ts order by t rows between 1 following and 2 following) from over10k limit 100;
 select ts, f, min(f) over (partition by ts order by t rows between unbounded preceding and 1 following) from over10k limit 100;
+
+-- first_value
+select ts, f, first_value(f) over (partition by ts order by f rows between 2 preceding and 1 preceding) from over10k limit 100;
+select ts, f, first_value(f) over (partition by ts order by f rows between unbounded preceding and 1 preceding) from over10k limit 100;
+select ts, f, first_value(f) over (partition by ts order by f rows between 1 following and 2 following) from over10k limit 100;
+select ts, f, first_value(f) over (partition by ts order by f rows between unbounded preceding and 1 following) from over10k limit 100;
+
+-- last_value
+select ts, f, last_value(f) over (partition by ts order by f rows between 2 preceding and 1 preceding) from over10k limit 100;
+select ts, f, last_value(f) over (partition by ts order by f rows between unbounded preceding and 1 preceding) from over10k limit 100;
+select ts, f, last_value(f) over (partition by ts order by f rows between 1 following and 2 following) from over10k limit 100;
+select ts, f, last_value(f) over (partition by ts order by f rows between unbounded preceding and 1 following) from over10k limit 100;

http://git-wip-us.apache.org/repos/asf/hive/blob/6d413db8/ql/src/test/results/clientpositive/windowing_windowspec2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/windowing_windowspec2.q.out b/ql/src/test/results/clientpositive/windowing_windowspec2.q.out
index b187f35..a318398 100644
--- a/ql/src/test/results/clientpositive/windowing_windowspec2.q.out
+++ b/ql/src/test/results/clientpositive/windowing_windowspec2.q.out
@@ -1780,3 +1780,871 @@ POSTHOOK: Input: default@over10k
 2013-03-01 09:11:58.703072	88.83	0.48
 2013-03-01 09:11:58.703072	9.0	0.48
 2013-03-01 09:11:58.703072	54.1	0.48
+PREHOOK: query: -- first_value
+select ts, f, first_value(f) over (partition by ts order by f rows between 2 preceding and 1 preceding) from over10k limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over10k
+#### A masked pattern was here ####
+POSTHOOK: query: -- first_value
+select ts, f, first_value(f) over (partition by ts order by f rows between 2 preceding and 1 preceding) from over10k limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over10k
+#### A masked pattern was here ####
+2013-03-01 09:11:58.70307	3.17	NULL
+2013-03-01 09:11:58.70307	10.89	3.17
+2013-03-01 09:11:58.70307	14.54	3.17
+2013-03-01 09:11:58.70307	14.78	10.89
+2013-03-01 09:11:58.70307	17.85	14.54
+2013-03-01 09:11:58.70307	20.61	14.78
+2013-03-01 09:11:58.70307	28.69	17.85
+2013-03-01 09:11:58.70307	29.22	20.61
+2013-03-01 09:11:58.70307	31.17	28.69
+2013-03-01 09:11:58.70307	38.35	29.22
+2013-03-01 09:11:58.70307	38.61	31.17
+2013-03-01 09:11:58.70307	39.48	38.35
+2013-03-01 09:11:58.70307	40.54	38.61
+2013-03-01 09:11:58.70307	41.6	39.48
+2013-03-01 09:11:58.70307	46.08	40.54
+2013-03-01 09:11:58.70307	54.36	41.6
+2013-03-01 09:11:58.70307	56.94	46.08
+2013-03-01 09:11:58.70307	64.96	54.36
+2013-03-01 09:11:58.70307	73.52	56.94
+2013-03-01 09:11:58.70307	78.58	64.96
+2013-03-01 09:11:58.70307	81.41	73.52
+2013-03-01 09:11:58.70307	84.71	78.58
+2013-03-01 09:11:58.70307	87.43	81.41
+2013-03-01 09:11:58.70307	91.36	84.71
+2013-03-01 09:11:58.70307	92.96	87.43
+2013-03-01 09:11:58.70307	95.04	91.36
+2013-03-01 09:11:58.703071	0.83	NULL
+2013-03-01 09:11:58.703071	1.99	0.83
+2013-03-01 09:11:58.703071	3.73	0.83
+2013-03-01 09:11:58.703071	8.86	1.99
+2013-03-01 09:11:58.703071	10.62	3.73
+2013-03-01 09:11:58.703071	11.32	8.86
+2013-03-01 09:11:58.703071	12.83	10.62
+2013-03-01 09:11:58.703071	14.7	11.32
+2013-03-01 09:11:58.703071	14.96	12.83
+2013-03-01 09:11:58.703071	17.58	14.7
+2013-03-01 09:11:58.703071	19.1	14.96
+2013-03-01 09:11:58.703071	21.01	17.58
+2013-03-01 09:11:58.703071	26.95	19.1
+2013-03-01 09:11:58.703071	27.23	21.01
+2013-03-01 09:11:58.703071	29.07	26.95
+2013-03-01 09:11:58.703071	29.71	27.23
+2013-03-01 09:11:58.703071	31.84	29.07
+2013-03-01 09:11:58.703071	31.94	29.71
+2013-03-01 09:11:58.703071	35.32	31.84
+2013-03-01 09:11:58.703071	37.32	31.94
+2013-03-01 09:11:58.703071	38.5	35.32
+2013-03-01 09:11:58.703071	42.08	37.32
+2013-03-01 09:11:58.703071	44.3	38.5
+2013-03-01 09:11:58.703071	44.66	42.08
+2013-03-01 09:11:58.703071	46.84	44.3
+2013-03-01 09:11:58.703071	48.89	44.66
+2013-03-01 09:11:58.703071	49.64	46.84
+2013-03-01 09:11:58.703071	50.28	48.89
+2013-03-01 09:11:58.703071	52.09	49.64
+2013-03-01 09:11:58.703071	53.26	50.28
+2013-03-01 09:11:58.703071	54.09	52.09
+2013-03-01 09:11:58.703071	56.45	53.26
+2013-03-01 09:11:58.703071	56.76	54.09
+2013-03-01 09:11:58.703071	61.41	56.45
+2013-03-01 09:11:58.703071	61.88	56.76
+2013-03-01 09:11:58.703071	63.03	61.41
+2013-03-01 09:11:58.703071	64.55	61.88
+2013-03-01 09:11:58.703071	68.62	63.03
+2013-03-01 09:11:58.703071	76.13	64.55
+2013-03-01 09:11:58.703071	79.05	68.62
+2013-03-01 09:11:58.703071	80.43	76.13
+2013-03-01 09:11:58.703071	81.41	79.05
+2013-03-01 09:11:58.703071	82.85	80.43
+2013-03-01 09:11:58.703071	83.98	81.41
+2013-03-01 09:11:58.703071	84.21	82.85
+2013-03-01 09:11:58.703071	85.55	83.98
+2013-03-01 09:11:58.703071	87.93	84.21
+2013-03-01 09:11:58.703071	88.93	85.55
+2013-03-01 09:11:58.703071	94.27	87.93
+2013-03-01 09:11:58.703071	99.45	88.93
+2013-03-01 09:11:58.703072	0.36	NULL
+2013-03-01 09:11:58.703072	0.48	0.36
+2013-03-01 09:11:58.703072	0.79	0.36
+2013-03-01 09:11:58.703072	1.27	0.48
+2013-03-01 09:11:58.703072	4.48	0.79
+2013-03-01 09:11:58.703072	9.0	1.27
+2013-03-01 09:11:58.703072	23.27	4.48
+2013-03-01 09:11:58.703072	25.13	9.0
+2013-03-01 09:11:58.703072	25.34	23.27
+2013-03-01 09:11:58.703072	25.91	25.13
+2013-03-01 09:11:58.703072	29.01	25.34
+2013-03-01 09:11:58.703072	30.47	25.91
+2013-03-01 09:11:58.703072	37.95	29.01
+2013-03-01 09:11:58.703072	39.3	30.47
+2013-03-01 09:11:58.703072	45.91	37.95
+2013-03-01 09:11:58.703072	52.44	39.3
+2013-03-01 09:11:58.703072	54.1	45.91
+2013-03-01 09:11:58.703072	56.7	52.44
+2013-03-01 09:11:58.703072	58.77	54.1
+2013-03-01 09:11:58.703072	62.09	56.7
+2013-03-01 09:11:58.703072	68.2	58.77
+2013-03-01 09:11:58.703072	71.68	62.09
+2013-03-01 09:11:58.703072	79.46	68.2
+2013-03-01 09:11:58.703072	80.02	71.68
+PREHOOK: query: select ts, f, first_value(f) over (partition by ts order by f rows between unbounded preceding and 1 preceding) from over10k limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over10k
+#### A masked pattern was here ####
+POSTHOOK: query: select ts, f, first_value(f) over (partition by ts order by f rows between unbounded preceding and 1 preceding) from over10k limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over10k
+#### A masked pattern was here ####
+2013-03-01 09:11:58.70307	3.17	NULL
+2013-03-01 09:11:58.70307	10.89	3.17
+2013-03-01 09:11:58.70307	14.54	3.17
+2013-03-01 09:11:58.70307	14.78	3.17
+2013-03-01 09:11:58.70307	17.85	3.17
+2013-03-01 09:11:58.70307	20.61	3.17
+2013-03-01 09:11:58.70307	28.69	3.17
+2013-03-01 09:11:58.70307	29.22	3.17
+2013-03-01 09:11:58.70307	31.17	3.17
+2013-03-01 09:11:58.70307	38.35	3.17
+2013-03-01 09:11:58.70307	38.61	3.17
+2013-03-01 09:11:58.70307	39.48	3.17
+2013-03-01 09:11:58.70307	40.54	3.17
+2013-03-01 09:11:58.70307	41.6	3.17
+2013-03-01 09:11:58.70307	46.08	3.17
+2013-03-01 09:11:58.70307	54.36	3.17
+2013-03-01 09:11:58.70307	56.94	3.17
+2013-03-01 09:11:58.70307	64.96	3.17
+2013-03-01 09:11:58.70307	73.52	3.17
+2013-03-01 09:11:58.70307	78.58	3.17
+2013-03-01 09:11:58.70307	81.41	3.17
+2013-03-01 09:11:58.70307	84.71	3.17
+2013-03-01 09:11:58.70307	87.43	3.17
+2013-03-01 09:11:58.70307	91.36	3.17
+2013-03-01 09:11:58.70307	92.96	3.17
+2013-03-01 09:11:58.70307	95.04	3.17
+2013-03-01 09:11:58.703071	0.83	NULL
+2013-03-01 09:11:58.703071	1.99	0.83
+2013-03-01 09:11:58.703071	3.73	0.83
+2013-03-01 09:11:58.703071	8.86	0.83
+2013-03-01 09:11:58.703071	10.62	0.83
+2013-03-01 09:11:58.703071	11.32	0.83
+2013-03-01 09:11:58.703071	12.83	0.83
+2013-03-01 09:11:58.703071	14.7	0.83
+2013-03-01 09:11:58.703071	14.96	0.83
+2013-03-01 09:11:58.703071	17.58	0.83
+2013-03-01 09:11:58.703071	19.1	0.83
+2013-03-01 09:11:58.703071	21.01	0.83
+2013-03-01 09:11:58.703071	26.95	0.83
+2013-03-01 09:11:58.703071	27.23	0.83
+2013-03-01 09:11:58.703071	29.07	0.83
+2013-03-01 09:11:58.703071	29.71	0.83
+2013-03-01 09:11:58.703071	31.84	0.83
+2013-03-01 09:11:58.703071	31.94	0.83
+2013-03-01 09:11:58.703071	35.32	0.83
+2013-03-01 09:11:58.703071	37.32	0.83
+2013-03-01 09:11:58.703071	38.5	0.83
+2013-03-01 09:11:58.703071	42.08	0.83
+2013-03-01 09:11:58.703071	44.3	0.83
+2013-03-01 09:11:58.703071	44.66	0.83
+2013-03-01 09:11:58.703071	46.84	0.83
+2013-03-01 09:11:58.703071	48.89	0.83
+2013-03-01 09:11:58.703071	49.64	0.83
+2013-03-01 09:11:58.703071	50.28	0.83
+2013-03-01 09:11:58.703071	52.09	0.83
+2013-03-01 09:11:58.703071	53.26	0.83
+2013-03-01 09:11:58.703071	54.09	0.83
+2013-03-01 09:11:58.703071	56.45	0.83
+2013-03-01 09:11:58.703071	56.76	0.83
+2013-03-01 09:11:58.703071	61.41	0.83
+2013-03-01 09:11:58.703071	61.88	0.83
+2013-03-01 09:11:58.703071	63.03	0.83
+2013-03-01 09:11:58.703071	64.55	0.83
+2013-03-01 09:11:58.703071	68.62	0.83
+2013-03-01 09:11:58.703071	76.13	0.83
+2013-03-01 09:11:58.703071	79.05	0.83
+2013-03-01 09:11:58.703071	80.43	0.83
+2013-03-01 09:11:58.703071	81.41	0.83
+2013-03-01 09:11:58.703071	82.85	0.83
+2013-03-01 09:11:58.703071	83.98	0.83
+2013-03-01 09:11:58.703071	84.21	0.83
+2013-03-01 09:11:58.703071	85.55	0.83
+2013-03-01 09:11:58.703071	87.93	0.83
+2013-03-01 09:11:58.703071	88.93	0.83
+2013-03-01 09:11:58.703071	94.27	0.83
+2013-03-01 09:11:58.703071	99.45	0.83
+2013-03-01 09:11:58.703072	0.36	NULL
+2013-03-01 09:11:58.703072	0.48	0.36
+2013-03-01 09:11:58.703072	0.79	0.36
+2013-03-01 09:11:58.703072	1.27	0.36
+2013-03-01 09:11:58.703072	4.48	0.36
+2013-03-01 09:11:58.703072	9.0	0.36
+2013-03-01 09:11:58.703072	23.27	0.36
+2013-03-01 09:11:58.703072	25.13	0.36
+2013-03-01 09:11:58.703072	25.34	0.36
+2013-03-01 09:11:58.703072	25.91	0.36
+2013-03-01 09:11:58.703072	29.01	0.36
+2013-03-01 09:11:58.703072	30.47	0.36
+2013-03-01 09:11:58.703072	37.95	0.36
+2013-03-01 09:11:58.703072	39.3	0.36
+2013-03-01 09:11:58.703072	45.91	0.36
+2013-03-01 09:11:58.703072	52.44	0.36
+2013-03-01 09:11:58.703072	54.1	0.36
+2013-03-01 09:11:58.703072	56.7	0.36
+2013-03-01 09:11:58.703072	58.77	0.36
+2013-03-01 09:11:58.703072	62.09	0.36
+2013-03-01 09:11:58.703072	68.2	0.36
+2013-03-01 09:11:58.703072	71.68	0.36
+2013-03-01 09:11:58.703072	79.46	0.36
+2013-03-01 09:11:58.703072	80.02	0.36
+PREHOOK: query: select ts, f, first_value(f) over (partition by ts order by f rows between 1 following and 2 following) from over10k limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over10k
+#### A masked pattern was here ####
+POSTHOOK: query: select ts, f, first_value(f) over (partition by ts order by f rows between 1 following and 2 following) from over10k limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over10k
+#### A masked pattern was here ####
+2013-03-01 09:11:58.70307	3.17	10.89
+2013-03-01 09:11:58.70307	10.89	14.54
+2013-03-01 09:11:58.70307	14.54	14.78
+2013-03-01 09:11:58.70307	14.78	17.85
+2013-03-01 09:11:58.70307	17.85	20.61
+2013-03-01 09:11:58.70307	20.61	28.69
+2013-03-01 09:11:58.70307	28.69	29.22
+2013-03-01 09:11:58.70307	29.22	31.17
+2013-03-01 09:11:58.70307	31.17	38.35
+2013-03-01 09:11:58.70307	38.35	38.61
+2013-03-01 09:11:58.70307	38.61	39.48
+2013-03-01 09:11:58.70307	39.48	40.54
+2013-03-01 09:11:58.70307	40.54	41.6
+2013-03-01 09:11:58.70307	41.6	46.08
+2013-03-01 09:11:58.70307	46.08	54.36
+2013-03-01 09:11:58.70307	54.36	56.94
+2013-03-01 09:11:58.70307	56.94	64.96
+2013-03-01 09:11:58.70307	64.96	73.52
+2013-03-01 09:11:58.70307	73.52	78.58
+2013-03-01 09:11:58.70307	78.58	81.41
+2013-03-01 09:11:58.70307	81.41	84.71
+2013-03-01 09:11:58.70307	84.71	87.43
+2013-03-01 09:11:58.70307	87.43	91.36
+2013-03-01 09:11:58.70307	91.36	92.96
+2013-03-01 09:11:58.70307	92.96	95.04
+2013-03-01 09:11:58.70307	95.04	NULL
+2013-03-01 09:11:58.703071	0.83	1.99
+2013-03-01 09:11:58.703071	1.99	3.73
+2013-03-01 09:11:58.703071	3.73	8.86
+2013-03-01 09:11:58.703071	8.86	10.62
+2013-03-01 09:11:58.703071	10.62	11.32
+2013-03-01 09:11:58.703071	11.32	12.83
+2013-03-01 09:11:58.703071	12.83	14.7
+2013-03-01 09:11:58.703071	14.7	14.96
+2013-03-01 09:11:58.703071	14.96	17.58
+2013-03-01 09:11:58.703071	17.58	19.1
+2013-03-01 09:11:58.703071	19.1	21.01
+2013-03-01 09:11:58.703071	21.01	26.95
+2013-03-01 09:11:58.703071	26.95	27.23
+2013-03-01 09:11:58.703071	27.23	29.07
+2013-03-01 09:11:58.703071	29.07	29.71
+2013-03-01 09:11:58.703071	29.71	31.84
+2013-03-01 09:11:58.703071	31.84	31.94
+2013-03-01 09:11:58.703071	31.94	35.32
+2013-03-01 09:11:58.703071	35.32	37.32
+2013-03-01 09:11:58.703071	37.32	38.5
+2013-03-01 09:11:58.703071	38.5	42.08
+2013-03-01 09:11:58.703071	42.08	44.3
+2013-03-01 09:11:58.703071	44.3	44.66
+2013-03-01 09:11:58.703071	44.66	46.84
+2013-03-01 09:11:58.703071	46.84	48.89
+2013-03-01 09:11:58.703071	48.89	49.64
+2013-03-01 09:11:58.703071	49.64	50.28
+2013-03-01 09:11:58.703071	50.28	52.09
+2013-03-01 09:11:58.703071	52.09	53.26
+2013-03-01 09:11:58.703071	53.26	54.09
+2013-03-01 09:11:58.703071	54.09	56.45
+2013-03-01 09:11:58.703071	56.45	56.76
+2013-03-01 09:11:58.703071	56.76	61.41
+2013-03-01 09:11:58.703071	61.41	61.88
+2013-03-01 09:11:58.703071	61.88	63.03
+2013-03-01 09:11:58.703071	63.03	64.55
+2013-03-01 09:11:58.703071	64.55	68.62
+2013-03-01 09:11:58.703071	68.62	76.13
+2013-03-01 09:11:58.703071	76.13	79.05
+2013-03-01 09:11:58.703071	79.05	80.43
+2013-03-01 09:11:58.703071	80.43	81.41
+2013-03-01 09:11:58.703071	81.41	82.85
+2013-03-01 09:11:58.703071	82.85	83.98
+2013-03-01 09:11:58.703071	83.98	84.21
+2013-03-01 09:11:58.703071	84.21	85.55
+2013-03-01 09:11:58.703071	85.55	87.93
+2013-03-01 09:11:58.703071	87.93	88.93
+2013-03-01 09:11:58.703071	88.93	94.27
+2013-03-01 09:11:58.703071	94.27	99.45
+2013-03-01 09:11:58.703071	99.45	NULL
+2013-03-01 09:11:58.703072	0.36	0.48
+2013-03-01 09:11:58.703072	0.48	0.79
+2013-03-01 09:11:58.703072	0.79	1.27
+2013-03-01 09:11:58.703072	1.27	4.48
+2013-03-01 09:11:58.703072	4.48	9.0
+2013-03-01 09:11:58.703072	9.0	23.27
+2013-03-01 09:11:58.703072	23.27	25.13
+2013-03-01 09:11:58.703072	25.13	25.34
+2013-03-01 09:11:58.703072	25.34	25.91
+2013-03-01 09:11:58.703072	25.91	29.01
+2013-03-01 09:11:58.703072	29.01	30.47
+2013-03-01 09:11:58.703072	30.47	37.95
+2013-03-01 09:11:58.703072	37.95	39.3
+2013-03-01 09:11:58.703072	39.3	45.91
+2013-03-01 09:11:58.703072	45.91	52.44
+2013-03-01 09:11:58.703072	52.44	54.1
+2013-03-01 09:11:58.703072	54.1	56.7
+2013-03-01 09:11:58.703072	56.7	58.77
+2013-03-01 09:11:58.703072	58.77	62.09
+2013-03-01 09:11:58.703072	62.09	68.2
+2013-03-01 09:11:58.703072	68.2	71.68
+2013-03-01 09:11:58.703072	71.68	79.46
+2013-03-01 09:11:58.703072	79.46	80.02
+2013-03-01 09:11:58.703072	80.02	81.29
+PREHOOK: query: select ts, f, first_value(f) over (partition by ts order by f rows between unbounded preceding and 1 following) from over10k limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over10k
+#### A masked pattern was here ####
+POSTHOOK: query: select ts, f, first_value(f) over (partition by ts order by f rows between unbounded preceding and 1 following) from over10k limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over10k
+#### A masked pattern was here ####
+2013-03-01 09:11:58.70307	3.17	3.17
+2013-03-01 09:11:58.70307	10.89	3.17
+2013-03-01 09:11:58.70307	14.54	3.17
+2013-03-01 09:11:58.70307	14.78	3.17
+2013-03-01 09:11:58.70307	17.85	3.17
+2013-03-01 09:11:58.70307	20.61	3.17
+2013-03-01 09:11:58.70307	28.69	3.17
+2013-03-01 09:11:58.70307	29.22	3.17
+2013-03-01 09:11:58.70307	31.17	3.17
+2013-03-01 09:11:58.70307	38.35	3.17
+2013-03-01 09:11:58.70307	38.61	3.17
+2013-03-01 09:11:58.70307	39.48	3.17
+2013-03-01 09:11:58.70307	40.54	3.17
+2013-03-01 09:11:58.70307	41.6	3.17
+2013-03-01 09:11:58.70307	46.08	3.17
+2013-03-01 09:11:58.70307	54.36	3.17
+2013-03-01 09:11:58.70307	56.94	3.17
+2013-03-01 09:11:58.70307	64.96	3.17
+2013-03-01 09:11:58.70307	73.52	3.17
+2013-03-01 09:11:58.70307	78.58	3.17
+2013-03-01 09:11:58.70307	81.41	3.17
+2013-03-01 09:11:58.70307	84.71	3.17
+2013-03-01 09:11:58.70307	87.43	3.17
+2013-03-01 09:11:58.70307	91.36	3.17
+2013-03-01 09:11:58.70307	92.96	3.17
+2013-03-01 09:11:58.70307	95.04	3.17
+2013-03-01 09:11:58.703071	0.83	0.83
+2013-03-01 09:11:58.703071	1.99	0.83
+2013-03-01 09:11:58.703071	3.73	0.83
+2013-03-01 09:11:58.703071	8.86	0.83
+2013-03-01 09:11:58.703071	10.62	0.83
+2013-03-01 09:11:58.703071	11.32	0.83
+2013-03-01 09:11:58.703071	12.83	0.83
+2013-03-01 09:11:58.703071	14.7	0.83
+2013-03-01 09:11:58.703071	14.96	0.83
+2013-03-01 09:11:58.703071	17.58	0.83
+2013-03-01 09:11:58.703071	19.1	0.83
+2013-03-01 09:11:58.703071	21.01	0.83
+2013-03-01 09:11:58.703071	26.95	0.83
+2013-03-01 09:11:58.703071	27.23	0.83
+2013-03-01 09:11:58.703071	29.07	0.83
+2013-03-01 09:11:58.703071	29.71	0.83
+2013-03-01 09:11:58.703071	31.84	0.83
+2013-03-01 09:11:58.703071	31.94	0.83
+2013-03-01 09:11:58.703071	35.32	0.83
+2013-03-01 09:11:58.703071	37.32	0.83
+2013-03-01 09:11:58.703071	38.5	0.83
+2013-03-01 09:11:58.703071	42.08	0.83
+2013-03-01 09:11:58.703071	44.3	0.83
+2013-03-01 09:11:58.703071	44.66	0.83
+2013-03-01 09:11:58.703071	46.84	0.83
+2013-03-01 09:11:58.703071	48.89	0.83
+2013-03-01 09:11:58.703071	49.64	0.83
+2013-03-01 09:11:58.703071	50.28	0.83
+2013-03-01 09:11:58.703071	52.09	0.83
+2013-03-01 09:11:58.703071	53.26	0.83
+2013-03-01 09:11:58.703071	54.09	0.83
+2013-03-01 09:11:58.703071	56.45	0.83
+2013-03-01 09:11:58.703071	56.76	0.83
+2013-03-01 09:11:58.703071	61.41	0.83
+2013-03-01 09:11:58.703071	61.88	0.83
+2013-03-01 09:11:58.703071	63.03	0.83
+2013-03-01 09:11:58.703071	64.55	0.83
+2013-03-01 09:11:58.703071	68.62	0.83
+2013-03-01 09:11:58.703071	76.13	0.83
+2013-03-01 09:11:58.703071	79.05	0.83
+2013-03-01 09:11:58.703071	80.43	0.83
+2013-03-01 09:11:58.703071	81.41	0.83
+2013-03-01 09:11:58.703071	82.85	0.83
+2013-03-01 09:11:58.703071	83.98	0.83
+2013-03-01 09:11:58.703071	84.21	0.83
+2013-03-01 09:11:58.703071	85.55	0.83
+2013-03-01 09:11:58.703071	87.93	0.83
+2013-03-01 09:11:58.703071	88.93	0.83
+2013-03-01 09:11:58.703071	94.27	0.83
+2013-03-01 09:11:58.703071	99.45	0.83
+2013-03-01 09:11:58.703072	0.36	0.36
+2013-03-01 09:11:58.703072	0.48	0.36
+2013-03-01 09:11:58.703072	0.79	0.36
+2013-03-01 09:11:58.703072	1.27	0.36
+2013-03-01 09:11:58.703072	4.48	0.36
+2013-03-01 09:11:58.703072	9.0	0.36
+2013-03-01 09:11:58.703072	23.27	0.36
+2013-03-01 09:11:58.703072	25.13	0.36
+2013-03-01 09:11:58.703072	25.34	0.36
+2013-03-01 09:11:58.703072	25.91	0.36
+2013-03-01 09:11:58.703072	29.01	0.36
+2013-03-01 09:11:58.703072	30.47	0.36
+2013-03-01 09:11:58.703072	37.95	0.36
+2013-03-01 09:11:58.703072	39.3	0.36
+2013-03-01 09:11:58.703072	45.91	0.36
+2013-03-01 09:11:58.703072	52.44	0.36
+2013-03-01 09:11:58.703072	54.1	0.36
+2013-03-01 09:11:58.703072	56.7	0.36
+2013-03-01 09:11:58.703072	58.77	0.36
+2013-03-01 09:11:58.703072	62.09	0.36
+2013-03-01 09:11:58.703072	68.2	0.36
+2013-03-01 09:11:58.703072	71.68	0.36
+2013-03-01 09:11:58.703072	79.46	0.36
+2013-03-01 09:11:58.703072	80.02	0.36
+PREHOOK: query: -- last_value
+select ts, f, last_value(f) over (partition by ts order by f rows between 2 preceding and 1 preceding) from over10k limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over10k
+#### A masked pattern was here ####
+POSTHOOK: query: -- last_value
+select ts, f, last_value(f) over (partition by ts order by f rows between 2 preceding and 1 preceding) from over10k limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over10k
+#### A masked pattern was here ####
+2013-03-01 09:11:58.70307	3.17	NULL
+2013-03-01 09:11:58.70307	10.89	3.17
+2013-03-01 09:11:58.70307	14.54	10.89
+2013-03-01 09:11:58.70307	14.78	14.54
+2013-03-01 09:11:58.70307	17.85	14.78
+2013-03-01 09:11:58.70307	20.61	17.85
+2013-03-01 09:11:58.70307	28.69	20.61
+2013-03-01 09:11:58.70307	29.22	28.69
+2013-03-01 09:11:58.70307	31.17	29.22
+2013-03-01 09:11:58.70307	38.35	31.17
+2013-03-01 09:11:58.70307	38.61	38.35
+2013-03-01 09:11:58.70307	39.48	38.61
+2013-03-01 09:11:58.70307	40.54	39.48
+2013-03-01 09:11:58.70307	41.6	40.54
+2013-03-01 09:11:58.70307	46.08	41.6
+2013-03-01 09:11:58.70307	54.36	46.08
+2013-03-01 09:11:58.70307	56.94	54.36
+2013-03-01 09:11:58.70307	64.96	56.94
+2013-03-01 09:11:58.70307	73.52	64.96
+2013-03-01 09:11:58.70307	78.58	73.52
+2013-03-01 09:11:58.70307	81.41	78.58
+2013-03-01 09:11:58.70307	84.71	81.41
+2013-03-01 09:11:58.70307	87.43	84.71
+2013-03-01 09:11:58.70307	91.36	87.43
+2013-03-01 09:11:58.70307	92.96	91.36
+2013-03-01 09:11:58.70307	95.04	92.96
+2013-03-01 09:11:58.703071	0.83	NULL
+2013-03-01 09:11:58.703071	1.99	0.83
+2013-03-01 09:11:58.703071	3.73	1.99
+2013-03-01 09:11:58.703071	8.86	3.73
+2013-03-01 09:11:58.703071	10.62	8.86
+2013-03-01 09:11:58.703071	11.32	10.62
+2013-03-01 09:11:58.703071	12.83	11.32
+2013-03-01 09:11:58.703071	14.7	12.83
+2013-03-01 09:11:58.703071	14.96	14.7
+2013-03-01 09:11:58.703071	17.58	14.96
+2013-03-01 09:11:58.703071	19.1	17.58
+2013-03-01 09:11:58.703071	21.01	19.1
+2013-03-01 09:11:58.703071	26.95	21.01
+2013-03-01 09:11:58.703071	27.23	26.95
+2013-03-01 09:11:58.703071	29.07	27.23
+2013-03-01 09:11:58.703071	29.71	29.07
+2013-03-01 09:11:58.703071	31.84	29.71
+2013-03-01 09:11:58.703071	31.94	31.84
+2013-03-01 09:11:58.703071	35.32	31.94
+2013-03-01 09:11:58.703071	37.32	35.32
+2013-03-01 09:11:58.703071	38.5	37.32
+2013-03-01 09:11:58.703071	42.08	38.5
+2013-03-01 09:11:58.703071	44.3	42.08
+2013-03-01 09:11:58.703071	44.66	44.3
+2013-03-01 09:11:58.703071	46.84	44.66
+2013-03-01 09:11:58.703071	48.89	46.84
+2013-03-01 09:11:58.703071	49.64	48.89
+2013-03-01 09:11:58.703071	50.28	49.64
+2013-03-01 09:11:58.703071	52.09	50.28
+2013-03-01 09:11:58.703071	53.26	52.09
+2013-03-01 09:11:58.703071	54.09	53.26
+2013-03-01 09:11:58.703071	56.45	54.09
+2013-03-01 09:11:58.703071	56.76	56.45
+2013-03-01 09:11:58.703071	61.41	56.76
+2013-03-01 09:11:58.703071	61.88	61.41
+2013-03-01 09:11:58.703071	63.03	61.88
+2013-03-01 09:11:58.703071	64.55	63.03
+2013-03-01 09:11:58.703071	68.62	64.55
+2013-03-01 09:11:58.703071	76.13	68.62
+2013-03-01 09:11:58.703071	79.05	76.13
+2013-03-01 09:11:58.703071	80.43	79.05
+2013-03-01 09:11:58.703071	81.41	80.43
+2013-03-01 09:11:58.703071	82.85	81.41
+2013-03-01 09:11:58.703071	83.98	82.85
+2013-03-01 09:11:58.703071	84.21	83.98
+2013-03-01 09:11:58.703071	85.55	84.21
+2013-03-01 09:11:58.703071	87.93	85.55
+2013-03-01 09:11:58.703071	88.93	87.93
+2013-03-01 09:11:58.703071	94.27	88.93
+2013-03-01 09:11:58.703071	99.45	94.27
+2013-03-01 09:11:58.703072	0.36	NULL
+2013-03-01 09:11:58.703072	0.48	0.36
+2013-03-01 09:11:58.703072	0.79	0.48
+2013-03-01 09:11:58.703072	1.27	0.79
+2013-03-01 09:11:58.703072	4.48	1.27
+2013-03-01 09:11:58.703072	9.0	4.48
+2013-03-01 09:11:58.703072	23.27	9.0
+2013-03-01 09:11:58.703072	25.13	23.27
+2013-03-01 09:11:58.703072	25.34	25.13
+2013-03-01 09:11:58.703072	25.91	25.34
+2013-03-01 09:11:58.703072	29.01	25.91
+2013-03-01 09:11:58.703072	30.47	29.01
+2013-03-01 09:11:58.703072	37.95	30.47
+2013-03-01 09:11:58.703072	39.3	37.95
+2013-03-01 09:11:58.703072	45.91	39.3
+2013-03-01 09:11:58.703072	52.44	45.91
+2013-03-01 09:11:58.703072	54.1	52.44
+2013-03-01 09:11:58.703072	56.7	54.1
+2013-03-01 09:11:58.703072	58.77	56.7
+2013-03-01 09:11:58.703072	62.09	58.77
+2013-03-01 09:11:58.703072	68.2	62.09
+2013-03-01 09:11:58.703072	71.68	68.2
+2013-03-01 09:11:58.703072	79.46	71.68
+2013-03-01 09:11:58.703072	80.02	79.46
+PREHOOK: query: select ts, f, last_value(f) over (partition by ts order by f rows between unbounded preceding and 1 preceding) from over10k limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over10k
+#### A masked pattern was here ####
+POSTHOOK: query: select ts, f, last_value(f) over (partition by ts order by f rows between unbounded preceding and 1 preceding) from over10k limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over10k
+#### A masked pattern was here ####
+2013-03-01 09:11:58.70307	3.17	NULL
+2013-03-01 09:11:58.70307	10.89	3.17
+2013-03-01 09:11:58.70307	14.54	10.89
+2013-03-01 09:11:58.70307	14.78	14.54
+2013-03-01 09:11:58.70307	17.85	14.78
+2013-03-01 09:11:58.70307	20.61	17.85
+2013-03-01 09:11:58.70307	28.69	20.61
+2013-03-01 09:11:58.70307	29.22	28.69
+2013-03-01 09:11:58.70307	31.17	29.22
+2013-03-01 09:11:58.70307	38.35	31.17
+2013-03-01 09:11:58.70307	38.61	38.35
+2013-03-01 09:11:58.70307	39.48	38.61
+2013-03-01 09:11:58.70307	40.54	39.48
+2013-03-01 09:11:58.70307	41.6	40.54
+2013-03-01 09:11:58.70307	46.08	41.6
+2013-03-01 09:11:58.70307	54.36	46.08
+2013-03-01 09:11:58.70307	56.94	54.36
+2013-03-01 09:11:58.70307	64.96	56.94
+2013-03-01 09:11:58.70307	73.52	64.96
+2013-03-01 09:11:58.70307	78.58	73.52
+2013-03-01 09:11:58.70307	81.41	78.58
+2013-03-01 09:11:58.70307	84.71	81.41
+2013-03-01 09:11:58.70307	87.43	84.71
+2013-03-01 09:11:58.70307	91.36	87.43
+2013-03-01 09:11:58.70307	92.96	91.36
+2013-03-01 09:11:58.70307	95.04	92.96
+2013-03-01 09:11:58.703071	0.83	NULL
+2013-03-01 09:11:58.703071	1.99	0.83
+2013-03-01 09:11:58.703071	3.73	1.99
+2013-03-01 09:11:58.703071	8.86	3.73
+2013-03-01 09:11:58.703071	10.62	8.86
+2013-03-01 09:11:58.703071	11.32	10.62
+2013-03-01 09:11:58.703071	12.83	11.32
+2013-03-01 09:11:58.703071	14.7	12.83
+2013-03-01 09:11:58.703071	14.96	14.7
+2013-03-01 09:11:58.703071	17.58	14.96
+2013-03-01 09:11:58.703071	19.1	17.58
+2013-03-01 09:11:58.703071	21.01	19.1
+2013-03-01 09:11:58.703071	26.95	21.01
+2013-03-01 09:11:58.703071	27.23	26.95
+2013-03-01 09:11:58.703071	29.07	27.23
+2013-03-01 09:11:58.703071	29.71	29.07
+2013-03-01 09:11:58.703071	31.84	29.71
+2013-03-01 09:11:58.703071	31.94	31.84
+2013-03-01 09:11:58.703071	35.32	31.94
+2013-03-01 09:11:58.703071	37.32	35.32
+2013-03-01 09:11:58.703071	38.5	37.32
+2013-03-01 09:11:58.703071	42.08	38.5
+2013-03-01 09:11:58.703071	44.3	42.08
+2013-03-01 09:11:58.703071	44.66	44.3
+2013-03-01 09:11:58.703071	46.84	44.66
+2013-03-01 09:11:58.703071	48.89	46.84
+2013-03-01 09:11:58.703071	49.64	48.89
+2013-03-01 09:11:58.703071	50.28	49.64
+2013-03-01 09:11:58.703071	52.09	50.28
+2013-03-01 09:11:58.703071	53.26	52.09
+2013-03-01 09:11:58.703071	54.09	53.26
+2013-03-01 09:11:58.703071	56.45	54.09
+2013-03-01 09:11:58.703071	56.76	56.45
+2013-03-01 09:11:58.703071	61.41	56.76
+2013-03-01 09:11:58.703071	61.88	61.41
+2013-03-01 09:11:58.703071	63.03	61.88
+2013-03-01 09:11:58.703071	64.55	63.03
+2013-03-01 09:11:58.703071	68.62	64.55
+2013-03-01 09:11:58.703071	76.13	68.62
+2013-03-01 09:11:58.703071	79.05	76.13
+2013-03-01 09:11:58.703071	80.43	79.05
+2013-03-01 09:11:58.703071	81.41	80.43
+2013-03-01 09:11:58.703071	82.85	81.41
+2013-03-01 09:11:58.703071	83.98	82.85
+2013-03-01 09:11:58.703071	84.21	83.98
+2013-03-01 09:11:58.703071	85.55	84.21
+2013-03-01 09:11:58.703071	87.93	85.55
+2013-03-01 09:11:58.703071	88.93	87.93
+2013-03-01 09:11:58.703071	94.27	88.93
+2013-03-01 09:11:58.703071	99.45	94.27
+2013-03-01 09:11:58.703072	0.36	NULL
+2013-03-01 09:11:58.703072	0.48	0.36
+2013-03-01 09:11:58.703072	0.79	0.48
+2013-03-01 09:11:58.703072	1.27	0.79
+2013-03-01 09:11:58.703072	4.48	1.27
+2013-03-01 09:11:58.703072	9.0	4.48
+2013-03-01 09:11:58.703072	23.27	9.0
+2013-03-01 09:11:58.703072	25.13	23.27
+2013-03-01 09:11:58.703072	25.34	25.13
+2013-03-01 09:11:58.703072	25.91	25.34
+2013-03-01 09:11:58.703072	29.01	25.91
+2013-03-01 09:11:58.703072	30.47	29.01
+2013-03-01 09:11:58.703072	37.95	30.47
+2013-03-01 09:11:58.703072	39.3	37.95
+2013-03-01 09:11:58.703072	45.91	39.3
+2013-03-01 09:11:58.703072	52.44	45.91
+2013-03-01 09:11:58.703072	54.1	52.44
+2013-03-01 09:11:58.703072	56.7	54.1
+2013-03-01 09:11:58.703072	58.77	56.7
+2013-03-01 09:11:58.703072	62.09	58.77
+2013-03-01 09:11:58.703072	68.2	62.09
+2013-03-01 09:11:58.703072	71.68	68.2
+2013-03-01 09:11:58.703072	79.46	71.68
+2013-03-01 09:11:58.703072	80.02	79.46
+PREHOOK: query: select ts, f, last_value(f) over (partition by ts order by f rows between 1 following and 2 following) from over10k limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over10k
+#### A masked pattern was here ####
+POSTHOOK: query: select ts, f, last_value(f) over (partition by ts order by f rows between 1 following and 2 following) from over10k limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over10k
+#### A masked pattern was here ####
+2013-03-01 09:11:58.70307	3.17	14.54
+2013-03-01 09:11:58.70307	10.89	14.78
+2013-03-01 09:11:58.70307	14.54	17.85
+2013-03-01 09:11:58.70307	14.78	20.61
+2013-03-01 09:11:58.70307	17.85	28.69
+2013-03-01 09:11:58.70307	20.61	29.22
+2013-03-01 09:11:58.70307	28.69	31.17
+2013-03-01 09:11:58.70307	29.22	38.35
+2013-03-01 09:11:58.70307	31.17	38.61
+2013-03-01 09:11:58.70307	38.35	39.48
+2013-03-01 09:11:58.70307	38.61	40.54
+2013-03-01 09:11:58.70307	39.48	41.6
+2013-03-01 09:11:58.70307	40.54	46.08
+2013-03-01 09:11:58.70307	41.6	54.36
+2013-03-01 09:11:58.70307	46.08	56.94
+2013-03-01 09:11:58.70307	54.36	64.96
+2013-03-01 09:11:58.70307	56.94	73.52
+2013-03-01 09:11:58.70307	64.96	78.58
+2013-03-01 09:11:58.70307	73.52	81.41
+2013-03-01 09:11:58.70307	78.58	84.71
+2013-03-01 09:11:58.70307	81.41	87.43
+2013-03-01 09:11:58.70307	84.71	91.36
+2013-03-01 09:11:58.70307	87.43	92.96
+2013-03-01 09:11:58.70307	91.36	95.04
+2013-03-01 09:11:58.70307	92.96	95.04
+2013-03-01 09:11:58.70307	95.04	NULL
+2013-03-01 09:11:58.703071	0.83	3.73
+2013-03-01 09:11:58.703071	1.99	8.86
+2013-03-01 09:11:58.703071	3.73	10.62
+2013-03-01 09:11:58.703071	8.86	11.32
+2013-03-01 09:11:58.703071	10.62	12.83
+2013-03-01 09:11:58.703071	11.32	14.7
+2013-03-01 09:11:58.703071	12.83	14.96
+2013-03-01 09:11:58.703071	14.7	17.58
+2013-03-01 09:11:58.703071	14.96	19.1
+2013-03-01 09:11:58.703071	17.58	21.01
+2013-03-01 09:11:58.703071	19.1	26.95
+2013-03-01 09:11:58.703071	21.01	27.23
+2013-03-01 09:11:58.703071	26.95	29.07
+2013-03-01 09:11:58.703071	27.23	29.71
+2013-03-01 09:11:58.703071	29.07	31.84
+2013-03-01 09:11:58.703071	29.71	31.94
+2013-03-01 09:11:58.703071	31.84	35.32
+2013-03-01 09:11:58.703071	31.94	37.32
+2013-03-01 09:11:58.703071	35.32	38.5
+2013-03-01 09:11:58.703071	37.32	42.08
+2013-03-01 09:11:58.703071	38.5	44.3
+2013-03-01 09:11:58.703071	42.08	44.66
+2013-03-01 09:11:58.703071	44.3	46.84
+2013-03-01 09:11:58.703071	44.66	48.89
+2013-03-01 09:11:58.703071	46.84	49.64
+2013-03-01 09:11:58.703071	48.89	50.28
+2013-03-01 09:11:58.703071	49.64	52.09
+2013-03-01 09:11:58.703071	50.28	53.26
+2013-03-01 09:11:58.703071	52.09	54.09
+2013-03-01 09:11:58.703071	53.26	56.45
+2013-03-01 09:11:58.703071	54.09	56.76
+2013-03-01 09:11:58.703071	56.45	61.41
+2013-03-01 09:11:58.703071	56.76	61.88
+2013-03-01 09:11:58.703071	61.41	63.03
+2013-03-01 09:11:58.703071	61.88	64.55
+2013-03-01 09:11:58.703071	63.03	68.62
+2013-03-01 09:11:58.703071	64.55	76.13
+2013-03-01 09:11:58.703071	68.62	79.05
+2013-03-01 09:11:58.703071	76.13	80.43
+2013-03-01 09:11:58.703071	79.05	81.41
+2013-03-01 09:11:58.703071	80.43	82.85
+2013-03-01 09:11:58.703071	81.41	83.98
+2013-03-01 09:11:58.703071	82.85	84.21
+2013-03-01 09:11:58.703071	83.98	85.55
+2013-03-01 09:11:58.703071	84.21	87.93
+2013-03-01 09:11:58.703071	85.55	88.93
+2013-03-01 09:11:58.703071	87.93	94.27
+2013-03-01 09:11:58.703071	88.93	99.45
+2013-03-01 09:11:58.703071	94.27	99.45
+2013-03-01 09:11:58.703071	99.45	NULL
+2013-03-01 09:11:58.703072	0.36	0.79
+2013-03-01 09:11:58.703072	0.48	1.27
+2013-03-01 09:11:58.703072	0.79	4.48
+2013-03-01 09:11:58.703072	1.27	9.0
+2013-03-01 09:11:58.703072	4.48	23.27
+2013-03-01 09:11:58.703072	9.0	25.13
+2013-03-01 09:11:58.703072	23.27	25.34
+2013-03-01 09:11:58.703072	25.13	25.91
+2013-03-01 09:11:58.703072	25.34	29.01
+2013-03-01 09:11:58.703072	25.91	30.47
+2013-03-01 09:11:58.703072	29.01	37.95
+2013-03-01 09:11:58.703072	30.47	39.3
+2013-03-01 09:11:58.703072	37.95	45.91
+2013-03-01 09:11:58.703072	39.3	52.44
+2013-03-01 09:11:58.703072	45.91	54.1
+2013-03-01 09:11:58.703072	52.44	56.7
+2013-03-01 09:11:58.703072	54.1	58.77
+2013-03-01 09:11:58.703072	56.7	62.09
+2013-03-01 09:11:58.703072	58.77	68.2
+2013-03-01 09:11:58.703072	62.09	71.68
+2013-03-01 09:11:58.703072	68.2	79.46
+2013-03-01 09:11:58.703072	71.68	80.02
+2013-03-01 09:11:58.703072	79.46	81.29
+2013-03-01 09:11:58.703072	80.02	86.98
+PREHOOK: query: select ts, f, last_value(f) over (partition by ts order by f rows between unbounded preceding and 1 following) from over10k limit 100
+PREHOOK: type: QUERY
+PREHOOK: Input: default@over10k
+#### A masked pattern was here ####
+POSTHOOK: query: select ts, f, last_value(f) over (partition by ts order by f rows between unbounded preceding and 1 following) from over10k limit 100
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@over10k
+#### A masked pattern was here ####
+2013-03-01 09:11:58.70307	3.17	10.89
+2013-03-01 09:11:58.70307	10.89	14.54
+2013-03-01 09:11:58.70307	14.54	14.78
+2013-03-01 09:11:58.70307	14.78	17.85
+2013-03-01 09:11:58.70307	17.85	20.61
+2013-03-01 09:11:58.70307	20.61	28.69
+2013-03-01 09:11:58.70307	28.69	29.22
+2013-03-01 09:11:58.70307	29.22	31.17
+2013-03-01 09:11:58.70307	31.17	38.35
+2013-03-01 09:11:58.70307	38.35	38.61
+2013-03-01 09:11:58.70307	38.61	39.48
+2013-03-01 09:11:58.70307	39.48	40.54
+2013-03-01 09:11:58.70307	40.54	41.6
+2013-03-01 09:11:58.70307	41.6	46.08
+2013-03-01 09:11:58.70307	46.08	54.36
+2013-03-01 09:11:58.70307	54.36	56.94
+2013-03-01 09:11:58.70307	56.94	64.96
+2013-03-01 09:11:58.70307	64.96	73.52
+2013-03-01 09:11:58.70307	73.52	78.58
+2013-03-01 09:11:58.70307	78.58	81.41
+2013-03-01 09:11:58.70307	81.41	84.71
+2013-03-01 09:11:58.70307	84.71	87.43
+2013-03-01 09:11:58.70307	87.43	91.36
+2013-03-01 09:11:58.70307	91.36	92.96
+2013-03-01 09:11:58.70307	92.96	95.04
+2013-03-01 09:11:58.70307	95.04	95.04
+2013-03-01 09:11:58.703071	0.83	1.99
+2013-03-01 09:11:58.703071	1.99	3.73
+2013-03-01 09:11:58.703071	3.73	8.86
+2013-03-01 09:11:58.703071	8.86	10.62
+2013-03-01 09:11:58.703071	10.62	11.32
+2013-03-01 09:11:58.703071	11.32	12.83
+2013-03-01 09:11:58.703071	12.83	14.7
+2013-03-01 09:11:58.703071	14.7	14.96
+2013-03-01 09:11:58.703071	14.96	17.58
+2013-03-01 09:11:58.703071	17.58	19.1
+2013-03-01 09:11:58.703071	19.1	21.01
+2013-03-01 09:11:58.703071	21.01	26.95
+2013-03-01 09:11:58.703071	26.95	27.23
+2013-03-01 09:11:58.703071	27.23	29.07
+2013-03-01 09:11:58.703071	29.07	29.71
+2013-03-01 09:11:58.703071	29.71	31.84
+2013-03-01 09:11:58.703071	31.84	31.94
+2013-03-01 09:11:58.703071	31.94	35.32
+2013-03-01 09:11:58.703071	35.32	37.32
+2013-03-01 09:11:58.703071	37.32	38.5
+2013-03-01 09:11:58.703071	38.5	42.08
+2013-03-01 09:11:58.703071	42.08	44.3
+2013-03-01 09:11:58.703071	44.3	44.66
+2013-03-01 09:11:58.703071	44.66	46.84
+2013-03-01 09:11:58.703071	46.84	48.89
+2013-03-01 09:11:58.703071	48.89	49.64
+2013-03-01 09:11:58.703071	49.64	50.28
+2013-03-01 09:11:58.703071	50.28	52.09
+2013-03-01 09:11:58.703071	52.09	53.26
+2013-03-01 09:11:58.703071	53.26	54.09
+2013-03-01 09:11:58.703071	54.09	56.45
+2013-03-01 09:11:58.703071	56.45	56.76
+2013-03-01 09:11:58.703071	56.76	61.41
+2013-03-01 09:11:58.703071	61.41	61.88
+2013-03-01 09:11:58.703071	61.88	63.03
+2013-03-01 09:11:58.703071	63.03	64.55
+2013-03-01 09:11:58.703071	64.55	68.62
+2013-03-01 09:11:58.703071	68.62	76.13
+2013-03-01 09:11:58.703071	76.13	79.05
+2013-03-01 09:11:58.703071	79.05	80.43
+2013-03-01 09:11:58.703071	80.43	81.41
+2013-03-01 09:11:58.703071	81.41	82.85
+2013-03-01 09:11:58.703071	82.85	83.98
+2013-03-01 09:11:58.703071	83.98	84.21
+2013-03-01 09:11:58.703071	84.21	85.55
+2013-03-01 09:11:58.703071	85.55	87.93
+2013-03-01 09:11:58.703071	87.93	88.93
+2013-03-01 09:11:58.703071	88.93	94.27
+2013-03-01 09:11:58.703071	94.27	99.45
+2013-03-01 09:11:58.703071	99.45	99.45
+2013-03-01 09:11:58.703072	0.36	0.48
+2013-03-01 09:11:58.703072	0.48	0.79
+2013-03-01 09:11:58.703072	0.79	1.27
+2013-03-01 09:11:58.703072	1.27	4.48
+2013-03-01 09:11:58.703072	4.48	9.0
+2013-03-01 09:11:58.703072	9.0	23.27
+2013-03-01 09:11:58.703072	23.27	25.13
+2013-03-01 09:11:58.703072	25.13	25.34
+2013-03-01 09:11:58.703072	25.34	25.91
+2013-03-01 09:11:58.703072	25.91	29.01
+2013-03-01 09:11:58.703072	29.01	30.47
+2013-03-01 09:11:58.703072	30.47	37.95
+2013-03-01 09:11:58.703072	37.95	39.3
+2013-03-01 09:11:58.703072	39.3	45.91
+2013-03-01 09:11:58.703072	45.91	52.44
+2013-03-01 09:11:58.703072	52.44	54.1
+2013-03-01 09:11:58.703072	54.1	56.7
+2013-03-01 09:11:58.703072	56.7	58.77
+2013-03-01 09:11:58.703072	58.77	62.09
+2013-03-01 09:11:58.703072	62.09	68.2
+2013-03-01 09:11:58.703072	68.2	71.68
+2013-03-01 09:11:58.703072	71.68	79.46
+2013-03-01 09:11:58.703072	79.46	80.02
+2013-03-01 09:11:58.703072	80.02	81.29