Subject Re: [Firebird-Architect] User name SYSDBA
Author Christian Danner
Hello Ivan!

>I agree with Ann, because non-standard behaviour would cause
>compatibility problems, e.g. currently I can check inside trigger
> IF (CURRENT_ROLE<>'BOSS') THEN EXCEPTION E_NOPRIVILEGE;
>which would not work if several roles were active simultaneously.

Therefore a transparent / compatible handling of role sets would be
required. With this a comparison with CURRENT_ROLE would
optimistically only return 'unequal' if the set doesn't contain a role
with the name in question.

But additionally the storage of a role / role set, actually to a
VAR-/CHAR variable, would have to be considered, IMHO a compatibility
problem even harder to solve. If the assignment of a NULL-value isn't
adequate CURRENT_ROLE should at least support a term like 'MULTI' for
that purpose (in accordance to 'NONE'). In contrast to this a simple
concatenation of the roles could lead to an overflow of the
destination, which may not be prepared for such a long string. Enough
to be figured out by the gurus - if at all.

Regards

Christian