Skip to content

Commit f4b40e4

Browse files
fix: AllColumns Replacement shall be about Columns only
Signed-off-by: Andreas Reichel <andreas@manticore-projects.com>
1 parent 858058e commit f4b40e4

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020

2121
public class AllColumns extends ASTNodeAccessImpl implements Expression {
2222
protected ExpressionList<Column> exceptColumns;
23-
protected List<SelectItem<?>> replaceExpressions;
23+
protected List<SelectItem<Column>> replaceExpressions;
2424

2525
public AllColumns(ExpressionList<Column> exceptColumns,
26-
List<SelectItem<?>> replaceExpressions) {
26+
List<SelectItem<Column>> replaceExpressions) {
2727
this.exceptColumns = exceptColumns;
2828
this.replaceExpressions = replaceExpressions;
2929
}
@@ -49,31 +49,31 @@ public AllColumns setExceptColumns(ExpressionList<Column> exceptColumns) {
4949
return this;
5050
}
5151

52-
public List<SelectItem<?>> getReplaceExpressions() {
52+
public List<SelectItem<Column>> getReplaceExpressions() {
5353
return replaceExpressions;
5454
}
5555

56-
public List<SelectItem<?>> addReplaceExpression(SelectItem<?> selectItem) {
56+
public List<SelectItem<Column>> addReplaceExpression(SelectItem<Column> selectItem) {
5757
if (replaceExpressions == null) {
5858
replaceExpressions = new ArrayList<>();
5959
}
6060
replaceExpressions.add(selectItem);
6161
return replaceExpressions;
6262
}
6363

64-
public AllColumns setReplaceExpressions(List<SelectItem<?>> replaceExpressions) {
64+
public AllColumns setReplaceExpressions(List<SelectItem<Column>> replaceExpressions) {
6565
this.replaceExpressions = replaceExpressions;
6666
return this;
6767
}
6868

6969
public StringBuilder appendTo(StringBuilder builder) {
7070
builder.append("*");
71-
if (exceptColumns != null && exceptColumns.size() > 0) {
71+
if (exceptColumns != null && !exceptColumns.isEmpty()) {
7272
builder.append(" Except( ");
7373
exceptColumns.appendTo(builder);
7474
builder.append(" )");
7575
}
76-
if (replaceExpressions != null && replaceExpressions.size() > 0) {
76+
if (replaceExpressions != null && !replaceExpressions.isEmpty()) {
7777
builder.append(" Replace(");
7878
int i = 0;
7979
for (SelectItem<?> selectItem : replaceExpressions) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class AllTableColumns extends AllColumns {
2121
private Table table;
2222

2323
public AllTableColumns(Table table, ExpressionList<Column> exceptColumns,
24-
List<SelectItem<?>> replaceExpressions) {
24+
List<SelectItem<Column>> replaceExpressions) {
2525
super(exceptColumns, replaceExpressions);
2626
this.table = table;
2727
}

src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2566,6 +2566,23 @@ WithItem WithItem() #WithItem:
25662566
}
25672567
}
25682568

2569+
List<SelectItem<Column>> ColumnSelectItemsList():
2570+
{
2571+
List<SelectItem<Column>> selectItemsList = null;
2572+
SelectItem selectItem = null;
2573+
}
2574+
{
2575+
selectItem=SelectItem() { selectItemsList = new ArrayList<SelectItem<Column>>(); selectItemsList.add(selectItem); }
2576+
(
2577+
LOOKAHEAD(2) "," selectItem=SelectItem()
2578+
{
2579+
selectItemsList.add(selectItem);
2580+
}
2581+
)*
2582+
2583+
{ return selectItemsList; }
2584+
}
2585+
25692586
List<SelectItem<?>> SelectItemsList():
25702587
{
25712588
List<SelectItem<?>> selectItemsList = null;
@@ -2614,12 +2631,12 @@ SelectItem SelectItem() #SelectItem:
26142631
AllColumns AllColumns():
26152632
{
26162633
ParenthesedExpressionList<Column> exceptColumns = null;
2617-
List<SelectItem<?>> replaceExpressions = null;
2634+
List<SelectItem<Column>> replaceExpressions = null;
26182635
}
26192636
{
26202637
"*"
26212638
[ LOOKAHEAD(2) <K_EXCEPT> exceptColumns = ParenthesedColumnList() ]
2622-
[ LOOKAHEAD(2) <K_REPLACE> "(" replaceExpressions = SelectItemsList() ")" ]
2639+
[ LOOKAHEAD(2) <K_REPLACE> "(" replaceExpressions = ColumnSelectItemsList() ")" ]
26232640

26242641
{
26252642
return new AllColumns(exceptColumns, replaceExpressions);

0 commit comments

Comments
 (0)