Skip to content

Commit cc6a4c5

Browse files
committed
allowing start as keyword for column and tablenames
1 parent 8e61a18 commit cc6a4c5

2 files changed

Lines changed: 28 additions & 3 deletions

File tree

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

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1146,7 +1146,20 @@ Normal names.
11461146
String RelObjectName() :
11471147
{ Token tk = null; String result = null; }
11481148
{
1149-
(result = RelObjectNameWithoutValue() | tk=<K_TOP> | tk=<K_VALUE> | tk=<K_VALUES> | tk=<K_INTERVAL>)
1149+
(result = RelObjectNameWithoutValue() | tk=<K_TOP> | tk=<K_VALUE> | tk=<K_VALUES>
1150+
| tk=<K_INTERVAL> | tk=<K_START>)
1151+
1152+
{
1153+
if (tk!=null) result=tk.image;
1154+
return result;
1155+
}
1156+
}
1157+
1158+
String RelObjectNameWithoutStart() :
1159+
{ Token tk = null; String result = null; }
1160+
{
1161+
(result = RelObjectNameWithoutValue() | tk=<K_TOP> | tk=<K_VALUE> | tk=<K_VALUES>
1162+
| tk=<K_INTERVAL>)
11501163

11511164
{
11521165
if (tk!=null) result=tk.image;
@@ -1162,7 +1175,9 @@ String RelObjectNameExt():
11621175
String result=null;
11631176
}
11641177
{
1165-
( result=RelObjectName() | tk=<K_LEFT> | tk=<K_RIGHT> | tk=<K_SET> | tk=<K_DOUBLE> | tk=<K_IF> | <K_OPTIMIZE> | tk=<K_LIMIT> | tk=<K_OFFSET>)
1178+
( result=RelObjectName() | tk=<K_LEFT> | tk=<K_RIGHT> | tk=<K_SET>
1179+
| tk=<K_DOUBLE> | tk=<K_IF> | <K_OPTIMIZE> | tk=<K_LIMIT>
1180+
| tk=<K_OFFSET>)
11661181
{
11671182
if (tk!=null) result=tk.image;
11681183
return result;
@@ -1463,7 +1478,7 @@ Alias Alias():
14631478
}
14641479
{
14651480
[<K_AS> { useAs = true; } ]
1466-
( name=RelObjectName() | token=<S_CHAR_LITERAL> { name=token.image; } )
1481+
( name=RelObjectNameWithoutStart() | token=<S_CHAR_LITERAL> { name=token.image; } )
14671482
{ alias = new Alias(name,useAs); }
14681483

14691484
[ LOOKAHEAD(2) "(" { List<Alias.AliasColumn> list = new ArrayList<Alias.AliasColumn>(); }

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3856,4 +3856,14 @@ public void testLimitClauseDroppedIssue845_2() throws JSQLParserException {
38563856
public void testChangeKeywordIssue859() throws JSQLParserException {
38573857
assertSqlCanBeParsedAndDeparsed("SELECT * FROM CHANGE.TEST");
38583858
}
3859+
3860+
@Test
3861+
public void testEndKeyword() throws JSQLParserException {
3862+
assertSqlCanBeParsedAndDeparsed("SELECT end AS end_6 FROM mytable");
3863+
}
3864+
3865+
@Test
3866+
public void testStartKeyword() throws JSQLParserException {
3867+
assertSqlCanBeParsedAndDeparsed("SELECT c0_.start AS start_5 FROM mytable");
3868+
}
38593869
}

0 commit comments

Comments
 (0)