PreparedQuery Class — drizzle-orm Architecture
Architecture documentation for the PreparedQuery class in session.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 16b981b5_3bbc_75b1_a0c4_72a6e30323d2["PreparedQuery"] 271f5ca2_4cd0_ab39_be04_a2370f5c940c["session.ts"] 16b981b5_3bbc_75b1_a0c4_72a6e30323d2 -->|defined in| 271f5ca2_4cd0_ab39_be04_a2370f5c940c 8b3a8bf6_16e6_6534_71f7_87971008b30a["constructor()"] 16b981b5_3bbc_75b1_a0c4_72a6e30323d2 -->|method| 8b3a8bf6_16e6_6534_71f7_87971008b30a 564340c4_f5a9_345a_1229_5aa4a12018cc["execute()"] 16b981b5_3bbc_75b1_a0c4_72a6e30323d2 -->|method| 564340c4_f5a9_345a_1229_5aa4a12018cc f648640d_46d5_09c2_3eef_053af5ebbaee["all()"] 16b981b5_3bbc_75b1_a0c4_72a6e30323d2 -->|method| f648640d_46d5_09c2_3eef_053af5ebbaee 4d32177d_f7ef_f449_ac05_2b1759dd22c5["isResponseInArrayMode()"] 16b981b5_3bbc_75b1_a0c4_72a6e30323d2 -->|method| 4d32177d_f7ef_f449_ac05_2b1759dd22c5
Relationship Graph
Source Code
drizzle-orm/src/pg-proxy/session.ts lines 91–163
export class PreparedQuery<T extends PreparedQueryConfig> extends PreparedQueryBase<T> {
static override readonly [entityKind]: string = 'PgProxyPreparedQuery';
constructor(
private client: RemoteCallback,
private queryString: string,
private params: unknown[],
private typings: any[] | undefined,
private logger: Logger,
cache: Cache,
queryMetadata: {
type: 'select' | 'update' | 'delete' | 'insert';
tables: string[];
} | undefined,
cacheConfig: WithCacheConfig | undefined,
private fields: SelectedFieldsOrdered | undefined,
private _isResponseInArrayMode: boolean,
private customResultMapper?: (rows: unknown[][]) => T['execute'],
) {
super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
}
async execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {
return tracer.startActiveSpan('drizzle.execute', async (span) => {
const params = fillPlaceholders(this.params, placeholderValues);
const { fields, client, queryString, joinsNotNullableMap, customResultMapper, logger, typings } = this;
span?.setAttributes({
'drizzle.query.text': queryString,
'drizzle.query.params': JSON.stringify(params),
});
logger.logQuery(queryString, params);
if (!fields && !customResultMapper) {
return tracer.startActiveSpan('drizzle.driver.execute', async () => {
const { rows } = await this.queryWithCache(queryString, params, async () => {
return await client(queryString, params as any[], 'execute', typings);
});
return rows;
});
}
const rows = await tracer.startActiveSpan('drizzle.driver.execute', async () => {
span?.setAttributes({
'drizzle.query.text': queryString,
'drizzle.query.params': JSON.stringify(params),
});
const { rows } = await this.queryWithCache(queryString, params, async () => {
return await client(queryString, params as any[], 'all', typings);
});
return rows;
});
return tracer.startActiveSpan('drizzle.mapResponse', () => {
return customResultMapper
? customResultMapper(rows)
: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));
});
});
}
async all() {
}
/** @internal */
isResponseInArrayMode(): boolean {
return this._isResponseInArrayMode;
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the PreparedQuery class?
PreparedQuery is a class in the drizzle-orm codebase, defined in drizzle-orm/src/pg-proxy/session.ts.
Where is PreparedQuery defined?
PreparedQuery is defined in drizzle-orm/src/pg-proxy/session.ts at line 91.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free