Search in sources :

Example 11 with SQLInListExpr

use of com.alibaba.druid.sql.ast.expr.SQLInListExpr in project Mycat-Server by MyCATApache.

the class InSubQueryResultHandler method dohandler.

@Override
public String dohandler(SQLStatement statement, SQLSelect sqlselect, SQLObject parent, List param) {
    SQLExprImpl inlistExpr = null;
    if (null == param || param.isEmpty()) {
        inlistExpr = new SQLNullExpr();
    } else {
        inlistExpr = new SQLInListExpr();
        ((SQLInListExpr) inlistExpr).setTargetList(param);
        ((SQLInListExpr) inlistExpr).setExpr(((SQLInSubQueryExpr) parent).getExpr());
        ((SQLInListExpr) inlistExpr).setNot(((SQLInSubQueryExpr) parent).isNot());
        ((SQLInListExpr) inlistExpr).setParent(sqlselect.getParent());
    }
    if (parent.getParent() instanceof MySqlSelectQueryBlock) {
        ((MySqlSelectQueryBlock) parent.getParent()).setWhere(inlistExpr);
    } else if (parent.getParent() instanceof SQLBinaryOpExpr) {
        SQLBinaryOpExpr pp = ((SQLBinaryOpExpr) parent.getParent());
        if (pp.getLeft().equals(parent)) {
            pp.setLeft(inlistExpr);
        } else if (pp.getRight().equals(parent)) {
            pp.setRight(inlistExpr);
        }
    }
    return statement.toString();
}
Also used : SQLInListExpr(com.alibaba.druid.sql.ast.expr.SQLInListExpr) SQLBinaryOpExpr(com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr) SQLExprImpl(com.alibaba.druid.sql.ast.SQLExprImpl) SQLNullExpr(com.alibaba.druid.sql.ast.expr.SQLNullExpr) MySqlSelectQueryBlock(com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock)

Aggregations

SQLInListExpr (com.alibaba.druid.sql.ast.expr.SQLInListExpr)11 SQLBinaryOpExpr (com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr)7 SQLExprImpl (com.alibaba.druid.sql.ast.SQLExprImpl)4 SQLNullExpr (com.alibaba.druid.sql.ast.expr.SQLNullExpr)4 SQLExpr (com.alibaba.druid.sql.ast.SQLExpr)3 SQLStatement (com.alibaba.druid.sql.ast.SQLStatement)2 SQLInSubQueryExpr (com.alibaba.druid.sql.ast.expr.SQLInSubQueryExpr)2 SQLListExpr (com.alibaba.druid.sql.ast.expr.SQLListExpr)2 SQLQueryExpr (com.alibaba.druid.sql.ast.expr.SQLQueryExpr)2 MySqlSelectQueryBlock (com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock)2 Item (com.actiontech.dble.plan.common.item.Item)1 SQLOver (com.alibaba.druid.sql.ast.SQLOver)1 SQLAllExpr (com.alibaba.druid.sql.ast.expr.SQLAllExpr)1 SQLAnyExpr (com.alibaba.druid.sql.ast.expr.SQLAnyExpr)1 SQLCurrentOfCursorExpr (com.alibaba.druid.sql.ast.expr.SQLCurrentOfCursorExpr)1 SQLDefaultExpr (com.alibaba.druid.sql.ast.expr.SQLDefaultExpr)1 SQLMethodInvokeExpr (com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr)1 SQLSomeExpr (com.alibaba.druid.sql.ast.expr.SQLSomeExpr)1 SQLAlterTableAlterColumn (com.alibaba.druid.sql.ast.statement.SQLAlterTableAlterColumn)1 SQLAlterTableDisableConstraint (com.alibaba.druid.sql.ast.statement.SQLAlterTableDisableConstraint)1