Skip to content

Commit

Permalink
fix: INSERT must use simple Column Names only
Browse files Browse the repository at this point in the history
- salvages PR JSQLParser#589, credits to @wheredevel

Signed-off-by: Andreas Reichel <andreas@manticore-projects.com>
  • Loading branch information
manticore-projects committed Jun 15, 2023
1 parent f132547 commit 420d7d8
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ public ExpressionList withExpressions(T... expressions) {
return addExpressions(expressions);
}

public ExpressionList withExpressions(Collection<T> expressions) {
public ExpressionList<?> withExpressions(Collection<T> expressions) {
this.clear();
return addExpressions(expressions);
}
Expand Down
12 changes: 9 additions & 3 deletions src/main/java/net/sf/jsqlparser/schema/Column.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,10 @@ public void setColumnName(String string) {

@Override
public String getFullyQualifiedName() {
return getName(false);
return getFullyQualifiedName(false);
}

public String getName(boolean aliases) {
public String getFullyQualifiedName(boolean aliases) {
StringBuilder fqn = new StringBuilder();

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

// old and confusing, don't use it!
@Deprecated
public String getName(boolean aliases) {
return columnName;
}

@Override
public void accept(ExpressionVisitor expressionVisitor) {
expressionVisitor.visit(this);
}

@Override
public String toString() {
return getName(true);
return getFullyQualifiedName(true);
}

public Column withTable(Table table) {
Expand Down
13 changes: 11 additions & 2 deletions src/main/java/net/sf/jsqlparser/statement/insert/Insert.java
Original file line number Diff line number Diff line change
Expand Up @@ -226,12 +226,21 @@ public String toString() {
}
sql.append("INTO ");
sql.append(table).append(" ");

if (columns != null) {
sql.append(PlainSelect.getStringList(columns, true, true)).append(" ");
sql.append("(");
for (int i = 0; i < columns.size(); i++) {
if (i > 0) {
sql.append(", ");
}
// only plain names, but not fully qualified names allowed
sql.append(columns.get(i).getColumnName());
}
sql.append(") ");
}

if (outputClause != null) {
sql.append(outputClause.toString());
sql.append(outputClause);
}

if (select != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ public void deParse(Insert insert) {
buffer.append("INTO ");

buffer.append(insert.getTable().toString());

if (insert.getColumns() != null) {
buffer.append(" (");
for (Iterator<Column> iter = insert.getColumns().iterator(); iter.hasNext();) {
Expand Down

0 comments on commit 420d7d8

Please sign in to comment.