Dyre, my memory has gone rusty on this topic but what I seem to recollect is not everything dependent on table will also be dependent for TablePermsDescr too. This is because say the table owner creates a view on that table, then no TablePermsDescr is required by such a view but that view will depend on the TableDescriptor.

On 4/16/07, Dyre.Tjeldvoll@sun.com <Dyre.Tjeldvoll@sun.com> wrote:
Mamta Satoor <msatoor@gmail.com> writes:

> When a revoke is issued, Derby sends an
> DependencyManager.REVOKE_PRIVILEGEinvalidation to dependents of the
> privilege being revoked.

Hmm, I've added some trace, and as far as I can tell, the only
Provider that gets DependencyManager.REVOKE_PRIVILEGE is
TablePermsDescr. That is, TablePermsDescr is the only Provider for
which DependecyManager.invalidateFor() gets called with
action=REVOKE_PRIVILEGE, after issuing a revoke. But in this case the
TablePermsDescr doesn't have any dependents so no invalidation of
prepared statements is done.

How does one determine the what the dependents of TablePermsDescr
should be?
I would have thought that any dependent of the table itself would be a
dependent of TablePermsDescr as well, but that doesn't seem to be the
case... why?