db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-5750) Sending an empty string as table name to compress table procedure or empty string as index name to update statistics procedure makes the parser throw an exception.
Date Tue, 26 Jun 2012 12:40:44 GMT

    [ https://issues.apache.org/jira/browse/DERBY-5750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13401351#comment-13401351
] 

Knut Anders Hatlen commented on DERBY-5750:
-------------------------------------------

Empty index name seems to be translated to all indexes in the latest patch. I think I'd prefer
to keep it consistent with table and schema name and raise an error in that case too.

Some small nits:

- indentation seems to be a mix of tabs and spaces

- method name "basic_schema_table_validation" should be camel-cased for consistency

- javadoc for basic_schema_table_validation() has empty descriptions in @param and @throws

- maybe use curly braces in the if/else statements for clarity

- typos in comments (UpdateStatisticsTest.java): indedx, stiatistics

- use of IdUtil.mkQualifiedName() would allow simplification of basic_schema_table_validation()
(could eliminate the StringBuffer, the second "if" statement and the "else" branch of the
last "if" statement)
                
> Sending an empty string as table name to compress table procedure or empty string as
index name to update statistics procedure makes the parser throw an exception.
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5750
>                 URL: https://issues.apache.org/jira/browse/DERBY-5750
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.9.1.0
>            Reporter: Mamta A. Satoor
>            Assignee: Mamta A. Satoor
>            Priority: Minor
>         Attachments: DERBY5750_patch1_diff.txt, DERBY5750_patch2_diff.txt
>
>
> When empty string is passed for the index name to the update statistics procedure, it
throws following exception(passing an empty string for table to compress table procedure also
gives simiar exception). The new stored procedure being created through DERBY-4115 for dropping
the statistics also gave similar exception
> java -Dij.exceptionTrace=true org.apache.derby.tools.ij
> connect 'jdbc:derby:db1;create=true'; 
> create table t1(c11 int, statistics int not null);
> call syscs_util.SYSCS_UPDATE_STATISTICS( 'APP', 'T1', '' );
> ERROR 38000: The exception 'java.sql.SQLException: Syntax error: Encountered "\"" at
line 1, column 42.' was thrown while evaluating an expression.
> java.sql.SQLException: The exception 'java.sql.SQLException: Syntax error: Encountered
"\"" at line 1, column 42.' was thrown while evaluating an expression.
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:98)
>         at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:142)
>         at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:278)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:431)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:353)
>         at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2360)
>         at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:82)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1334)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:630)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:559)
>         at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:367)
>         at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:527)
>         at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:369)
>         at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:245)
>         at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
>         at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
>         at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
>         at org.apache.derby.tools.ij.main(ij.java:59)
> Caused by: java.sql.SQLException: The exception 'java.sql.SQLException: Syntax error:
Encountered "\"" at line 1, column 42.' was thrown while evaluating an expression.
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:42)
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:122)
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:71)
>         ... 17 more
> Caused by: java.sql.SQLException: Syntax error: Encountered "\"" at line 1, column 42.
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:42)
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:122)
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:71)
>         at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:256)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:424)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:353)
>         at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2360)
>         at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:82)
>         at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:153)
>         at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.java:107)
>         at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:1685)
>         at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:1513)
>         at org.apache.derby.catalog.SystemProcedures.SYSCS_UPDATE_STATISTICS(SystemProcedures.java:753)
>         at org.apache.derby.exe.acace4c0a3x0137x2f19xcc22x00000013e5704.g0(Unknown Source)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>         at java.lang.reflect.Method.invoke(Method.java:611)
>         at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMethod.java:46)
>         at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(CallStatementResultSet.java:75)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:443)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:324)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1242)
>         ... 10 more
> Caused by: ERROR 42X01: Syntax error: Encountered "\"" at line 1, column 42.
>         at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:278)
>         at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(ParserImpl.java:153)
>         at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:357)
>         at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:99)
>         at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:1103)
>         at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:134)
>         ... 24 more
> ERROR 42X01: Syntax error: Encountered "\"" at line 1, column 42.
> java.sql.SQLSyntaxErrorException: Syntax error: Encountered "\"" at line 1, column 42.
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:92)
>         at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:256)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:424)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:353)
>         at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2360)
>         at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:82)
>         at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:153)
>         at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.java:107)
>         at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:1685)
>         at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:1513)
>         at org.apache.derby.catalog.SystemProcedures.SYSCS_UPDATE_STATISTICS(SystemProcedures.java:753)
>         at org.apache.derby.exe.acace4c0a3x0137x2f19xcc22x00000013e5704.g0(Unknown Source)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>         at java.lang.reflect.Method.invoke(Method.java:611)
>         at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMethod.java:46)
>         at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(CallStatementResultSet.java:75)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:443)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:324)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1242)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:630)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:559)
>         at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:367)
>         at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:527)
>         at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:369)
>         at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:245)
>         at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
>         at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
>         at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
>         at org.apache.derby.tools.ij.main(ij.java:59)
> Caused by: java.sql.SQLException: Syntax error: Encountered "\"" at line 1, column 42.
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:42)
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:122)
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:71)
>         ... 30 more
> Caused by: ERROR 42X01: Syntax error: Encountered "\"" at line 1, column 42.
>         at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:278)
>         at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(ParserImpl.java:153)
>         at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:357)
>         at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:99)
>         at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:1103)
>         at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:134)
>         ... 24 more
> Issue the 'help' command for general information on IJ command syntax.
> Any unrecognized commands are treated as potential SQL commands and executed directly.
> Consult your DBMS server reference documentation for details of the SQL syntax supported
by your server.
> ij>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message