Home / Class/ PgCreateIndPolicyConvertor Class — drizzle-orm Architecture

PgCreateIndPolicyConvertor Class — drizzle-orm Architecture

Architecture documentation for the PgCreateIndPolicyConvertor class in sqlgenerator.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  edb57f7c_c768_0b48_d2bc_7220861f9727["PgCreateIndPolicyConvertor"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  edb57f7c_c768_0b48_d2bc_7220861f9727 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939
  a077f899_4a61_2b1d_170e_fb05943c82f5["can()"]
  edb57f7c_c768_0b48_d2bc_7220861f9727 -->|method| a077f899_4a61_2b1d_170e_fb05943c82f5
  81e6cc0b_4b4d_b95d_8ebc_52116ecb0fd0["convert()"]
  edb57f7c_c768_0b48_d2bc_7220861f9727 -->|method| 81e6cc0b_4b4d_b95d_8ebc_52116ecb0fd0

Relationship Graph

Source Code

drizzle-kit/src/sqlgenerator.ts lines 294–311

class PgCreateIndPolicyConvertor extends Convertor {
	override can(statement: JsonStatement, dialect: Dialect): boolean {
		return statement.type === 'create_ind_policy' && dialect === 'postgresql';
	}
	override convert(statement: JsonCreateIndPolicyStatement): string | string[] {
		const policy = statement.data;

		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 ${policy.on} AS ${policy.as?.toUpperCase()} FOR ${policy.for?.toUpperCase()} TO ${policyToPart}${usingPart}${withCheckPart};`;
	}
}

Domain

Frequently Asked Questions

What is the PgCreateIndPolicyConvertor class?
PgCreateIndPolicyConvertor is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is PgCreateIndPolicyConvertor defined?
PgCreateIndPolicyConvertor is defined in drizzle-kit/src/sqlgenerator.ts at line 294.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free