[ http://issues.apache.org/jira/browse/DERBY-1523?page=all ]
Daniel John Debrunner updated DERBY-1523: ----------------------------------------- Component/s: SQL (was: Miscellaneous) > Statements in cache need to depend on privileges and the appropriate > statements in cache should get invalidated if those privileges change. > ------------------------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-1523 > URL: http://issues.apache.org/jira/browse/DERBY-1523 > Project: Derby > Issue Type: Bug > Components: SQL > Affects Versions: 10.2.0.0 > Reporter: Mamta A. Satoor > Fix For: 10.2.0.0 > > > In Derby SQL Standard Authorization model, statements need to keep track of > what privileges they depend on so that their plans can be later invalidated > if those privileges are revoked. This may happen once the revoke privilege > (this includes explicit revoke privilege or indirect revoke privilege action > by dependency manager when the object on the privilege is granted is dropped) > work is all finished but I wanted to open a separate JIRA entry so we don't > loose track of statement caching. > Currently, the last sql statement in following set of sql statements will > raise a null pointer exception > connect 'jdbc:derby:c:/dellater/dbmaintest2;create=true' user 'mamta1' as > mamta1; > create table t11ConstraintTest (c111 int not null, c112 int not null, primary > key (c111, c112)); > grant references on t11ConstraintTest to mamta3; > connect 'jdbc:derby:c:/dellater/dbmaintest2;create=true' user 'mamta3' as > mamta3; > drop table t31ConstraintTest; > -- the following statement should remember that it depends on REFERENCES > privilege on mamta1.t11ConstraintTest > create table t31ConstraintTest (c311 int, c312 int, foreign key(c311, c312) > references mamta1.t11ConstraintTest); > drop table t31ConstraintTest; > set connection mamta1; > -- following should revoke all the privileges granted on it > drop table t11ConstraintTest; > create table t11ConstraintTest (c111 int not null, c112 int not null, primary > key (c111, c112)); > grant references(c111) on t11ConstraintTest to mamta3; > grant references(c112) on t11ConstraintTest to PUBLIC; > --connect 'jdbc:derby:c:/dellater/dbmaintest2;create=true' user 'mamta3' as > mamta3; > set connection mamta3; > drop table t31ConstraintTest; > -- following sql should recompie itself because the earlier plan depended on > a privilege which doesn't > -- exist anymore. Instead, new privileges have been granted and the plan for > following statement should depend > -- on those new privileges > create table t31ConstraintTest (c311 int, c312 int, foreign key(c311, c312) > references mamta1.t11ConstraintTest); > All this work is in the langauge layer but I don't seem Language as one of > the components in JIRA hence I have put it in Miscellaneous category for now. -- 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