db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mamta A. Satoor (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4988) ALTER TABLE DROP COLUMN should make use of information in SYSTRIGGERS to detect column used through REFERENCING clause to find trigger dependencies
Date Wed, 02 Feb 2011 05:07:28 GMT

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

Mamta A. Satoor updated DERBY-4988:
-----------------------------------

    Fix Version/s: 10.8.0.0

Committed the changes to trunk with following commit comments

DERBY-4988 ALTER TABLE DROP COLUMN should make use of information in SYSTRIGGERS to detect
column used through REFERENCING clause to find trigger dependencies

Derby at the time of ALTER TABLE DROP COLUMN looks for trigger dependencies by looking for
column being dropped in trigger column list but that is not enough. SQL standard requires
that column should not be part of explicit trigger column list or a triggered action column
set. 

starting Derby 10.7, we have started keeping track of trigger action columns which are referenced
through the REFERENCING clause. This commit will make use of that additional info to make
a step forward towards meeting the SQL standards. It still does not recognize the trigger
action columns that are not part of REFERENCING clause. That work can go separately.

I have added upgrade test to make sure that the compatibility does not break between Derby
releases prior to 10.7 and forward.



> ALTER TABLE DROP COLUMN should make use of information in SYSTRIGGERS to detect column
used through REFERENCING clause to find trigger dependencies
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4988
>                 URL: https://issues.apache.org/jira/browse/DERBY-4988
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.7.1.1
>            Reporter: Mamta A. Satoor
>            Assignee: Mamta A. Satoor
>             Fix For: 10.8.0.0
>
>
> At the time of ALTER TABLE DROP COLUMN, Derby checks if the column being dropped in a
trigger column and if so, then it will not drop the column if it is being done in RESTRICT
mode or it will drop the trigger while dropping the column in CASCADE mode. This does not
implement SQL standard to it's entirety. 
> **************************************
> SQL standard says following about ALTER TABLE DROP COLUMN RESTRICT and trigger dependency
in CREATE TRIGGER section 
> If RESTRICT is specified, then C shall not be referenced in any of the following 
> d) Either an explicit trigger column list or a triggered action column set of any trigger
descriptor. 
> (The triggered action column set included in the trigger descriptor is the set of all
distinct, fully qualified names of columns contained in the <triggered action>.) 
> **************************************
> What is missing from Derby implementation from SQL standard point of view is detected
triggered action column set.
> Starting 10.7(with DERBY-1482), Derby started keeping track of trigger action columns
which are referenced through REFERENCING clause. This information can be used to improve the
behavior of ALTER TABLE DROP COLUMN in 10.7 and higher. This will not cover all the trigger
action columns since columns referenced without the REFERENCING clause are not tracked anywhere
at this point. More work will need to be done to implement SQL standard completely. But we
can take a step forward by using the information available in 10.7 and higher to detect trigger
action columns which are referenced through REFERENCING clause

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message