Derby
  1. Derby
  2. DERBY-5160

NullPointerException when adding column without specifying type

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 10.5.1.1, 10.5.2.0, 10.5.3.0, 10.6.1.0, 10.6.2.1, 10.7.1.1
    • Fix Version/s: 10.8.1.2
    • Component/s: SQL
    • Labels:
      None
    • Issue & fix info:
      Repro attached
    • Bug behavior facts:
      Regression

      Description

      When executing ALTER TABLE .. ADD COLUMN without specifying the type of the new column, I see a NullPointerException:

      ij> create table t(x int);
      0 rows inserted/updated/deleted
      ij> alter table t add column y;
      ERROR XJ001: Java exception: ': java.lang.NullPointerException'.
      java.sql.SQLException: Java exception: ': java.lang.NullPointerException'.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95)
      at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:142)
      at org.apache.derby.impl.jdbc.Util.javaException(Util.java:299)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:408)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:348)
      at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2284)
      at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:82)
      at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:616)
      at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:556)
      at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:367)
      at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:521)
      at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:363)
      at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:261)
      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)
      at org.apache.derby.iapi.tools.run.main(run.java:53)
      Caused by: java.sql.SQLException: Java exception: ': java.lang.NullPointerException'.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
      at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
      ... 17 more
      Caused by: java.lang.NullPointerException
      at org.apache.derby.impl.sql.compile.AlterTableNode.bindStatement(AlterTableNode.java:356)
      at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:324)
      at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:90)
      at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:1101)
      at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:607)
      ... 10 more

        Issue Links

          Activity

          Hide
          Knut Anders Hatlen added a comment -

          Verified fix on trunk. Closing.

          Show
          Knut Anders Hatlen added a comment - Verified fix on trunk. Closing.
          Hide
          Rick Hillegas added a comment -

          Thanks, Knut. Tests passed cleanly except for known Heisenbugs. Committed at subversion revision 1087457.

          Show
          Rick Hillegas added a comment - Thanks, Knut. Tests passed cleanly except for known Heisenbugs. Committed at subversion revision 1087457.
          Hide
          Knut Anders Hatlen added a comment -

          Thanks, Rick. The fix looks good to me, and I've verified that it fixes the NPE. +1 to commit if the tests pass.

          Show
          Knut Anders Hatlen added a comment - Thanks, Rick. The fix looks good to me, and I've verified that it fixes the NPE. +1 to commit if the tests pass.
          Hide
          Rick Hillegas added a comment -

          Attaching derby-5160-01-aa-needsDatatype.diff, which fixes this bug. I will run regression tests.

          Touches the following files:

          -------------

          M java/engine/org/apache/derby/impl/sql/compile/AlterTableNode.java

          The fix.

          -------------

          M java/testing/org/apache/derbyTesting/functionTests/tests/lang/AlterTableTest.java

          A new test case.

          Show
          Rick Hillegas added a comment - Attaching derby-5160-01-aa-needsDatatype.diff, which fixes this bug. I will run regression tests. Touches the following files: ------------- M java/engine/org/apache/derby/impl/sql/compile/AlterTableNode.java The fix. ------------- M java/testing/org/apache/derbyTesting/functionTests/tests/lang/AlterTableTest.java A new test case.
          Hide
          Knut Anders Hatlen added a comment -

          The NPE first occurred after this change:

          ------------------------------------------------------------------------
          r714186 | rhillegas | 2008-11-15 00:23:26 +0100 (Sat, 15 Nov 2008) | 1 line

          DERBY-3923: Make datatype declaration optional when you specify a generation clause in a CREATE/ALTER TABLE statement.
          ------------------------------------------------------------------------

          Show
          Knut Anders Hatlen added a comment - The NPE first occurred after this change: ------------------------------------------------------------------------ r714186 | rhillegas | 2008-11-15 00:23:26 +0100 (Sat, 15 Nov 2008) | 1 line DERBY-3923 : Make datatype declaration optional when you specify a generation clause in a CREATE/ALTER TABLE statement. ------------------------------------------------------------------------
          Hide
          Knut Anders Hatlen added a comment -

          This is a regression in 10.5.1.1. Earlier releases correctly raised a syntax error:

          ij version 10.4
          ij> connect 'jdbc:derby:db;create=true';
          ij> create table t(x int);
          0 rows inserted/updated/deleted
          ij> alter table t add column y;
          ERROR 42X01: Syntax error: Encountered "" at line 1, column 26.

          Show
          Knut Anders Hatlen added a comment - This is a regression in 10.5.1.1. Earlier releases correctly raised a syntax error: ij version 10.4 ij> connect 'jdbc:derby:db;create=true'; ij> create table t(x int); 0 rows inserted/updated/deleted ij> alter table t add column y; ERROR 42X01: Syntax error: Encountered "" at line 1, column 26.

            People

            • Assignee:
              Rick Hillegas
              Reporter:
              Knut Anders Hatlen
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development