public Object[] computeValues(Object row) throws HiveException { Object[] objs = new Object[orderDef.getExpressions().size()]; for (int i = 0; i < objs.length; i++) { Object o = orderDef.getExpressions().get(i).getExprEvaluator().evaluate(row); objs[i] = ObjectInspectorUtils.copyToStandardObject(o, orderDef.getExpressions().get(i).getOI()); } return objs; }
public Object[] computeValues(Object row) throws HiveException { Object[] objs = new Object[orderDef.getExpressions().size()]; for (int i = 0; i < objs.length; i++) { Object o = orderDef.getExpressions().get(i).getExprEvaluator().evaluate(row); objs[i] = ObjectInspectorUtils.copyToStandardObject(o, orderDef.getExpressions().get(i).getOI()); } return objs; }
public boolean isEqual(Object[] v1, Object[] v2) { assert v1.length == v2.length; for (int i = 0; i < v1.length; i++) { if (v1[i] == null && v2[i] == null) { continue; } if (v1[i] == null || v2[i] == null) { return false; } if (ObjectInspectorUtils.compare( v1[i], orderDef.getExpressions().get(i).getOI(), v2[i], orderDef.getExpressions().get(i).getOI()) != 0) { return false; } } return true; } }
public boolean isEqual(Object[] v1, Object[] v2) { assert v1.length == v2.length; for (int i = 0; i < v1.length; i++) { if (v1[i] == null && v2[i] == null) { continue; } if (v1[i] == null || v2[i] == null) { return false; } if (ObjectInspectorUtils.compare( v1[i], orderDef.getExpressions().get(i).getOI(), v2[i], orderDef.getExpressions().get(i).getOI()) != 0) { return false; } } return true; } }
@Explain(displayName = "order by", explainLevels = { Level.USER, Level.DEFAULT, Level.EXTENDED }) public String getOrderExplain() { if (order == null || order.getExpressions() == null) { return null; } StringBuilder builder = new StringBuilder(); for (OrderExpressionDef expression : order.getExpressions()) { if (builder.length() > 0) { builder.append(", "); } builder.append(expression.getExprNode().getExprString()); builder.append(" "); if (expression.getOrder() == PTFInvocationSpec.Order.ASC) { builder.append("ASC "); } else { builder.append("DESC "); } if (expression.getNullOrder() == PTFInvocationSpec.NullOrder.NULLS_FIRST) { builder.append("NULLS FIRST"); } else { builder.append("NULLS LAST"); } } return builder.toString(); }
@Explain(displayName = "order by", explainLevels = { Level.USER, Level.DEFAULT, Level.EXTENDED }) public String getOrderExplain() { if (order == null || order.getExpressions() == null) { return null; } StringBuilder builder = new StringBuilder(); for (OrderExpressionDef expression : order.getExpressions()) { if (builder.length() > 0) { builder.append(", "); } builder.append(expression.getExprNode().getExprString()); builder.append(" "); if (expression.getOrder() == PTFInvocationSpec.Order.ASC) { builder.append("ASC "); } else { builder.append("DESC "); } if (expression.getNullOrder() == PTFInvocationSpec.NullOrder.NULLS_FIRST) { builder.append("NULLS FIRST"); } else { builder.append("NULLS LAST"); } } return builder.toString(); }
protected void initialize(WindowFrameDef winFrame, ShapeDetails inpShape) throws HiveException { if (winFrame.getWindowType() == WindowType.RANGE) { for (OrderExpressionDef exprDef : winFrame.getOrderDef().getExpressions()) { initialize(exprDef, inpShape); } } }
private void setupRankingArgs(WindowTableFunctionDef wdwTFnDef, WindowFunctionDef wFnDef, WindowFunctionSpec wSpec) throws SemanticException { if (wSpec.getArgs().size() > 0) { throw new SemanticException("Ranking Functions can take no arguments"); } OrderDef oDef = wdwTFnDef.getOrder(); List<OrderExpressionDef> oExprs = oDef.getExpressions(); for (OrderExpressionDef oExpr : oExprs) { wFnDef.addArg(oExpr); } }
protected void initialize(WindowFrameDef winFrame, ShapeDetails inpShape) throws HiveException { if (winFrame.getWindowType() == WindowType.RANGE) { for (OrderExpressionDef exprDef : winFrame.getOrderDef().getExpressions()) { initialize(exprDef, inpShape); } } }
private void setupRankingArgs(WindowTableFunctionDef wdwTFnDef, WindowFunctionDef wFnDef, WindowFunctionSpec wSpec) throws SemanticException { if (wSpec.getArgs().size() > 0) { throw new SemanticException("Ranking Functions can take no arguments"); } OrderDef oDef = wdwTFnDef.getOrder(); List<OrderExpressionDef> oExprs = oDef.getExpressions(); for (OrderExpressionDef oExpr : oExprs) { wFnDef.addArg(oExpr); } }
List<OrderExpressionDef> orderColList = tabDef.getOrder().getExpressions(); for (int i = 0; i < orderColList.size(); i++) { OrderExpressionDef colDef = orderColList.get(i);
public static ValueBoundaryScanner getScanner(WindowFrameDef winFrameDef, boolean nullsLast) throws HiveException { OrderDef orderDef = winFrameDef.getOrderDef(); int numOrders = orderDef.getExpressions().size(); if (numOrders != 1) { return new MultiValueBoundaryScanner(winFrameDef.getStart(), winFrameDef.getEnd(), orderDef, nullsLast); } else { return SingleValueBoundaryScanner.getScanner(winFrameDef.getStart(), winFrameDef.getEnd(), orderDef, nullsLast); } } }
List<OrderExpressionDef> orderColList = tabDef.getOrder().getExpressions(); for (int i = 0; i < orderColList.size(); i++) { OrderExpressionDef colDef = orderColList.get(i);
public static ValueBoundaryScanner getScanner(WindowFrameDef winFrameDef) throws HiveException { OrderDef orderDef = winFrameDef.getOrderDef(); int numOrders = orderDef.getExpressions().size(); if (numOrders != 1) { return new MultiValueBoundaryScanner(winFrameDef.getStart(), winFrameDef.getEnd(), orderDef); } else { return SingleValueBoundaryScanner.getScanner(winFrameDef.getStart(), winFrameDef.getEnd(), orderDef); } } }
@SuppressWarnings("incomplete-switch") public static SingleValueBoundaryScanner getScanner(BoundaryDef start, BoundaryDef end, OrderDef orderDef) throws HiveException { if (orderDef.getExpressions().size() != 1) { throw new HiveException("Internal error: initializing SingleValueBoundaryScanner with" + " multiple expression for sorting"); OrderExpressionDef exprDef = orderDef.getExpressions().get(0); PrimitiveObjectInspector pOI = (PrimitiveObjectInspector) exprDef.getOI(); switch(pOI.getPrimitiveCategory()) {
@SuppressWarnings("incomplete-switch") public static SingleValueBoundaryScanner getScanner(BoundaryDef start, BoundaryDef end, OrderDef orderDef, boolean nullsLast) throws HiveException { if (orderDef.getExpressions().size() != 1) { throw new HiveException("Internal error: initializing SingleValueBoundaryScanner with" + " multiple expression for sorting"); OrderExpressionDef exprDef = orderDef.getExpressions().get(0); PrimitiveObjectInspector pOI = (PrimitiveObjectInspector) exprDef.getOI(); switch(pOI.getPrimitiveCategory()) {
ExprNodeDesc[] partitionExprNodeDescs = getPartitionExprNodeDescs(partitionExpressions); List<OrderExpressionDef> orderExpressions = funcDef.getOrder().getExpressions(); final int orderKeyCount = orderExpressions.size(); ExprNodeDesc[] orderExprNodeDescs = getOrderExprNodeDescs(orderExpressions);
for (PTFExpressionDef col : tDef.getOrder().getExpressions()) { ExprNodeDesc exprNode = col.getExprNode(); prunedCols = mergeFieldNodesWithDesc(prunedCols, exprNode);
for (PTFExpressionDef col : tDef.getOrder().getExpressions()) { ExprNodeDesc exprNode = col.getExprNode(); prunedCols = mergeFieldNodesWithDesc(prunedCols, exprNode);
private void setupRankingArgs(WindowTableFunctionDef wdwTFnDef, WindowFunctionDef wFnDef, WindowFunctionSpec wSpec) throws SemanticException { if (wSpec.getArgs().size() > 0) { throw new SemanticException("Ranking Functions can take no arguments"); } OrderDef oDef = wdwTFnDef.getOrder(); List<OrderExpressionDef> oExprs = oDef.getExpressions(); for (OrderExpressionDef oExpr : oExprs) { wFnDef.addArg(oExpr); } }