Today I tried to use your parser in an application which connects to a mssql server 2000 through hibernate, using its SQLServerDialect.
The statement hibernate generated was this:
select employee0_.[id] as id1_1_, employee0_.[e_version] as e3_1_, employee0_.[datecreated] as datecrea4_1_, employee0_.[usercreated_id] as usercrea5_1_, employee0_.[datemodified] as datemodi6_1_, employee0_.[usermodified_id] as usermodi7_1_, employee0_.[active] as active8_1_, employee0_.[firstname] as firstname9_1_, employee0_.[lastname] as lastname10_1_, employee0_.[officecode] as officecode11_1_, employee0_.[loginname] as loginname12_1_ from [employee] employee0_ where loginname=?
I'm not sure whether this is valid sql-92 syntax, so I didn't file a bug report.
Maybe I could come up with another solution (i.e. using another dialect), but the best thing of course would be support for this dialect in JSqlParser.
I'm looking forward to your answer
- Tangresh
PS: A beautiful stacktrace for you :)
net.sf.jsqlparser.JSQLParserException
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:40)
at com.inventage.gse.parser.JSqlParserTest.testSQLServer(JSqlParserTest.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 19. Encountered: "[" (91), after : ""
at net.sf.jsqlparser.parser.CCJSqlParserTokenManager.getNextToken(CCJSqlParserTokenManager.java:1318)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_scan_token(CCJSqlParser.java:5419)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_63(CCJSqlParser.java:5068)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_34(CCJSqlParser.java:5089)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_4(CCJSqlParser.java:4888)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_67(CCJSqlParser.java:4907)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_36(CCJSqlParser.java:3548)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_208(CCJSqlParser.java:3626)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_181(CCJSqlParser.java:3671)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_143(CCJSqlParser.java:3751)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_117(CCJSqlParser.java:4378)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_66(CCJSqlParser.java:3846)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_35(CCJSqlParser.java:3983)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_5(CCJSqlParser.java:4406)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_2_5(CCJSqlParser.java:2857)
at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:549)
at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:541)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:107)
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:38)
... 17 more
Caused by:
net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 19. Encountered: "[" (91), after : ""
at net.sf.jsqlparser.parser.CCJSqlParserTokenManager.getNextToken(CCJSqlParserTokenManager.java:1318)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_scan_token(CCJSqlParser.java:5419)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_63(CCJSqlParser.java:5068)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_34(CCJSqlParser.java:5089)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_4(CCJSqlParser.java:4888)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_67(CCJSqlParser.java:4907)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_36(CCJSqlParser.java:3548)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_208(CCJSqlParser.java:3626)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_181(CCJSqlParser.java:3671)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_143(CCJSqlParser.java:3751)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_117(CCJSqlParser.java:4378)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_66(CCJSqlParser.java:3846)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_35(CCJSqlParser.java:3983)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_5(CCJSqlParser.java:4406)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_2_5(CCJSqlParser.java:2857)
at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:549)
at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:541)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:107)
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:38)
at com.inventage.gse.parser.JSqlParserTest.testSQLServer(JSqlParserTest.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Today I tried to use your parser in an application which connects to a mssql server 2000 through hibernate, using its SQLServerDialect.
The statement hibernate generated was this:
select employee0_.[id] as id1_1_, employee0_.[e_version] as e3_1_, employee0_.[datecreated] as datecrea4_1_, employee0_.[usercreated_id] as usercrea5_1_, employee0_.[datemodified] as datemodi6_1_, employee0_.[usermodified_id] as usermodi7_1_, employee0_.[active] as active8_1_, employee0_.[firstname] as firstname9_1_, employee0_.[lastname] as lastname10_1_, employee0_.[officecode] as officecode11_1_, employee0_.[loginname] as loginname12_1_ from [employee] employee0_ where loginname=?
I'm not sure whether this is valid sql-92 syntax, so I didn't file a bug report.
Maybe I could come up with another solution (i.e. using another dialect), but the best thing of course would be support for this dialect in JSqlParser.
I'm looking forward to your answer
- Tangresh
PS: A beautiful stacktrace for you :)
net.sf.jsqlparser.JSQLParserException
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:40)
at com.inventage.gse.parser.JSqlParserTest.testSQLServer(JSqlParserTest.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 19. Encountered: "[" (91), after : ""
at net.sf.jsqlparser.parser.CCJSqlParserTokenManager.getNextToken(CCJSqlParserTokenManager.java:1318)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_scan_token(CCJSqlParser.java:5419)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_63(CCJSqlParser.java:5068)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_34(CCJSqlParser.java:5089)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_4(CCJSqlParser.java:4888)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_67(CCJSqlParser.java:4907)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_36(CCJSqlParser.java:3548)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_208(CCJSqlParser.java:3626)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_181(CCJSqlParser.java:3671)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_143(CCJSqlParser.java:3751)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_117(CCJSqlParser.java:4378)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_66(CCJSqlParser.java:3846)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_35(CCJSqlParser.java:3983)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_5(CCJSqlParser.java:4406)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_2_5(CCJSqlParser.java:2857)
at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:549)
at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:541)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:107)
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:38)
... 17 more
Caused by:
net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 19. Encountered: "[" (91), after : ""
at net.sf.jsqlparser.parser.CCJSqlParserTokenManager.getNextToken(CCJSqlParserTokenManager.java:1318)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_scan_token(CCJSqlParser.java:5419)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_63(CCJSqlParser.java:5068)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_34(CCJSqlParser.java:5089)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_4(CCJSqlParser.java:4888)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_67(CCJSqlParser.java:4907)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_36(CCJSqlParser.java:3548)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_208(CCJSqlParser.java:3626)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_181(CCJSqlParser.java:3671)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_143(CCJSqlParser.java:3751)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_117(CCJSqlParser.java:4378)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_66(CCJSqlParser.java:3846)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_35(CCJSqlParser.java:3983)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_5(CCJSqlParser.java:4406)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_2_5(CCJSqlParser.java:2857)
at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:549)
at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:541)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:107)
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:38)
at com.inventage.gse.parser.JSqlParserTest.testSQLServer(JSqlParserTest.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Well, I really needed jsqlparser to parse SQLServer dialect, so I adapted the javacc grammar to accept it:
JSqlParserCC.jj, line 235
old (jsqlparser-0.4.5):
| < S_QUOTED_IDENTIFIER: "\"" (~["\n","\r","\""])* "\"" >
new:
| < S_QUOTED_IDENTIFIER: ("\"" (~["\n","\r","\""])* "\"") | ("[" (~["\n","\r","]"])* "]")>
Maybe you can use this for the next release.
- Tangresh
I'm sorry I didn't have time to look at your problem.
I'll see if I can put that in next release. Thanks