@Override public List<String> getInsertColumns() { List<SQLExpr> columnSQLExprs = ast.getColumns(); if (columnSQLExprs.size() == 0) { // INSERT INTO ta VALUES (...), without fields clarified return null; } List<String> list = new ArrayList<>(columnSQLExprs.size()); for (SQLExpr expr : columnSQLExprs) { if (expr instanceof SQLIdentifierExpr) { list.add(((SQLIdentifierExpr)expr).getName()); } else { throw new SQLParsingException("Unknown SQLExpr: " + expr.getClass() + " " + expr); } } return list; }
List<SQLExpr> columns = x.getColumns(); if (columns.size() > 0) { this.indentCount++;
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); }
List<SQLExpr> columns = x.getColumns(); if (columns.size() > 0) { this.indentCount++;
@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; }
&& lexer.text.startsWith(cachedColumns.columnsString, pos)) { if (!lexer.isEnabled(SQLParserFeature.OptimizedForParameterized)) { List<SQLExpr> columns = stmt.getColumns(); List<SQLExpr> cachedColumns2 = cachedColumns.columns; for (int i = 0, size = cachedColumns2.size(); i < size; i++) { stmt.setQuery(select); } else { List<SQLExpr> columns = stmt.getColumns(); columnSize = stmt.getColumns().size();
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; } }
int clauseColumnSize = stmt.getColumns().size();
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); }
@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; }
@Override public List<String> getInsertColumns() { List<SQLExpr> columnSQLExprs = ast.getColumns(); if (columnSQLExprs.size() == 0) { // INSERT INTO ta VALUES (...), without fields clarified return null; } List<String> list = new ArrayList<>(columnSQLExprs.size()); for (SQLExpr expr : columnSQLExprs) { if (expr instanceof SQLIdentifierExpr) { list.add(((SQLIdentifierExpr)expr).getName()); } else { throw new SQLParsingException("Unknown SQLExpr: " + expr.getClass() + " " + expr); } } return list; }
&& lexer.text.startsWith(cachedColumns.columnsString, pos)) { if (!lexer.isEnabled(SQLParserFeature.OptimizedForParameterized)) { List<SQLExpr> columns = stmt.getColumns(); List<SQLExpr> cachedColumns2 = cachedColumns.columns; for (int i = 0, size = cachedColumns2.size(); i < size; i++) { stmt.setQuery(select); } else { List<SQLExpr> columns = stmt.getColumns(); columnSize = stmt.getColumns().size();
/** * find the index of the partition column * @param schemaInfo SchemaInfo * @param insertStmt MySqlInsertStatement * @param partitionColumn partitionColumn * @return the index of the partition column * @throws SQLNonTransientException if not find */ private int tryGetShardingColIndex(SchemaInfo schemaInfo, MySqlInsertStatement insertStmt, String partitionColumn) throws SQLNonTransientException { int shardingColIndex = getShardingColIndex(schemaInfo, insertStmt.getColumns(), partitionColumn); if (shardingColIndex != -1) return shardingColIndex; throw new SQLNonTransientException("bad insert sql, sharding column/joinKey:" + partitionColumn + " not provided," + insertStmt); }
public boolean visit(MySqlInsertStatement x) { String tableName = x.getTableName().getSimpleName(); if (!ruleSet.relativeTo(tableName)) return false; val sqlFieldIndexes = Lists.<SqlFieldIndex>newArrayList(); for (int i = 0, ii = x.getColumns().size(); i < ii; ++i) { val valueExpr = x.getValues().getValues().get(i); valueExpr.accept(this); val columnExpr = x.getColumns().get(i); if (!(columnExpr instanceof SQLIdentifierExpr)) continue; String columnName = ((SQLIdentifierExpr) columnExpr).getName(); if (!ruleSet.relativeTo(tableName, columnName)) continue; if (!(valueExpr instanceof SQLVariantRefExpr)) continue; val index = new SqlFieldIndex(tableName, columnName, variantIndex - 1); sqlFieldIndexes.add(index); } this.sqlFieldIndexes = sqlFieldIndexes.toArray(new SqlFieldIndex[0]); return false; } }
CalculateUnit unit = new CalculateUnit(); boolean isFind = false; for(int i = 0; i < insertStmt.getColumns().size(); i++) { String column = StringUtil.removeBackquote(insertStmt.getColumns().get(i).toString()); if (StringUtil.contains(partitionColumn, column)){ SQLExpr valueExpr = insertStmt.getValues().getValues().get(i);
private boolean isInsertHasSlot(String sql) { MySqlStatementParser parser = new MySqlStatementParser(sql); MySqlInsertStatement insertStatement = (MySqlInsertStatement) parser.parseStatement(); List<SQLExpr> cc = insertStatement.getColumns(); for (SQLExpr sqlExpr : cc) { SQLIdentifierExpr c = (SQLIdentifierExpr) sqlExpr; if ("_slot".equalsIgnoreCase(c.getName()) && cc.size() == insertStatement.getValues().getValues().size()) return true; } return false; }
@Override public boolean visit(final MySqlInsertStatement x) { SQLName expr = x.getTableName(); String tableName = expr.toString(); String schema = null; if (expr instanceof SQLPropertyExpr) { SQLPropertyExpr propertyExpr = (SQLPropertyExpr) expr; tableName = propertyExpr.getSimpleName(); schema = propertyExpr.getOwner().toString(); } tableName = SQLUtil.getExactlyValue(tableName); getParsedResult().setTable(new Table(tableName, schema, x.getAlias())); List<SQLExpr> columns = x.getColumns(); for (SQLExpr sqlExpr : columns) { String columnName = SQLUtil.getExactlyValue(sqlExpr.toString()); Column column = new Column(columnName, tableName); getParsedResult().getColumns().add(column); } return super.visit(x); }
String tableName = schemaInfo.getTable(); int columnNum = getTableColumns(schemaInfo, insertStmt.getColumns()); int shardingColIndex = tryGetShardingColIndex(schemaInfo, insertStmt, partitionColumn); List<ValuesClause> valueClauseList = insertStmt.getValuesList();
sb.append(schemaInfo.getTable()); List<SQLExpr> columns = insert.getColumns();
List<SQLExpr> columns = ((MySqlInsertStatement) currentSqlStatement).getColumns(); List<SQLExpr> columnValues = ((MySqlInsertStatement) currentSqlStatement).getValues().getValues(); for (int i = 0; i < columns.size(); i++) {