-- 004: pooled sessions can carry an empty-string GUC placeholder after -- SET LOCAL commits; NULLIF makes the RLS expressions fail closed cleanly -- instead of raising a cast error. DROP POLICY IF EXISTS tenant_isolation ON memberships; DROP POLICY IF EXISTS tenant_isolation ON connections; DROP POLICY IF EXISTS tenant_isolation ON credentials; DROP POLICY IF EXISTS tenant_audit ON audit_log; CREATE POLICY tenant_isolation ON memberships USING (workspace_id = NULLIF(current_setting('app.workspace_id', true), '')::uuid); CREATE POLICY tenant_isolation ON connections USING (workspace_id = NULLIF(current_setting('app.workspace_id', true), '')::uuid); CREATE POLICY tenant_isolation ON credentials USING (workspace_id = NULLIF(current_setting('app.workspace_id', true), '')::uuid); CREATE POLICY tenant_audit ON audit_log USING (workspace_id = NULLIF(current_setting('app.workspace_id', true), '')::uuid);