RelationalQueryBuilder Class — drizzle-orm Architecture
Architecture documentation for the RelationalQueryBuilder class in query.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD ac00866c_8363_7776_139c_2ecce82899f9["RelationalQueryBuilder"] c0f473e5_fef0_c6f5_7c3f_5af2802f3012["query.ts"] ac00866c_8363_7776_139c_2ecce82899f9 -->|defined in| c0f473e5_fef0_c6f5_7c3f_5af2802f3012 52ecff62_b69f_e246_a7cb_59e16298ffb3["constructor()"] ac00866c_8363_7776_139c_2ecce82899f9 -->|method| 52ecff62_b69f_e246_a7cb_59e16298ffb3 3d33110f_5b97_2807_cc45_507261a29778["findMany()"] ac00866c_8363_7776_139c_2ecce82899f9 -->|method| 3d33110f_5b97_2807_cc45_507261a29778 e9237ab9_4257_2031_8cb7_7c7f9abf0745["findFirst()"] ac00866c_8363_7776_139c_2ecce82899f9 -->|method| e9237ab9_4257_2031_8cb7_7c7f9abf0745
Relationship Graph
Source Code
drizzle-orm/src/mysql-core/query-builders/query.ts lines 23–74
export class RelationalQueryBuilder<
TPreparedQueryHKT extends PreparedQueryHKTBase,
TSchema extends TablesRelationalConfig,
TFields extends TableRelationalConfig,
> {
static readonly [entityKind]: string = 'MySqlRelationalQueryBuilder';
constructor(
private fullSchema: Record<string, unknown>,
private schema: TSchema,
private tableNamesMap: Record<string, string>,
private table: MySqlTable,
private tableConfig: TableRelationalConfig,
private dialect: MySqlDialect,
private session: MySqlSession,
private mode: Mode,
) {}
findMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(
config?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,
): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {
return new MySqlRelationalQuery(
this.fullSchema,
this.schema,
this.tableNamesMap,
this.table,
this.tableConfig,
this.dialect,
this.session,
config ? (config as DBQueryConfig<'many', true>) : {},
'many',
this.mode,
);
}
findFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(
config?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,
): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {
return new MySqlRelationalQuery(
this.fullSchema,
this.schema,
this.tableNamesMap,
this.table,
this.tableConfig,
this.dialect,
this.session,
config ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },
'first',
this.mode,
);
}
}
Domain
Source
Frequently Asked Questions
What is the RelationalQueryBuilder class?
RelationalQueryBuilder is a class in the drizzle-orm codebase, defined in drizzle-orm/src/mysql-core/query-builders/query.ts.
Where is RelationalQueryBuilder defined?
RelationalQueryBuilder is defined in drizzle-orm/src/mysql-core/query-builders/query.ts at line 23.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free