- validate_rendered_expression now converts every failure mode (parse,
set operation, disallowed sub-query, sanitization) to
QueryObjectValidationError, matching validate_stored_expression_at_query_time,
instead of letting SupersetSecurityException escape uncaught from its
call sites in connectors/sqla/models.py and models/helpers.py.
- The unresolved-RLS-predicates cache-key fallback now keys guest users
by a hash of their token's RLS rules/resources instead of
get_user_id(), which returns None for every guest token and was
collapsing distinct guest RLS contexts onto the same cache entry.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>