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

strange behavior with the "update ... where current of c1" in the CheckConstraintTest

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 10.0.2.1, 10.1.3.1, 10.2.2.0, 10.3.3.0, 10.4.2.0, 10.5.1.1
    • 10.5.3.2, 10.6.1.0
    • SQL
    • None
    • Normal
    • Newcomer, Repro attached

    Description

      import java.sql.*;

      public class cons
      {
      public static void main(String []args)
      throws Exception

      { Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); Connection conn = DriverManager.getConnection("jdbc:derby:testdb;create=true"); Statement st = conn.createStatement(); st.executeUpdate( "create table t1(c1 int, c2 int, constraint ck1 " + "check(c1 = c2), constraint ck2 check(c2=c1))"); st.executeUpdate("insert into t1 values (1, 1),(2, 2),(3, 3),(4, 4)"); Statement st1=conn.createStatement(); st1.setCursorName("c1"); ResultSet rs = st1.executeQuery("select * from t1 for update"); rs.next(); st.executeUpdate("update t1 set c1 = c1 where current of \"c1\""); }

      }
      Exception in thread "main" java.sql.SQLException: Column 'C2' is either not in any
      table in the FROM list or appears within a join specification and is outside
      the scope of the join specification or appears in a HAVING clause and is not in
      the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'C2' is not
      a column in the target table.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExc
      eptionFactory.java:45)
      at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:201)

      at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException
      (TransactionResourceImpl.java:391)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Tr
      ansactionResourceImpl.java:346)
      at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConne
      ction.java:2201)
      at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Connection
      Child.java:81)
      at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java
      :614)
      at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(EmbedStatemen
      t.java:175)
      at cons.main(cons.java:25)

      Caused by: ERROR 42X04: Column 'C2' is either not in any table in the FROM list
      or appears within a join specification and is outside the scope of the join spec

      • Show quoted text -
        ... 2 more

      Attachments

        1. ASF.LICENSE.NOT.GRANTED--DERBY4282.diff
          5 kB
          Weerasekara Mudiyanselage Eranda Mahesh Sooriyabandara
        2. ASF.LICENSE.NOT.GRANTED--DERBY4282.diff
          2 kB
          Weerasekara Mudiyanselage Eranda Mahesh Sooriyabandara
        3. cons.java
          0.8 kB
          Bryan Pendleton

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            eranda Weerasekara Mudiyanselage Eranda Mahesh Sooriyabandara
            eranda Weerasekara Mudiyanselage Eranda Mahesh Sooriyabandara
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment