@Override public List<List<Object>> getInsertRows() { List<SQLInsertStatement.ValuesClause> valuesClauses = ast.getValuesList(); List<List<Object>> rows = new ArrayList<>(valuesClauses.size()); for (SQLInsertStatement.ValuesClause valuesClause : valuesClauses) { List<SQLExpr> exprs = valuesClause.getValues(); List<Object> row = new ArrayList<>(exprs.size()); rows.add(row); for (SQLExpr expr : valuesClause.getValues()) { if (expr instanceof SQLValuableExpr) { row.add(((SQLValuableExpr)expr).getValue()); } else { throw new SQLParsingException("Unknown SQLExpr: " + expr.getClass() + " " + expr); } } } return rows; } }
protected void accept0(MySqlASTVisitor visitor) { if (visitor.visit(this)) { this.acceptChild(visitor, getTableSource()); this.acceptChild(visitor, getColumns()); this.acceptChild(visitor, getValuesList()); this.acceptChild(visitor, getQuery()); this.acceptChild(visitor, getDuplicateKeyUpdate()); } visitor.endVisit(this); }
ValuesClause valuesClause = null; if (x instanceof MySqlInsertStatement) { valuesClauses = ((MySqlInsertStatement) x).getValuesList(); } else if (x instanceof SQLServerInsertStatement) { valuesClauses = ((MySqlInsertStatement) x).getValuesList(); } else { valuesClause = x.getValues();
@Override public boolean visit(MySqlInsertStatement x) { if (repository != null && x.getParent() == null) { repository.resolve(x); } setMode(x, Mode.Insert); TableStat stat = getTableStat(x.getTableSource()); if (stat != null) { stat.incrementInsertCount(); } accept(x.getColumns()); accept(x.getValuesList()); accept(x.getQuery()); accept(x.getDuplicateKeyUpdate()); return false; }
List<SQLInsertStatement.ValuesClause> valuesList = x.getValuesList(); if (!valuesList.isEmpty()) { println();
parseValueClause(stmt.getValuesList(), columnSize, stmt); } else if (lexer.token() == Token.SET) { lexer.nextToken();
@Override protected void printValuesList(MySqlInsertStatement x) { print0(ucase ? "VALUES " : "values "); if (x.getValuesList().size() > 1) { incrementIndent(); for (int i = 0; i < x.getValuesList().size(); ++i) { if (i != 0) { print(','); println(); x.getValuesList().get(i).accept(this); for (int i = 0; i < x.getValuesList().size(); ++i) { if (this.batchInsertParamIndexes.contains(i)) { if (count > 0) { println(); x.getValuesList().get(i).accept(this); count++; if (x.getValuesList().size() > 1) { decrementIndent();
private static Collection<Object> evalInsert(SQLParsedResult parseResult, String column, List<Object> params, boolean isBatchInsert) { MySqlInsertStatement stmt = (MySqlInsertStatement) parseResult.getStmt(); List<SQLExpr> columns = stmt.getColumns(); List<SQLInsertStatement.ValuesClause> valuesList = stmt.getValuesList(); if (isBatchInsert) { List<Object> evalList = new LinkedList<Object>(); parseBatchValueList(evalList, params, columns, valuesList, column); return evalList; } else { // use the first value in the values Set<Object> evalSet = new LinkedHashSet<Object>(); parseValueList(evalSet, params, columns, valuesList, column); return evalSet; } }
protected void accept0(MySqlASTVisitor visitor) { if (visitor.visit(this)) { this.acceptChild(visitor, getTableSource()); this.acceptChild(visitor, getColumns()); this.acceptChild(visitor, getValuesList()); this.acceptChild(visitor, getQuery()); this.acceptChild(visitor, getDuplicateKeyUpdate()); } visitor.endVisit(this); }
/** * insert into ...values (),()... or insert into ...select..... * * @param insertStmt insertStmt * @return is Multi-Insert or not */ private boolean isMultiInsert(MySqlInsertStatement insertStmt) { return (insertStmt.getValuesList() != null && insertStmt.getValuesList().size() > 1); }
ValuesClause valuesClause = null; if (x instanceof MySqlInsertStatement) { valuesClauses = ((MySqlInsertStatement) x).getValuesList(); } else if (x instanceof SQLServerInsertStatement) { valuesClauses = ((MySqlInsertStatement) x).getValuesList(); } else { valuesClause = x.getValues();
/** * 是否为批量插入:insert into ...values (),()...或 insert into ...select..... * @param insertStmt * @return */ private boolean isMultiInsert(MySqlInsertStatement insertStmt) { return (insertStmt.getValuesList() != null && insertStmt.getValuesList().size() > 1) || insertStmt.getQuery() != null; }
@Override public boolean visit(MySqlInsertStatement x) { if (repository != null && x.getParent() == null) { repository.resolve(x); } setMode(x, Mode.Insert); TableStat stat = getTableStat(x.getTableSource()); if (stat != null) { stat.incrementInsertCount(); } accept(x.getColumns()); accept(x.getValuesList()); accept(x.getQuery()); accept(x.getDuplicateKeyUpdate()); return false; }
List<SQLInsertStatement.ValuesClause> valuesList = x.getValuesList(); if (!valuesList.isEmpty()) { println();
@Override public List<List<Object>> getInsertRows() { List<SQLInsertStatement.ValuesClause> valuesClauses = ast.getValuesList(); List<List<Object>> rows = new ArrayList<>(valuesClauses.size()); for (SQLInsertStatement.ValuesClause valuesClause : valuesClauses) { List<SQLExpr> exprs = valuesClause.getValues(); List<Object> row = new ArrayList<>(exprs.size()); rows.add(row); for (SQLExpr expr : valuesClause.getValues()) { if (expr instanceof SQLValuableExpr) { row.add(((SQLValuableExpr)expr).getValue()); } else { throw new SQLParsingException("Unknown SQLExpr: " + expr.getClass() + " " + expr); } } } return rows; } }
parseValueClause(stmt.getValuesList(), columnSize, stmt); } else if (lexer.token() == Token.SET) { lexer.nextToken();
List<ValuesClause> valueClauseList = insertStmt.getValuesList(); Map<Integer, List<ValuesClause>> nodeValuesMap = new HashMap<>(); TableConfig tableConfig = schema.getTables().get(tableName); Integer nodeIndex = node.getKey(); List<ValuesClause> valuesList = node.getValue(); insertStmt.getValuesList().clear(); insertStmt.getValuesList().addAll(valuesList); nodes[count] = new RouteResultsetNode(tableConfig.getDataNodes().get(nodeIndex), rrs.getSqlType(), RouterUtil.removeSchema(statementToString(insertStmt), schemaInfo.getSchema()));
List<ValuesClause> vcl = insert.getValuesList(); if (vcl != null && vcl.size() > 1) { // batch insert for (int j = 0; j < vcl.size(); j++) {