SingleStoreDriverPreparedQuery Class — drizzle-orm Architecture
Architecture documentation for the SingleStoreDriverPreparedQuery class in session.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD d3818d89_bf25_06e1_e85b_efdad1eed91b["SingleStoreDriverPreparedQuery"] 62c65d67_46f9_0c5c_7e91_734bbcfd68cd["session.ts"] d3818d89_bf25_06e1_e85b_efdad1eed91b -->|defined in| 62c65d67_46f9_0c5c_7e91_734bbcfd68cd 85e54432_2da9_49a1_2078_c29adc7b74a2["constructor()"] d3818d89_bf25_06e1_e85b_efdad1eed91b -->|method| 85e54432_2da9_49a1_2078_c29adc7b74a2 0f9540de_5358_69fd_b854_4371666724a9["execute()"] d3818d89_bf25_06e1_e85b_efdad1eed91b -->|method| 0f9540de_5358_69fd_b854_4371666724a9 1e1f198b_6eb7_fa19_2f76_40310ac4f415["iterator()"] d3818d89_bf25_06e1_e85b_efdad1eed91b -->|method| 1e1f198b_6eb7_fa19_2f76_40310ac4f415
Relationship Graph
Source Code
drizzle-orm/src/singlestore/session.ts lines 44–195
export class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryConfig>
extends SingleStorePreparedQuery<T>
{
static override readonly [entityKind]: string = 'SingleStoreDriverPreparedQuery';
private rawQuery: QueryOptions;
private query: QueryOptions;
constructor(
private client: SingleStoreDriverClient,
queryString: string,
private params: unknown[],
private logger: Logger,
cache: Cache,
queryMetadata: {
type: 'select' | 'update' | 'delete' | 'insert';
tables: string[];
} | undefined,
cacheConfig: WithCacheConfig | undefined,
private fields: SelectedFieldsOrdered | undefined,
private customResultMapper?: (rows: unknown[][]) => T['execute'],
// Keys that were used in $default and the value that was generated for them
private generatedIds?: Record<string, unknown>[],
// Keys that should be returned, it has the column with all properties + key from object
private returningIds?: SelectedFieldsOrdered,
) {
super(cache, queryMetadata, cacheConfig);
this.rawQuery = {
sql: queryString,
// rowsAsArray: true,
typeCast: function(field: any, next: any) {
if (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {
return field.string();
}
return next();
},
};
this.query = {
sql: queryString,
rowsAsArray: true,
typeCast: function(field: any, next: any) {
if (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {
return field.string();
}
return next();
},
};
}
async execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {
const params = fillPlaceholders(this.params, placeholderValues);
this.logger.logQuery(this.rawQuery.sql, params);
const { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =
this;
if (!fields && !customResultMapper) {
const res = await this.queryWithCache(rawQuery.sql, params, async () => {
return await client.query<any>(rawQuery, params);
});
const insertId = res[0].insertId;
const affectedRows = res[0].affectedRows;
// for each row, I need to check keys from
if (returningIds) {
const returningResponse = [];
let j = 0;
for (let i = insertId; i < insertId + affectedRows; i++) {
for (const column of returningIds) {
const key = returningIds[0]!.path[0]!;
if (is(column.field, Column)) {
// @ts-ignore
if (column.field.primary && column.field.autoIncrement) {
returningResponse.push({ [key]: i });
}
if (column.field.defaultFn && generatedIds) {
// generatedIds[rowIdx][key]
returningResponse.push({ [key]: generatedIds[j]![key] });
}
}
}
j++;
Domain
Defined In
Source
Frequently Asked Questions
What is the SingleStoreDriverPreparedQuery class?
SingleStoreDriverPreparedQuery is a class in the drizzle-orm codebase, defined in drizzle-orm/src/singlestore/session.ts.
Where is SingleStoreDriverPreparedQuery defined?
SingleStoreDriverPreparedQuery is defined in drizzle-orm/src/singlestore/session.ts at line 44.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free