uql-orm 0.2.10 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -3
- package/README.md +5 -3
- package/dist/browser/uql-browser.min.js +880 -314
- package/dist/browser/uql-browser.min.js.map +1 -1
- package/dist/dialect/abstractSqlDialect.d.ts +28 -2
- package/dist/dialect/abstractSqlDialect.d.ts.map +1 -1
- package/dist/dialect/abstractSqlDialect.js +82 -5
- package/dist/dialect/abstractSqlDialect.js.map +1 -1
- package/dist/dialect/dialectConfig.d.ts +17 -1
- package/dist/dialect/dialectConfig.d.ts.map +1 -1
- package/dist/dialect/dialectConfig.js +39 -0
- package/dist/dialect/dialectConfig.js.map +1 -1
- package/dist/entity/decorator/index-decorator.d.ts +5 -4
- package/dist/entity/decorator/index-decorator.d.ts.map +1 -1
- package/dist/entity/decorator/index-decorator.js +1 -9
- package/dist/entity/decorator/index-decorator.js.map +1 -1
- package/dist/maria/mariaDialect.d.ts +5 -1
- package/dist/maria/mariaDialect.d.ts.map +1 -1
- package/dist/maria/mariaDialect.js +9 -0
- package/dist/maria/mariaDialect.js.map +1 -1
- package/dist/migrate/schemaGenerator.d.ts +10 -2
- package/dist/migrate/schemaGenerator.d.ts.map +1 -1
- package/dist/migrate/schemaGenerator.js +87 -23
- package/dist/migrate/schemaGenerator.js.map +1 -1
- package/dist/mongo/mongoDialect.d.ts +17 -1
- package/dist/mongo/mongoDialect.d.ts.map +1 -1
- package/dist/mongo/mongoDialect.js +55 -1
- package/dist/mongo/mongoDialect.js.map +1 -1
- package/dist/mongo/mongodbQuerier.d.ts +7 -0
- package/dist/mongo/mongodbQuerier.d.ts.map +1 -1
- package/dist/mongo/mongodbQuerier.js +63 -25
- package/dist/mongo/mongodbQuerier.js.map +1 -1
- package/dist/postgres/postgresDialect.d.ts +5 -1
- package/dist/postgres/postgresDialect.d.ts.map +1 -1
- package/dist/postgres/postgresDialect.js +16 -0
- package/dist/postgres/postgresDialect.js.map +1 -1
- package/dist/schema/canonicalType.d.ts +13 -1
- package/dist/schema/canonicalType.d.ts.map +1 -1
- package/dist/schema/canonicalType.js +47 -6
- package/dist/schema/canonicalType.js.map +1 -1
- package/dist/schema/schemaASTBuilder.d.ts.map +1 -1
- package/dist/schema/schemaASTBuilder.js +4 -0
- package/dist/schema/schemaASTBuilder.js.map +1 -1
- package/dist/schema/types.d.ts +5 -4
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js.map +1 -1
- package/dist/sqlite/sqliteDialect.d.ts +5 -1
- package/dist/sqlite/sqliteDialect.d.ts.map +1 -1
- package/dist/sqlite/sqliteDialect.js +10 -0
- package/dist/sqlite/sqliteDialect.js.map +1 -1
- package/dist/type/entity.d.ts +34 -8
- package/dist/type/entity.d.ts.map +1 -1
- package/dist/type/entity.js.map +1 -1
- package/dist/type/migration.d.ts +5 -3
- package/dist/type/migration.d.ts.map +1 -1
- package/dist/type/query.d.ts +47 -2
- package/dist/type/query.d.ts.map +1 -1
- package/dist/type/query.js.map +1 -1
- package/dist/util/dialect.util.d.ts +3 -1
- package/dist/util/dialect.util.d.ts.map +1 -1
- package/dist/util/dialect.util.js +4 -0
- package/dist/util/dialect.util.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IndexType } from '../../schema/types.js';
|
|
2
|
+
import type { Type, VectorIndexOptions } from '../../type/index.js';
|
|
2
3
|
/**
|
|
3
4
|
* Options for the @Index decorator.
|
|
4
5
|
*/
|
|
5
|
-
export interface IndexDecoratorOptions {
|
|
6
|
+
export interface IndexDecoratorOptions extends VectorIndexOptions {
|
|
6
7
|
/** Custom index name */
|
|
7
8
|
name?: string;
|
|
8
9
|
/** Whether index is unique */
|
|
9
10
|
unique?: boolean;
|
|
10
|
-
/** Index type
|
|
11
|
-
type?:
|
|
11
|
+
/** Index type */
|
|
12
|
+
type?: IndexType;
|
|
12
13
|
/** Partial index WHERE clause */
|
|
13
14
|
where?: string;
|
|
14
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-decorator.d.ts","sourceRoot":"","sources":["../../../src/entity/decorator/index-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index-decorator.d.ts","sourceRoot":"","sources":["../../../src/entity/decorator/index-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGpE;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,qBAA0B,IACrE,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAO/B"}
|
|
@@ -22,18 +22,10 @@ import { getOrCreateMeta } from './definition.js';
|
|
|
22
22
|
export function Index(columns, options = {}) {
|
|
23
23
|
return (target) => {
|
|
24
24
|
const meta = getOrCreateMeta(target);
|
|
25
|
-
// Initialize indexes array if not exists
|
|
26
25
|
if (!meta.indexes) {
|
|
27
26
|
meta.indexes = [];
|
|
28
27
|
}
|
|
29
|
-
|
|
30
|
-
columns,
|
|
31
|
-
name: options.name,
|
|
32
|
-
unique: options.unique ?? false,
|
|
33
|
-
type: options.type,
|
|
34
|
-
where: options.where,
|
|
35
|
-
};
|
|
36
|
-
meta.indexes.push(indexDef);
|
|
28
|
+
meta.indexes.push({ ...options, columns, unique: options.unique ?? false });
|
|
37
29
|
};
|
|
38
30
|
}
|
|
39
31
|
//# sourceMappingURL=index-decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-decorator.js","sourceRoot":"","sources":["../../../src/entity/decorator/index-decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index-decorator.js","sourceRoot":"","sources":["../../../src/entity/decorator/index-decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAgBlD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,KAAK,CAAI,OAAiB,EAAE,UAAiC,EAAE;IAC7E,OAAO,CAAC,MAAe,EAAQ,EAAE;QAC/B,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { AbstractSqlDialect } from '../dialect/index.js';
|
|
2
|
-
import type { NamingStrategy, QueryConflictPaths, QueryContext, QueryOptions, Type } from '../type/index.js';
|
|
2
|
+
import type { EntityMeta, NamingStrategy, QueryConflictPaths, QueryContext, QueryOptions, QueryVectorSearch, Type } from '../type/index.js';
|
|
3
3
|
export declare class MariaDialect extends AbstractSqlDialect {
|
|
4
4
|
constructor(namingStrategy?: NamingStrategy);
|
|
5
5
|
addValue(values: unknown[], value: unknown): string;
|
|
6
6
|
insert<E>(ctx: QueryContext, entity: Type<E>, payload: E | E[], opts?: QueryOptions): void;
|
|
7
7
|
upsert<E>(ctx: QueryContext, entity: Type<E>, conflictPaths: QueryConflictPaths<E>, payload: E | E[]): void;
|
|
8
|
+
/** MariaDB 11.7+ vector distance functions. */
|
|
9
|
+
private static readonly VECTOR_FNS;
|
|
10
|
+
/** Emit a MariaDB vector distance function: `VEC_DISTANCE_<metric>(col, ?)`. */
|
|
11
|
+
protected appendVectorSort<E>(ctx: QueryContext, meta: EntityMeta<E>, key: string, search: QueryVectorSearch): void;
|
|
8
12
|
escape(value: unknown): string;
|
|
9
13
|
}
|
|
10
14
|
//# sourceMappingURL=mariaDialect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mariaDialect.d.ts","sourceRoot":"","sources":["../../src/maria/mariaDialect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"mariaDialect.d.ts","sourceRoot":"","sources":["../../src/maria/mariaDialect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,IAAI,EAEL,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,YAAa,SAAQ,kBAAkB;gBACtC,cAAc,CAAC,EAAE,cAAc;IAIlC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM;IAQnD,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI;IAK1F,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAmBpH,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAGhC;IAEF,gFAAgF;cAC7D,gBAAgB,CAAC,CAAC,EACnC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,iBAAiB,GACxB,IAAI;IAIE,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAGxC"}
|
|
@@ -34,6 +34,15 @@ export class MariaDialect extends AbstractSqlDialect {
|
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
+
/** MariaDB 11.7+ vector distance functions. */
|
|
38
|
+
static VECTOR_FNS = {
|
|
39
|
+
cosine: 'VEC_DISTANCE_COSINE',
|
|
40
|
+
l2: 'VEC_DISTANCE_EUCLIDEAN',
|
|
41
|
+
};
|
|
42
|
+
/** Emit a MariaDB vector distance function: `VEC_DISTANCE_<metric>(col, ?)`. */
|
|
43
|
+
appendVectorSort(ctx, meta, key, search) {
|
|
44
|
+
this.appendFunctionVectorSort(ctx, meta, key, search, MariaDialect.VECTOR_FNS, 'MariaDB');
|
|
45
|
+
}
|
|
37
46
|
escape(value) {
|
|
38
47
|
return SqlString.escape(value);
|
|
39
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mariaDialect.js","sourceRoot":"","sources":["../../src/maria/mariaDialect.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"mariaDialect.js","sourceRoot":"","sources":["../../src/maria/mariaDialect.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAY7C,MAAM,OAAO,YAAa,SAAQ,kBAAkB;IAClD,YAAY,cAA+B;QACzC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnC,CAAC;IAEQ,QAAQ,CAAC,MAAiB,EAAE,KAAc;QACjD,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEQ,MAAM,CAAI,GAAiB,EAAE,MAAe,EAAE,OAAgB,EAAE,IAAmB;QAC1F,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEQ,MAAM,CAAI,GAAiB,EAAE,MAAe,EAAE,aAAoC,EAAE,OAAgB;QAC3G,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;QAC/G,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,4BAA4B,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACzC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;YAC9D,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;YAC5B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+CAA+C;IACvC,MAAM,CAAU,UAAU,GAA4C;QAC5E,MAAM,EAAE,qBAAqB;QAC7B,EAAE,EAAE,wBAAwB;KAC7B,CAAC;IAEF,gFAAgF;IAC7D,gBAAgB,CACjC,GAAiB,EACjB,IAAmB,EACnB,GAAW,EACX,MAAyB;QAEzB,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC5F,CAAC;IAEQ,MAAM,CAAC,KAAc;QAC5B,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC"}
|
|
@@ -30,7 +30,9 @@ export declare class SqlSchemaGenerator extends AbstractDialect implements Schem
|
|
|
30
30
|
generateDropTable<E>(entity: Type<E>): string;
|
|
31
31
|
generateAlterTable(diff: SchemaDiff): string[];
|
|
32
32
|
generateAlterTableDown(diff: SchemaDiff): string[];
|
|
33
|
-
generateCreateIndex(tableName: string, index: IndexSchema
|
|
33
|
+
generateCreateIndex(tableName: string, index: IndexSchema, options?: {
|
|
34
|
+
ifNotExists?: boolean;
|
|
35
|
+
}): string;
|
|
34
36
|
generateDropIndex(tableName: string, indexName: string): string;
|
|
35
37
|
/**
|
|
36
38
|
* Generate column definition from a ColumnSchema object
|
|
@@ -91,11 +93,17 @@ export declare class SqlSchemaGenerator extends AbstractDialect implements Schem
|
|
|
91
93
|
* Generate a column definition from a ColumnNode.
|
|
92
94
|
*/
|
|
93
95
|
protected generateColumnFromNode(col: ColumnNode): string;
|
|
96
|
+
/**
|
|
97
|
+
* Generate an inline VECTOR INDEX clause for use inside CREATE TABLE.
|
|
98
|
+
* Syntax: `VECTOR INDEX (col) M=n DISTANCE=metric`
|
|
99
|
+
*/
|
|
100
|
+
private generateInlineVectorIndex;
|
|
94
101
|
/**
|
|
95
102
|
* Generate CREATE INDEX SQL from an IndexNode.
|
|
103
|
+
* Delegates to `generateCreateIndex` for unified SQL assembly.
|
|
96
104
|
*/
|
|
97
105
|
generateCreateIndexFromNode(index: IndexNode, options?: {
|
|
98
|
-
ifNotExists
|
|
106
|
+
ifNotExists: boolean;
|
|
99
107
|
}): string;
|
|
100
108
|
/**
|
|
101
109
|
* Generate DROP TABLE SQL from a TableNode.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaGenerator.d.ts","sourceRoot":"","sources":["../../src/migrate/schemaGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"schemaGenerator.d.ts","sourceRoot":"","sources":["../../src/migrate/schemaGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { AbstractDialect } from '../dialect/index.js';
|
|
2
2
|
import { getMeta } from '../entity/index.js';
|
|
3
|
-
import { areTypesEqual, canonicalToSql, fieldOptionsToCanonical, sqlToCanonical } from '../schema/canonicalType.js';
|
|
3
|
+
import { areTypesEqual, canonicalToSql, fieldOptionsToCanonical, isVectorCategory, sqlToCanonical, } from '../schema/canonicalType.js';
|
|
4
4
|
import { SchemaASTBuilder } from '../schema/schemaASTBuilder.js';
|
|
5
5
|
import { escapeSqlId, getKeys, isAutoIncrement } from '../util/index.js';
|
|
6
6
|
import { formatDefaultValue } from './builder/expressions.js';
|
|
7
|
+
/** Maps UQL distance metric names to inline DDL keywords (e.g. MariaDB `DISTANCE=euclidean`). */
|
|
8
|
+
const INLINE_VECTOR_DISTANCE_MAP = { cosine: 'cosine', l2: 'euclidean' };
|
|
7
9
|
/**
|
|
8
10
|
* Unified SQL schema generator.
|
|
9
11
|
* Parameterized by dialect to handle Postgres, MySQL, MariaDB, and SQLite.
|
|
@@ -124,14 +126,39 @@ export class SqlSchemaGenerator extends AbstractDialect {
|
|
|
124
126
|
}
|
|
125
127
|
return statements;
|
|
126
128
|
}
|
|
127
|
-
generateCreateIndex(tableName, index) {
|
|
129
|
+
generateCreateIndex(tableName, index, options = {}) {
|
|
128
130
|
const unique = index.unique ? 'UNIQUE ' : '';
|
|
129
|
-
const
|
|
130
|
-
const
|
|
131
|
-
|
|
131
|
+
const ifNotExists = (options.ifNotExists ?? this.config.features.indexIfNotExists) ? 'IF NOT EXISTS ' : '';
|
|
132
|
+
const opsClassMap = this.config.vectorOpsClass;
|
|
133
|
+
const hasOpsClass = opsClassMap && (index.type === 'hnsw' || index.type === 'ivfflat');
|
|
134
|
+
// For pgvector indexes: append operator class to the column
|
|
135
|
+
const columns = index.columns
|
|
136
|
+
.map((c) => {
|
|
137
|
+
const escaped = this.escapeId(c);
|
|
138
|
+
if (hasOpsClass && index.distance) {
|
|
139
|
+
const opsClass = opsClassMap[index.distance];
|
|
140
|
+
return opsClass ? `${escaped} ${opsClass}` : escaped;
|
|
141
|
+
}
|
|
142
|
+
return escaped;
|
|
143
|
+
})
|
|
144
|
+
.join(', ');
|
|
145
|
+
const using = index.type ? ` USING ${index.type}` : '';
|
|
146
|
+
// Build WITH params for vector indexes with operator class support
|
|
147
|
+
let withClause = '';
|
|
148
|
+
if (hasOpsClass) {
|
|
149
|
+
const withParams = [];
|
|
150
|
+
if (index.m !== undefined)
|
|
151
|
+
withParams.push(`m = ${index.m}`);
|
|
152
|
+
if (index.efConstruction !== undefined)
|
|
153
|
+
withParams.push(`ef_construction = ${index.efConstruction}`);
|
|
154
|
+
if (index.lists !== undefined)
|
|
155
|
+
withParams.push(`lists = ${index.lists}`);
|
|
156
|
+
withClause = withParams.length > 0 ? ` WITH (${withParams.join(', ')})` : '';
|
|
157
|
+
}
|
|
158
|
+
return `CREATE ${unique}INDEX ${ifNotExists}${this.escapeId(index.name)} ON ${this.escapeId(tableName)}${using} (${columns})${withClause};`;
|
|
132
159
|
}
|
|
133
160
|
generateDropIndex(tableName, indexName) {
|
|
134
|
-
if (this.
|
|
161
|
+
if (this.config.dropIndexSyntax === 'on-table') {
|
|
135
162
|
return `DROP INDEX ${this.escapeId(indexName)} ON ${this.escapeId(tableName)};`;
|
|
136
163
|
}
|
|
137
164
|
return `DROP INDEX IF EXISTS ${this.escapeId(indexName)};`;
|
|
@@ -209,19 +236,16 @@ export class SqlSchemaGenerator extends AbstractDialect {
|
|
|
209
236
|
throw new Error(`${this.dialect}: Cannot alter column "${column.name}" - you must recreate the table. ` +
|
|
210
237
|
`This database does not support ALTER COLUMN.`);
|
|
211
238
|
}
|
|
212
|
-
if (this.
|
|
239
|
+
if (this.config.alterColumnStrategy === 'separate-clauses') {
|
|
213
240
|
const statements = [];
|
|
214
|
-
//
|
|
215
|
-
// 1. Change type
|
|
241
|
+
// Separate ALTER COLUMN clauses for different changes (Postgres)
|
|
216
242
|
statements.push(`ALTER TABLE ${table} ALTER COLUMN ${colName} TYPE ${column.type};`);
|
|
217
|
-
// 2. Change nullability
|
|
218
243
|
if (column.nullable) {
|
|
219
244
|
statements.push(`ALTER TABLE ${table} ALTER COLUMN ${colName} DROP NOT NULL;`);
|
|
220
245
|
}
|
|
221
246
|
else {
|
|
222
247
|
statements.push(`ALTER TABLE ${table} ALTER COLUMN ${colName} SET NOT NULL;`);
|
|
223
248
|
}
|
|
224
|
-
// 3. Change default value
|
|
225
249
|
if (column.defaultValue !== undefined) {
|
|
226
250
|
statements.push(`ALTER TABLE ${table} ALTER COLUMN ${colName} SET DEFAULT ${this.formatDefaultValue(column.defaultValue)};`);
|
|
227
251
|
}
|
|
@@ -242,7 +266,7 @@ export class SqlSchemaGenerator extends AbstractDialect {
|
|
|
242
266
|
* Generate column comment clause (if supported)
|
|
243
267
|
*/
|
|
244
268
|
generateColumnComment(columnName, comment) {
|
|
245
|
-
if (this.
|
|
269
|
+
if (this.config.features.columnComment) {
|
|
246
270
|
const escapedComment = comment.replace(/'/g, "''");
|
|
247
271
|
return ` COMMENT '${escapedComment}'`;
|
|
248
272
|
}
|
|
@@ -252,7 +276,7 @@ export class SqlSchemaGenerator extends AbstractDialect {
|
|
|
252
276
|
* Format a default value for SQL
|
|
253
277
|
*/
|
|
254
278
|
formatDefaultValue(value) {
|
|
255
|
-
if (this.
|
|
279
|
+
if (this.config.booleanLiteral === 'integer' && typeof value === 'boolean') {
|
|
256
280
|
return value ? '1' : '0';
|
|
257
281
|
}
|
|
258
282
|
return formatDefaultValue(value);
|
|
@@ -419,14 +443,32 @@ export class SqlSchemaGenerator extends AbstractDialect {
|
|
|
419
443
|
sql += ',\n';
|
|
420
444
|
sql += constraints.map((c) => ` ${c}`).join(',\n');
|
|
421
445
|
}
|
|
446
|
+
// Inline vector indexes (MariaDB requires them inside CREATE TABLE)
|
|
447
|
+
const isInlineVectorIdx = this.config.features.vectorIndexStyle === 'inline';
|
|
448
|
+
const vectorIndexes = isInlineVectorIdx ? table.indexes.filter((idx) => idx.type === 'vector') : [];
|
|
449
|
+
const regularIndexes = isInlineVectorIdx ? table.indexes.filter((idx) => idx.type !== 'vector') : table.indexes;
|
|
450
|
+
if (vectorIndexes.length > 0) {
|
|
451
|
+
sql += ',\n';
|
|
452
|
+
sql += vectorIndexes.map((idx) => ` ${this.generateInlineVectorIndex(idx)}`).join(',\n');
|
|
453
|
+
}
|
|
422
454
|
sql += '\n)';
|
|
423
455
|
if (this.config.tableOptions) {
|
|
424
456
|
sql += ` ${this.config.tableOptions}`;
|
|
425
457
|
}
|
|
426
458
|
sql += ';';
|
|
427
|
-
// Generate indexes as separate statements
|
|
428
|
-
const indexStatements =
|
|
429
|
-
|
|
459
|
+
// Generate regular indexes as separate statements
|
|
460
|
+
const indexStatements = regularIndexes.map((idx) => this.generateCreateIndexFromNode(idx)).join('\n');
|
|
461
|
+
if (indexStatements) {
|
|
462
|
+
sql += `\n${indexStatements}`;
|
|
463
|
+
}
|
|
464
|
+
// Prepend CREATE EXTENSION for dialects that require it (e.g. pgvector)
|
|
465
|
+
if (this.config.vectorExtension) {
|
|
466
|
+
const hasVectorCol = [...table.columns.values()].some((c) => isVectorCategory(c.type.category));
|
|
467
|
+
if (hasVectorCol) {
|
|
468
|
+
sql = `CREATE EXTENSION IF NOT EXISTS ${this.config.vectorExtension};\n${sql}`;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
return sql;
|
|
430
472
|
}
|
|
431
473
|
/**
|
|
432
474
|
* Generate a column definition from a ColumnNode.
|
|
@@ -456,14 +498,36 @@ export class SqlSchemaGenerator extends AbstractDialect {
|
|
|
456
498
|
return def;
|
|
457
499
|
}
|
|
458
500
|
/**
|
|
459
|
-
* Generate
|
|
501
|
+
* Generate an inline VECTOR INDEX clause for use inside CREATE TABLE.
|
|
502
|
+
* Syntax: `VECTOR INDEX (col) M=n DISTANCE=metric`
|
|
460
503
|
*/
|
|
461
|
-
|
|
462
|
-
const uniqueStr = index.unique ? 'UNIQUE ' : '';
|
|
504
|
+
generateInlineVectorIndex(index) {
|
|
463
505
|
const columns = index.columns.map((c) => this.escapeId(c.name)).join(', ');
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
506
|
+
let clause = `VECTOR INDEX (${columns})`;
|
|
507
|
+
if (index.m !== undefined) {
|
|
508
|
+
clause += ` M=${index.m}`;
|
|
509
|
+
}
|
|
510
|
+
if (index.distance) {
|
|
511
|
+
const metric = INLINE_VECTOR_DISTANCE_MAP[index.distance] ?? 'euclidean';
|
|
512
|
+
clause += ` DISTANCE=${metric}`;
|
|
513
|
+
}
|
|
514
|
+
return clause;
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Generate CREATE INDEX SQL from an IndexNode.
|
|
518
|
+
* Delegates to `generateCreateIndex` for unified SQL assembly.
|
|
519
|
+
*/
|
|
520
|
+
generateCreateIndexFromNode(index, options = { ifNotExists: false }) {
|
|
521
|
+
return this.generateCreateIndex(index.table.name, {
|
|
522
|
+
name: index.name,
|
|
523
|
+
columns: index.columns.map((c) => c.name),
|
|
524
|
+
unique: index.unique,
|
|
525
|
+
type: index.type,
|
|
526
|
+
distance: index.distance,
|
|
527
|
+
m: index.m,
|
|
528
|
+
efConstruction: index.efConstruction,
|
|
529
|
+
lists: index.lists,
|
|
530
|
+
}, options);
|
|
467
531
|
}
|
|
468
532
|
/**
|
|
469
533
|
* Generate DROP TABLE SQL from a TableNode.
|
|
@@ -486,7 +550,7 @@ export class SqlSchemaGenerator extends AbstractDialect {
|
|
|
486
550
|
return `DROP TABLE ${ifExists}${this.escapeId(tableName)}${cascade};`;
|
|
487
551
|
}
|
|
488
552
|
generateRenameTableSql(oldName, newName) {
|
|
489
|
-
if (this.
|
|
553
|
+
if (this.config.renameTableSyntax === 'rename-table') {
|
|
490
554
|
return `RENAME TABLE ${this.escapeId(oldName)} TO ${this.escapeId(newName)};`;
|
|
491
555
|
}
|
|
492
556
|
return `ALTER TABLE ${this.escapeId(oldName)} RENAME TO ${this.escapeId(newName)};`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaGenerator.js","sourceRoot":"","sources":["../../src/migrate/schemaGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemaGenerator.js","sourceRoot":"","sources":["../../src/migrate/schemaGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type Document, type Filter, ObjectId, type Sort } from 'mongodb';
|
|
2
2
|
import { AbstractDialect } from '../dialect/index.js';
|
|
3
|
-
import type { EntityMeta, FieldValue, NamingStrategy, Query, QueryAggregate, QueryOptions, QuerySelect, QuerySortMap, QueryWhere, RelationKey, Type } from '../type/index.js';
|
|
3
|
+
import type { EntityMeta, FieldValue, NamingStrategy, Query, QueryAggregate, QueryOptions, QuerySelect, QuerySortMap, QueryVectorSearch, QueryWhere, RelationKey, Type } from '../type/index.js';
|
|
4
4
|
import { type CallbackKey } from '../util/index.js';
|
|
5
5
|
export declare class MongoDialect extends AbstractDialect {
|
|
6
6
|
private static readonly ID_KEY;
|
|
7
|
+
private static readonly VECTOR_INDEX_TYPES;
|
|
7
8
|
private static readonly AGGREGATE_OP_MAP;
|
|
8
9
|
constructor(namingStrategy?: NamingStrategy);
|
|
9
10
|
where<E extends Document>(entity: Type<E>, where?: QueryWhere<E>, { softDelete }?: QueryOptions): Filter<E>;
|
|
@@ -35,6 +36,16 @@ export declare class MongoDialect extends AbstractDialect {
|
|
|
35
36
|
*/
|
|
36
37
|
buildAggregateStages<E extends Document>(entity: Type<E>, q: QueryAggregate<E>): Record<string, unknown>[];
|
|
37
38
|
private buildHavingFilter;
|
|
39
|
+
/**
|
|
40
|
+
* Separate vector sort entries from regular sort entries.
|
|
41
|
+
* Returns `undefined` if no vector sort is present.
|
|
42
|
+
*/
|
|
43
|
+
extractVectorSort<E extends Document>(sort: QuerySortMap<E> | undefined): ExtractedVectorSort<E> | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Build a `$vectorSearch` aggregation pipeline stage.
|
|
46
|
+
* Merges `$where` into `$vectorSearch.filter` for optimal pre-filtering.
|
|
47
|
+
*/
|
|
48
|
+
buildVectorSearchStage<E extends Document>(entity: Type<E>, meta: EntityMeta<E>, key: string, search: QueryVectorSearch, where: QueryWhere<E> | undefined, limit: number): Record<string, unknown>;
|
|
38
49
|
}
|
|
39
50
|
export type MongoAggregationPipelineEntry<E extends Document> = {
|
|
40
51
|
$lookup?: MongoAggregationLookup<E>;
|
|
@@ -58,5 +69,10 @@ type MongoAggregationUnwind = {
|
|
|
58
69
|
readonly preserveNullAndEmptyArrays?: boolean;
|
|
59
70
|
};
|
|
60
71
|
type IdValue = string | ObjectId;
|
|
72
|
+
export type ExtractedVectorSort<E> = {
|
|
73
|
+
readonly vectorKey: string;
|
|
74
|
+
readonly vectorSearch: QueryVectorSearch;
|
|
75
|
+
readonly regularSort: QuerySortMap<E>;
|
|
76
|
+
};
|
|
61
77
|
export {};
|
|
62
78
|
//# sourceMappingURL=mongoDialect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongoDialect.d.ts","sourceRoot":"","sources":["../../src/mongo/mongoDialect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"mongoDialect.d.ts","sourceRoot":"","sources":["../../src/mongo/mongoDialect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ObjectId } from 'mongodb';
|
|
2
2
|
import { AbstractDialect } from '../dialect/index.js';
|
|
3
3
|
import { getMeta } from '../entity/index.js';
|
|
4
|
-
import { buildQueryWhereAsMap, buildSortMap, fillOnFields, filterFieldKeys, filterRelationKeys, getKeys, hasKeys, parseGroupMap, } from '../util/index.js';
|
|
4
|
+
import { buildQueryWhereAsMap, buildSortMap, fillOnFields, filterFieldKeys, filterRelationKeys, getKeys, hasKeys, isVectorSearch, parseGroupMap, } from '../util/index.js';
|
|
5
5
|
export class MongoDialect extends AbstractDialect {
|
|
6
6
|
static ID_KEY = '_id';
|
|
7
|
+
static VECTOR_INDEX_TYPES = new Set(['vectorSearch', 'hnsw', 'ivfflat', 'vector']);
|
|
7
8
|
static AGGREGATE_OP_MAP = {
|
|
8
9
|
$count: '$sum',
|
|
9
10
|
$sum: '$sum',
|
|
@@ -333,5 +334,58 @@ export class MongoDialect extends AbstractDialect {
|
|
|
333
334
|
}
|
|
334
335
|
return filter;
|
|
335
336
|
}
|
|
337
|
+
/**
|
|
338
|
+
* Separate vector sort entries from regular sort entries.
|
|
339
|
+
* Returns `undefined` if no vector sort is present.
|
|
340
|
+
*/
|
|
341
|
+
extractVectorSort(sort) {
|
|
342
|
+
if (!sort)
|
|
343
|
+
return undefined;
|
|
344
|
+
const raw = buildSortMap(sort);
|
|
345
|
+
let vectorKey;
|
|
346
|
+
let vectorSearch;
|
|
347
|
+
const regularSort = {};
|
|
348
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
349
|
+
if (isVectorSearch(value)) {
|
|
350
|
+
vectorKey = key;
|
|
351
|
+
vectorSearch = value;
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
regularSort[key] = value;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (!vectorKey || !vectorSearch)
|
|
358
|
+
return undefined;
|
|
359
|
+
return { vectorKey, vectorSearch, regularSort };
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Build a `$vectorSearch` aggregation pipeline stage.
|
|
363
|
+
* Merges `$where` into `$vectorSearch.filter` for optimal pre-filtering.
|
|
364
|
+
*/
|
|
365
|
+
buildVectorSearchStage(entity, meta, key, search, where, limit) {
|
|
366
|
+
const field = meta.fields[key];
|
|
367
|
+
if (!field) {
|
|
368
|
+
throw new TypeError(`Field '${key}' not found in entity '${meta.name}'`);
|
|
369
|
+
}
|
|
370
|
+
const colName = this.resolveColumnName(key, field);
|
|
371
|
+
// Resolve index name from @Index metadata, or fall back to convention
|
|
372
|
+
const indexMeta = meta.indexes?.find((idx) => idx.columns.includes(key) && MongoDialect.VECTOR_INDEX_TYPES.has(idx.type));
|
|
373
|
+
const indexName = indexMeta?.name ?? `${colName}_index`;
|
|
374
|
+
const stage = {
|
|
375
|
+
index: indexName,
|
|
376
|
+
path: colName,
|
|
377
|
+
queryVector: [...search.$vector],
|
|
378
|
+
numCandidates: limit * 10,
|
|
379
|
+
limit,
|
|
380
|
+
};
|
|
381
|
+
// Pre-filter: merge $where into $vectorSearch.filter
|
|
382
|
+
if (where) {
|
|
383
|
+
const filter = this.where(entity, where);
|
|
384
|
+
if (hasKeys(filter)) {
|
|
385
|
+
stage['filter'] = filter;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
return { $vectorSearch: stage };
|
|
389
|
+
}
|
|
336
390
|
}
|
|
337
391
|
//# sourceMappingURL=mongoDialect.js.map
|