db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Suresh Thalamati (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-1854) SYSCS_COMPRESS_TABLE corrupts table with a single column which is both a primary key and a foreign key
Date Wed, 20 Sep 2006 21:42:23 GMT
    [ http://issues.apache.org/jira/browse/DERBY-1854?page=comments#action_12436361 ] 
            
Suresh Thalamati commented on DERBY-1854:
-----------------------------------------

debugged this bug  little bit ,  looks like the problem is  one  of the conglomerate descriptor
 entries in the  sys.sysconglomerates are  not  getting updated with the new conglomerate
number that  got created as part of the compress .   In the test case , it happens to be entry
for the foreign key index. 

The current code that updates the conglomerate numbers indexes assumes ,there are  duplicate
 entries in the sys.sysconglomerate with same conglomerid entries  , when multiple indexes
are  referring to a conglomerate.   I think this  assumption is not true any more ,   fix
  for DERBY-655  ensures conglomerid  is unique in sys.sysconglomerates. 

This  bug is likely to  show up in all branches ,  where the fix for DERBY-655 is checked
in. 

/suresh 




> SYSCS_COMPRESS_TABLE corrupts table with a single column which is both a primary key
and a foreign key
> ------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1854
>                 URL: http://issues.apache.org/jira/browse/DERBY-1854
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.1.3.1, 10.1.3.0
>         Environment: Reproduced on Linux, Win2k, and WinXP running JDK 1.4.2.x
>            Reporter: Chad Loder
>            Priority: Critical
>             Fix For: 10.2.2.0
>
>
> Running the following short SQL script from ij will cause an error "ERROR XSAI2: The
conglomerate (817) requested does not exist.".  It appears that the SYSCS_COMPRESS_TABLE function
corrupts tables that have a single column which is both a primary key and a foreign key.
> connect 'jdbc:derby:/testdb;create=true';
> CREATE TABLE users (
>  user_id INT NOT NULL GENERATED BY DEFAULT AS IDENTITY,
>  user_login VARCHAR(255) NOT NULL,
>  PRIMARY KEY (user_id));
> CREATE TABLE admins (
>  user_id INT NOT NULL,
>  PRIMARY KEY (user_id),
>  CONSTRAINT admin_uid_fk FOREIGN KEY (user_id) REFERENCES users (user_id));
>  
> INSERT INTO users (user_login) VALUES('TEST1');
> INSERT INTO admins VALUES (VALUES IDENTITY_VAL_LOCAL());
> CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE('APP', 'ADMINS', 0);
> SELECT * from admins;

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message