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

ArrayIndexOutOfBoundsException or ASSERT FAILED when inserting generated columns out of order


    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s:,
    • Fix Version/s:,
    • Component/s: SQL
    • Labels:


      I see this error when I specify the columns in a different order than in the table definition. It only fails if a multi-row table constructor is used.

      ij> create table t(a int, b generated always as (-a));
      0 rows inserted/updated/deleted
      ij> insert into t(b,a) values (default,1);
      1 row inserted/updated/deleted
      ij> insert into t(b,a) values (default,1), (default, 2);
      ERROR XJ001: Java exception: '1 >= 1: java.lang.ArrayIndexOutOfBoundsException'.

      And in a sane build:

      ij> insert into t(b,a) values (default,1),(default,2);
      ERROR XJ001: Java exception: 'ASSERT FAILED More columns in result column list than in base table: org.apache.derby.shared.common.sanity.AssertFailure'.

      This bug may be similar to DERBY-4448, but the stack trace is different, and DERBY-4448 does not raise an ASSERT FAILED in sane builds.


        1. derby-4451d.stat
          0.3 kB
          Dag H. Wanvik
        2. derby-4451d.diff
          12 kB
          Dag H. Wanvik
        3. derby-4451c.stat
          0.5 kB
          Dag H. Wanvik
        4. derby-4451c.diff
          17 kB
          Dag H. Wanvik
        5. derby-4451b.stat
          0.4 kB
          Dag H. Wanvik
        6. derby-4451b.diff
          11 kB
          Dag H. Wanvik
        7. derby-4451.stat
          0.4 kB
          Dag H. Wanvik
        8. derby-4451.diff
          11 kB
          Dag H. Wanvik



            • Assignee:
              dagw Dag H. Wanvik
              knutanders Knut Anders Hatlen
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: