Skip to content

Commit 420d7d8

Browse files
fix: INSERT must use simple Column Names only
- salvages PR #589, credits to @wheredevel Signed-off-by: Andreas Reichel <[email protected]>
1 parent f132547 commit 420d7d8

File tree

4 files changed

+21
-7
lines changed

4 files changed

+21
-7
lines changed

src/main/java/net/sf/jsqlparser/expression/operators/relational/ExpressionList.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public ExpressionList withExpressions(T... expressions) {
7474
return addExpressions(expressions);
7575
}
7676

77-
public ExpressionList withExpressions(Collection<T> expressions) {
77+
public ExpressionList<?> withExpressions(Collection<T> expressions) {
7878
this.clear();
7979
return addExpressions(expressions);
8080
}

src/main/java/net/sf/jsqlparser/schema/Column.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,10 @@ public void setColumnName(String string) {
9494

9595
@Override
9696
public String getFullyQualifiedName() {
97-
return getName(false);
97+
return getFullyQualifiedName(false);
9898
}
9999

100-
public String getName(boolean aliases) {
100+
public String getFullyQualifiedName(boolean aliases) {
101101
StringBuilder fqn = new StringBuilder();
102102

103103
if (table != null) {
@@ -121,14 +121,20 @@ public String getName(boolean aliases) {
121121
return fqn.toString();
122122
}
123123

124+
// old and confusing, don't use it!
125+
@Deprecated
126+
public String getName(boolean aliases) {
127+
return columnName;
128+
}
129+
124130
@Override
125131
public void accept(ExpressionVisitor expressionVisitor) {
126132
expressionVisitor.visit(this);
127133
}
128134

129135
@Override
130136
public String toString() {
131-
return getName(true);
137+
return getFullyQualifiedName(true);
132138
}
133139

134140
public Column withTable(Table table) {

src/main/java/net/sf/jsqlparser/statement/insert/Insert.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,12 +226,21 @@ public String toString() {
226226
}
227227
sql.append("INTO ");
228228
sql.append(table).append(" ");
229+
229230
if (columns != null) {
230-
sql.append(PlainSelect.getStringList(columns, true, true)).append(" ");
231+
sql.append("(");
232+
for (int i = 0; i < columns.size(); i++) {
233+
if (i > 0) {
234+
sql.append(", ");
235+
}
236+
// only plain names, but not fully qualified names allowed
237+
sql.append(columns.get(i).getColumnName());
238+
}
239+
sql.append(") ");
231240
}
232241

233242
if (outputClause != null) {
234-
sql.append(outputClause.toString());
243+
sql.append(outputClause);
235244
}
236245

237246
if (select != null) {

src/main/java/net/sf/jsqlparser/util/deparser/InsertDeParser.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ public void deParse(Insert insert) {
6060
buffer.append("INTO ");
6161

6262
buffer.append(insert.getTable().toString());
63-
6463
if (insert.getColumns() != null) {
6564
buffer.append(" (");
6665
for (Iterator<Column> iter = insert.getColumns().iterator(); iter.hasNext();) {

0 commit comments

Comments
 (0)