[ 
https://issues.apache.org/jira/browse/DERBY-6890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrei Koiro updated DERBY-6890:
--------------------------------
    Description: 
After issue https://issues.apache.org/jira/browse/DERBY-3888 was fixed, we want 
to use the 'GENERATED BY DEFAULT' feature 
for our tables.  To do it we use this sql to alter our pk columns: 
     ALTER TABLE MODULE ADD COLUMN ID_TEMP BIGINT GENERATED BY DEFAULT AS 
IDENTITY
     UPDATE MODULE SET ID_TEMP = ID 
            'ALTER TABLE MODULE ALTER COLUMN ID_TEMP NOT NULL;\n' +
            'ALTER TABLE MODULE DROP ID;\n' +
            'RENAME COLUMN MODULE.ID_TEMP TO ID;\n' +

we are trying to migrate to derby 10.12.1.1 and want to use 'GENERATED BY 
DEFAULT AS IDENTITY'. 
we altered our pk columns, and added 'GENERATED BY DEFAULT AS IDENTITY'. After 
that when I try to insert in my table any record, I get this exception: 

Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED 
type of inserted column[0] = org.apache.derby.iapi.types.CollatorSQLVarchartype 
of template column[0] = org.apache.derby.iapi.types.SQLVarchar
        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:519)
        at 
org.apache.derby.impl.store.access.btree.BTreeController.doIns(BTreeController.java:679)
        at 
org.apache.derby.impl.store.access.btree.BTreeController.insert(BTreeController.java:1372)
        at 
org.apache.derby.impl.store.access.btree.index.B2IController.insert(B2IController.java:210)
        at 
org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(IndexChanger.java:565)
        at 
org.apache.derby.impl.sql.execute.IndexChanger.doInsert(IndexChanger.java:393)
        at 
org.apache.derby.impl.sql.execute.IndexChanger.insert(IndexChanger.java:713)
        at 
org.apache.derby.impl.sql.execute.IndexSetChanger.insert(IndexSetChanger.java:268)
        at 
org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(RowChangerImpl.java:458)
        at 
org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:881)
        at 
org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:452)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:473)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:352)
        at 
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1340)
        ... 30 more

I attached Test.groovy class which shows this issue. 

I found this workaround: 
we need drop indexes and create them again.







  was:
we are trying to migrate to derby 10.12.1.1 and want to use 'GENERATED BY 
DEFAULT AS IDENTITY'. 
we altered our pk columns, and added 'GENERATED BY DEFAULT AS IDENTITY'. After 
that when I try to insert in my table any record, I get this exception: 

Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED 
type of inserted column[0] = org.apache.derby.iapi.types.CollatorSQLVarchartype 
of template column[0] = org.apache.derby.iapi.types.SQLVarchar
        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:519)
        at 
org.apache.derby.impl.store.access.btree.BTreeController.doIns(BTreeController.java:679)
        at 
org.apache.derby.impl.store.access.btree.BTreeController.insert(BTreeController.java:1372)
        at 
org.apache.derby.impl.store.access.btree.index.B2IController.insert(B2IController.java:210)
        at 
org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(IndexChanger.java:565)
        at 
org.apache.derby.impl.sql.execute.IndexChanger.doInsert(IndexChanger.java:393)
        at 
org.apache.derby.impl.sql.execute.IndexChanger.insert(IndexChanger.java:713)
        at 
org.apache.derby.impl.sql.execute.IndexSetChanger.insert(IndexSetChanger.java:268)
        at 
org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(RowChangerImpl.java:458)
        at 
org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:881)
        at 
org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:452)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:473)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:352)
        at 
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1340)
        ... 30 more

I attached Test.groovy class which shows this issue. 

I found this workaround: 
we need drop indexes and create them again.








> after alter 
> ------------
>
>                 Key: DERBY-6890
>                 URL: https://issues.apache.org/jira/browse/DERBY-6890
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.12.1.1
>         Environment: Mac OS X 10.11.5
> JDK: Oracle 1.8.0_92
>            Reporter: Andrei Koiro
>         Attachments: Test.groovy
>
>
> After issue https://issues.apache.org/jira/browse/DERBY-3888 was fixed, we 
> want to use the 'GENERATED BY DEFAULT' feature 
> for our tables.  To do it we use this sql to alter our pk columns: 
>      ALTER TABLE MODULE ADD COLUMN ID_TEMP BIGINT GENERATED BY DEFAULT AS 
> IDENTITY
>      UPDATE MODULE SET ID_TEMP = ID 
>             'ALTER TABLE MODULE ALTER COLUMN ID_TEMP NOT NULL;\n' +
>             'ALTER TABLE MODULE DROP ID;\n' +
>             'RENAME COLUMN MODULE.ID_TEMP TO ID;\n' +
> we are trying to migrate to derby 10.12.1.1 and want to use 'GENERATED BY 
> DEFAULT AS IDENTITY'. 
> we altered our pk columns, and added 'GENERATED BY DEFAULT AS IDENTITY'. 
> After that when I try to insert in my table any record, I get this exception: 
> Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED 
> type of inserted column[0] = 
> org.apache.derby.iapi.types.CollatorSQLVarchartype of template column[0] = 
> org.apache.derby.iapi.types.SQLVarchar
>       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:519)
>       at 
> org.apache.derby.impl.store.access.btree.BTreeController.doIns(BTreeController.java:679)
>       at 
> org.apache.derby.impl.store.access.btree.BTreeController.insert(BTreeController.java:1372)
>       at 
> org.apache.derby.impl.store.access.btree.index.B2IController.insert(B2IController.java:210)
>       at 
> org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(IndexChanger.java:565)
>       at 
> org.apache.derby.impl.sql.execute.IndexChanger.doInsert(IndexChanger.java:393)
>       at 
> org.apache.derby.impl.sql.execute.IndexChanger.insert(IndexChanger.java:713)
>       at 
> org.apache.derby.impl.sql.execute.IndexSetChanger.insert(IndexSetChanger.java:268)
>       at 
> org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(RowChangerImpl.java:458)
>       at 
> org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:881)
>       at 
> org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:452)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:473)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:352)
>       at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1340)
>       ... 30 more
> I attached Test.groovy class which shows this issue. 
> I found this workaround: 
> we need drop indexes and create them again.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to