[ 
https://issues.apache.org/jira/browse/DERBY-5679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13241844#comment-13241844
 ] 

Mike Matrigali commented on DERBY-5679:
---------------------------------------

until  the bug is fixed won't know for sure, but I would expect running 
SYSCS_UTIL.SYSCS_COMPRESS_TABLE after the alters and committing to be safest 
workaround, and would not expect that it is leaving a masked issue.

when you alter a table and add a column nullable column without a default value 
I think we don't actually change the rows in the table, but instead count on 
logic where if you
see a row with less columns than expected at the physical layer, we translate 
those missing columns into nulls.  And I expect the bug
to have something to do with this logic either when you update the last column 
with missing columns in the middle, or some problem 
during undo with same logic.

When you do the compress, as knut said, the system underneath creates a whole 
new table and inserts new rows into it.  I would expect that
these new rows are all "full" and thus don't go through the tricky code.
                
> Rolling back a transaction leads to an inconsistent state
> ---------------------------------------------------------
>
>                 Key: DERBY-5679
>                 URL: https://issues.apache.org/jira/browse/DERBY-5679
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.6.2.1, 10.8.2.2
>         Environment: >sysinfo
> ------------------ Java Information ------------------
> Java Version:    1.6.0_26
> Java Vendor:     Sun Microsystems Inc.
> Java home:       C:\Program Files (x86)\Java\jre6
> Java classpath:  .;C:\Program Files 
> (x86)\Java\jre7\lib\ext\QTJava.zip;C:\Users\BMASON\Sandbox\libs\db-derby-10.8.2.2-bin\bin\../lib/derby.jar;C:\Users\BMASON\Sandbox\libs\db-derby-10.8.2.2-bin\bin\../lib/derbynet.jar;C:\Users\BMASON\Sandbox\libs\db-derby-10.8.2.2-bin\bin\../lib/derbyclient.jar;C:\Users\BMASON\Sandbox\libs\db-derby-10.8.2.2-bin\bin\../lib/derbytools.jar
> OS name:         Windows 7
> OS architecture: x86
> OS version:      6.1
> Java user name:  bmason
> Java user home:  C:\Users\BMASON
> Java user dir:   C:\Users\BMASON\Sandbox\libs\db-derby-10.8.2.2-bin\bin
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.6
> java.runtime.version: 1.6.0_26-b03
> --------- Derby Information --------
> JRE - JDBC: Java SE 6 - JDBC 4.0
> [C:\Users\BMASON\Sandbox\libs\db-derby-10.8.2.2-bin\lib\derby.jar] 10.8.2.2 - 
> (1181258)
> [C:\Users\BMASON\Sandbox\libs\db-derby-10.8.2.2-bin\lib\derbytools.jar] 
> 10.8.2.2 - (1181258)
> [C:\Users\BMASON\Sandbox\libs\db-derby-10.8.2.2-bin\lib\derbynet.jar] 
> 10.8.2.2 - (1181258)
> [C:\Users\BMASON\Sandbox\libs\db-derby-10.8.2.2-bin\lib\derbyclient.jar] 
> 10.8.2.2 - (1181258)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> Current Locale :  [English/New Zealand [en_NZ]]
> Found support for locale: [cs]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [de_DE]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [es]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [fr]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [hu]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [it]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [ja_JP]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [ko_KR]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [pl]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [pt_BR]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [ru]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [zh_CN]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [zh_TW]
>          version: 10.8.2.2 - (1181258)
> ------------------------------------------------------
>            Reporter: Brett Mason
>         Attachments: RollbackFails - expected output.txt, RollbackFails.sql
>
>
> Rolling back a transaction can leave a table in an inconsistent state if the 
> table has been previously altered through the addition of new columns. It 
> appears that if newly added columns have not been changed from their default 
> value, then when a transaction which sets new values for these columns is 
> rolled back the new columns are not restored to their previous values.
> Attached is an ij script with fairly minimal steps to reproduce the problem 
> on Derby 10.6.2.0 and 10.8.2.2 (Win7 x64, Sun 32-bit JRE 1.6.0.26). Expected 
> and observed output also attached.
> Would appreciate any suggestions as to a workaround for this issue. Running 
> SYSCS_UTIL.SYSCS_COMPRESS_TABLE on the table after adding the columns seems 
> to avoid the problem but may be just masking the issue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to