[ http://issues.apache.org/jira/browse/DERBY-1489?page=comments#action_12430520 ] Bryan Pendleton commented on DERBY-1489: ----------------------------------------
The issue with views which are dependent on the column being dropped seems to involve the handling of the prepareToInvalidate() and makeInvalid() methods in the org.apache.derby.iapi.sql.dictionary.ViewDescriptor class. As a first experiment, I tried adding case statements for DependencyManager.DROP_COLUMN into both methods: in prepareToInvalidate, break in makeInvalid, call dropViewWork This partially fixes the problem: now ALTER TABLE DROP COLUMN drops any view which is dependent on that column. However, with this change, the view is dropped regardless of whether I say CASCADE or RESTRICT. I notice that ViewDescriptor has handling for REVOKE_PRIVILEGE and REVOKE_PRIVILEGE_RESTRICT, and I wonder: should I create a DependencyManager.DROP_COLUMN_RESTRICT and mimic the handling of REVOKE_PRIVILEGE? > Provide ALTER TABLE DROP COLUMN functionality > --------------------------------------------- > > Key: DERBY-1489 > URL: http://issues.apache.org/jira/browse/DERBY-1489 > Project: Derby > Issue Type: New Feature > Components: Documentation, SQL > Affects Versions: 10.0.2.0, 10.0.2.1, 10.1.1.0, 10.2.1.0, 10.1.2.1, > 10.1.3.0, 10.1.3.1 > Reporter: Bryan Pendleton > Assigned To: Bryan Pendleton > Attachments: dropColumn_2.diff > > > Provide a way to drop a column from an existing table. Possible syntax would > be: > ALTER TABLE tablename DROP COLUMN columnname CASCADE / RESTRICT; > Feature should properly handle columns which are used in constraints, views, > triggers, indexes, etc. -- 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