/** * Get the column for the given table filter, if the sort column is for this * filter. * * @param index the column index (0, 1,..) * @param filter the table filter * @return the column, or null */ public Column getColumn(int index, TableFilter filter) { if (orderList == null) { return null; } SelectOrderBy order = orderList.get(index); Expression expr = order.expression; if (expr == null) { return null; } expr = expr.getNonAliasExpression(); if (expr.isConstant()) { return null; } if (!(expr instanceof ExpressionColumn)) { return null; } ExpressionColumn exprCol = (ExpressionColumn) expr; if (exprCol.getTableFilter() != filter) { return null; } return exprCol.getColumn(); }
continue; Expression expr = expressions.get(i).getNonAliasExpression(); if (!(expr instanceof ExpressionColumn)) { return false;
for (int i = 0; i < visibleColumnCount; i++) { Expression expr = expressions.get(i); expr = expr.getNonAliasExpression(); String sql = expr.getSQL(); expressionSQL.add(sql);
Expression comp; Expression col = expressions.get(columnId); col = col.getNonAliasExpression(); if (col.isEverything(ExpressionVisitor.QUERY_COMPARABLE_VISITOR)) { comp = new Comparison(session, comparisonType, col, param);
SelectListColumnResolver(Select select) { this.select = select; int columnCount = select.getColumnCount(); columns = new Column[columnCount]; expressions = new Expression[columnCount]; ArrayList<Expression> columnList = select.getExpressions(); ColumnNamer columnNamer= new ColumnNamer(select.getSession()); for (int i = 0; i < columnCount; i++) { Expression expr = columnList.get(i); String columnName = columnNamer.getColumnName(expr, i, expr.getAlias()); Column column = new Column(columnName, Value.NULL); column.setTable(null, i); columns[i] = column; expressions[i] = expr.getNonAliasExpression(); } }
/** * @param qry Query. * @param expCol Expression column. * @param validate Query validation flag. * @return {@code true} It it is an affinity column. */ private static boolean isAffinityColumn(Query qry, ExpressionColumn expCol, boolean validate) { if (qry.isUnion()) { SelectUnion union = (SelectUnion)qry; return isAffinityColumn(union.getLeft(), expCol, validate) && isAffinityColumn(union.getRight(), expCol, validate); } Expression exp = qry.getExpressions().get(expCol.getColumn().getColumnId()).getNonAliasExpression(); if (exp instanceof ExpressionColumn) { expCol = (ExpressionColumn)exp; return isAffinityColumn(expCol.getTableFilter(), expCol, validate); } return false; }
found = true; } else { Expression ec2 = ec.getNonAliasExpression(); if (ec2 instanceof ExpressionColumn) { ExpressionColumn c2 = (ExpressionColumn) ec2; o.expression = expressions.get(idx).getNonAliasExpression();
expr = expr.getNonAliasExpression(); if (expr.isConstant()) { continue;
expressions.size() == 1 && condition == null) { Expression expr = expressions.get(0); expr = expr.getNonAliasExpression(); if (expr instanceof ExpressionColumn) { Column column = ((ExpressionColumn) expr).getColumn();
fromColumn = (ExpressionColumn) expr; } else if (expr instanceof Alias) { Expression aliasExpr = expr.getNonAliasExpression(); if (aliasExpr instanceof ExpressionColumn) { fromColumn = (ExpressionColumn) aliasExpr;
exp = exp.getNonAliasExpression();
parseExpression(expression.getNonAliasExpression(), calcTypes), true);
for (int gi : groupIndex) { Expression g = exprList[gi]; g = g.getNonAliasExpression(); buff.appendExceptFirst(", "); buff.append(StringUtils.unEnclose(g.getSQL()));
/** * Get the column for the given table filter, if the sort column is for this * filter. * * @param index the column index (0, 1,..) * @param filter the table filter * @return the column, or null */ public Column getColumn(int index, TableFilter filter) { if (orderList == null) { return null; } SelectOrderBy order = orderList.get(index); Expression expr = order.expression; if (expr == null) { return null; } expr = expr.getNonAliasExpression(); if (expr.isConstant()) { return null; } if (!(expr instanceof ExpressionColumn)) { return null; } ExpressionColumn exprCol = (ExpressionColumn) expr; if (exprCol.getTableFilter() != filter) { return null; } return exprCol.getColumn(); }
SelectListColumnResolver(Select select) { this.select = select; int columnCount = select.getColumnCount(); columns = new Column[columnCount]; expressions = new Expression[columnCount]; ArrayList<Expression> columnList = select.getExpressions(); for (int i = 0; i < columnCount; i++) { Expression expr = columnList.get(i); Column column = new Column(expr.getAlias(), Value.NULL); column.setTable(null, i); columns[i] = column; expressions[i] = expr.getNonAliasExpression(); } }
/** * Get the column for the given table filter, if the sort column is for this * filter. * * @param index the column index (0, 1,..) * @param filter the table filter * @return the column, or null */ public Column getColumn(int index, TableFilter filter) { if (orderList == null) { return null; } SelectOrderBy order = orderList.get(index); Expression expr = order.expression; if (expr == null) { return null; } expr = expr.getNonAliasExpression(); if (expr.isConstant()) { return null; } if (!(expr instanceof ExpressionColumn)) { return null; } ExpressionColumn exprCol = (ExpressionColumn) expr; if (exprCol.getTableFilter() != filter) { return null; } return exprCol.getColumn(); }
SelectListColumnResolver(Select select) { this.select = select; int columnCount = select.getColumnCount(); columns = new Column[columnCount]; expressions = new Expression[columnCount]; ArrayList<Expression> columnList = select.getExpressions(); for (int i = 0; i < columnCount; i++) { Expression expr = columnList.get(i); Column column = new Column(expr.getAlias(), Value.NULL); column.setTable(null, i); columns[i] = column; expressions[i] = expr.getNonAliasExpression(); } }
continue; Expression expr = expressions.get(i).getNonAliasExpression(); if (!(expr instanceof ExpressionColumn)) { return false;
/** * @param qry Query. * @param expCol Expression column. * @param validate Query validation flag. * @return {@code true} It it is an affinity column. */ private static boolean isAffinityColumn(Query qry, ExpressionColumn expCol, boolean validate) { if (qry.isUnion()) { SelectUnion union = (SelectUnion)qry; return isAffinityColumn(union.getLeft(), expCol, validate) && isAffinityColumn(union.getRight(), expCol, validate); } Expression exp = qry.getExpressions().get(expCol.getColumn().getColumnId()).getNonAliasExpression(); if (exp instanceof ExpressionColumn) { expCol = (ExpressionColumn)exp; return isAffinityColumn(expCol.getTableFilter(), expCol, validate); } return false; }
public void addGlobalCondition(Parameter param, int columnId, int comparisonType) throws SQLException { addParameter(param); Expression col = (Expression) expressions.get(columnId); col = col.getNonAliasExpression(); Expression comp = new Comparison(session, comparisonType, col, param); comp = comp.optimize(session);