[
https://issues.apache.org/jira/browse/DERBY-2964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12516877
]
Mamta A. Satoor commented on DERBY-2964:
----------------------------------------
I think the fix for DERBY-2973 should take care of this bug. I ran the script
provided in this jira entry in both main and 10.3 codeline and the test script
does not throw assert failure anymore. Kathey, will you mind double checking
for me? thanks
> ASSERT FAILED type of inserted column[0] =
> org.apache.derby.iapi.types.SQLVarchar type of template column[0] =
> org.apache.derby.iapi.types.CollatorSQLVarchar when inserting row into table
> that has been modified with unique constraint
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-2964
> URL: https://issues.apache.org/jira/browse/DERBY-2964
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.4.0.0
> Reporter: Kathey Marsden
> Assignee: Mamta A. Satoor
>
> Below is the test case from lang/modifyColumn.sql
> ij> connect
> 'jdbc:derby:nordb;create=true;territory=no_NO;collation=TERRITORY_BASED';
> ij(CONNECTION1)> create table t1 (vc varchar(1) not null, nvc varchar(1) not
> null, bv varchar(1) for bit data not null);
> alter table t1 add constraint uq unique (vc, nvc, bv);
> insert into t1 values ('p', 'p', x'01');
> insert into t1 values ('pe', 'p', x'01');
> alter table t1 alter vc set data type varchar(2);
> 0 rows inserted/updated/deleted
> ij(CONNECTION1)> 0 rows inserted/updated/deleted
> ij(CONNECTION1)> 1 row inserted/updated/deleted
> ij(CONNECTION1)> ERROR 22001: A truncation error was encountered trying to
> shrink VARCHAR 'pe' to length 1.
> java.sql.SQLException: A truncation error was encountered trying to shrink
> VARCHAR 'pe' to length 1.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
> at
> org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:202)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:391)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:1572)
> at
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1293)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:596)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:528)
> at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:330)
> at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:522)
> at
> org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:364)
> at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:262)
> at org.apache.derby.impl.tools.ij.Main.go(Main.java:215)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:181)
> at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:56)
> at org.apache.derby.tools.ij.main(ij.java:71)
> Caused by: ERROR 22001: A truncation error was encountered trying to shrink
> VARCHAR 'pe' to length 1.
> at
> org.apache.derby.iapi.error.StandardException.newException(StandardException.java:341)
> at
> org.apache.derby.iapi.types.SQLChar.hasNonBlankChars(SQLChar.java:1324)
> at
> org.apache.derby.iapi.types.SQLVarchar.normalize(SQLVarchar.java:173)
> at
> org.apache.derby.iapi.types.SQLVarchar.normalize(SQLVarchar.java:150)
> at
> org.apache.derby.iapi.types.DataTypeDescriptor.normalize(DataTypeDescriptor.java:505)
> at
> org.apache.derby.impl.sql.execute.NormalizeResultSet.normalizeRow(NormalizeResultSet.java:330)
> at
> org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(NormalizeResultSet.java:189)
> at
> org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWriteResultSet.java:125)
> at
> org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:496)
> at
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1203)
> ... 10 more
> ij(CONNECTION1)> 0 rows inserted/updated/deleted
> ij(CONNECTION1)> insert into t1 values ('pe', 'p', x'01');
> ERROR XJ001: Java exception: 'ASSERT FAILED type of inserted column[0] =
> org.apache.derby.iapi.types.SQLVarchartype of t
> emplate column[0] = org.apache.derby.iapi.types.CollatorSQLVarchar:
> org.apache.derby.shared.common.sanity.AssertFailure'
> .
> java.sql.SQLException: Java exception: 'ASSERT FAILED type of inserted
> column[0] = org.apache.derby.iapi.types.SQLVarcha
> rtype of template column[0] = org.apache.derby.iapi.types.CollatorSQLVarchar:
> org.apache.derby.shared.common.sanity.Asse
> rtFailure'.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:88)
> at org.apache.derby.impl.jdbc.Util.javaException(Util.java:245)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:1572)
> at
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1293)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:596)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:528)
> at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:330)
> at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:522)
> at
> org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:364)
> at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:262)
> at org.apache.derby.impl.tools.ij.Main.go(Main.java:215)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:181)
> at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:56)
> at org.apache.derby.tools.ij.main(ij.java:71)
> Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED
> type of inserted column[0] = org.apache.de
> rby.iapi.types.SQLVarchartype of template column[0] =
> org.apache.derby.iapi.types.CollatorSQLVarchar
> 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.btree.OpenBTree.isIndexableRowConsistent(OpenBTree.java:529)
> at
> org.apache.derby.impl.store.access.btree.BTreeController.doIns(BTreeController.java:385)
> at
> org.apache.derby.impl.store.access.btree.BTreeController.insert(BTreeController.java:1035)
> at
> org.apache.derby.impl.store.access.btree.index.B2IController.insert(B2IController.java:211)
> at
> org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(IndexChanger.java:455)
> at
> org.apache.derby.impl.sql.execute.IndexChanger.doInsert(IndexChanger.java:398)
> at
> org.apache.derby.impl.sql.execute.IndexChanger.insert(IndexChanger.java:605)
> at
> org.apache.derby.impl.sql.execute.IndexSetChanger.insert(IndexSetChanger.java:268)
> at
> org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(RowChangerImpl.java:453)
> at
> org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1024)
> at
> org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:497)
> at
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1203)
> ... 10 more
> ij(CONNECTION1)>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.