Derby
  1. Derby
  2. 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.

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 10.9.1.0
    • Fix Version/s: 10.8.3.3, 10.9.2.2, 10.10.1.1
    • Component/s: SQL
    • Labels:
      None
    • Issue & fix info:
      Repro attached

      Description

      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>

      1. DERBY5750_patch2_diff.txt
        12 kB
        Mamta A. Satoor
      2. DERBY5750_patch1_diff.txt
        9 kB
        Mamta A. Satoor

        Activity

        Mamta A. Satoor created issue -
        Mamta A. Satoor made changes -
        Field Original Value New Value
        Assignee Mamta A. Satoor [ mamtas ]
        Mamta A. Satoor made changes -
        Attachment DERBY5750_patch1_diff.txt [ 12532430 ]
        Mamta A. Satoor made changes -
        Attachment DERBY5750_patch2_diff.txt [ 12533386 ]
        Mamta A. Satoor made changes -
        Fix Version/s 10.10.0.0 [ 12321550 ]
        Mamta A. Satoor made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Gavin made changes -
        Workflow jira [ 12666517 ] Default workflow, editable Closed status [ 12797015 ]
        Mamta A. Satoor made changes -
        Fix Version/s 10.9.2.2 [ 12323562 ]
        Mamta A. Satoor made changes -
        Fix Version/s 10.8.3.1 [ 12323475 ]

          People

          • Assignee:
            Mamta A. Satoor
            Reporter:
            Mamta A. Satoor
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development