1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-08-06 06: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 return <<<SQL
CREATE POLICY {$table}_rls_policy ON {$table} USING ( CREATE POLICY {$table}_rls_policy ON {$table} USING (
{$tenantKeyColumn}::text = current_setting('{$sessionTenantKey}') {$tenantKeyColumn}::text = (select current_setting('{$sessionTenantKey}'))
); );
SQL; SQL;
} }
@ -87,7 +87,7 @@ class TraitRLSManager implements RLSPolicyManager
{$parentRelationship->getForeignKeyName()} IN ( {$parentRelationship->getForeignKeyName()} IN (
SELECT {$parent->getKeyName()} SELECT {$parent->getKeyName()}
FROM {$parent->getTable()} FROM {$parent->getTable()}
WHERE {$tenantKeyColumn}::text = current_setting('{$sessionTenantKey}') WHERE {$tenantKeyColumn}::text = (select current_setting('{$sessionTenantKey}'))
) )
); );
SQL; SQL;