@Override public boolean visit(SQLUnique x) { for (SQLSelectOrderByItem column : x.getColumns()) { column.accept(this); } return false; }
private boolean apply(SQLAlterTableDropColumnItem item) { for (SQLName column : item.getColumns()) { String columnName = column.getSimpleName(); for (int i = tableElementList.size() - 1; i >= 0; --i) { SQLTableElement e = tableElementList.get(i); if (e instanceof SQLColumnDefinition) { if (SQLUtils.nameEquals(columnName, ((SQLColumnDefinition) e).getName().getSimpleName())) { tableElementList.remove(i); } } } for (int i = tableElementList.size() - 1; i >= 0; --i) { SQLTableElement e = tableElementList.get(i); if (e instanceof SQLUnique) { SQLUnique unique = (SQLUnique) e; unique.applyDropColumn(column); if (unique.getColumns().size() == 0) { tableElementList.remove(i); } } else if (e instanceof MySqlTableIndex) { MySqlTableIndex index = (MySqlTableIndex) e; index.applyDropColumn(column); if (index.getColumns().size() == 0) { tableElementList.remove(i); } } } } return true; }
@Override protected void accept0(SQLASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, this.getName()); acceptChild(visitor, this.getColumns()); } visitor.endVisit(this); }
@Override public boolean visit(SQLUnique x) { SQLName name = x.getName(); if (name != null) { print0(ucase ? "CONSTRAINT " : "constraint "); name.accept(this); print(' '); } print0(ucase ? "UNIQUE (" : "unique ("); printAndAccept(x.getColumns(), ", "); print(')'); return false; }
public SQLUnique parseUnique() { accept(Token.UNIQUE); SQLUnique unique = new SQLUnique(); accept(Token.LPAREN); orderBy(unique.getColumns(), unique); accept(Token.RPAREN); if (lexer.token == Token.DISABLE) { lexer.nextToken(); unique.setEnable(false); } else if (lexer.token == Token.ENABLE) { lexer.nextToken(); unique.setEnable(true); } else if (lexer.identifierEquals(FnvHash.Constants.VALIDATE)) { lexer.nextToken(); unique.setValidate(Boolean.TRUE); } else if (lexer.identifierEquals(FnvHash.Constants.NOVALIDATE)) { lexer.nextToken(); unique.setValidate(Boolean.FALSE); } else if (lexer.identifierEquals(FnvHash.Constants.RELY)) { lexer.nextToken(); unique.setRely(Boolean.TRUE); } else if (lexer.identifierEquals(FnvHash.Constants.NORELY)) { lexer.nextToken(); unique.setRely(Boolean.FALSE); } return unique; }
@Override public boolean visit(SQLUnique x) { for (SQLSelectOrderByItem column : x.getColumns()) { column.accept(this); } return false; }
private boolean apply(SQLAlterTableDropColumnItem item) { for (SQLName column : item.getColumns()) { String columnName = column.getSimpleName(); for (int i = tableElementList.size() - 1; i >= 0; --i) { SQLTableElement e = tableElementList.get(i); if (e instanceof SQLColumnDefinition) { if (SQLUtils.nameEquals(columnName, ((SQLColumnDefinition) e).getName().getSimpleName())) { tableElementList.remove(i); } } } for (int i = tableElementList.size() - 1; i >= 0; --i) { SQLTableElement e = tableElementList.get(i); if (e instanceof SQLUnique) { SQLUnique unique = (SQLUnique) e; unique.applyDropColumn(column); if (unique.getColumns().size() == 0) { tableElementList.remove(i); } } else if (e instanceof MySqlTableIndex) { MySqlTableIndex index = (MySqlTableIndex) e; index.applyDropColumn(column); if (index.getColumns().size() == 0) { tableElementList.remove(i); } } } } return true; }
@Override protected void accept0(SQLASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, this.getName()); acceptChild(visitor, this.getColumns()); } visitor.endVisit(this); }
@Override public boolean visit(SQLUnique x) { SQLName name = x.getName(); if (name != null) { print0(ucase ? "CONSTRAINT " : "constraint "); name.accept(this); print(' '); } print0(ucase ? "UNIQUE (" : "unique ("); printAndAccept(x.getColumns(), ", "); print(')'); return false; }
public SQLUnique parseUnique() { accept(Token.UNIQUE); SQLUnique unique = new SQLUnique(); accept(Token.LPAREN); orderBy(unique.getColumns(), unique); accept(Token.RPAREN); if (lexer.token == Token.DISABLE) { lexer.nextToken(); unique.setEnable(false); } else if (lexer.token == Token.ENABLE) { lexer.nextToken(); unique.setEnable(true); } else if (lexer.identifierEquals(FnvHash.Constants.VALIDATE)) { lexer.nextToken(); unique.setValidate(Boolean.TRUE); } else if (lexer.identifierEquals(FnvHash.Constants.NOVALIDATE)) { lexer.nextToken(); unique.setValidate(Boolean.FALSE); } else if (lexer.identifierEquals(FnvHash.Constants.RELY)) { lexer.nextToken(); unique.setRely(Boolean.TRUE); } else if (lexer.identifierEquals(FnvHash.Constants.NORELY)) { lexer.nextToken(); unique.setRely(Boolean.FALSE); } return unique; }