GelRelationalQuery Class — drizzle-orm Architecture
Architecture documentation for the GelRelationalQuery class in query.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD f9a91e6d_a33f_bd5f_9c24_96be62c66b94["GelRelationalQuery"] 496562d4_b832_5877_db12_bfc126b68038["query.ts"] f9a91e6d_a33f_bd5f_9c24_96be62c66b94 -->|defined in| 496562d4_b832_5877_db12_bfc126b68038 630f76c8_d72e_b8e0_9663_577f066503d3["constructor()"] f9a91e6d_a33f_bd5f_9c24_96be62c66b94 -->|method| 630f76c8_d72e_b8e0_9663_577f066503d3 5ec7dcb3_48df_9e64_7058_75e57a02ef57["_prepare()"] f9a91e6d_a33f_bd5f_9c24_96be62c66b94 -->|method| 5ec7dcb3_48df_9e64_7058_75e57a02ef57 eace7af1_70c6_3521_c012_8025e2549e26["prepare()"] f9a91e6d_a33f_bd5f_9c24_96be62c66b94 -->|method| eace7af1_70c6_3521_c012_8025e2549e26 36dfbc90_7d35_2469_60d2_b992c2272cc0["_getQuery()"] f9a91e6d_a33f_bd5f_9c24_96be62c66b94 -->|method| 36dfbc90_7d35_2469_60d2_b992c2272cc0 493f8637_2de0_c669_8a0a_80ddd460f4aa["getSQL()"] f9a91e6d_a33f_bd5f_9c24_96be62c66b94 -->|method| 493f8637_2de0_c669_8a0a_80ddd460f4aa d60c8dca_bce8_adcf_14af_63da6ec5ea7a["_toSQL()"] f9a91e6d_a33f_bd5f_9c24_96be62c66b94 -->|method| d60c8dca_bce8_adcf_14af_63da6ec5ea7a 8e4850e7_80a2_345f_d917_4392a79b6910["toSQL()"] f9a91e6d_a33f_bd5f_9c24_96be62c66b94 -->|method| 8e4850e7_80a2_345f_d917_4392a79b6910 782e8ccb_096f_8d34_a26e_e3bb8b130abc["execute()"] f9a91e6d_a33f_bd5f_9c24_96be62c66b94 -->|method| 782e8ccb_096f_8d34_a26e_e3bb8b130abc
Relationship Graph
Source Code
drizzle-orm/src/gel-core/query-builders/query.ts lines 65–150
export class GelRelationalQuery<TResult> extends QueryPromise<TResult>
implements RunnableQuery<TResult, 'gel'>, SQLWrapper
{
static override readonly [entityKind]: string = 'GelRelationalQuery';
declare readonly _: {
readonly dialect: 'gel';
readonly result: TResult;
};
constructor(
private fullSchema: Record<string, unknown>,
private schema: TablesRelationalConfig,
private tableNamesMap: Record<string, string>,
private table: GelTable,
private tableConfig: TableRelationalConfig,
private dialect: GelDialect,
private session: GelSession,
private config: DBQueryConfig<'many', true> | true,
private mode: 'many' | 'first',
) {
super();
}
/** @internal */
_prepare(name?: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {
return tracer.startActiveSpan('drizzle.prepareQuery', () => {
const { query, builtQuery } = this._toSQL();
return this.session.prepareQuery<PreparedQueryConfig & { execute: TResult }>(
builtQuery,
undefined,
name,
true,
(rawRows, mapColumnValue) => {
const rows = rawRows.map((row) =>
mapRelationalRow(this.schema, this.tableConfig, row, query.selection, mapColumnValue)
);
if (this.mode === 'first') {
return rows[0] as TResult;
}
return rows as TResult;
},
);
});
}
prepare(name: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {
return this._prepare(name);
}
private _getQuery() {
return this.dialect.buildRelationalQueryWithoutPK({
fullSchema: this.fullSchema,
schema: this.schema,
tableNamesMap: this.tableNamesMap,
table: this.table,
tableConfig: this.tableConfig,
queryConfig: this.config,
tableAlias: this.tableConfig.tsName,
});
}
/** @internal */
getSQL(): SQL {
return this._getQuery().sql as SQL;
}
private _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {
const query = this._getQuery();
const builtQuery = this.dialect.sqlToQuery(query.sql as SQL);
return { query, builtQuery };
}
toSQL(): Query {
return this._toSQL().builtQuery;
}
override execute(): Promise<TResult> {
Domain
Source
Frequently Asked Questions
What is the GelRelationalQuery class?
GelRelationalQuery is a class in the drizzle-orm codebase, defined in drizzle-orm/src/gel-core/query-builders/query.ts.
Where is GelRelationalQuery defined?
GelRelationalQuery is defined in drizzle-orm/src/gel-core/query-builders/query.ts at line 65.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free