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

Dag H. Wanvik updated DERBY-3327:
---------------------------------

    Attachment: DERBY-3327-6.stat
                DERBY-3327-6.diff

Uploading DERBY-3327-6, which removes a sanity check from
GenericLanguageConnectionContext.

In GenericLanguageConnectionContext#getInitialDefaultSchemaDescriptor there was
a sanity check that the initial default schema value is always computed before
it is ever used by getDefaultSchema; that proved to not be the case in one code
path, cf. indicative check for null in DataDictionaryImpl#getSchemaDescriptor
near the end of that method.

When chasing the recursion in the printing of the lock table for DERBY-3678 I
noticed that the assert error was triggered, which removed the recursion at the
expense of the lock table being incompetely filled in as below (notice default
values, e.g. for CONTAINER_ID column);

|STATE|TABLETYPE / LOCKOBJ |INDEXNAME / CONTAINER_ID / (MODE for LATCH only)  
|TABLENAME / CONGLOM_ID |
------------------------------------------------------------------------------------------------------
*** The following row is the victim ***
151       |ROW          |S   |0        |(1,18) |WAIT 
|org.apache.derby.impl.services.locks.A|CONTAINERID |CONGLOMID |
:

(The assert error was silently swallowed in TimeOut#buildLockTableString, see
 the comment "//just don't do anything".


If this is a valid code path or not I have yet to determine, but I remove the
sanity check for now; so the sane build will not work better than the insane.

Regressions ran OK, module wisconsin, which i believe to be unrelated.


> SQL roles: Implement authorization stack (and SQL session context to hold it)
> -----------------------------------------------------------------------------
>
>                 Key: DERBY-3327
>                 URL: https://issues.apache.org/jira/browse/DERBY-3327
>             Project: Derby
>          Issue Type: New Feature
>          Components: Security, SQL
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>             Fix For: 10.5.0.0
>
>         Attachments: DERBY-3327-1.diff, DERBY-3327-1.stat, DERBY-3327-2.diff, 
> DERBY-3327-2.stat, DERBY-3327-3.diff, DERBY-3327-3.stat, 
> DERBY-3327-4-full-b.diff, DERBY-3327-4-full-b.stat, DERBY-3327-4-full-c.diff, 
> DERBY-3327-4-full-c.stat, DERBY-3327-4-full-d.diff, DERBY-3327-4-full-d.stat, 
> DERBY-3327-4-full-e-10_4.diff, DERBY-3327-4-full-e-10_4.stat, 
> DERBY-3327-4-full-e.diff, DERBY-3327-4-full-e.stat, DERBY-3327-4-full.diff, 
> DERBY-3327-4-full.stat, derby-3327-5a-extracted_initial_schema_patch.diff, 
> DERBY-3327-6.diff, DERBY-3327-6.stat, releaseNote.html
>
>
> The current LanguageConnectionContext keeps the user authorization identifier 
> for an SQL session.
> The lcc is shared context also for nested connections (opened from stored 
> procedures).
> So far, for roles, the current role has been stored in the lcc also. However, 
> SQL requires that
> authorization identifers be pushed on a "authorization stack" when calling a 
> stored procedure, cf.
> SQL 2003, vol 2, section 4.34.1.1 and 4.27.3 and 10.4 GR 5h and i.
> This allows a caller to keep its current role after a call even if changed by 
> the stored procedure.
> This issue will implement the current role name part ("cell") of the 
> authorization stack. 
> The authorization stack will be implemented as part of the SQL session 
> context.
> The patch will also implement the pushing of the current unqualified schema 
> name part of
> the SQL session context, cf. 10.4 GR 5a (DERBY-1331).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to