Skip to content

Commit 1bdb69b

Browse files
committed
Update Update.java
Add support for DB2 Updates with Select clause
1 parent 17e3d53 commit 1bdb69b

File tree

1 file changed

+50
-5
lines changed
  • src/main/java/net/sf/jsqlparser/statement/update

1 file changed

+50
-5
lines changed

src/main/java/net/sf/jsqlparser/statement/update/Update.java

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ public class Update implements Statement {
4343
private List<Expression> expressions;
4444
private FromItem fromItem;
4545
private List<Join> joins;
46+
private Select select;
47+
private boolean useColumnsBrackets = true;
48+
private boolean useSelect = false;
4649

4750
@Override
4851
public void accept(StatementVisitor statementVisitor) {
@@ -109,16 +112,58 @@ public void setJoins(List<Join> joins) {
109112
this.joins = joins;
110113
}
111114

115+
public Select getSelect() {
116+
return select;
117+
}
118+
119+
public void setSelect(Select select) {
120+
this.select = select;
121+
}
122+
123+
public boolean isUseColumnsBrackets() {
124+
return useColumnsBrackets;
125+
}
126+
127+
public void setUseColumnsBrackets(boolean useColumnsBrackets) {
128+
this.useColumnsBrackets = useColumnsBrackets;
129+
}
130+
131+
public boolean isUseSelect() {
132+
return useSelect;
133+
}
134+
135+
public void setUseSelect(boolean useSelect) {
136+
this.useSelect = useSelect;
137+
}
138+
112139
@Override
113140
public String toString() {
114141
StringBuilder b = new StringBuilder("UPDATE ");
115142
b.append(PlainSelect.getStringList(getTables(), true, false)).append(" SET ");
116-
for (int i = 0; i < getColumns().size(); i++) {
117-
if (i != 0) {
118-
b.append(", ");
143+
144+
if (!useSelect) {
145+
for (int i = 0; i < getColumns().size(); i++) {
146+
if (i != 0) {
147+
b.append(", ");
148+
}
149+
b.append(columns.get(i)).append(" = ");
150+
b.append(expressions.get(i));
151+
}
152+
} else {
153+
if (useColumnsBrackets) {
154+
b.append("(");
155+
}
156+
for (int i = 0; i < getColumns().size(); i++) {
157+
if (i != 0) {
158+
b.append(", ");
159+
}
160+
b.append(columns.get(i));
161+
}
162+
if (useColumnsBrackets) {
163+
b.append(")");
119164
}
120-
b.append(columns.get(i)).append(" = ");
121-
b.append(expressions.get(i));
165+
b.append(" = ");
166+
b.append("(").append(select).append(")");
122167
}
123168

124169
if (fromItem != null) {

0 commit comments

Comments
 (0)