PgCountBuilder Class — drizzle-orm Architecture
Architecture documentation for the PgCountBuilder class in count.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD ac948e16_8fee_2312_8b12_6929b5a7ee06["PgCountBuilder"] fa6a01b7_6d1f_e5fb_2daa_b614b6687cb0["count.ts"] ac948e16_8fee_2312_8b12_6929b5a7ee06 -->|defined in| fa6a01b7_6d1f_e5fb_2daa_b614b6687cb0 e1198933_a35b_66d4_61ab_2b646fe38bd1["buildEmbeddedCount()"] ac948e16_8fee_2312_8b12_6929b5a7ee06 -->|method| e1198933_a35b_66d4_61ab_2b646fe38bd1 2568b929_2fae_ea77_776e_7ab13ad1fa55["buildCount()"] ac948e16_8fee_2312_8b12_6929b5a7ee06 -->|method| 2568b929_2fae_ea77_776e_7ab13ad1fa55 ecf48022_cd3e_19f1_4ee4_dda956fe842f["constructor()"] ac948e16_8fee_2312_8b12_6929b5a7ee06 -->|method| ecf48022_cd3e_19f1_4ee4_dda956fe842f 2d6a34e5_2864_022f_3df2_f6ad329b612e["setToken()"] ac948e16_8fee_2312_8b12_6929b5a7ee06 -->|method| 2d6a34e5_2864_022f_3df2_f6ad329b612e 2f3009d2_b61c_7918_122c_e2d3aafdfb84["then()"] ac948e16_8fee_2312_8b12_6929b5a7ee06 -->|method| 2f3009d2_b61c_7918_122c_e2d3aafdfb84 34c17a90_837c_08aa_8ad3_be9f401663bf["catch()"] ac948e16_8fee_2312_8b12_6929b5a7ee06 -->|method| 34c17a90_837c_08aa_8ad3_be9f401663bf 4d7d9a3a_c86d_a8d4_690e_4b7bb09e2a30["finally()"] ac948e16_8fee_2312_8b12_6929b5a7ee06 -->|method| 4d7d9a3a_c86d_a8d4_690e_4b7bb09e2a30
Relationship Graph
Source Code
drizzle-orm/src/pg-core/query-builders/count.ts lines 7–86
export class PgCountBuilder<
TSession extends PgSession<any, any, any>,
> extends SQL<number> implements Promise<number>, SQLWrapper {
private sql: SQL<number>;
private token?: NeonAuthToken;
static override readonly [entityKind] = 'PgCountBuilder';
[Symbol.toStringTag] = 'PgCountBuilder';
private session: TSession;
private static buildEmbeddedCount(
source: PgTable | SQL | SQLWrapper,
filters?: SQL<unknown>,
): SQL<number> {
return sql<number>`(select count(*) from ${source}${sql.raw(' where ').if(filters)}${filters})`;
}
private static buildCount(
source: PgTable | SQL | SQLWrapper,
filters?: SQL<unknown>,
): SQL<number> {
return sql<number>`select count(*) as count from ${source}${sql.raw(' where ').if(filters)}${filters};`;
}
constructor(
readonly params: {
source: PgTable | SQL | SQLWrapper;
filters?: SQL<unknown>;
session: TSession;
},
) {
super(PgCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);
this.mapWith(Number);
this.session = params.session;
this.sql = PgCountBuilder.buildCount(
params.source,
params.filters,
);
}
/** @intrnal */
setToken(token?: NeonAuthToken) {
this.token = token;
return this;
}
then<TResult1 = number, TResult2 = never>(
onfulfilled?: ((value: number) => TResult1 | PromiseLike<TResult1>) | null | undefined,
onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined,
): Promise<TResult1 | TResult2> {
return Promise.resolve(this.session.count(this.sql, this.token))
.then(
onfulfilled,
onrejected,
);
}
catch(
onRejected?: ((reason: any) => any) | null | undefined,
): Promise<number> {
return this.then(undefined, onRejected);
}
finally(onFinally?: (() => void) | null | undefined): Promise<number> {
return this.then(
(value) => {
onFinally?.();
return value;
},
(reason) => {
onFinally?.();
throw reason;
},
);
}
}
Domain
Source
Frequently Asked Questions
What is the PgCountBuilder class?
PgCountBuilder is a class in the drizzle-orm codebase, defined in drizzle-orm/src/pg-core/query-builders/count.ts.
Where is PgCountBuilder defined?
PgCountBuilder is defined in drizzle-orm/src/pg-core/query-builders/count.ts at line 7.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free