Home / Class/ MySqlSelectBase Class — drizzle-orm Architecture

MySqlSelectBase Class — drizzle-orm Architecture

Architecture documentation for the MySqlSelectBase class in select.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  8253b96f_50ac_9fb3_8a87_05b8a9d328c9["MySqlSelectBase"]
  beabf465_fa9a_6d7b_17f0_933ae73209d6["select.ts"]
  8253b96f_50ac_9fb3_8a87_05b8a9d328c9 -->|defined in| beabf465_fa9a_6d7b_17f0_933ae73209d6
  f8c39527_6372_0426_5e22_45368e4bf7eb["prepare()"]
  8253b96f_50ac_9fb3_8a87_05b8a9d328c9 -->|method| f8c39527_6372_0426_5e22_45368e4bf7eb

Relationship Graph

Source Code

drizzle-orm/src/mysql-core/query-builders/select.ts lines 1103–1156

export class MySqlSelectBase<
	TTableName extends string | undefined,
	TSelection,
	TSelectMode extends SelectMode,
	TPreparedQueryHKT extends PreparedQueryHKTBase,
	TNullabilityMap extends Record<string, JoinNullability> = TTableName extends string ? Record<TTableName, 'not-null'>
		: {},
	TDynamic extends boolean = false,
	TExcludedMethods extends string = never,
	TResult = SelectResult<TSelection, TSelectMode, TNullabilityMap>[],
	TSelectedFields = BuildSubquerySelection<TSelection, TNullabilityMap>,
> extends MySqlSelectQueryBuilderBase<
	MySqlSelectHKT,
	TTableName,
	TSelection,
	TSelectMode,
	TPreparedQueryHKT,
	TNullabilityMap,
	TDynamic,
	TExcludedMethods,
	TResult,
	TSelectedFields
> {
	static override readonly [entityKind]: string = 'MySqlSelect';

	prepare(): MySqlSelectPrepare<this> {
		if (!this.session) {
			throw new Error('Cannot execute a query on a query builder. Please use a database instance instead.');
		}
		const fieldsList = orderSelectedFields<MySqlColumn>(this.config.fields);
		const query = this.session.prepareQuery<
			MySqlPreparedQueryConfig & { execute: SelectResult<TSelection, TSelectMode, TNullabilityMap>[] },
			TPreparedQueryHKT
		>(this.dialect.sqlToQuery(this.getSQL()), fieldsList, undefined, undefined, undefined, {
			type: 'select',
			tables: [...this.usedTables],
		}, this.cacheConfig);
		query.joinsNotNullableMap = this.joinsNotNullableMap;
		return query as MySqlSelectPrepare<this>;
	}

	execute = ((placeholderValues) => {
		return this.prepare().execute(placeholderValues);
	}) as ReturnType<this['prepare']>['execute'];

	private createIterator = (): ReturnType<this['prepare']>['iterator'] => {
		const self = this;
		return async function*(placeholderValues) {
			yield* self.prepare().iterator(placeholderValues);
		};
	};

	iterator = this.createIterator();
}

Domain

Frequently Asked Questions

What is the MySqlSelectBase class?
MySqlSelectBase is a class in the drizzle-orm codebase, defined in drizzle-orm/src/mysql-core/query-builders/select.ts.
Where is MySqlSelectBase defined?
MySqlSelectBase is defined in drizzle-orm/src/mysql-core/query-builders/select.ts at line 1103.

Analyze Your Own Codebase

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

Try Supermodel Free