use of io.seata.sqlparser.SQLParsingException in project seata by seata.
the class MySQLUpdateRecognizer method getUpdateValues.
@Override
public List<Object> getUpdateValues() {
List<SQLUpdateSetItem> updateSetItems = ast.getItems();
List<Object> list = new ArrayList<>(updateSetItems.size());
for (SQLUpdateSetItem updateSetItem : updateSetItems) {
SQLExpr expr = updateSetItem.getValue();
if (expr instanceof SQLValuableExpr) {
list.add(((SQLValuableExpr) expr).getValue());
} else if (expr instanceof SQLVariantRefExpr) {
list.add(new VMarker());
} else {
throw new SQLParsingException("Unknown SQLExpr: " + expr.getClass() + " " + expr);
}
}
return list;
}
use of io.seata.sqlparser.SQLParsingException in project seata by seata.
the class PostgresqlUpdateRecognizer method getUpdateValues.
@Override
public List<Object> getUpdateValues() {
List<SQLUpdateSetItem> updateSetItems = ast.getItems();
List<Object> list = new ArrayList<>(updateSetItems.size());
for (SQLUpdateSetItem updateSetItem : updateSetItems) {
SQLExpr expr = updateSetItem.getValue();
if (expr instanceof SQLValuableExpr) {
list.add(((SQLValuableExpr) expr).getValue());
} else if (expr instanceof SQLVariantRefExpr) {
list.add(new VMarker());
} else {
throw new SQLParsingException("Unknown SQLExpr: " + expr.getClass() + " " + expr);
}
}
return list;
}
use of io.seata.sqlparser.SQLParsingException in project seata by seata.
the class OracleInsertRecognizer method getInsertRows.
@Override
public List<List<Object>> getInsertRows(Collection<Integer> primaryKeyIndex) {
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 (int i = 0, len = exprs.size(); i < len; i++) {
SQLExpr expr = exprs.get(i);
if (expr instanceof SQLNullExpr) {
row.add(Null.get());
} else if (expr instanceof SQLValuableExpr) {
row.add(((SQLValuableExpr) expr).getValue());
} else if (expr instanceof SQLVariantRefExpr) {
row.add(((SQLVariantRefExpr) expr).getName());
} else if (expr instanceof SQLMethodInvokeExpr) {
row.add(SqlMethodExpr.get());
} else if (expr instanceof SQLSequenceExpr) {
SQLSequenceExpr sequenceExpr = (SQLSequenceExpr) expr;
String sequence = sequenceExpr.getSequence().getSimpleName();
String function = sequenceExpr.getFunction().name;
row.add(new SqlSequenceExpr(sequence, function));
} else {
if (primaryKeyIndex.contains(i)) {
throw new SQLParsingException("Unknown SQLExpr: " + expr.getClass() + " " + expr);
}
row.add(NotPlaceholderExpr.get());
}
}
}
return rows;
}
use of io.seata.sqlparser.SQLParsingException in project seata by seata.
the class OracleSelectForUpdateRecognizer method getSelect.
private SQLSelectQueryBlock getSelect() {
SQLSelect select = ast.getSelect();
if (select == null) {
throw new SQLParsingException("should never happen!");
}
SQLSelectQueryBlock selectQueryBlock = select.getQueryBlock();
if (selectQueryBlock == null) {
throw new SQLParsingException("should never happen!");
}
return selectQueryBlock;
}
use of io.seata.sqlparser.SQLParsingException in project seata by seata.
the class PostgresqlInsertRecognizer method getInsertColumns.
@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;
}
Aggregations