Home / Class/ RelationalQueryBuilder Class — drizzle-orm Architecture

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

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