PgCreatePolicyConvertor Class — drizzle-orm Architecture
Architecture documentation for the PgCreatePolicyConvertor class in sqlgenerator.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 52e7a846_b7dc_243d_dce9_f82a27463a07["PgCreatePolicyConvertor"] fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"] 52e7a846_b7dc_243d_dce9_f82a27463a07 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939 6e6441d1_86d4_ee1f_bfbd_c1c33a77845e["can()"] 52e7a846_b7dc_243d_dce9_f82a27463a07 -->|method| 6e6441d1_86d4_ee1f_bfbd_c1c33a77845e 37697f6d_58a7_5188_1ba4_613ed78834df["convert()"] 52e7a846_b7dc_243d_dce9_f82a27463a07 -->|method| 37697f6d_58a7_5188_1ba4_613ed78834df
Relationship Graph
Source Code
drizzle-kit/src/sqlgenerator.ts lines 209–230
class PgCreatePolicyConvertor extends Convertor {
override can(statement: JsonStatement, dialect: Dialect): boolean {
return statement.type === 'create_policy' && dialect === 'postgresql';
}
override convert(statement: JsonCreatePolicyStatement): string | string[] {
const policy = statement.data;
const tableNameWithSchema = statement.schema
? `"${statement.schema}"."${statement.tableName}"`
: `"${statement.tableName}"`;
const usingPart = policy.using ? ` USING (${policy.using})` : '';
const withCheckPart = policy.withCheck ? ` WITH CHECK (${policy.withCheck})` : '';
const policyToPart = policy.to?.map((v) =>
['current_user', 'current_role', 'session_user', 'public'].includes(v) ? v : `"${v}"`
).join(', ');
return `CREATE POLICY "${policy.name}" ON ${tableNameWithSchema} AS ${policy.as?.toUpperCase()} FOR ${policy.for?.toUpperCase()} TO ${policyToPart}${usingPart}${withCheckPart};`;
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the PgCreatePolicyConvertor class?
PgCreatePolicyConvertor is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is PgCreatePolicyConvertor defined?
PgCreatePolicyConvertor is defined in drizzle-kit/src/sqlgenerator.ts at line 209.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free