private boolean apply(SQLAlterTableAddColumn item) { int startIndex = tableElementList.size(); if (item.isFirst()) { startIndex = 0; } int afterIndex = columnIndexOf(item.getAfterColumn()); if (afterIndex != -1) { startIndex = afterIndex + 1; } int beforeIndex = columnIndexOf(item.getFirstColumn()); if (beforeIndex != -1) { startIndex = beforeIndex; } for (int i = 0; i < item.getColumns().size(); i++) { SQLColumnDefinition column = item.getColumns().get(i); tableElementList.add(i + startIndex, column); column.setParent(this); } return true; }
SQLAlterTableAddColumn item = new SQLAlterTableAddColumn(); for (; ; ) { item.addColumn(columnDef); if (lexer.identifierEquals("AFTER")) { lexer.nextToken(); item.setAfterColumn(this.exprParser.name()); } else if (lexer.identifierEquals("FIRST")) { lexer.nextToken(); if (lexer.token() == Token.IDENTIFIER) { item.setFirstColumn(this.exprParser.name()); } else { item.setFirst(true);
@Override public boolean visit(SQLAlterTableAddColumn x) { SQLAlterTableStatement stmt = (SQLAlterTableStatement) x.getParent(); String table = stmt.getName().toString(); for (SQLColumnDefinition column : x.getColumns()) { String columnName = column.getName().toString(); addColumn(table, columnName); } return false; }
protected SQLAlterTableAddColumn parseAlterTableAddColumn() { boolean odps = JdbcConstants.ODPS.equals(dbType); if (odps) { acceptIdentifier("COLUMNS"); accept(Token.LPAREN); } SQLAlterTableAddColumn item = new SQLAlterTableAddColumn(); for (;;) { SQLColumnDefinition columnDef = this.exprParser.parseColumn(); item.addColumn(columnDef); if (lexer.token == Token.COMMA) { lexer.nextToken(); if (lexer.identifierEquals("ADD")) { break; } continue; } break; } if (odps) { accept(Token.RPAREN); } return item; }
private void addColumn(List<String> cols, SQLAlterTableAddColumn addColumn, List<SQLAlterTableItem> newAlterItems) { SQLName afterColumn = addColumn.getAfterColumn(); if (afterColumn != null || addColumn.isFirst()) { SQLAlterTableAddColumn newAddColumn = addColumn; String addName = StringUtil.removeBackQuote(addColumn.getColumns().get(0).getName().getSimpleName()); if (addName.equalsIgnoreCase(GlobalTableUtil.GLOBAL_TABLE_CHECK_COLUMN)) { newAddColumn.setFirst(false); newAddColumn.setAfterColumn(null); cols.add(cols.size(), addName); } else if (afterColumn != null) { if (afterColName.equalsIgnoreCase(GlobalTableUtil.GLOBAL_TABLE_CHECK_COLUMN) && cols.get(lastIndex).equalsIgnoreCase(GlobalTableUtil.GLOBAL_TABLE_CHECK_COLUMN)) { newAddColumn.setAfterColumn(new SQLIdentifierExpr(cols.get(lastIndex - 1))); cols.add(lastIndex, addName); } else if (addColumn.isFirst()) { cols.add(0, addName); for (SQLColumnDefinition columnDef : addColumn.getColumns()) { SQLAlterTableAddColumn newAddColumn = new SQLAlterTableAddColumn(); newAddColumn.addColumn(columnDef); String addName = StringUtil.removeBackQuote(columnDef.getName().getSimpleName()); int lastIndex = cols.size() - 1; if (cols.get(lastIndex).equalsIgnoreCase(GlobalTableUtil.GLOBAL_TABLE_CHECK_COLUMN)) { newAddColumn.setAfterColumn(new SQLIdentifierExpr(cols.get(lastIndex - 1))); cols.add(lastIndex, addName); } else {
if (alterItem instanceof SQLAlterTableAddColumn) { SQLAlterTableAddColumn addColumn = (SQLAlterTableAddColumn) alterItem; boolean isFirst = addColumn.isFirst(); SQLName afterColumn = addColumn.getAfterColumn(); if (afterColumn != null) { System.out.println(sql + ": afterColumns:\n" + afterColumn.getClass().toString() + "\n"); for (SQLColumnDefinition columnDef : addColumn.getColumns()) {
@Override public boolean visit(SQLAlterTableAddColumn x) { boolean odps = isOdps(); print0(ucase ? "ADD " : "add "); printAndAccept(x.getColumns(), ", "); return false; } }
private boolean containsColumnAddAfter() { if (sqlStatement instanceof SQLAlterTableStatement) { SQLAlterTableStatement alterStmt = (SQLAlterTableStatement) sqlStatement; for (SQLAlterTableItem item : alterStmt.getItems()) { if (item instanceof SQLAlterTableAddColumn && (((SQLAlterTableAddColumn) item).getAfterColumn() != null)) { return true; } } } return false; }
@Override public boolean visit(SQLAlterTableAddColumn x) { boolean odps = isOdps(); print0(ucase ? "ADD COLUMN " : "add column "); printAndAccept(x.getColumns(), ", "); return false; }
@Override public boolean visit(SQLAlterTableAddColumn x) { SQLAlterTableStatement stmt = (SQLAlterTableStatement) x.getParent(); String table = stmt.getName().toString(); for (SQLColumnDefinition column : x.getColumns()) { String columnName = column.getName().toString(); addColumn(table, columnName); } return false; }
protected SQLAlterTableAddColumn parseAlterTableAddColumn() { boolean odps = JdbcConstants.ODPS.equals(dbType); if (odps) { acceptIdentifier("COLUMNS"); accept(Token.LPAREN); } SQLAlterTableAddColumn item = new SQLAlterTableAddColumn(); for (;;) { SQLColumnDefinition columnDef = this.exprParser.parseColumn(); item.addColumn(columnDef); if (lexer.token == Token.COMMA) { lexer.nextToken(); if (lexer.identifierEquals("ADD")) { break; } continue; } break; } if (odps) { accept(Token.RPAREN); } return item; }
@Override public boolean visit(SQLAlterTableAddColumn x) { print0(ucase ? "ADD COLUMN " : "add column "); if (x.getColumns().size() > 1) { print('('); } printAndAccept(x.getColumns(), ", "); if (x.getFirstColumn() != null) { print0(ucase ? " FIRST " : " first "); x.getFirstColumn().accept(this); } else if (x.getAfterColumn() != null) { print0(ucase ? " AFTER " : " after "); x.getAfterColumn().accept(this); } else if (x.isFirst()) { print0(ucase ? " FIRST" : " first"); } if (x.getColumns().size() > 1) { print(')'); } return false; }
SQLAlterTableAddColumn item = new SQLAlterTableAddColumn(); for (; ; ) { item.addColumn(columnDef); if (lexer.identifierEquals("AFTER")) { lexer.nextToken(); item.setAfterColumn(this.exprParser.name()); } else if (lexer.identifierEquals("FIRST")) { lexer.nextToken(); if (lexer.token() == Token.IDENTIFIER) { item.setFirstColumn(this.exprParser.name()); } else { item.setFirst(true);
@Override public boolean visit(SQLAlterTableAddColumn x) { boolean odps = isOdps(); if (odps) { print0(ucase ? "ADD COLUMNS (" : "add columns ("); } else { print0(ucase ? "ADD (" : "add ("); } printAndAccept(x.getColumns(), ", "); print(')'); return false; }
private boolean apply(SQLAlterTableAddColumn item) { int startIndex = tableElementList.size(); if (item.isFirst()) { startIndex = 0; } int afterIndex = columnIndexOf(item.getAfterColumn()); if (afterIndex != -1) { startIndex = afterIndex + 1; } int beforeIndex = columnIndexOf(item.getFirstColumn()); if (beforeIndex != -1) { startIndex = beforeIndex; } for (int i = 0; i < item.getColumns().size(); i++) { SQLColumnDefinition column = item.getColumns().get(i); tableElementList.add(i + startIndex, column); column.setParent(this); } return true; }
@Override public boolean visit(SQLAlterTableAddColumn x) { boolean odps = isOdps(); print0(ucase ? "ADD " : "add "); printAndAccept(x.getColumns(), ", "); return false; } }
@Override public boolean visit(SQLAlterTableAddColumn x) { print0(ucase ? "ADD COLUMN " : "add column "); if (x.getColumns().size() > 1) { print('('); } printAndAccept(x.getColumns(), ", "); if (x.getFirstColumn() != null) { print0(ucase ? " FIRST " : " first "); x.getFirstColumn().accept(this); } else if (x.getAfterColumn() != null) { print0(ucase ? " AFTER " : " after "); x.getAfterColumn().accept(this); } else if (x.isFirst()) { print0(ucase ? " FIRST" : " first"); } if (x.getColumns().size() > 1) { print(')'); } return false; }
@Override public boolean visit(SQLAlterTableAddColumn x) { boolean odps = isOdps(); print0(ucase ? "ADD COLUMN " : "add column "); printAndAccept(x.getColumns(), ", "); return false; }
@Override public boolean visit(SQLAlterTableAddColumn x) { boolean odps = isOdps(); if (odps) { print0(ucase ? "ADD COLUMNS (" : "add columns ("); } else { print0(ucase ? "ADD (" : "add ("); } printAndAccept(x.getColumns(), ", "); print(')'); return false; }
private List<SqlCheckColumnInfo> buildColumnAddInfo() { if (sqlStatement instanceof SQLAlterTableStatement) { SQLAlterTableStatement alterStmt = (SQLAlterTableStatement) sqlStatement; List<SqlCheckColumnInfo> columnsAddList = new ArrayList<>(); for (SQLAlterTableItem item : alterStmt.getItems()) { if (item instanceof SQLAlterTableAddColumn) { SQLAlterTableAddColumn columnAdd = (SQLAlterTableAddColumn) item; List<SQLColumnDefinition> columnDefinitions = columnAdd.getColumns(); List<SqlCheckColumnInfo> columnInfos = new ArrayList<>(); for (SQLColumnDefinition columnDefinition : columnDefinitions) { SqlCheckColumnInfo columnInfo = new SqlCheckColumnInfo(); columnInfo.setName(columnDefinition.getName().getSimpleName()); columnInfo.setDataType(columnDefinition.getDataType().getName()); columnInfos.add(columnInfo); } columnsAddList.addAll(columnInfos); } } return columnsAddList; } return Lists.newArrayList(); }