drizzle-team/drizzle-orm · error · Error
not implemented
Error message
not implemented
What it means
Thrown by SingleStoreVectorBuilder.generatedAlwaysAs() at vector.ts:41, which unconditionally raises `new Error('not implemented')`. The vector column type does not support generated/computed column expressions, so the override exists only to satisfy the builder base class signature while explicitly blocking the feature. Calling it is always a programmer error, not a runtime condition.
Source
Thrown at drizzle-orm/src/singlestore-core/columns/vector.ts:41
constructor(name: T['name'], config: SingleStoreVectorConfig) {
super(name, 'array', 'SingleStoreVector');
this.config.dimensions = config.dimensions;
this.config.elementType = config.elementType;
}
/** @internal */
override build<TTableName extends string>(
table: AnySingleStoreTable<{ name: TTableName }>,
): SingleStoreVector<MakeColumnConfig<T, TTableName>> {
return new SingleStoreVector<MakeColumnConfig<T, TTableName>>(
table,
this.config as ColumnBuilderRuntimeConfig<any, any>,
);
}
/** @internal */
override generatedAlwaysAs(as: SQL<unknown> | (() => SQL) | T['data'], config?: SingleStoreGeneratedColumnConfig) {
throw new Error('not implemented');
}
}
export class SingleStoreVector<T extends ColumnBaseConfig<'array', 'SingleStoreVector'>>
extends SingleStoreColumn<T, SingleStoreVectorConfig>
{
static override readonly [entityKind]: string = 'SingleStoreVector';
dimensions: number = this.config.dimensions;
elementType: ElementType | undefined = this.config.elementType;
getSQLType(): string {
return `vector(${this.dimensions}, ${this.elementType || 'F32'})`;
}
override mapToDriverValue(value: Array<number>) {
return JSON.stringify(value);
}View on GitHub (pinned to b7862528fd)
Solutions
- Remove the `.generatedAlwaysAs(...)` call from the vector column builder; vector columns cannot be generated.
- If you need a derived vector, compute it in application code or a trigger/view outside Drizzle's column definition.
- If using a generic factory, skip generatedAlwaysAs when the column builder's columnType is 'SingleStoreVector'.
Example fix
// before
export const items = singlestoreTable('items', {
embedding: vector('embedding', { dimensions: 128 }).generatedAlwaysAs(sql`...`),
});
// after
export const items = singlestoreTable('items', {
embedding: vector('embedding', { dimensions: 128 }),
}); Defensive patterns
Strategy: validation
Validate before calling
import { is } from 'drizzle-orm/entity';
// Before applying generatedAlwaysAs generically, skip vector columns
function safeGenerated(builder, expr) {
if (builder && builder.config && builder.config.columnType === 'SingleStoreVector') {
return builder; // vector columns do not support generatedAlwaysAs
}
return builder.generatedAlwaysAs(expr);
} Type guard
function supportsGeneratedAlwaysAs(builder): boolean {
return builder?.config?.columnType !== 'SingleStoreVector';
} Prevention
- Never chain .generatedAlwaysAs() on a vector() column builder.
- In generic schema factories, branch on columnType before applying generated modifiers.
- Keep vector column definitions minimal: only dimensions/elementType.
When it happens
Trigger: Defining a SingleStore vector column and chaining `.generatedAlwaysAs(...)` on the builder, e.g. `` vector('embedding', { dimensions: 128 }).generatedAlwaysAs(sql`...`) ``. Also reachable if generic column-processing code invokes generatedAlwaysAs on every column builder regardless of type.
Common situations: Copying a generated-column pattern from a non-vector column (integer/text/json) onto a vector column; generic schema factories that apply generatedAlwaysAs uniformly; migrating a schema that used generated columns and adding a new vector field with the same modifier.
Related errors
- Method not implemented.
- Method not implemented.
- You have an empty array for "${name}" enum values
- Your "${f.path.join('->')}" field references a column "${tab
- Cannot pass undefined values to any set operator
AI-assisted analysis of drizzle-team/drizzle-orm@b7862528fd (2026-08-03).
Data as JSON: /data/errors/8f9b7e6143a49632.json.
Report an issue: GitHub.