Skip to content

Commit 9fd3b9f

Browse files
authored
Add support for AllTableColumns in primary expression (#2197)
1 parent 104c4a0 commit 9fd3b9f

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

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

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3254,12 +3254,8 @@ SelectItem<?> SelectItem() #SelectItem:
32543254
// @fixme: Oracle's SEQUENCE.nextval is parsed as COLUMN with a name part nextval
32553255
// @todo: parse a proper SEQUENCE instead of a COLUMN
32563256
(
3257-
expression = AllColumns()
3258-
|
32593257
LOOKAHEAD( 3 ) expression = ConnectByPriorOperator()
32603258
|
3261-
LOOKAHEAD(AllTableColumns()) expression = AllTableColumns()
3262-
|
32633259
LOOKAHEAD( 3 ) expression = XorExpression()
32643260
|
32653261
LOOKAHEAD( 3 ) expression = ConcatExpression()
@@ -5303,6 +5299,9 @@ Expression PrimaryExpression() #PrimaryExpression:
53035299

53045300
| LOOKAHEAD(2, {!interrupted}) retval=CastExpression()
53055301

5302+
| LOOKAHEAD(AllColumns()) retval=AllColumns()
5303+
5304+
| LOOKAHEAD(AllTableColumns()) retval=AllTableColumns()
53065305

53075306
// support timestamp expressions
53085307
| LOOKAHEAD(2, {!interrupted}) (token=<K_TIME_KEY_EXPR> | token=<K_CURRENT>) { retval = new TimeKeyExpression(token.image); }
@@ -6452,10 +6451,6 @@ Function InternalFunction(boolean escaped):
64526451
)
64536452
]
64546453
(
6455-
"*" { expr = new AllColumns(); expressionList = new ExpressionList(expr); }
6456-
|
6457-
LOOKAHEAD( AllTableColumns() ) expr=AllTableColumns() { expressionList = new ExpressionList(expr); }
6458-
|
64596454
LOOKAHEAD(3) [ LOOKAHEAD(2) extraKeywordToken = <K_TABLE> { retval.setExtraKeyword(extraKeywordToken.image); } ]
64606455
expressionList=ExpressionList()
64616456
[ orderByList = OrderByElements() { retval.setOrderByElements(orderByList); } ]

src/test/java/net/sf/jsqlparser/statement/select/SelectTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5486,6 +5486,12 @@ public void testReservedKeywordsIssue1352() throws JSQLParserException {
54865486
assertSqlCanBeParsedAndDeparsed("SELECT fulltext from fulltext.fulltext", true);
54875487
}
54885488

5489+
@Test
5490+
public void testGroupByWithAllTableColumns() throws JSQLParserException {
5491+
assertSqlCanBeParsedAndDeparsed(
5492+
"select c.post_id, p.* from posts p inner join comments c on c.post_id = p.post_id group by p.post_id, c.post_id, p.*;");
5493+
}
5494+
54895495
@Test
54905496
public void testTableSpaceKeyword() throws JSQLParserException {
54915497
// without extra brackets

0 commit comments

Comments
 (0)