SingleStoreDriverSession Class — drizzle-orm Architecture
Architecture documentation for the SingleStoreDriverSession class in session.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD e9d8b7b5_1910_1bff_8151_cd5dc7990756["SingleStoreDriverSession"] 62c65d67_46f9_0c5c_7e91_734bbcfd68cd["session.ts"] e9d8b7b5_1910_1bff_8151_cd5dc7990756 -->|defined in| 62c65d67_46f9_0c5c_7e91_734bbcfd68cd 7bb16eac_82c6_208f_37d9_edfecbf7c888["constructor()"] e9d8b7b5_1910_1bff_8151_cd5dc7990756 -->|method| 7bb16eac_82c6_208f_37d9_edfecbf7c888 74898358_bc65_6c92_b6a1_972b7f53c4ac["prepareQuery()"] e9d8b7b5_1910_1bff_8151_cd5dc7990756 -->|method| 74898358_bc65_6c92_b6a1_972b7f53c4ac bec6f5c5_0f07_2855_d4b7_24331e6ca30e["query()"] e9d8b7b5_1910_1bff_8151_cd5dc7990756 -->|method| bec6f5c5_0f07_2855_d4b7_24331e6ca30e 6c9e83be_1dee_7767_90d7_ca7d8440b138["all()"] e9d8b7b5_1910_1bff_8151_cd5dc7990756 -->|method| 6c9e83be_1dee_7767_90d7_ca7d8440b138 97e806e9_97b7_074b_ac57_aab19d4bbc66["transaction()"] e9d8b7b5_1910_1bff_8151_cd5dc7990756 -->|method| 97e806e9_97b7_074b_ac57_aab19d4bbc66
Relationship Graph
Source Code
drizzle-orm/src/singlestore/session.ts lines 202–318
export class SingleStoreDriverSession<
TFullSchema extends Record<string, unknown>,
TSchema extends TablesRelationalConfig,
> extends SingleStoreSession<SingleStoreQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TFullSchema, TSchema> {
static override readonly [entityKind]: string = 'SingleStoreDriverSession';
private logger: Logger;
private cache: Cache;
constructor(
private client: SingleStoreDriverClient,
dialect: SingleStoreDialect,
private schema: RelationalSchemaConfig<TSchema> | undefined,
private options: SingleStoreDriverSessionOptions,
) {
super(dialect);
this.logger = options.logger ?? new NoopLogger();
this.cache = options.cache ?? new NoopCache();
}
prepareQuery<T extends SingleStorePreparedQueryConfig>(
query: Query,
fields: SelectedFieldsOrdered | undefined,
customResultMapper?: (rows: unknown[][]) => T['execute'],
generatedIds?: Record<string, unknown>[],
returningIds?: SelectedFieldsOrdered,
queryMetadata?: {
type: 'select' | 'update' | 'delete' | 'insert';
tables: string[];
},
cacheConfig?: WithCacheConfig,
): PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T> {
// Add returningId fields
// Each driver gets them from response from database
return new SingleStoreDriverPreparedQuery(
this.client,
query.sql,
query.params,
this.logger,
this.cache,
queryMetadata,
cacheConfig,
fields,
customResultMapper,
generatedIds,
returningIds,
) as PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T>;
}
/**
* @internal
* What is its purpose?
*/
async query(query: string, params: unknown[]): Promise<SingleStoreQueryResult> {
this.logger.logQuery(query, params);
const result = await this.client.query({
sql: query,
values: params,
rowsAsArray: true,
typeCast: function(field: any, next: any) {
if (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {
return field.string();
}
return next();
},
});
return result;
}
override all<T = unknown>(query: SQL): Promise<T[]> {
const querySql = this.dialect.sqlToQuery(query);
this.logger.logQuery(querySql.sql, querySql.params);
return this.client.execute(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;
}
override async transaction<T>(
transaction: (tx: SingleStoreDriverTransaction<TFullSchema, TSchema>) => Promise<T>,
config?: SingleStoreTransactionConfig,
): Promise<T> {
const session = isPool(this.client)
? new SingleStoreDriverSession(
Domain
Defined In
Source
Frequently Asked Questions
What is the SingleStoreDriverSession class?
SingleStoreDriverSession is a class in the drizzle-orm codebase, defined in drizzle-orm/src/singlestore/session.ts.
Where is SingleStoreDriverSession defined?
SingleStoreDriverSession is defined in drizzle-orm/src/singlestore/session.ts at line 202.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free