HIVE-10702 : COUNT(*) over windowing 'x preceding and y preceding' doesn't work properly (Aihua Xu via Ashutosh Chauhan)
Signed-off-by: Ashutosh Chauhan <hashut...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/c19efd68 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/c19efd68 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/c19efd68 Branch: refs/heads/master Commit: c19efd6848c0b47af1604684d9607d148c9ac402 Parents: c577e60 Author: Aihua Xu <aihu...@gmail.com> Authored: Thu May 21 14:02:00 2015 -0700 Committer: Ashutosh Chauhan <hashut...@apache.org> Committed: Mon May 25 23:24:27 2015 -0700 ---------------------------------------------------------------------- .../hive/ql/exec/PTFRollingPartition.java | 30 +- .../hive/ql/udf/ptf/WindowingTableFunction.java | 39 +- .../clientpositive/windowing_windowspec2.q | 6 + .../clientpositive/windowing_windowspec2.q.out | 440 ++++++++++++++++++- 4 files changed, 475 insertions(+), 40 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/c19efd68/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFRollingPartition.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFRollingPartition.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFRollingPartition.java index e195c0a..ad1cf24 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFRollingPartition.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFRollingPartition.java @@ -23,7 +23,7 @@ import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.ql.metadata.HiveException; -import org.apache.hadoop.hive.ql.plan.ptf.WindowFunctionDef; +import org.apache.hadoop.hive.ql.plan.ptf.WindowFrameDef; import org.apache.hadoop.hive.serde2.SerDe; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.ObjectInspectorCopyOption; @@ -37,14 +37,14 @@ public class PTFRollingPartition extends PTFPartition { int numRowsProcessed; /* - * number rows to maintain before nextRowToProcess + * Relative start position of the windowing. Can be negative. */ - int precedingSpan; + int startPos; /* - * number rows to maintain after nextRowToProcess + * Relative end position of the windowing. Can be negative. */ - int followingSpan; + int endPos; /* * number of rows received. @@ -72,11 +72,11 @@ public class PTFRollingPartition extends PTFPartition { protected PTFRollingPartition(Configuration cfg, SerDe serDe, StructObjectInspector inputOI, StructObjectInspector outputOI, - int precedingSpan, int succeedingSpan) throws HiveException { + int startPos, int endPos) throws HiveException { super(cfg, serDe, inputOI, outputOI, false); - this.precedingSpan = precedingSpan; - this.followingSpan = succeedingSpan; - currWindow = new ArrayList<Object>(precedingSpan + followingSpan); + this.startPos = startPos; + this.endPos = endPos; + currWindow = new ArrayList<Object>(endPos - startPos + 1); } public void reset() throws HiveException { @@ -101,7 +101,7 @@ public class PTFRollingPartition extends PTFPartition { public Object nextOutputRow() throws HiveException { Object row = getAt(numRowsProcessed); numRowsProcessed++; - if (numRowsProcessed > precedingSpan) { + if (numRowsProcessed > -startPos) { currWindow.remove(0); } return row; @@ -111,9 +111,13 @@ public class PTFRollingPartition extends PTFPartition { return numRowsProcessed >= numRowsReceived; } - public int rowToProcess(WindowFunctionDef wFn) { - int rowToProcess = numRowsReceived - wFn.getWindowFrame().getEnd().getAmt() - - 1; + /** + * Gets the next row index that the data within the window are available and can be processed + * @param wFrameDef + * @return + */ + public int rowToProcess(WindowFrameDef wFrameDef) { + int rowToProcess = numRowsReceived - 1 - Math.max(0, wFrameDef.getEnd().getRelativeOffset()); return rowToProcess >= 0 ? rowToProcess : -1; } http://git-wip-us.apache.org/repos/asf/hive/blob/c19efd68/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java index d7817d9..40fd6a4 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java @@ -246,8 +246,8 @@ public class WindowingTableFunction extends TableFunctionEvaluator { } WindowTableFunctionDef tabDef = (WindowTableFunctionDef) getTableDef(); - int precedingSpan = 0; - int followingSpan = 0; + int startPos = Integer.MAX_VALUE; + int endPos = Integer.MIN_VALUE; for (int i = 0; i < tabDef.getWindowFunctions().size(); i++) { WindowFunctionDef wFnDef = tabDef.getWindowFunctions().get(i); @@ -264,20 +264,9 @@ public class WindowingTableFunction extends TableFunctionEvaluator { BoundaryDef end = wdwFrame.getEnd(); if (!(end instanceof ValueBoundaryDef) && !(start instanceof ValueBoundaryDef)) { - if (end.getAmt() != BoundarySpec.UNBOUNDED_AMOUNT - && start.getAmt() != BoundarySpec.UNBOUNDED_AMOUNT - && end.getDirection() != Direction.PRECEDING - && start.getDirection() != Direction.FOLLOWING) { - - int amt = wdwFrame.getStart().getAmt(); - if (amt > precedingSpan) { - precedingSpan = amt; - } - - amt = wdwFrame.getEnd().getAmt(); - if (amt > followingSpan) { - followingSpan = amt; - } + if (!end.isUnbounded() && !start.isUnbounded()) { + startPos = Math.min(startPos, wdwFrame.getStart().getRelativeOffset()); + endPos = Math.max(endPos, wdwFrame.getEnd().getRelativeOffset()); continue; } } @@ -286,12 +275,12 @@ public class WindowingTableFunction extends TableFunctionEvaluator { int windowLimit = HiveConf.getIntVar(cfg, ConfVars.HIVEJOINCACHESIZE); - if (windowLimit < (followingSpan + precedingSpan + 1)) { + if (windowLimit < (endPos - startPos + 1)) { return null; } canAcceptInputAsStream = true; - return new int[] {precedingSpan, followingSpan}; + return new int[] {startPos, endPos}; } private void initializeWindowingFunctionInfoHelpers() throws SemanticException { @@ -428,7 +417,7 @@ public class WindowingTableFunction extends TableFunctionEvaluator { : out); } } else { - int rowToProcess = streamingState.rollingPart.rowToProcess(wFn); + int rowToProcess = streamingState.rollingPart.rowToProcess(wFn.getWindowFrame()); if (rowToProcess >= 0) { Range rng = getRange(wFn, rowToProcess, streamingState.rollingPart, streamingState.order); @@ -482,7 +471,7 @@ public class WindowingTableFunction extends TableFunctionEvaluator { WindowFunctionDef wFn = tabDef.getWindowFunctions().get(i); GenericUDAFEvaluator fnEval = wFn.getWFnEval(); - int numRowsRemaining = wFn.getWindowFrame().getEnd().getAmt(); + int numRowsRemaining = wFn.getWindowFrame().getEnd().getRelativeOffset(); if (fnEval instanceof ISupportStreamingModeForWindowing) { fnEval.terminate(streamingState.aggBuffers[i]); @@ -682,7 +671,7 @@ public class WindowingTableFunction extends TableFunctionEvaluator { return vals; } - Range getRange(WindowFunctionDef wFnDef, int currRow, PTFPartition p, Order order) throws HiveException + private Range getRange(WindowFunctionDef wFnDef, int currRow, PTFPartition p, Order order) throws HiveException { BoundaryDef startB = wFnDef.getWindowFrame().getStart(); BoundaryDef endB = wFnDef.getWindowFrame().getEnd(); @@ -716,7 +705,7 @@ public class WindowingTableFunction extends TableFunctionEvaluator { return new Range(start, end, p); } - int getRowBoundaryStart(BoundaryDef b, int currRow) throws HiveException { + private int getRowBoundaryStart(BoundaryDef b, int currRow) throws HiveException { Direction d = b.getDirection(); int amt = b.getAmt(); switch(d) { @@ -735,7 +724,7 @@ public class WindowingTableFunction extends TableFunctionEvaluator { throw new HiveException("Unknown Start Boundary Direction: " + d); } - int getRowBoundaryEnd(BoundaryDef b, int currRow, PTFPartition p) throws HiveException { + private int getRowBoundaryEnd(BoundaryDef b, int currRow, PTFPartition p) throws HiveException { Direction d = b.getDirection(); int amt = b.getAmt(); switch(d) { @@ -743,7 +732,7 @@ public class WindowingTableFunction extends TableFunctionEvaluator { if ( amt == 0 ) { return currRow + 1; } - return currRow - amt; + return currRow - amt + 1; case CURRENT: return currRow + 1; case FOLLOWING: @@ -1468,7 +1457,7 @@ public class WindowingTableFunction extends TableFunctionEvaluator { return true; } - List<Object> nextOutputRow() throws HiveException { + private List<Object> nextOutputRow() throws HiveException { List<Object> oRow = new ArrayList<Object>(); Object iRow = rollingPart.nextOutputRow(); int i = 0; http://git-wip-us.apache.org/repos/asf/hive/blob/c19efd68/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 3e8aa93..d85cea9 100644 --- a/ql/src/test/queries/clientpositive/windowing_windowspec2.q +++ b/ql/src/test/queries/clientpositive/windowing_windowspec2.q @@ -17,8 +17,14 @@ create table over10k( load data local inpath '../../data/files/over10k' into table over10k; +-- sum select ts, f, sum(f) over (partition by ts order by f rows between 2 preceding and 1 preceding) from over10k limit 100; select ts, f, sum(f) over (partition by ts order by f rows between unbounded preceding and 1 preceding) from over10k limit 100; select ts, f, sum(f) over (partition by ts order by f rows between 1 following and 2 following) from over10k limit 100; select ts, f, sum(f) over (partition by ts order by f rows between unbounded preceding and 1 following) from over10k limit 100; +-- count +select ts, f, count(f) over (partition by ts order by f rows between 2 preceding and 1 preceding) from over10k limit 100; +select ts, f, count(f) over (partition by ts order by f rows between unbounded preceding and 1 preceding) from over10k limit 100; +select ts, f, count(f) over (partition by ts order by f rows between 1 following and 2 following) from over10k limit 100; +select ts, f, count(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/c19efd68/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 0879344..bf91639 100644 --- a/ql/src/test/results/clientpositive/windowing_windowspec2.q.out +++ b/ql/src/test/results/clientpositive/windowing_windowspec2.q.out @@ -44,11 +44,13 @@ POSTHOOK: query: load data local inpath '../../data/files/over10k' into table ov POSTHOOK: type: LOAD #### A masked pattern was here #### POSTHOOK: Output: default@over10k -PREHOOK: query: select ts, f, sum(f) over (partition by ts order by f rows between 2 preceding and 1 preceding) from over10k limit 100 +PREHOOK: query: -- sum +select ts, f, sum(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: select ts, f, sum(f) over (partition by ts order by f rows between 2 preceding and 1 preceding) from over10k limit 100 +POSTHOOK: query: -- sum +select ts, f, sum(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 #### @@ -476,3 +478,437 @@ POSTHOOK: Input: default@over10k 2013-03-01 09:11:58.703072 71.68 802.1099938452244 2013-03-01 09:11:58.703072 79.46 882.1299904882908 2013-03-01 09:11:58.703072 80.02 963.4199914038181 +PREHOOK: query: -- count +select ts, f, count(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: -- count +select ts, f, count(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 0 +2013-03-01 09:11:58.70307 10.89 1 +2013-03-01 09:11:58.70307 14.54 2 +2013-03-01 09:11:58.70307 14.78 2 +2013-03-01 09:11:58.70307 17.85 2 +2013-03-01 09:11:58.70307 20.61 2 +2013-03-01 09:11:58.70307 28.69 2 +2013-03-01 09:11:58.70307 29.22 2 +2013-03-01 09:11:58.70307 31.17 2 +2013-03-01 09:11:58.70307 38.35 2 +2013-03-01 09:11:58.70307 38.61 2 +2013-03-01 09:11:58.70307 39.48 2 +2013-03-01 09:11:58.70307 40.54 2 +2013-03-01 09:11:58.70307 41.6 2 +2013-03-01 09:11:58.70307 46.08 2 +2013-03-01 09:11:58.70307 54.36 2 +2013-03-01 09:11:58.70307 56.94 2 +2013-03-01 09:11:58.70307 64.96 2 +2013-03-01 09:11:58.70307 73.52 2 +2013-03-01 09:11:58.70307 78.58 2 +2013-03-01 09:11:58.70307 81.41 2 +2013-03-01 09:11:58.70307 84.71 2 +2013-03-01 09:11:58.70307 87.43 2 +2013-03-01 09:11:58.70307 91.36 2 +2013-03-01 09:11:58.70307 92.96 2 +2013-03-01 09:11:58.70307 95.04 2 +2013-03-01 09:11:58.703071 0.83 0 +2013-03-01 09:11:58.703071 1.99 1 +2013-03-01 09:11:58.703071 3.73 2 +2013-03-01 09:11:58.703071 8.86 2 +2013-03-01 09:11:58.703071 10.62 2 +2013-03-01 09:11:58.703071 11.32 2 +2013-03-01 09:11:58.703071 12.83 2 +2013-03-01 09:11:58.703071 14.7 2 +2013-03-01 09:11:58.703071 14.96 2 +2013-03-01 09:11:58.703071 17.58 2 +2013-03-01 09:11:58.703071 19.1 2 +2013-03-01 09:11:58.703071 21.01 2 +2013-03-01 09:11:58.703071 26.95 2 +2013-03-01 09:11:58.703071 27.23 2 +2013-03-01 09:11:58.703071 29.07 2 +2013-03-01 09:11:58.703071 29.71 2 +2013-03-01 09:11:58.703071 31.84 2 +2013-03-01 09:11:58.703071 31.94 2 +2013-03-01 09:11:58.703071 35.32 2 +2013-03-01 09:11:58.703071 37.32 2 +2013-03-01 09:11:58.703071 38.5 2 +2013-03-01 09:11:58.703071 42.08 2 +2013-03-01 09:11:58.703071 44.3 2 +2013-03-01 09:11:58.703071 44.66 2 +2013-03-01 09:11:58.703071 46.84 2 +2013-03-01 09:11:58.703071 48.89 2 +2013-03-01 09:11:58.703071 49.64 2 +2013-03-01 09:11:58.703071 50.28 2 +2013-03-01 09:11:58.703071 52.09 2 +2013-03-01 09:11:58.703071 53.26 2 +2013-03-01 09:11:58.703071 54.09 2 +2013-03-01 09:11:58.703071 56.45 2 +2013-03-01 09:11:58.703071 56.76 2 +2013-03-01 09:11:58.703071 61.41 2 +2013-03-01 09:11:58.703071 61.88 2 +2013-03-01 09:11:58.703071 63.03 2 +2013-03-01 09:11:58.703071 64.55 2 +2013-03-01 09:11:58.703071 68.62 2 +2013-03-01 09:11:58.703071 76.13 2 +2013-03-01 09:11:58.703071 79.05 2 +2013-03-01 09:11:58.703071 80.43 2 +2013-03-01 09:11:58.703071 81.41 2 +2013-03-01 09:11:58.703071 82.85 2 +2013-03-01 09:11:58.703071 83.98 2 +2013-03-01 09:11:58.703071 84.21 2 +2013-03-01 09:11:58.703071 85.55 2 +2013-03-01 09:11:58.703071 87.93 2 +2013-03-01 09:11:58.703071 88.93 2 +2013-03-01 09:11:58.703071 94.27 2 +2013-03-01 09:11:58.703071 99.45 2 +2013-03-01 09:11:58.703072 0.36 0 +2013-03-01 09:11:58.703072 0.48 1 +2013-03-01 09:11:58.703072 0.79 2 +2013-03-01 09:11:58.703072 1.27 2 +2013-03-01 09:11:58.703072 4.48 2 +2013-03-01 09:11:58.703072 9.0 2 +2013-03-01 09:11:58.703072 23.27 2 +2013-03-01 09:11:58.703072 25.13 2 +2013-03-01 09:11:58.703072 25.34 2 +2013-03-01 09:11:58.703072 25.91 2 +2013-03-01 09:11:58.703072 29.01 2 +2013-03-01 09:11:58.703072 30.47 2 +2013-03-01 09:11:58.703072 37.95 2 +2013-03-01 09:11:58.703072 39.3 2 +2013-03-01 09:11:58.703072 45.91 2 +2013-03-01 09:11:58.703072 52.44 2 +2013-03-01 09:11:58.703072 54.1 2 +2013-03-01 09:11:58.703072 56.7 2 +2013-03-01 09:11:58.703072 58.77 2 +2013-03-01 09:11:58.703072 62.09 2 +2013-03-01 09:11:58.703072 68.2 2 +2013-03-01 09:11:58.703072 71.68 2 +2013-03-01 09:11:58.703072 79.46 2 +2013-03-01 09:11:58.703072 80.02 2 +PREHOOK: query: select ts, f, count(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, count(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 0 +2013-03-01 09:11:58.70307 10.89 1 +2013-03-01 09:11:58.70307 14.54 2 +2013-03-01 09:11:58.70307 14.78 3 +2013-03-01 09:11:58.70307 17.85 4 +2013-03-01 09:11:58.70307 20.61 5 +2013-03-01 09:11:58.70307 28.69 6 +2013-03-01 09:11:58.70307 29.22 7 +2013-03-01 09:11:58.70307 31.17 8 +2013-03-01 09:11:58.70307 38.35 9 +2013-03-01 09:11:58.70307 38.61 10 +2013-03-01 09:11:58.70307 39.48 11 +2013-03-01 09:11:58.70307 40.54 12 +2013-03-01 09:11:58.70307 41.6 13 +2013-03-01 09:11:58.70307 46.08 14 +2013-03-01 09:11:58.70307 54.36 15 +2013-03-01 09:11:58.70307 56.94 16 +2013-03-01 09:11:58.70307 64.96 17 +2013-03-01 09:11:58.70307 73.52 18 +2013-03-01 09:11:58.70307 78.58 19 +2013-03-01 09:11:58.70307 81.41 20 +2013-03-01 09:11:58.70307 84.71 21 +2013-03-01 09:11:58.70307 87.43 22 +2013-03-01 09:11:58.70307 91.36 23 +2013-03-01 09:11:58.70307 92.96 24 +2013-03-01 09:11:58.70307 95.04 25 +2013-03-01 09:11:58.703071 0.83 0 +2013-03-01 09:11:58.703071 1.99 1 +2013-03-01 09:11:58.703071 3.73 2 +2013-03-01 09:11:58.703071 8.86 3 +2013-03-01 09:11:58.703071 10.62 4 +2013-03-01 09:11:58.703071 11.32 5 +2013-03-01 09:11:58.703071 12.83 6 +2013-03-01 09:11:58.703071 14.7 7 +2013-03-01 09:11:58.703071 14.96 8 +2013-03-01 09:11:58.703071 17.58 9 +2013-03-01 09:11:58.703071 19.1 10 +2013-03-01 09:11:58.703071 21.01 11 +2013-03-01 09:11:58.703071 26.95 12 +2013-03-01 09:11:58.703071 27.23 13 +2013-03-01 09:11:58.703071 29.07 14 +2013-03-01 09:11:58.703071 29.71 15 +2013-03-01 09:11:58.703071 31.84 16 +2013-03-01 09:11:58.703071 31.94 17 +2013-03-01 09:11:58.703071 35.32 18 +2013-03-01 09:11:58.703071 37.32 19 +2013-03-01 09:11:58.703071 38.5 20 +2013-03-01 09:11:58.703071 42.08 21 +2013-03-01 09:11:58.703071 44.3 22 +2013-03-01 09:11:58.703071 44.66 23 +2013-03-01 09:11:58.703071 46.84 24 +2013-03-01 09:11:58.703071 48.89 25 +2013-03-01 09:11:58.703071 49.64 26 +2013-03-01 09:11:58.703071 50.28 27 +2013-03-01 09:11:58.703071 52.09 28 +2013-03-01 09:11:58.703071 53.26 29 +2013-03-01 09:11:58.703071 54.09 30 +2013-03-01 09:11:58.703071 56.45 31 +2013-03-01 09:11:58.703071 56.76 32 +2013-03-01 09:11:58.703071 61.41 33 +2013-03-01 09:11:58.703071 61.88 34 +2013-03-01 09:11:58.703071 63.03 35 +2013-03-01 09:11:58.703071 64.55 36 +2013-03-01 09:11:58.703071 68.62 37 +2013-03-01 09:11:58.703071 76.13 38 +2013-03-01 09:11:58.703071 79.05 39 +2013-03-01 09:11:58.703071 80.43 40 +2013-03-01 09:11:58.703071 81.41 41 +2013-03-01 09:11:58.703071 82.85 42 +2013-03-01 09:11:58.703071 83.98 43 +2013-03-01 09:11:58.703071 84.21 44 +2013-03-01 09:11:58.703071 85.55 45 +2013-03-01 09:11:58.703071 87.93 46 +2013-03-01 09:11:58.703071 88.93 47 +2013-03-01 09:11:58.703071 94.27 48 +2013-03-01 09:11:58.703071 99.45 49 +2013-03-01 09:11:58.703072 0.36 0 +2013-03-01 09:11:58.703072 0.48 1 +2013-03-01 09:11:58.703072 0.79 2 +2013-03-01 09:11:58.703072 1.27 3 +2013-03-01 09:11:58.703072 4.48 4 +2013-03-01 09:11:58.703072 9.0 5 +2013-03-01 09:11:58.703072 23.27 6 +2013-03-01 09:11:58.703072 25.13 7 +2013-03-01 09:11:58.703072 25.34 8 +2013-03-01 09:11:58.703072 25.91 9 +2013-03-01 09:11:58.703072 29.01 10 +2013-03-01 09:11:58.703072 30.47 11 +2013-03-01 09:11:58.703072 37.95 12 +2013-03-01 09:11:58.703072 39.3 13 +2013-03-01 09:11:58.703072 45.91 14 +2013-03-01 09:11:58.703072 52.44 15 +2013-03-01 09:11:58.703072 54.1 16 +2013-03-01 09:11:58.703072 56.7 17 +2013-03-01 09:11:58.703072 58.77 18 +2013-03-01 09:11:58.703072 62.09 19 +2013-03-01 09:11:58.703072 68.2 20 +2013-03-01 09:11:58.703072 71.68 21 +2013-03-01 09:11:58.703072 79.46 22 +2013-03-01 09:11:58.703072 80.02 23 +PREHOOK: query: select ts, f, count(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, count(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 2 +2013-03-01 09:11:58.70307 10.89 2 +2013-03-01 09:11:58.70307 14.54 2 +2013-03-01 09:11:58.70307 14.78 2 +2013-03-01 09:11:58.70307 17.85 2 +2013-03-01 09:11:58.70307 20.61 2 +2013-03-01 09:11:58.70307 28.69 2 +2013-03-01 09:11:58.70307 29.22 2 +2013-03-01 09:11:58.70307 31.17 2 +2013-03-01 09:11:58.70307 38.35 2 +2013-03-01 09:11:58.70307 38.61 2 +2013-03-01 09:11:58.70307 39.48 2 +2013-03-01 09:11:58.70307 40.54 2 +2013-03-01 09:11:58.70307 41.6 2 +2013-03-01 09:11:58.70307 46.08 2 +2013-03-01 09:11:58.70307 54.36 2 +2013-03-01 09:11:58.70307 56.94 2 +2013-03-01 09:11:58.70307 64.96 2 +2013-03-01 09:11:58.70307 73.52 2 +2013-03-01 09:11:58.70307 78.58 2 +2013-03-01 09:11:58.70307 81.41 2 +2013-03-01 09:11:58.70307 84.71 2 +2013-03-01 09:11:58.70307 87.43 2 +2013-03-01 09:11:58.70307 91.36 2 +2013-03-01 09:11:58.70307 92.96 1 +2013-03-01 09:11:58.70307 95.04 0 +2013-03-01 09:11:58.703071 0.83 2 +2013-03-01 09:11:58.703071 1.99 2 +2013-03-01 09:11:58.703071 3.73 2 +2013-03-01 09:11:58.703071 8.86 2 +2013-03-01 09:11:58.703071 10.62 2 +2013-03-01 09:11:58.703071 11.32 2 +2013-03-01 09:11:58.703071 12.83 2 +2013-03-01 09:11:58.703071 14.7 2 +2013-03-01 09:11:58.703071 14.96 2 +2013-03-01 09:11:58.703071 17.58 2 +2013-03-01 09:11:58.703071 19.1 2 +2013-03-01 09:11:58.703071 21.01 2 +2013-03-01 09:11:58.703071 26.95 2 +2013-03-01 09:11:58.703071 27.23 2 +2013-03-01 09:11:58.703071 29.07 2 +2013-03-01 09:11:58.703071 29.71 2 +2013-03-01 09:11:58.703071 31.84 2 +2013-03-01 09:11:58.703071 31.94 2 +2013-03-01 09:11:58.703071 35.32 2 +2013-03-01 09:11:58.703071 37.32 2 +2013-03-01 09:11:58.703071 38.5 2 +2013-03-01 09:11:58.703071 42.08 2 +2013-03-01 09:11:58.703071 44.3 2 +2013-03-01 09:11:58.703071 44.66 2 +2013-03-01 09:11:58.703071 46.84 2 +2013-03-01 09:11:58.703071 48.89 2 +2013-03-01 09:11:58.703071 49.64 2 +2013-03-01 09:11:58.703071 50.28 2 +2013-03-01 09:11:58.703071 52.09 2 +2013-03-01 09:11:58.703071 53.26 2 +2013-03-01 09:11:58.703071 54.09 2 +2013-03-01 09:11:58.703071 56.45 2 +2013-03-01 09:11:58.703071 56.76 2 +2013-03-01 09:11:58.703071 61.41 2 +2013-03-01 09:11:58.703071 61.88 2 +2013-03-01 09:11:58.703071 63.03 2 +2013-03-01 09:11:58.703071 64.55 2 +2013-03-01 09:11:58.703071 68.62 2 +2013-03-01 09:11:58.703071 76.13 2 +2013-03-01 09:11:58.703071 79.05 2 +2013-03-01 09:11:58.703071 80.43 2 +2013-03-01 09:11:58.703071 81.41 2 +2013-03-01 09:11:58.703071 82.85 2 +2013-03-01 09:11:58.703071 83.98 2 +2013-03-01 09:11:58.703071 84.21 2 +2013-03-01 09:11:58.703071 85.55 2 +2013-03-01 09:11:58.703071 87.93 2 +2013-03-01 09:11:58.703071 88.93 2 +2013-03-01 09:11:58.703071 94.27 1 +2013-03-01 09:11:58.703071 99.45 0 +2013-03-01 09:11:58.703072 0.36 2 +2013-03-01 09:11:58.703072 0.48 2 +2013-03-01 09:11:58.703072 0.79 2 +2013-03-01 09:11:58.703072 1.27 2 +2013-03-01 09:11:58.703072 4.48 2 +2013-03-01 09:11:58.703072 9.0 2 +2013-03-01 09:11:58.703072 23.27 2 +2013-03-01 09:11:58.703072 25.13 2 +2013-03-01 09:11:58.703072 25.34 2 +2013-03-01 09:11:58.703072 25.91 2 +2013-03-01 09:11:58.703072 29.01 2 +2013-03-01 09:11:58.703072 30.47 2 +2013-03-01 09:11:58.703072 37.95 2 +2013-03-01 09:11:58.703072 39.3 2 +2013-03-01 09:11:58.703072 45.91 2 +2013-03-01 09:11:58.703072 52.44 2 +2013-03-01 09:11:58.703072 54.1 2 +2013-03-01 09:11:58.703072 56.7 2 +2013-03-01 09:11:58.703072 58.77 2 +2013-03-01 09:11:58.703072 62.09 2 +2013-03-01 09:11:58.703072 68.2 2 +2013-03-01 09:11:58.703072 71.68 2 +2013-03-01 09:11:58.703072 79.46 2 +2013-03-01 09:11:58.703072 80.02 2 +PREHOOK: query: select ts, f, count(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, count(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 2 +2013-03-01 09:11:58.70307 10.89 3 +2013-03-01 09:11:58.70307 14.54 4 +2013-03-01 09:11:58.70307 14.78 5 +2013-03-01 09:11:58.70307 17.85 6 +2013-03-01 09:11:58.70307 20.61 7 +2013-03-01 09:11:58.70307 28.69 8 +2013-03-01 09:11:58.70307 29.22 9 +2013-03-01 09:11:58.70307 31.17 10 +2013-03-01 09:11:58.70307 38.35 11 +2013-03-01 09:11:58.70307 38.61 12 +2013-03-01 09:11:58.70307 39.48 13 +2013-03-01 09:11:58.70307 40.54 14 +2013-03-01 09:11:58.70307 41.6 15 +2013-03-01 09:11:58.70307 46.08 16 +2013-03-01 09:11:58.70307 54.36 17 +2013-03-01 09:11:58.70307 56.94 18 +2013-03-01 09:11:58.70307 64.96 19 +2013-03-01 09:11:58.70307 73.52 20 +2013-03-01 09:11:58.70307 78.58 21 +2013-03-01 09:11:58.70307 81.41 22 +2013-03-01 09:11:58.70307 84.71 23 +2013-03-01 09:11:58.70307 87.43 24 +2013-03-01 09:11:58.70307 91.36 25 +2013-03-01 09:11:58.70307 92.96 26 +2013-03-01 09:11:58.70307 95.04 26 +2013-03-01 09:11:58.703071 0.83 2 +2013-03-01 09:11:58.703071 1.99 3 +2013-03-01 09:11:58.703071 3.73 4 +2013-03-01 09:11:58.703071 8.86 5 +2013-03-01 09:11:58.703071 10.62 6 +2013-03-01 09:11:58.703071 11.32 7 +2013-03-01 09:11:58.703071 12.83 8 +2013-03-01 09:11:58.703071 14.7 9 +2013-03-01 09:11:58.703071 14.96 10 +2013-03-01 09:11:58.703071 17.58 11 +2013-03-01 09:11:58.703071 19.1 12 +2013-03-01 09:11:58.703071 21.01 13 +2013-03-01 09:11:58.703071 26.95 14 +2013-03-01 09:11:58.703071 27.23 15 +2013-03-01 09:11:58.703071 29.07 16 +2013-03-01 09:11:58.703071 29.71 17 +2013-03-01 09:11:58.703071 31.84 18 +2013-03-01 09:11:58.703071 31.94 19 +2013-03-01 09:11:58.703071 35.32 20 +2013-03-01 09:11:58.703071 37.32 21 +2013-03-01 09:11:58.703071 38.5 22 +2013-03-01 09:11:58.703071 42.08 23 +2013-03-01 09:11:58.703071 44.3 24 +2013-03-01 09:11:58.703071 44.66 25 +2013-03-01 09:11:58.703071 46.84 26 +2013-03-01 09:11:58.703071 48.89 27 +2013-03-01 09:11:58.703071 49.64 28 +2013-03-01 09:11:58.703071 50.28 29 +2013-03-01 09:11:58.703071 52.09 30 +2013-03-01 09:11:58.703071 53.26 31 +2013-03-01 09:11:58.703071 54.09 32 +2013-03-01 09:11:58.703071 56.45 33 +2013-03-01 09:11:58.703071 56.76 34 +2013-03-01 09:11:58.703071 61.41 35 +2013-03-01 09:11:58.703071 61.88 36 +2013-03-01 09:11:58.703071 63.03 37 +2013-03-01 09:11:58.703071 64.55 38 +2013-03-01 09:11:58.703071 68.62 39 +2013-03-01 09:11:58.703071 76.13 40 +2013-03-01 09:11:58.703071 79.05 41 +2013-03-01 09:11:58.703071 80.43 42 +2013-03-01 09:11:58.703071 81.41 43 +2013-03-01 09:11:58.703071 82.85 44 +2013-03-01 09:11:58.703071 83.98 45 +2013-03-01 09:11:58.703071 84.21 46 +2013-03-01 09:11:58.703071 85.55 47 +2013-03-01 09:11:58.703071 87.93 48 +2013-03-01 09:11:58.703071 88.93 49 +2013-03-01 09:11:58.703071 94.27 50 +2013-03-01 09:11:58.703071 99.45 50 +2013-03-01 09:11:58.703072 0.36 2 +2013-03-01 09:11:58.703072 0.48 3 +2013-03-01 09:11:58.703072 0.79 4 +2013-03-01 09:11:58.703072 1.27 5 +2013-03-01 09:11:58.703072 4.48 6 +2013-03-01 09:11:58.703072 9.0 7 +2013-03-01 09:11:58.703072 23.27 8 +2013-03-01 09:11:58.703072 25.13 9 +2013-03-01 09:11:58.703072 25.34 10 +2013-03-01 09:11:58.703072 25.91 11 +2013-03-01 09:11:58.703072 29.01 12 +2013-03-01 09:11:58.703072 30.47 13 +2013-03-01 09:11:58.703072 37.95 14 +2013-03-01 09:11:58.703072 39.3 15 +2013-03-01 09:11:58.703072 45.91 16 +2013-03-01 09:11:58.703072 52.44 17 +2013-03-01 09:11:58.703072 54.1 18 +2013-03-01 09:11:58.703072 56.7 19 +2013-03-01 09:11:58.703072 58.77 20 +2013-03-01 09:11:58.703072 62.09 21 +2013-03-01 09:11:58.703072 68.2 22 +2013-03-01 09:11:58.703072 71.68 23 +2013-03-01 09:11:58.703072 79.46 24 +2013-03-01 09:11:58.703072 80.02 25