[ https://issues.apache.org/jira/browse/DERBY-2964?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kathey Marsden closed DERBY-2964. --------------------------------- > 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 > Fix For: 10.3.1.4, 10.4.0.0 > > > 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.