AwsPgDialect Class — drizzle-orm Architecture
Architecture documentation for the AwsPgDialect class in driver.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 182ab2de_01f7_1a78_b6ab_f77a214a8559["AwsPgDialect"] d4882ed1_0e96_6210_f61b_425eb48edf20["driver.ts"] 182ab2de_01f7_1a78_b6ab_f77a214a8559 -->|defined in| d4882ed1_0e96_6210_f61b_425eb48edf20 86f6da16_3872_ce10_a914_fe60e5e7049a["escapeParam()"] 182ab2de_01f7_1a78_b6ab_f77a214a8559 -->|method| 86f6da16_3872_ce10_a914_fe60e5e7049a 4e2f81d8_2f7a_f3e3_ca97_971cf78b71ce["buildInsertQuery()"] 182ab2de_01f7_1a78_b6ab_f77a214a8559 -->|method| 4e2f81d8_2f7a_f3e3_ca97_971cf78b71ce 9ca3f186_3e17_ec9a_7b09_ad335182ed6e["buildUpdateSet()"] 182ab2de_01f7_1a78_b6ab_f77a214a8559 -->|method| 9ca3f186_3e17_ec9a_7b09_ad335182ed6e
Relationship Graph
Source Code
drizzle-orm/src/aws-data-api/pg/driver.ts lines 50–93
export class AwsPgDialect extends PgDialect {
static override readonly [entityKind]: string = 'AwsPgDialect';
override escapeParam(num: number): string {
return `:${num + 1}`;
}
override buildInsertQuery(
{ table, values, onConflict, returning, select, withList }: PgInsertConfig<PgTable<TableConfig>>,
): SQL<unknown> {
const columns: Record<string, PgColumn> = table[Table.Symbol.Columns];
if (!select) {
for (const value of (values as Record<string, Param | SQL>[])) {
for (const fieldName of Object.keys(columns)) {
const colValue = value[fieldName];
if (
is(colValue, Param) && colValue.value !== undefined && is(colValue.encoder, PgArray)
&& Array.isArray(colValue.value)
) {
value[fieldName] = sql`cast(${colValue} as ${sql.raw(colValue.encoder.getSQLType())})`;
}
}
}
}
return super.buildInsertQuery({ table, values, onConflict, returning, withList });
}
override buildUpdateSet(table: PgTable<TableConfig>, set: UpdateSet): SQL<unknown> {
const columns: Record<string, PgColumn> = table[Table.Symbol.Columns];
for (const [colName, colValue] of Object.entries(set)) {
const currentColumn = columns[colName];
if (
currentColumn && is(colValue, Param) && colValue.value !== undefined && is(colValue.encoder, PgArray)
&& Array.isArray(colValue.value)
) {
set[colName] = sql`cast(${colValue} as ${sql.raw(colValue.encoder.getSQLType())})`;
}
}
return super.buildUpdateSet(table, set);
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the AwsPgDialect class?
AwsPgDialect is a class in the drizzle-orm codebase, defined in drizzle-orm/src/aws-data-api/pg/driver.ts.
Where is AwsPgDialect defined?
AwsPgDialect is defined in drizzle-orm/src/aws-data-api/pg/driver.ts at line 50.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free