Skip to content

Commit 9a819eb

Browse files
committed
removed possibility of empty tablename
1 parent 7fa4f85 commit 9a819eb

File tree

2 files changed

+39
-20
lines changed

2 files changed

+39
-20
lines changed

src/main/javacc/net/sf/jsqlparser/parser/JSqlParserCC.jj

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -187,12 +187,12 @@ TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */
187187

188188
TOKEN : /* Numeric Constants */
189189
{
190-
< S_DOUBLE: ((<S_LONG>)? "." <S_LONG> ( ["e","E"] (["+", "-"])? <S_LONG>)?
191-
|
192-
<S_LONG> "." (["e","E"] (["+", "-"])? <S_LONG>)?
193-
|
194-
<S_LONG> ["e","E"] (["+", "-"])? <S_LONG>
195-
)>
190+
< S_DOUBLE: ((<S_LONG>)? "." <S_LONG> ( ["e","E"] (["+", "-"])? <S_LONG>)?
191+
|
192+
<S_LONG> "." (["e","E"] (["+", "-"])? <S_LONG>)?
193+
|
194+
<S_LONG> ["e","E"] (["+", "-"])? <S_LONG>
195+
)>
196196
| < S_LONG: ( <DIGIT> )+ >
197197
| < #DIGIT: ["0" - "9"] >
198198
}
@@ -406,8 +406,8 @@ Column Column():
406406
}
407407
{
408408
(
409-
LOOKAHEAD(7) databaseName=RelObjectName() "." [schemaName=RelObjectName()] "." [tableName=RelObjectName()] "." columnName=RelObjectName()
410-
| LOOKAHEAD(5) schemaName=RelObjectName() "." [tableName=RelObjectName()] "." columnName=RelObjectName()
409+
LOOKAHEAD(7) databaseName=RelObjectName() "." [schemaName=RelObjectName()] "." tableName=RelObjectName() "." columnName=RelObjectName()
410+
| LOOKAHEAD(5) schemaName=RelObjectName() "." tableName=RelObjectName() "." columnName=RelObjectName()
411411
| LOOKAHEAD(3) tableName=RelObjectName() "." columnName=RelObjectName()
412412
| columnName=RelObjectName()
413413
)

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

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
import java.io.*;
1515
import java.util.*;
16+
import java.util.logging.Level;
17+
import java.util.logging.Logger;
1618

1719
import static net.sf.jsqlparser.test.TestUtils.*;
1820

@@ -86,35 +88,52 @@ public void testMultiPartColumnNameWithDatabaseNameAndSchemaNameAndTableName() t
8688

8789
assertStatementCanBeDeparsedAs(select, statement);
8890
}
89-
public void testMultiPartColumnNameWithDatabaseNameAndSchemaName() throws Exception {
91+
92+
93+
public void testMultiPartColumnNameWithDatabaseNameAndSchemaName() {
9094
final String statement = "SELECT databaseName.schemaName..columnName FROM tableName";
91-
Select select = (Select) parserManager.parse(new StringReader(statement));
92-
93-
assertStatementCanBeDeparsedAs(select, statement);
95+
Select select;
96+
try {
97+
select = (Select) parserManager.parse(new StringReader(statement));
98+
fail("must not work");
99+
} catch (JSQLParserException ex) {
100+
Logger.getLogger(SelectTest.class.getName()).log(Level.SEVERE, null, ex);
101+
}
94102
}
103+
95104
public void testMultiPartColumnNameWithDatabaseNameAndTableName() throws Exception {
96105
final String statement = "SELECT databaseName..tableName.columnName FROM tableName";
97106
Select select = (Select) parserManager.parse(new StringReader(statement));
98107

99108
assertStatementCanBeDeparsedAs(select, statement);
100109
}
101-
public void testMultiPartColumnNameWithDatabaseName() throws Exception {
110+
public void testMultiPartColumnNameWithDatabaseName() {
102111
final String statement = "SELECT databaseName...columnName FROM tableName";
103-
Select select = (Select) parserManager.parse(new StringReader(statement));
104-
105-
assertStatementCanBeDeparsedAs(select, statement);
112+
Select select;
113+
try {
114+
select = (Select) parserManager.parse(new StringReader(statement));
115+
fail("must not work");
116+
} catch (JSQLParserException ex) {
117+
Logger.getLogger(SelectTest.class.getName()).log(Level.SEVERE, null, ex);
118+
}
106119
}
120+
107121
public void testMultiPartColumnNameWithSchemaNameAndTableName() throws Exception {
108122
final String statement = "SELECT schemaName.tableName.columnName FROM tableName";
109123
Select select = (Select) parserManager.parse(new StringReader(statement));
110124

111125
assertStatementCanBeDeparsedAs(select, statement);
112126
}
113-
public void testMultiPartColumnNameWithSchemaName() throws Exception {
127+
128+
public void testMultiPartColumnNameWithSchemaName() {
114129
final String statement = "SELECT schemaName..columnName FROM tableName";
115-
Select select = (Select) parserManager.parse(new StringReader(statement));
116-
117-
assertStatementCanBeDeparsedAs(select, statement);
130+
Select select;
131+
try {
132+
select = (Select) parserManager.parse(new StringReader(statement));
133+
fail("must not work");
134+
} catch (JSQLParserException ex) {
135+
Logger.getLogger(SelectTest.class.getName()).log(Level.SEVERE, null, ex);
136+
}
118137
}
119138

120139
public void testMultiPartColumnNameWithTableName() throws Exception {

0 commit comments

Comments
 (0)