Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-2008

NullPointerException with LTRIM, RTRIM and 2-argument SUBSTR() call in GROUP BY clause.

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 10.2.1.6, 10.3.1.4
    • Fix Version/s: 10.2.2.0, 10.3.1.4
    • Component/s: SQL
    • Labels:
      None

      Description

      The following query, which fails with a syntax error in 10.1.3 (because functions are not allowed in a GROUP BY expression for 10.1) fails with a NullPointerException in 10.2 and in the codeline (10.3):

      create table dt (vc varchar(30));
      insert into dt values ('1928-09-21'), ('1903-12-08');
      select substr(vc, 3) from dt group by substr(vc, 3);

      Result (on trunk) is:

      java.lang.NullPointerException
      at org.apache.derby.impl.sql.compile.TernaryOperatorNode.isEquivalent(TernaryOperatorNode.java:924)
      at org.apache.derby.impl.sql.compile.GroupByList.findGroupingColumn(GroupByList.java:244)
      at org.apache.derby.impl.sql.compile.VerifyAggregateExpressionsVisitor.skipChildren(VerifyAggregateExpressionsVisitor.java:146)
      at org.apache.derby.impl.sql.compile.TernaryOperatorNode.accept(TernaryOperatorNode.java:497)
      at org.apache.derby.impl.sql.compile.ResultColumn.accept(ResultColumn.java:1515)
      at org.apache.derby.impl.sql.compile.QueryTreeNodeVector.accept(QueryTreeNodeVector.java:159)
      at org.apache.derby.impl.sql.compile.SelectNode.bindExpressions(SelectNode.java:619)
      at org.apache.derby.impl.sql.compile.FromSubquery.bindExpressions(FromSubquery.java:262)
      at org.apache.derby.impl.sql.compile.FromList.bindExpressions(FromList.java:337)
      at org.apache.derby.impl.sql.compile.SelectNode.bindExpressions(SelectNode.java:500)
      at org.apache.derby.impl.sql.compile.DMLStatementNode.bindExpressions(DMLStatementNode.java:249)
      at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(DMLStatementNode.java:162)
      at org.apache.derby.impl.sql.compile.CursorNode.bind(CursorNode.java:253)
      at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:345)
      at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:119)
      at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:745)
      at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:568)
      at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:517)

        Attachments

        1. derby2008-trunk-diff01.txt
          3 kB
          Yip Ng
        2. derby2008-trunk-stat01.txt
          0.3 kB
          Yip Ng

          Issue Links

            Activity

              People

              • Assignee:
                yipng Yip Ng
                Reporter:
                army A B
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: