Disallowing recursive predicate processing

Adaptive Server returns an error if the accesses made in a row-filtering predicate or a role activation predicate are controlled by predicated grants. For example, this situation results in recursive cycles of access checking, and is not allowed:

Role activation predicates have similar restrictions. For example, this situation returns an error when a user attempts to set role r1 on:

When applying a user's default roles, for example, during login, when executing set proxy, or when evaluating predicate accesses on behalf of the grantor, Adaptive Server ignores any default roles that have been granted with an activation predicate.