提交 355833c4 authored 作者: Evgenij Ryazanov's avatar Evgenij Ryazanov

Extract Parser.readExpressionOrDefault()

上级 1762e152
......@@ -807,13 +807,7 @@ public class Parser {
do {
Column column = readTableColumn(filter);
read("=");
Expression expression;
if (readIf("DEFAULT")) {
expression = ValueExpression.getDefault();
} else {
expression = readExpression();
}
command.setAssignment(column, expression);
command.setAssignment(column, readExpressionOrDefault());
} while (readIf(","));
}
if (readIf("WHERE")) {
......@@ -1298,13 +1292,7 @@ public class Parser {
}
Column column = table.getColumn(columnName);
read("=");
Expression expression;
if (readIf("DEFAULT")) {
expression = ValueExpression.getDefault();
} else {
expression = readExpression();
}
command.addAssignmentForDuplicate(column, expression);
command.addAssignmentForDuplicate(column, readExpressionOrDefault());
} while (readIf(","));
}
}
......@@ -1350,13 +1338,7 @@ public class Parser {
do {
columnList.add(parseColumn(table));
read("=");
Expression expression;
if (readIf("DEFAULT")) {
expression = ValueExpression.getDefault();
} else {
expression = readExpression();
}
values.add(expression);
values.add(readExpressionOrDefault());
} while (readIf(","));
command.setColumns(columnList.toArray(new Column[0]));
command.addRow(values.toArray(new Expression[0]));
......@@ -2346,6 +2328,13 @@ public class Parser {
command.setSQL(sql);
}
private Expression readExpressionOrDefault() {
if (readIf("DEFAULT")) {
return ValueExpression.getDefault();
}
return readExpression();
}
private Expression readExpression() {
Expression r = readAnd();
while (readIf("OR")) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论