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

Calling functions that return Blob/Clob does not work.

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 10.6.1.0
    • Fix Version/s: 10.6.1.0
    • Component/s: SQL
    • Labels:
      None
    • Environment:
      Derby, head of trunk. Sun JVM 5. Solaris 10 (x86).
    • Issue & fix info:
      Patch Available

      Description

      Calling functions that return Blob/Clob results in NoSuchMethodException (See stackTrace below). It fails because DataValueFactory.getClobDataValue(Clob, StringDataValue) does not exist. However, getClobDataValue(String, StringDataValue) exists. I will attach program to repro this.

      java.lang.NoSuchMethodException: org.apache.derby.iapi.types.DataValueFactory.getClobDataValue(java.sql.Clob, org.apache.derby.iapi.types.StringDataValue) at java.lang.Class.getDeclaredMethod(Class.java:1909)
      at org.apache.derby.impl.services.bytecode.d_BCValidate.checkMethod(d_BCValidate.java:133)
      at org.apache.derby.impl.services.bytecode.BCMethod.callMethod(BCMethod.java:745)
      at org.apache.derby.impl.sql.compile.BaseTypeCompiler.generateDataValue(BaseTypeCompiler.java:135)
      at org.apache.derby.impl.sql.compile.ExpressionClassBuilder.generateDataValue(ExpressionClassBuilder.java:918)
      at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.generateExpression(JavaToSQLValueNode.java:179)
      at org.apache.derby.impl.sql.compile.CastNode.generateExpression(CastNode.java:884)
      at org.apache.derby.impl.sql.compile.SQLToJavaValueNode.generateSQLValue(SQLToJavaValueNode.java:361)
      at org.apache.derby.impl.sql.compile.SQLToJavaValueNode.generateExpression(SQLToJavaValueNode.java:341)
      at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.generateExpression(JavaToSQLValueNode.java:176)
      at org.apache.derby.impl.sql.compile.ResultColumn.generateExpression(ResultColumn.java:884)
      at org.apache.derby.impl.sql.compile.ResultColumnList.generateCore(ResultColumnList.java:1097)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1516)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1303)
      at org.apache.derby.impl.sql.compile.ScrollInsensitiveResultSetNode.generate(ScrollInsensitiveResultSetNode.java:110)
      at org.apache.derby.impl.sql.compile.CursorNode.generate(CursorNode.java:565)
      at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:333)
      at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:447)
      at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
      at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:741)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:129)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPreparedStatement20.java:83)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPreparedStatement30.java:63)
      at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Driver30.java:93)
      at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:742)
      at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:586)
      at lobtests.ClobFunction.main(ClobFunction.java:87)
      Invalid method org.apache.derby.iapi.types.DataValueFactory >> org.apache.derby.iapi.types.StringDataValue getClobDataValue(java.sql.Clob, org.apache.derby.iapi.types.StringDataValue) because java.lang.NoSuchMethodException: org.apache.derby.iapi.types.DataValueFactory.getClobDataValue(java.sql.Clob, org.apache.derby.iapi.types.StringDataValue)
      java.sql.SQLException: Java exception: 'ASSERT FAILED Invalid method org.apache.derby.iapi.types.DataValueFactory >> org.apache.derby.iapi.types.StringDataValue getClobDataValue(java.sql.Clob, org.apache.derby.iapi.types.StringDataValue) because java.lang.NoSuchMethodException: org.apache.derby.iapi.types.DataValueFactory.getClobDataValue(java.sql.Clob, org.apache.derby.iapi.types.StringDataValue): org.apache.derby.shared.common.sanity.AssertFailure'.
      org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Invalid method org.apache.derby.iapi.types.DataValueFactory >> org.apache.derby.iapi.types.StringDataValue getClobDataValue(java.sql.Clob, org.apache.derby.iapi.types.StringDataValue) because java.lang.NoSuchMethodException: org.apache.derby.iapi.types.DataValueFactory.getClobDataValue(java.sql.Clob, org.apache.derby.iapi.types.StringDataValue)
      at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:149)
      at org.apache.derby.impl.services.bytecode.d_BCValidate.checkMethod(d_BCValidate.java:192)
      at org.apache.derby.impl.services.bytecode.BCMethod.callMethod(BCMethod.java:745)
      at org.apache.derby.impl.sql.compile.BaseTypeCompiler.generateDataValue(BaseTypeCompiler.java:135)
      at org.apache.derby.impl.sql.compile.ExpressionClassBuilder.generateDataValue(ExpressionClassBuilder.java:918)
      at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.generateExpression(JavaToSQLValueNode.java:179)
      at org.apache.derby.impl.sql.compile.CastNode.generateExpression(CastNode.java:884)
      at org.apache.derby.impl.sql.compile.SQLToJavaValueNode.generateSQLValue(SQLToJavaValueNode.java:361)
      at org.apache.derby.impl.sql.compile.SQLToJavaValueNode.generateExpression(SQLToJavaValueNode.java:341)
      at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.generateExpression(JavaToSQLValueNode.java:176)
      at org.apache.derby.impl.sql.compile.ResultColumn.generateExpression(ResultColumn.java:884)
      at org.apache.derby.impl.sql.compile.ResultColumnList.generateCore(ResultColumnList.java:1097)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1516)
      at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1303)
      at org.apache.derby.impl.sql.compile.ScrollInsensitiveResultSetNode.generate(ScrollInsensitiveResultSetNode.java:110)
      at org.apache.derby.impl.sql.compile.CursorNode.generate(CursorNode.java:565)
      at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:333)
      at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:447)
      at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
      at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:741)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:129)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPreparedStatement20.java:83)
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPreparedStatement30.java:63)
      at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Driver30.java:93)
      at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:742)
      at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:586)
      at lobtests.ClobFunction.main(ClobFunction.java:87)

        Attachments

        1. getClobDataValue.diff
          4 kB
          Oystein Grovlen
        2. derby-2201-aa-01-crudeDog.diff
          14 kB
          Richard N. Hillegas
        3. derby-2201-03-aa-moreTests.diff
          9 kB
          Richard N. Hillegas
        4. derby-2201-02-ad-wrapUserLob.diff
          27 kB
          Richard N. Hillegas
        5. derby-2201-02-ac-wrapUserLob.diff
          27 kB
          Richard N. Hillegas
        6. derby-2201-02-aa-wrapUserLob.diff
          26 kB
          Richard N. Hillegas
        7. ClobFunction.java
          3 kB
          Oystein Grovlen

          Issue Links

            Activity

              People

              • Assignee:
                rhillegas Richard N. Hillegas
                Reporter:
                oysteing Oystein Grovlen
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: