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
Source
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