Home / Class/ PgAlterTableAddUniqueConstraintConvertor Class — drizzle-orm Architecture

PgAlterTableAddUniqueConstraintConvertor Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  c18ca966_1450_081c_1e35_f5e5171cfdb4["PgAlterTableAddUniqueConstraintConvertor"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  c18ca966_1450_081c_1e35_f5e5171cfdb4 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939
  be4601e3_feb1_512f_39b3_3ca655088d80["can()"]
  c18ca966_1450_081c_1e35_f5e5171cfdb4 -->|method| be4601e3_feb1_512f_39b3_3ca655088d80
  972ea3af_5b25_e467_f153_ec101d056955["convert()"]
  c18ca966_1450_081c_1e35_f5e5171cfdb4 -->|method| 972ea3af_5b25_e467_f153_ec101d056955

Relationship Graph

Source Code

drizzle-kit/src/sqlgenerator.ts lines 1144–1161

class PgAlterTableAddUniqueConstraintConvertor extends Convertor {
	can(statement: JsonCreateUniqueConstraint, dialect: Dialect): boolean {
		return (
			statement.type === 'create_unique_constraint' && dialect === 'postgresql'
		);
	}
	convert(statement: JsonCreateUniqueConstraint): string {
		const unsquashed = PgSquasher.unsquashUnique(statement.data);

		const tableNameWithSchema = statement.schema
			? `"${statement.schema}"."${statement.tableName}"`
			: `"${statement.tableName}"`;

		return `ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${unsquashed.name}" UNIQUE${
			unsquashed.nullsNotDistinct ? ' NULLS NOT DISTINCT' : ''
		}("${unsquashed.columns.join('","')}");`;
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free