You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Lily Wei (JIRA)" <ji...@apache.org> on 2010/07/02 00:14:51 UTC
[jira] Reopened: (DERBY-4244) ALTER TABLE Sanity ASSERT in add
column with autocommit off
[ https://issues.apache.org/jira/browse/DERBY-4244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lily Wei reopened DERBY-4244:
-----------------------------
Reopen to 10.5 back port
> ALTER TABLE Sanity ASSERT in add column with autocommit off
> -----------------------------------------------------------
>
> Key: DERBY-4244
> URL: https://issues.apache.org/jira/browse/DERBY-4244
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.2.1.6, 10.2.2.0, 10.3.1.4, 10.3.2.1, 10.3.3.0, 10.4.1.3, 10.4.2.0, 10.5.1.1, 10.6.1.0
> Reporter: Bryan Pendleton
> Assignee: Eranda Sooriyabandara
> Priority: Minor
> Fix For: 10.6.1.0
>
> Attachments: checkAtCompileTime.diff, DERBY-4244.diff
>
>
> While working with Eranda on DERBY-4187, I stumbled across an apparent ALTER TABLE bug.
> Here's a script which reproduces the problem for me:
> autocommit off;
> create table t0(c1 int not null constraint p1 primary key);
> alter table t0 add column c1 int;
> alter table t0 add column c2 int not null default 0 primary key;
> alter table t0 add column c2 int not null default 0;
> The "autocommit off" is crucial; otherwise the problem does not reproduce.
> Here's the detailed assertion failure:
> 2009-05-23 15:01:17.436 GMT Thread[main,5,main] (XID = 146), (SESSIONID = 1), (DATABASE = brydb), (DRDAID = null), Failed Statement is: alter table t0 add column c2 int not null default 0
> org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED column_id = 1format_ids.length = 2format_ids = [I@1321f5
> at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:162)
> at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:147)
> at org.apache.derby.impl.store.access.heap.Heap.addColumn(Heap.java:418)
> at org.apache.derby.impl.store.access.RAMTransaction.addColumnToConglomerate(RAMTransaction.java:618)
> at org.apache.derby.impl.sql.execute.AlterTableConstantAction.addNewColumnToTable(AlterTableConstantAction.java:1325)
> at org.apache.derby.impl.sql.execute.AlterTableConstantAction.executeConstantAction(AlterTableConstantAction.java:449)
> Here's the relevant section of Heap.java:
> if (column_id != format_ids.length)
> {
> if (SanityManager.DEBUG)
> SanityManager.THROWASSERT(
> "column_id = " + column_id +
> "format_ids.length = " + format_ids.length +
> "format_ids = " + format_ids);
> throw(StandardException.newException(
> SQLState.HEAP_TEMPLATE_MISMATCH,
> new Long(column_id),
> new Long(this.format_ids.length)));
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.