Skip to content

Commit bc16618

Browse files
authored
fix: ExpressionVisitor.visit(AllTableColumns) method isn't being called. (#1942)
This fixes a regression introduced in change #4b4ae04f44ff18b669d0f30d637e5b7c64b085e4: feat: BigQuery Except(..) Replace(..) syntax
1 parent 92e02c6 commit bc16618

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/main/java/net/sf/jsqlparser/statement/select/AllTableColumns.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
package net.sf.jsqlparser.statement.select;
1111

12+
import net.sf.jsqlparser.expression.ExpressionVisitor;
1213
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
1314
import net.sf.jsqlparser.schema.Column;
1415
import net.sf.jsqlparser.schema.Table;
@@ -50,4 +51,9 @@ public AllTableColumns withTable(Table table) {
5051
public StringBuilder appendTo(StringBuilder builder) {
5152
return super.appendTo(table.appendTo(builder).append("."));
5253
}
54+
55+
@Override
56+
public void accept(ExpressionVisitor expressionVisitor) {
57+
expressionVisitor.visit(this);
58+
}
5359
}

src/test/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapterTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import net.sf.jsqlparser.expression.operators.relational.InExpression;
1616
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
1717
import net.sf.jsqlparser.schema.Column;
18+
import net.sf.jsqlparser.statement.select.AllTableColumns;
1819
import net.sf.jsqlparser.statement.select.PlainSelect;
1920
import net.sf.jsqlparser.statement.select.Select;
2021
import net.sf.jsqlparser.statement.select.SelectVisitorAdapter;
@@ -241,4 +242,21 @@ public void testRowConstructor() throws JSQLParserException {
241242
"CAST(ROW(dataid, value, calcMark) AS ROW(datapointid CHAR, value CHAR, calcMark CHAR))")
242243
.accept(adapter);
243244
}
245+
246+
@Test
247+
public void testAllTableColumns() throws JSQLParserException {
248+
PlainSelect plainSelect = (PlainSelect) CCJSqlParserUtil.parse("select a.* from foo a");
249+
final AllTableColumns[] holder = new AllTableColumns[1];
250+
Expression from = plainSelect.getSelectItems().get(0).getExpression();
251+
from.accept(new ExpressionVisitorAdapter() {
252+
253+
@Override
254+
public void visit(AllTableColumns all) {
255+
holder[0] = all;
256+
}
257+
});
258+
259+
assertNotNull(holder[0]);
260+
assertEquals("a.*", holder[0].toString());
261+
}
244262
}

0 commit comments

Comments
 (0)