[
https://issues.apache.org/jira/browse/DERBY-6434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Hillegas updated DERBY-6434:
---------------------------------
Attachment: derby-6434-01-ac-correctInsertPrivs.diff
Attaching derby-6434-01-ac-correctInsertPrivs.diff. This rev corrects some
additional problems which surfaced when I ran the full regression tests on the
previous rev of the patch. I will re-run the regression tests now.
This rev corrects two problems:
1) A canonized wrong result in GeneratedColumnsPermsTest. There was a comment
left over from work on DERBY-6429, noting that this wrong result would need to
be addressed when INSERT privileges were corrected.
2) A test case in RolesConferredPrivilegesTest broke because the previous rev
altered the dependency checking for CHECK constraints which rely on role-based
privileges.
The fix for 2 is simple but it was tricky to find. I had expected that all
dependencies would be identified at bind() time. So I was surprised to find
that some in-memory dependencies are added by the execute() phase of statement
evaluation. This looks wrong to me. In a private discussion with Dag, we
theorized that the execute() time additions are a holdover from how the code
behaved before we added support for definer's rights.
The fix for 2 is to make ConstraintDescriptor.makeInvalid() call
DependencyManager.invalidateFor() on the table descriptor after the CHECK
constraint is implicitly dropped as a consequence of revoking a privilege. This
forces Derby to take the same code path pursued when the CHECK constraint is
explicitly dropped.
I am highly suspicious of the many calls to DependencyManager.addDependency()
which we see in the execute() time ConstantActions. Analyzing these suspicious
calls is outside the scope of this JIRA. I will file a follow-on issue for this
investigation.
Touches the following additional files:
------------------
M
java/engine/org/apache/derby/iapi/sql/dictionary/ConstraintDescriptor.java
The fix for item 2.
------------------
M
java/testing/org/apache/derbyTesting/functionTests/tests/lang/GeneratedColumnsPermsTest.java
The fix for item 1.
> Incorrect privileges may be required for INSERT and DELETE statements.
> ----------------------------------------------------------------------
>
> Key: DERBY-6434
> URL: https://issues.apache.org/jira/browse/DERBY-6434
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.11.0.0
> Reporter: Rick Hillegas
> Attachments: derby-6434-01-aa-correctInsertPrivs.diff,
> derby-6434-01-ac-correctInsertPrivs.diff
>
>
> This issue is a place to address problems with INSERT and DELETE statements
> similar to the problems affecting UPDATE statements recorded on DERBY-6429.
> In particular, DERBY-6432 and DERBY-6433 list some of the problems with
> INSERT statements.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)