Search in sources :

Example 6 with SQLTableElement

use of com.alibaba.druid.sql.ast.statement.SQLTableElement in project canal by alibaba.

the class MemoryTableMeta method parse.

private TableMeta parse(SQLCreateTableStatement statement) {
    int size = statement.getTableElementList().size();
    if (size > 0) {
        TableMeta tableMeta = new TableMeta();
        for (int i = 0; i < size; ++i) {
            SQLTableElement element = statement.getTableElementList().get(i);
            processTableElement(element, tableMeta);
        }
        return tableMeta;
    }
    return null;
}
Also used : SQLTableElement(com.alibaba.druid.sql.ast.statement.SQLTableElement) TableMeta(com.alibaba.otter.canal.parse.inbound.TableMeta) SQLNotNullConstraint(com.alibaba.druid.sql.ast.statement.SQLNotNullConstraint) SQLColumnConstraint(com.alibaba.druid.sql.ast.statement.SQLColumnConstraint) SQLNullConstraint(com.alibaba.druid.sql.ast.statement.SQLNullConstraint)

Example 7 with SQLTableElement

use of com.alibaba.druid.sql.ast.statement.SQLTableElement in project druid by alibaba.

the class BlinkOutputVisitor method printTableElements.

protected void printTableElements(List<SQLTableElement> tableElementList) {
    int size = tableElementList.size();
    if (size == 0) {
        return;
    }
    BlinkCreateTableStatement stmt = (BlinkCreateTableStatement) tableElementList.get(0).getParent();
    print0(" (");
    this.indentCount++;
    println();
    for (int i = 0; i < size; ++i) {
        SQLTableElement element = tableElementList.get(i);
        element.accept(this);
        if (i != size - 1) {
            print(',');
        }
        if (this.isPrettyFormat() && element.hasAfterComment()) {
            print(' ');
            printlnComment(element.getAfterCommentsDirect());
        }
        if (i != size - 1) {
            println();
        }
    }
    if (stmt.getPeriodFor() != null) {
        print(',');
        println();
        print0(ucase ? "PERIODĀ FOR " : "periodĀ for ");
        stmt.getPeriodFor().accept(this);
    }
    this.indentCount--;
    println();
    print(')');
}
Also used : BlinkCreateTableStatement(com.alibaba.druid.sql.dialect.blink.ast.BlinkCreateTableStatement) SQLTableElement(com.alibaba.druid.sql.ast.statement.SQLTableElement)

Example 8 with SQLTableElement

use of com.alibaba.druid.sql.ast.statement.SQLTableElement in project Mycat_plus by coderczp.

the class GlobalTableUtil method hasGlobalColumn.

private static boolean hasGlobalColumn(SQLStatement statement) {
    for (SQLTableElement tableElement : ((SQLCreateTableStatement) statement).getTableElementList()) {
        SQLName sqlName = null;
        if (tableElement instanceof SQLColumnDefinition) {
            sqlName = ((SQLColumnDefinition) tableElement).getName();
        }
        if (sqlName != null) {
            String simpleName = sqlName.getSimpleName();
            simpleName = StringUtil.removeBackquote(simpleName);
            if (tableElement instanceof SQLColumnDefinition && GLOBAL_TABLE_MYCAT_COLUMN.equalsIgnoreCase(simpleName)) {
                return true;
            }
        }
    }
    return false;
}
Also used : SQLCreateTableStatement(com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement) SQLName(com.alibaba.druid.sql.ast.SQLName) SQLTableElement(com.alibaba.druid.sql.ast.statement.SQLTableElement) SQLColumnDefinition(com.alibaba.druid.sql.ast.statement.SQLColumnDefinition)

Example 9 with SQLTableElement

use of com.alibaba.druid.sql.ast.statement.SQLTableElement in project Mycat_plus by coderczp.

the class DruidMysqlCreateTableTest method hasColumn.

