public Object clone() throws CloneNotSupportedException { WindowSpec windowSpec = (WindowSpec) super.clone(); windowSpec.windowName = windowName; if (hasPartitionBy()) { windowSpec.partitionKeys = new Expr[windowSpec.partitionKeys.length]; for (int i = 0; i < partitionKeys.length; i++) { windowSpec.partitionKeys[i] = (Expr) partitionKeys[i].clone(); } } if (hasOrderBy()) { windowSpec.sortSpecs = new Sort.SortSpec[sortSpecs.length]; for (int i = 0; i < sortSpecs.length; i++) { windowSpec.sortSpecs[i] = (Sort.SortSpec) sortSpecs[i].clone(); } } if (hasWindowFrame()) { windowSpec.windowFrame = (WindowFrame) windowFrame.clone(); } return windowSpec; }
public Object clone() throws CloneNotSupportedException { WindowSpec windowSpec = (WindowSpec) super.clone(); windowSpec.windowName = windowName; if (hasPartitionBy()) { windowSpec.partitionKeys = new Expr[windowSpec.partitionKeys.length]; for (int i = 0; i < partitionKeys.length; i++) { windowSpec.partitionKeys[i] = (Expr) partitionKeys[i].clone(); } } if (hasOrderBy()) { windowSpec.sortSpecs = new Sort.SortSpec[sortSpecs.length]; for (int i = 0; i < sortSpecs.length; i++) { windowSpec.sortSpecs[i] = (Sort.SortSpec) sortSpecs[i].clone(); } } if (hasWindowFrame()) { windowSpec.windowFrame = (WindowFrame) windowFrame.clone(); } return windowSpec; }
} else { String [] partitionKeyReferenceNames = null; if (windowSpec.hasPartitionBy()) { partitionKeyReferenceNames = new String [windowSpec.getPartitionKeys().length]; for (int i = 0; i < windowSpec.getPartitionKeys().length; i++) {
} else { String [] partitionKeyReferenceNames = null; if (windowSpec.hasPartitionBy()) { partitionKeyReferenceNames = new String [windowSpec.getPartitionKeys().length]; for (int i = 0; i < windowSpec.getPartitionKeys().length; i++) {
@Override public RESULT visitWindowFunction(CONTEXT ctx, Stack<Expr> stack, WindowFunctionExpr expr) throws TajoException { stack.push(expr); RESULT result = null; for (Expr param : expr.getParams()) { result = visit(ctx, stack, param); } WindowSpec windowSpec = expr.getWindowSpec(); if (windowSpec.hasPartitionBy()) { for (Expr partitionKey : windowSpec.getPartitionKeys()) { visit(ctx, stack, partitionKey); } } if (windowSpec.hasOrderBy()) { for (Sort.SortSpec sortKey : windowSpec.getSortSpecs()) { visit(ctx, stack, sortKey.getKey()); } } if (windowSpec.hasWindowFrame()) { if (windowSpec.getWindowFrame().getStartBound().hasNumber()) { visit(ctx, stack, windowSpec.getWindowFrame().getStartBound().getNumber()); } if (windowSpec.getWindowFrame().getEndBound().hasNumber()) { visit(ctx, stack, windowSpec.getWindowFrame().getEndBound().getNumber()); } } stack.pop(); return result; }
@Override public RESULT visitWindowFunction(CONTEXT ctx, Stack<Expr> stack, WindowFunctionExpr expr) throws TajoException { stack.push(expr); RESULT result = null; for (Expr param : expr.getParams()) { result = visit(ctx, stack, param); } WindowSpec windowSpec = expr.getWindowSpec(); if (windowSpec.hasPartitionBy()) { for (Expr partitionKey : windowSpec.getPartitionKeys()) { visit(ctx, stack, partitionKey); } } if (windowSpec.hasOrderBy()) { for (Sort.SortSpec sortKey : windowSpec.getSortSpecs()) { visit(ctx, stack, sortKey.getKey()); } } if (windowSpec.hasWindowFrame()) { if (windowSpec.getWindowFrame().getStartBound().hasNumber()) { visit(ctx, stack, windowSpec.getWindowFrame().getStartBound().getNumber()); } if (windowSpec.getWindowFrame().getEndBound().hasNumber()) { visit(ctx, stack, windowSpec.getWindowFrame().getEndBound().getNumber()); } } stack.pop(); return result; }
if (windowSpec.hasPartitionBy()) { for (int i = 0; i < windowSpec.getPartitionKeys().length; i++) { key = windowSpec.getPartitionKeys()[i];
if (windowSpec.hasPartitionBy()) { for (int i = 0; i < windowSpec.getPartitionKeys().length; i++) { key = windowSpec.getPartitionKeys()[i];