@Override public Expression[] getExpressionColumns(Session session) { switch (getType()) { case Value.RESULT_SET: ValueResultSet rs = getValueForColumnList(session, getArgs()); return getExpressionColumns(session, rs.getResultSet()); case Value.ARRAY: return getExpressionColumns(session, (ValueArray) getValue(session)); } return super.getExpressionColumns(session); }
@Override public Expression optimize(Session session) { boolean allConst = isDeterministic(); for (int i = 0, len = args.length; i < len; i++) { Expression e = args[i].optimize(session); args[i] = e; allConst &= e.isConstant(); } if (allConst) { return ValueExpression.get(getValue(session)); } return this; }
@Override public Expression[] getExpressionColumns(Session session) { switch (getType()) { case Value.RESULT_SET: ValueResultSet rs = getValueForColumnList(session, getArgs()); return getExpressionColumns(session, rs.getResultSet()); case Value.ARRAY: return getExpressionColumns(session, (ValueArray) getValue(session)); } return super.getExpressionColumns(session); }
@Override public Expression optimize(Session session) { boolean allConst = isDeterministic(); for (int i = 0, len = args.length; i < len; i++) { Expression e = args[i].optimize(session); args[i] = e; allConst &= e.isConstant(); } if (allConst) { return ValueExpression.get(getValue(session)); } return this; }
@Override public Expression[] getExpressionColumns(Session session) { switch (getType()) { case Value.RESULT_SET: ValueResultSet rs = getValueForColumnList(session, getArgs()); return getExpressionColumns(session, rs.getResultSet()); case Value.ARRAY: return getExpressionColumns(session, (ValueArray) getValue(session)); } return super.getExpressionColumns(session); }
@Override public Expression optimize(Session session) { boolean allConst = isDeterministic(); for (int i = 0, len = args.length; i < len; i++) { Expression e = args[i].optimize(session); args[i] = e; allConst &= e.isConstant(); } if (allConst) { return ValueExpression.get(getValue(session)); } return this; }