1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-08-06 05:54:03 +00:00

perf(rls): wrap current_setting() in the generated tenant policy for per-statement eval

This commit is contained in:
Dmitry Maranik 2026-07-03 19:36:10 -07:00
parent 3156c87ee3
commit 945c582b17

View file

@ -67,7 +67,7 @@ class TraitRLSManager implements RLSPolicyManager
return <<<SQL
CREATE POLICY {$table}_rls_policy ON {$table} USING (
{$tenantKeyColumn}::text = current_setting('{$sessionTenantKey}')
{$tenantKeyColumn}::text = (select current_setting('{$sessionTenantKey}'))
);
SQL;
}
@ -87,7 +87,7 @@ class TraitRLSManager implements RLSPolicyManager
{$parentRelationship->getForeignKeyName()} IN (
SELECT {$parent->getKeyName()}
FROM {$parent->getTable()}
WHERE {$tenantKeyColumn}::text = current_setting('{$sessionTenantKey}')
WHERE {$tenantKeyColumn}::text = (select current_setting('{$sessionTenantKey}'))
)
);
SQL;