private static boolean hasColumn(SQLStatement statement) {
    for (SQLTableElement tableElement : ((SQLCreateTableStatement) statement).getTableElementList()) {
        SQLName sqlName = null;
        if (tableElement instanceof SQLColumnDefinition) {
            sqlName = ((SQLColumnDefinition) tableElement).getName();
        }
        if (sqlName != null) {
            String simpleName = sqlName.getSimpleName();
            simpleName = StringUtil.removeBackquote(simpleName);
            if (tableElement instanceof SQLColumnDefinition && "_slot".equalsIgnoreCase(simpleName)) {
                return true;
            }
        }
    }
    return false;
}
Also used : SQLCreateTableStatement(com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement) SQLName(com.alibaba.druid.sql.ast.SQLName) SQLTableElement(com.alibaba.druid.sql.ast.statement.SQLTableElement) SQLColumnDefinition(com.alibaba.druid.sql.ast.statement.SQLColumnDefinition)

Example 10 with SQLTableElement

use of com.alibaba.druid.sql.ast.statement.SQLTableElement in project Mycat-Server by MyCATApache.

the class DruidMysqlCreateTableTest method hasColumn.

private static boolean hasColumn(SQLStatement statement) {
    for (SQLTableElement tableElement : ((SQLCreateTableStatement) statement).getTableElementList()) {
        SQLName sqlName = null;
        if (tableElement instanceof SQLColumnDefinition) {
            sqlName = ((SQLColumnDefinition) tableElement).getName();
        }
        if (sqlName != null) {
            String simpleName = sqlName.getSimpleName();
            simpleName = StringUtil.removeBackquote(simpleName);
            if (tableElement instanceof SQLColumnDefinition && "_slot".equalsIgnoreCase(simpleName)) {
                return true;
            }
        }
    }
    return false;
}
Also used : SQLCreateTableStatement(com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement) SQLName(com.alibaba.druid.sql.ast.SQLName) SQLTableElement(com.alibaba.druid.sql.ast.statement.SQLTableElement) SQLColumnDefinition(com.alibaba.druid.sql.ast.statement.SQLColumnDefinition)

Aggregations

SQLTableElement (com.alibaba.druid.sql.ast.statement.SQLTableElement)13 SQLColumnDefinition (com.alibaba.druid.sql.ast.statement.SQLColumnDefinition)10 SQLName (com.alibaba.druid.sql.ast.SQLName)9 SQLCreateTableStatement (com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement)7 SQLExpr (com.alibaba.druid.sql.ast.SQLExpr)3 SQLConstraint (com.alibaba.druid.sql.ast.statement.SQLConstraint)2 SQLSelect (com.alibaba.druid.sql.ast.statement.SQLSelect)2 SQLSelectOrderByItem (com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem)2 SQLObject (com.alibaba.druid.sql.ast.SQLObject)1 SQLStatement (com.alibaba.druid.sql.ast.SQLStatement)1 SQLListExpr (com.alibaba.druid.sql.ast.expr.SQLListExpr)1 SQLColumnConstraint (com.alibaba.druid.sql.ast.statement.SQLColumnConstraint)1 SQLExprTableSource (com.alibaba.druid.sql.ast.statement.SQLExprTableSource)1 SQLNotNullConstraint (com.alibaba.druid.sql.ast.statement.SQLNotNullConstraint)1 SQLNullConstraint (com.alibaba.druid.sql.ast.statement.SQLNullConstraint)1 SQLUnique (com.alibaba.druid.sql.ast.statement.SQLUnique)1 AntsparkCreateTableStatement (com.alibaba.druid.sql.dialect.antspark.ast.AntsparkCreateTableStatement)1 BlinkCreateTableStatement (com.alibaba.druid.sql.dialect.blink.ast.BlinkCreateTableStatement)1 HiveInputOutputFormat (com.alibaba.druid.sql.dialect.hive.ast.HiveInputOutputFormat)1 MySqlUnique (com.alibaba.druid.sql.dialect.mysql.ast.MySqlUnique)1