PgArray Class — drizzle-orm Architecture
Architecture documentation for the PgArray class in common.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 6c945e6c_e21b_88c9_df3f_3b7c323423fb["PgArray"] f4f42b4c_8610_03dd_fe01_232098668127["common.ts"] 6c945e6c_e21b_88c9_df3f_3b7c323423fb -->|defined in| f4f42b4c_8610_03dd_fe01_232098668127 957bf01f_7aa2_d803_1c04_03fbc9f8635f["constructor()"] 6c945e6c_e21b_88c9_df3f_3b7c323423fb -->|method| 957bf01f_7aa2_d803_1c04_03fbc9f8635f 832ff925_1a30_c6cd_0216_6f3f700922cf["getSQLType()"] 6c945e6c_e21b_88c9_df3f_3b7c323423fb -->|method| 832ff925_1a30_c6cd_0216_6f3f700922cf 1f33ffb2_46aa_25c3_eb1b_080a0c7ad381["mapFromDriverValue()"] 6c945e6c_e21b_88c9_df3f_3b7c323423fb -->|method| 1f33ffb2_46aa_25c3_eb1b_080a0c7ad381 bda7ff33_58a8_5dfe_54f0_35000f749ac4["mapToDriverValue()"] 6c945e6c_e21b_88c9_df3f_3b7c323423fb -->|method| bda7ff33_58a8_5dfe_54f0_35000f749ac4
Relationship Graph
Source Code
drizzle-orm/src/pg-core/columns/common.ts lines 309–353
export class PgArray<
T extends ColumnBaseConfig<'array', 'PgArray'> & {
size: number | undefined;
baseBuilder: ColumnBuilderBaseConfig<ColumnDataType, string>;
},
TBase extends ColumnBuilderBaseConfig<ColumnDataType, string>,
> extends PgColumn<T, {}, { size: T['size']; baseBuilder: T['baseBuilder'] }> {
readonly size: T['size'];
static override readonly [entityKind]: string = 'PgArray';
constructor(
table: AnyPgTable<{ name: T['tableName'] }>,
config: PgArrayBuilder<T, TBase>['config'],
readonly baseColumn: PgColumn,
readonly range?: [number | undefined, number | undefined],
) {
super(table, config);
this.size = config.size;
}
getSQLType(): string {
return `${this.baseColumn.getSQLType()}[${typeof this.size === 'number' ? this.size : ''}]`;
}
override mapFromDriverValue(value: unknown[] | string): T['data'] {
if (typeof value === 'string') {
// Thank you node-postgres for not parsing enum arrays
value = parsePgArray(value);
}
return value.map((v) => this.baseColumn.mapFromDriverValue(v));
}
override mapToDriverValue(value: unknown[], isNestedArray = false): unknown[] | string {
const a = value.map((v) =>
v === null
? null
: is(this.baseColumn, PgArray)
? this.baseColumn.mapToDriverValue(v as unknown[], true)
: this.baseColumn.mapToDriverValue(v)
);
if (isNestedArray) return a;
return makePgArray(a);
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the PgArray class?
PgArray is a class in the drizzle-orm codebase, defined in drizzle-orm/src/pg-core/columns/common.ts.
Where is PgArray defined?
PgArray is defined in drizzle-orm/src/pg-core/columns/common.ts at line 309.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free