Home / Class/ NodePgPreparedQuery Class — drizzle-orm Architecture

NodePgPreparedQuery Class — drizzle-orm Architecture

Architecture documentation for the NodePgPreparedQuery class in session.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  b1ecfc7b_8f56_6df4_7a24_c6d1f8b2d849["NodePgPreparedQuery"]
  0507ccca_3cb1_384d_6315_fc19900c69b1["session.ts"]
  b1ecfc7b_8f56_6df4_7a24_c6d1f8b2d849 -->|defined in| 0507ccca_3cb1_384d_6315_fc19900c69b1
  0a722b68_488a_f768_1c0b_6058f0b0f772["constructor()"]
  b1ecfc7b_8f56_6df4_7a24_c6d1f8b2d849 -->|method| 0a722b68_488a_f768_1c0b_6058f0b0f772
  f7db4a0e_fe1a_0681_7125_5036f9a2f266["execute()"]
  b1ecfc7b_8f56_6df4_7a24_c6d1f8b2d849 -->|method| f7db4a0e_fe1a_0681_7125_5036f9a2f266
  4da55603_0df9_fe8e_e7fc_88c62d736b66["all()"]
  b1ecfc7b_8f56_6df4_7a24_c6d1f8b2d849 -->|method| 4da55603_0df9_fe8e_e7fc_88c62d736b66
  d1aaf09b_1c48_7390_ecee_48aa9ce15017["isResponseInArrayMode()"]
  b1ecfc7b_8f56_6df4_7a24_c6d1f8b2d849 -->|method| d1aaf09b_1c48_7390_ecee_48aa9ce15017

Relationship Graph

Source Code

drizzle-orm/src/node-postgres/session.ts lines 21–194

export class NodePgPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
	static override readonly [entityKind]: string = 'NodePgPreparedQuery';

	private rawQueryConfig: QueryConfig;
	private queryConfig: QueryArrayConfig;

	constructor(
		private client: NodePgClient,
		private queryString: string,
		private params: unknown[],
		private logger: Logger,
		cache: Cache,
		queryMetadata: {
			type: 'select' | 'update' | 'delete' | 'insert';
			tables: string[];
		} | undefined,
		cacheConfig: WithCacheConfig | undefined,
		private fields: SelectedFieldsOrdered | undefined,
		name: string | undefined,
		private _isResponseInArrayMode: boolean,
		private customResultMapper?: (rows: unknown[][]) => T['execute'],
	) {
		super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
		this.rawQueryConfig = {
			name,
			text: queryString,
			types: {
				// @ts-ignore
				getTypeParser: (typeId, format) => {
					if (typeId === types.builtins.TIMESTAMPTZ) {
						return (val) => val;
					}
					if (typeId === types.builtins.TIMESTAMP) {
						return (val) => val;
					}
					if (typeId === types.builtins.DATE) {
						return (val) => val;
					}
					if (typeId === types.builtins.INTERVAL) {
						return (val) => val;
					}
					// numeric[]
					if (typeId === 1231) {
						return (val) => val;
					}
					// timestamp[]
					if (typeId === 1115) {
						return (val) => val;
					}
					// timestamp with timezone[]
					if (typeId === 1185) {
						return (val) => val;
					}
					// interval[]
					if (typeId === 1187) {
						return (val) => val;
					}
					// date[]
					if (typeId === 1182) {
						return (val) => val;
					}
					// @ts-ignore
					return types.getTypeParser(typeId, format);
				},
			},
		};
		this.queryConfig = {
			name,
			text: queryString,
			rowMode: 'array',
			types: {
				// @ts-ignore
				getTypeParser: (typeId, format) => {
					if (typeId === types.builtins.TIMESTAMPTZ) {
						return (val) => val;
					}
					if (typeId === types.builtins.TIMESTAMP) {
						return (val) => val;
					}
					if (typeId === types.builtins.DATE) {
						return (val) => val;

Domain

Frequently Asked Questions

What is the NodePgPreparedQuery class?
NodePgPreparedQuery is a class in the drizzle-orm codebase, defined in drizzle-orm/src/node-postgres/session.ts.
Where is NodePgPreparedQuery defined?
NodePgPreparedQuery is defined in drizzle-orm/src/node-postgres/session.ts at line 21.

Analyze Your Own Codebase

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

Try Supermodel Free