uql-orm 0.18.0 → 0.20.0

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.
Files changed (149) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/README.md +3 -3
  3. package/dist/browser/querier/httpQuerier.d.ts +10 -10
  4. package/dist/browser/querier/httpQuerier.d.ts.map +1 -1
  5. package/dist/browser/querier/httpQuerier.js.map +1 -1
  6. package/dist/browser/type/clientQuerier.d.ts +9 -9
  7. package/dist/browser/type/clientQuerier.d.ts.map +1 -1
  8. package/dist/browser/uql-browser.min.js +2 -2
  9. package/dist/browser/uql-browser.min.js.map +4 -4
  10. package/dist/bunSql/bunSqlCockroachDialect.d.ts +1 -1
  11. package/dist/bunSql/bunSqlCockroachDialect.js +1 -1
  12. package/dist/dialect/abstractSqlDialect.d.ts +113 -51
  13. package/dist/dialect/abstractSqlDialect.d.ts.map +1 -1
  14. package/dist/dialect/abstractSqlDialect.js +186 -123
  15. package/dist/dialect/abstractSqlDialect.js.map +1 -1
  16. package/dist/dialect/jsonArrayElemMatchUtils.d.ts +5 -6
  17. package/dist/dialect/jsonArrayElemMatchUtils.d.ts.map +1 -1
  18. package/dist/dialect/jsonArrayElemMatchUtils.js +9 -19
  19. package/dist/dialect/jsonArrayElemMatchUtils.js.map +1 -1
  20. package/dist/dialect/jsonSql.d.ts +24 -0
  21. package/dist/dialect/jsonSql.d.ts.map +1 -0
  22. package/dist/dialect/jsonSql.js +37 -0
  23. package/dist/dialect/jsonSql.js.map +1 -0
  24. package/dist/dialect/mysqlLikeSqlDialect.d.ts +35 -3
  25. package/dist/dialect/mysqlLikeSqlDialect.d.ts.map +1 -1
  26. package/dist/dialect/mysqlLikeSqlDialect.js +64 -18
  27. package/dist/dialect/mysqlLikeSqlDialect.js.map +1 -1
  28. package/dist/dialect/pgLikeSqlDialect.d.ts +24 -5
  29. package/dist/dialect/pgLikeSqlDialect.d.ts.map +1 -1
  30. package/dist/dialect/pgLikeSqlDialect.js +50 -37
  31. package/dist/dialect/pgLikeSqlDialect.js.map +1 -1
  32. package/dist/dialect/vectorSqlDialect.d.ts +54 -0
  33. package/dist/dialect/vectorSqlDialect.d.ts.map +1 -0
  34. package/dist/dialect/vectorSqlDialect.js +73 -0
  35. package/dist/dialect/vectorSqlDialect.js.map +1 -0
  36. package/dist/entity/decorator/index-decorator.d.ts +6 -13
  37. package/dist/entity/decorator/index-decorator.d.ts.map +1 -1
  38. package/dist/entity/decorator/index-decorator.js.map +1 -1
  39. package/dist/maria/mariaDialect.d.ts +15 -3
  40. package/dist/maria/mariaDialect.d.ts.map +1 -1
  41. package/dist/maria/mariaDialect.js +25 -12
  42. package/dist/maria/mariaDialect.js.map +1 -1
  43. package/dist/migrate/generator/mongoSchemaGenerator.d.ts +1 -1
  44. package/dist/migrate/generator/mongoSchemaGenerator.d.ts.map +1 -1
  45. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts +2 -1
  46. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts.map +1 -1
  47. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js +5 -0
  48. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js.map +1 -1
  49. package/dist/migrate/introspection/baseSqlIntrospector.js +1 -1
  50. package/dist/migrate/introspection/baseSqlIntrospector.js.map +1 -1
  51. package/dist/migrate/introspection/mysqlIntrospector.d.ts +1 -3
  52. package/dist/migrate/introspection/mysqlIntrospector.d.ts.map +1 -1
  53. package/dist/migrate/introspection/mysqlIntrospector.js +0 -5
  54. package/dist/migrate/introspection/mysqlIntrospector.js.map +1 -1
  55. package/dist/migrate/introspection/postgresIntrospector.d.ts +1 -3
  56. package/dist/migrate/introspection/postgresIntrospector.d.ts.map +1 -1
  57. package/dist/migrate/introspection/postgresIntrospector.js +0 -5
  58. package/dist/migrate/introspection/postgresIntrospector.js.map +1 -1
  59. package/dist/migrate/introspection/sqliteIntrospector.d.ts +1 -3
  60. package/dist/migrate/introspection/sqliteIntrospector.d.ts.map +1 -1
  61. package/dist/migrate/introspection/sqliteIntrospector.js +0 -5
  62. package/dist/migrate/introspection/sqliteIntrospector.js.map +1 -1
  63. package/dist/migrate/schemaGenerator.js +1 -1
  64. package/dist/migrate/schemaGenerator.js.map +1 -1
  65. package/dist/mongo/mongoDialect.d.ts +29 -8
  66. package/dist/mongo/mongoDialect.d.ts.map +1 -1
  67. package/dist/mongo/mongoDialect.js +101 -12
  68. package/dist/mongo/mongoDialect.js.map +1 -1
  69. package/dist/mongo/mongodbQuerier.d.ts +2 -2
  70. package/dist/mongo/mongodbQuerier.d.ts.map +1 -1
  71. package/dist/mongo/mongodbQuerier.js +5 -4
  72. package/dist/mongo/mongodbQuerier.js.map +1 -1
  73. package/dist/postgres/postgresWireDriverCapabilities.d.ts +1 -1
  74. package/dist/postgres/postgresWireDriverCapabilities.js +1 -1
  75. package/dist/querier/abstractQuerier.d.ts +2 -2
  76. package/dist/querier/abstractQuerier.d.ts.map +1 -1
  77. package/dist/querier/abstractQuerier.js +6 -5
  78. package/dist/querier/abstractQuerier.js.map +1 -1
  79. package/dist/querier/abstractQuerierPool.d.ts +1 -1
  80. package/dist/querier/abstractQuerierPool.d.ts.map +1 -1
  81. package/dist/querier/abstractQuerierPool.js.map +1 -1
  82. package/dist/querier/abstractSqlQuerier.d.ts +2 -2
  83. package/dist/querier/abstractSqlQuerier.d.ts.map +1 -1
  84. package/dist/querier/abstractSqlQuerier.js.map +1 -1
  85. package/dist/querier/decorator/injectQuerier.d.ts +2 -2
  86. package/dist/querier/decorator/injectQuerier.d.ts.map +1 -1
  87. package/dist/querier/decorator/injectQuerier.js.map +1 -1
  88. package/dist/schema/schemaAST.d.ts.map +1 -1
  89. package/dist/schema/schemaAST.js +7 -19
  90. package/dist/schema/schemaAST.js.map +1 -1
  91. package/dist/schema/types.d.ts +1 -1
  92. package/dist/sqlite/sqliteDialect.d.ts +29 -8
  93. package/dist/sqlite/sqliteDialect.d.ts.map +1 -1
  94. package/dist/sqlite/sqliteDialect.js +59 -74
  95. package/dist/sqlite/sqliteDialect.js.map +1 -1
  96. package/dist/type/dialect.d.ts +192 -0
  97. package/dist/type/dialect.d.ts.map +1 -0
  98. package/dist/type/dialect.js +2 -0
  99. package/dist/type/dialect.js.map +1 -0
  100. package/dist/type/entity.d.ts +97 -45
  101. package/dist/type/entity.d.ts.map +1 -1
  102. package/dist/type/entity.js.map +1 -1
  103. package/dist/type/index.d.ts +5 -0
  104. package/dist/type/index.d.ts.map +1 -1
  105. package/dist/type/index.js +5 -0
  106. package/dist/type/index.js.map +1 -1
  107. package/dist/type/querier.d.ts +4 -3
  108. package/dist/type/querier.d.ts.map +1 -1
  109. package/dist/type/querier.js +1 -1
  110. package/dist/type/querier.js.map +1 -1
  111. package/dist/type/query.d.ts +19 -668
  112. package/dist/type/query.d.ts.map +1 -1
  113. package/dist/type/query.js +1 -51
  114. package/dist/type/query.js.map +1 -1
  115. package/dist/type/queryAggregate.d.ts +191 -0
  116. package/dist/type/queryAggregate.d.ts.map +1 -0
  117. package/dist/type/queryAggregate.js +39 -0
  118. package/dist/type/queryAggregate.js.map +1 -0
  119. package/dist/type/queryRaw.d.ts +35 -0
  120. package/dist/type/queryRaw.d.ts.map +1 -0
  121. package/dist/type/queryRaw.js +11 -0
  122. package/dist/type/queryRaw.js.map +1 -0
  123. package/dist/type/queryWhere.d.ts +271 -0
  124. package/dist/type/queryWhere.d.ts.map +1 -0
  125. package/dist/type/queryWhere.js +2 -0
  126. package/dist/type/queryWhere.js.map +1 -0
  127. package/dist/type/universalQuerier.d.ts +3 -2
  128. package/dist/type/universalQuerier.d.ts.map +1 -1
  129. package/dist/type/utility.d.ts +16 -2
  130. package/dist/type/utility.d.ts.map +1 -1
  131. package/dist/type/vector.d.ts +55 -0
  132. package/dist/type/vector.d.ts.map +1 -0
  133. package/dist/type/vector.js +2 -0
  134. package/dist/type/vector.js.map +1 -0
  135. package/dist/util/ansiSqlLiteral.d.ts +2 -0
  136. package/dist/util/ansiSqlLiteral.d.ts.map +1 -1
  137. package/dist/util/ansiSqlLiteral.js +5 -1
  138. package/dist/util/ansiSqlLiteral.js.map +1 -1
  139. package/dist/util/dialect.util.d.ts +14 -2
  140. package/dist/util/dialect.util.d.ts.map +1 -1
  141. package/dist/util/dialect.util.js +23 -0
  142. package/dist/util/dialect.util.js.map +1 -1
  143. package/dist/util/object.util.d.ts +12 -1
  144. package/dist/util/object.util.d.ts.map +1 -1
  145. package/dist/util/object.util.js +18 -0
  146. package/dist/util/object.util.js.map +1 -1
  147. package/dist/util/relationQuery.util.js +1 -1
  148. package/dist/util/relationQuery.util.js.map +1 -1
  149. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"mysqlLikeSqlDialect.js","sourceRoot":"","sources":["../../src/dialect/mysqlLikeSqlDialect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mysqlLikeSqlDialect.js","sourceRoot":"","sources":["../../src/dialect/mysqlLikeSqlDialect.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type DialectFeatures, type EntityMeta, type FieldOptions, type JsonUpdateOp, type QueryComparisonOptions, type QueryConflictPaths, type QueryContext, type QueryOptions, type QuerySizeComparisonOps, type QueryVectorSearch, type Type, type VectorDistance } from '../type/index.js';
1
+ import { type DialectFeatures, type EntityMeta, type FieldOptions, type QueryComparisonOptions, type QueryConflictPaths, type QueryContext, type QueryOptions, type QuerySizeComparisonOps, type QueryVectorSearch, type Type, type VectorDistance } from '../type/index.js';
2
2
  import { AbstractSqlDialect } from './abstractSqlDialect.js';
3
3
  /**
4
4
  * Shared AST/quoting/JSONB/full-text-search/vector-search implementation between Postgres and
@@ -12,7 +12,7 @@ import { AbstractSqlDialect } from './abstractSqlDialect.js';
12
12
  export declare abstract class PgLikeSqlDialect extends AbstractSqlDialect {
13
13
  /** Default {@link DialectFeatures} for Postgres-wire dialects. */
14
14
  protected readonly featureDefaults: DialectFeatures;
15
- readonly quoteChar = "\"";
15
+ readonly escapeIdChar = "\"";
16
16
  readonly serialPrimaryKey: string;
17
17
  readonly tableOptions = "";
18
18
  readonly beginTransactionCommand = "BEGIN";
@@ -34,18 +34,37 @@ export declare abstract class PgLikeSqlDialect extends AbstractSqlDialect {
34
34
  * system columns, so it uses the default (empty) and `created` stays `undefined` in the result.
35
35
  */
36
36
  protected buildUpsertOnConflict<E>(ctx: QueryContext, entity: Type<E>, conflictPaths: QueryConflictPaths<E>, payload: E | E[], extraReturning?: string): void;
37
- /** Full-text search: both dialects support `to_tsvector(...) @@ to_tsquery(...)`. */
37
+ /**
38
+ * Full-text search: `to_tsvector(...) @@ websearch_to_tsquery(...)`. `websearch_to_tsquery` takes
39
+ * free-form user input (quoted phrases, `or`, `-negation`) and never raises a syntax error, unlike
40
+ * `to_tsquery`, which rejects anything unparseable - including a plain two-word search.
41
+ */
38
42
  compare<E>(ctx: QueryContext, entity: Type<E>, key: string, val: unknown, opts?: QueryComparisonOptions): void;
39
43
  protected jsonAll(ctx: QueryContext, jsonField: string, value: unknown): string;
40
44
  protected jsonSize(ctx: QueryContext, jsonField: string, value: number | QuerySizeComparisonOps): string;
41
- protected jsonElemMatch(ctx: QueryContext, jsonField: string, match: Record<string, unknown>): string;
45
+ /**
46
+ * Object elements stay `jsonb` so each field can pick `->` or `->>`. Scalar elements are exploded
47
+ * as text unless they are compared as JSON, where `_text` would yield `text = jsonb`.
48
+ */
49
+ protected jsonElemFrom(jsonField: string, fields: readonly string[], asJson?: boolean): string;
50
+ protected jsonElemRef(field?: string, asJson?: boolean): string;
42
51
  protected get regexpOp(): string;
43
52
  protected ilikeExpr(f: string, ph: string): string;
44
53
  protected get neOp(): string;
45
54
  protected formatIn(ctx: QueryContext, values: unknown[], negate: boolean): string;
46
55
  protected numericCast(expr: string): string;
47
56
  protected formatPersistableValue<E>(ctx: QueryContext, field: FieldOptions, value: unknown): void;
48
- protected formatJsonUpdate<E>(ctx: QueryContext, escapedCol: string, value: JsonUpdateOp<E>): void;
57
+ /**
58
+ * `create_if_missing => false` keeps an absent key (and a NULL column) untouched; `WITH
59
+ * ORDINALITY` keeps the surviving elements in their original order.
60
+ */
61
+ protected jsonPullKey(ctx: QueryContext, expr: string, escapedCol: string, key: string, value: unknown): string;
62
+ protected jsonSet(ctx: QueryContext, expr: string, set: Record<string, unknown>, field?: FieldOptions): string;
63
+ /** The only fragment that references `expr` twice - safe here because placeholders are numbered. */
64
+ protected jsonPush(ctx: QueryContext, expr: string, push: Record<string, unknown>): string;
65
+ protected jsonUnset(ctx: QueryContext, expr: string, unset: readonly string[]): string;
66
+ /** Postgres binds JSON with a numbered placeholder and an explicit cast, per driver capability. */
67
+ protected jsonScalarParam(ctx: QueryContext, value: unknown): string;
49
68
  /**
50
69
  * Helper to add a JSON value to context with appropriate stringification and cast.
51
70
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pgLikeSqlDialect.d.ts","sourceRoot":"","sources":["../../src/dialect/pgLikeSqlDialect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pgLikeSqlDialect.d.ts","sourceRoot":"","sources":["../../src/dialect/pgLikeSqlDialect.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { getMeta } from '../entity/index.js';
2
2
  import { QueryRaw, } from '../type/index.js';
3
- import { escapeAnsiSqlLiteral } from '../util/ansiSqlLiteral.js';
4
- import { hasKeys, isJsonType, someKey } from '../util/index.js';
3
+ import { escapeAnsiSqlLiteral, escapeSingleQuotes } from '../util/ansiSqlLiteral.js';
4
+ import { isJsonType } from '../util/index.js';
5
5
  import { AbstractSqlDialect } from './abstractSqlDialect.js';
6
- import { buildElemMatchConditions } from './jsonArrayElemMatchUtils.js';
6
+ import { jsonSetTarget } from './jsonSql.js';
7
7
  /**
8
8
  * Shared AST/quoting/JSONB/full-text-search/vector-search implementation between Postgres and
9
9
  * CockroachDB (wire- and SQL-compatible for everything below, including `to_tsvector`/`to_tsquery`
@@ -30,7 +30,7 @@ export class PgLikeSqlDialect extends AbstractSqlDialect {
30
30
  supportsTimestamptz: true,
31
31
  defaultStringAsText: true,
32
32
  };
33
- quoteChar = '"';
33
+ escapeIdChar = '"';
34
34
  // Shared default for both dialects. CockroachDB docs flag sequential PKs as a hotspotting risk
35
35
  // under heavy concurrent insert load (writes concentrate on one range); this default still beats
36
36
  // `SERIAL` (CockroachDB's `unique_rowid()`, a ~64-bit value that overflows JS's safe-integer
@@ -81,7 +81,11 @@ export class PgLikeSqlDialect extends AbstractSqlDialect {
81
81
  super.insert(ctx, entity, payload);
82
82
  ctx.append(` ON CONFLICT (${keysStr}) ${onConflict} ${this.returningId(entity)}${extraReturning}`);
83
83
  }
84
- /** Full-text search: both dialects support `to_tsvector(...) @@ to_tsquery(...)`. */
84
+ /**
85
+ * Full-text search: `to_tsvector(...) @@ websearch_to_tsquery(...)`. `websearch_to_tsquery` takes
86
+ * free-form user input (quoted phrases, `or`, `-negation`) and never raises a syntax error, unlike
87
+ * `to_tsquery`, which rejects anything unparseable - including a plain two-word search.
88
+ */
85
89
  compare(ctx, entity, key, val, opts = {}) {
86
90
  if (key === '$text') {
87
91
  const meta = getMeta(entity);
@@ -93,7 +97,9 @@ export class PgLikeSqlDialect extends AbstractSqlDialect {
93
97
  return this.escapeId(columnName);
94
98
  })
95
99
  .join(` || ' ' || `);
96
- ctx.append(`to_tsvector(${fields}) @@ to_tsquery(`);
100
+ // The config is bound once and its numbered placeholder reused by both calls.
101
+ const config = search.$config ? `${this.addValue(ctx.values, search.$config)}::regconfig, ` : '';
102
+ ctx.append(`to_tsvector(${config}${fields}) @@ websearch_to_tsquery(${config}`);
97
103
  ctx.addValue(search.$value);
98
104
  ctx.append(')');
99
105
  return;
@@ -109,19 +115,19 @@ export class PgLikeSqlDialect extends AbstractSqlDialect {
109
115
  ctx.pushValue(...tmpCtx.values);
110
116
  return tmpCtx.sql;
111
117
  }
112
- jsonElemMatch(ctx, jsonField, match) {
113
- // Primitive element match: keys are operators (e.g. { $startsWith: 'ad' } on a string[])
114
- const isPrimitiveElement = someKey(match, (k) => k.startsWith('$'));
115
- if (isPrimitiveElement) {
116
- const conditions = Object.entries(match).map(([op, opVal]) => this.buildJsonFieldCondition(ctx, () => 'elem', '', op, opVal));
117
- return `EXISTS (SELECT 1 FROM jsonb_array_elements_text(${jsonField}) AS elem WHERE ${conditions.join(' AND ')})`;
118
- }
119
- const hasOperators = Object.values(match).some((v) => v && typeof v === 'object' && !Array.isArray(v) && someKey(v, (k) => k.startsWith('$')));
120
- if (!hasOperators) {
121
- return `${jsonField} @> ${this.jsonVal(ctx, [match])}`;
118
+ /**
119
+ * Object elements stay `jsonb` so each field can pick `->` or `->>`. Scalar elements are exploded
120
+ * as text unless they are compared as JSON, where `_text` would yield `text = jsonb`.
121
+ */
122
+ jsonElemFrom(jsonField, fields, asJson = false) {
123
+ const fn = fields.length || asJson ? 'jsonb_array_elements' : 'jsonb_array_elements_text';
124
+ return `${fn}(${jsonField}) AS elem`;
125
+ }
126
+ jsonElemRef(field, asJson = false) {
127
+ if (field === undefined) {
128
+ return 'elem';
122
129
  }
123
- const conditions = buildElemMatchConditions(match, (field, op, opVal) => this.buildJsonFieldCondition(ctx, (f) => `elem->>'${this.escapeJsonKey(f)}'`, field, op, opVal), (field, val) => `elem->>'${this.escapeJsonKey(field)}' = ${this.addValue(ctx.values, val)}`);
124
- return `EXISTS (SELECT 1 FROM jsonb_array_elements(${jsonField}) AS elem WHERE ${conditions.join(' AND ')})`;
130
+ return asJson ? `elem->'${escapeSingleQuotes(field)}'` : `elem->>'${escapeSingleQuotes(field)}'`;
125
131
  }
126
132
  get regexpOp() {
127
133
  return '~';
@@ -157,25 +163,32 @@ export class PgLikeSqlDialect extends AbstractSqlDialect {
157
163
  }
158
164
  super.formatPersistableValue(ctx, field, value);
159
165
  }
160
- formatJsonUpdate(ctx, escapedCol, value) {
161
- let expr = escapedCol;
162
- if (hasKeys(value.$merge)) {
163
- expr = `COALESCE(${escapedCol}, '{}'::jsonb) || ${this.jsonVal(ctx, value.$merge)}`;
164
- }
165
- if (hasKeys(value.$push)) {
166
- const push = value.$push;
167
- for (const [key, v] of Object.entries(push)) {
168
- const currentExpr = expr;
169
- const ph = this.jsonVal(ctx, v);
170
- expr = `jsonb_set(${currentExpr}, '{${this.escapeJsonKey(key)}}', COALESCE((${currentExpr})->'${this.escapeJsonKey(key)}', '[]'::jsonb) || jsonb_build_array(${ph}))`;
171
- }
172
- }
173
- if (value.$unset?.length) {
174
- for (const key of value.$unset) {
175
- expr = `(${expr}) - '${this.escapeJsonKey(key)}'`;
176
- }
177
- }
178
- ctx.append(`${escapedCol} = ${expr}`);
166
+ /**
167
+ * `create_if_missing => false` keeps an absent key (and a NULL column) untouched; `WITH
168
+ * ORDINALITY` keeps the surviving elements in their original order.
169
+ */
170
+ jsonPullKey(ctx, expr, escapedCol, key, value) {
171
+ const escapedKey = escapeSingleQuotes(key);
172
+ const kept = `SELECT jsonb_agg(uql_pull.val ORDER BY uql_pull.ord) FROM jsonb_array_elements(${escapedCol}->'${escapedKey}') WITH ORDINALITY AS uql_pull(val, ord) WHERE uql_pull.val <> ${this.jsonVal(ctx, value)}`;
173
+ return `jsonb_set(${expr}, '{${escapedKey}}', COALESCE((${kept}), '[]'::jsonb), false)`;
174
+ }
175
+ jsonSet(ctx, expr, set, field) {
176
+ return `${jsonSetTarget(expr, field, `'{}'::jsonb`)} || ${this.jsonVal(ctx, set)}`;
177
+ }
178
+ /** The only fragment that references `expr` twice - safe here because placeholders are numbered. */
179
+ jsonPush(ctx, expr, push) {
180
+ return Object.entries(push).reduce((acc, [key, value]) => {
181
+ const escapedKey = escapeSingleQuotes(key);
182
+ const ph = this.jsonVal(ctx, value);
183
+ return `jsonb_set(${acc}, '{${escapedKey}}', COALESCE((${acc})->'${escapedKey}', '[]'::jsonb) || jsonb_build_array(${ph}))`;
184
+ }, expr);
185
+ }
186
+ jsonUnset(ctx, expr, unset) {
187
+ return `(${expr}) - ${this.addValue(ctx.values, [...unset])}::text[]`;
188
+ }
189
+ /** Postgres binds JSON with a numbered placeholder and an explicit cast, per driver capability. */
190
+ jsonScalarParam(ctx, value) {
191
+ return this.jsonVal(ctx, value);
179
192
  }
180
193
  /**
181
194
  * Helper to add a JSON value to context with appropriate stringification and cast.
@@ -1 +1 @@
1
- {"version":3,"file":"pgLikeSqlDialect.js","sourceRoot":"","sources":["../../src/dialect/pgLikeSqlDialect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pgLikeSqlDialect.js","sourceRoot":"","sources":["../../src/dialect/pgLikeSqlDialect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { type VectorCast } from '../schema/canonicalType.js';
2
+ import type { EntityMeta, FieldOptions, QueryContext, QueryVectorSearch, VectorDistance } from '../type/index.js';
3
+ import { AbstractDialect } from './abstractDialect.js';
4
+ /**
5
+ * Vector similarity search for SQL dialects: the `ORDER BY <distance>` expression, its projection as
6
+ * a named score, and the index metadata the schema generator reads.
7
+ *
8
+ * A layer of its own because it is nearly self-contained - it needs only `escapeId` from the SQL
9
+ * dialect above it - unlike the JSON operators, which are woven into the generic comparison
10
+ * machinery (`neExpr`, `numericCast`, `formatIn`, ...) and belong with it.
11
+ *
12
+ * Two shapes exist across dialects: an operator (`"col" <=> $1`, Postgres/CockroachDB) or a function
13
+ * call (`VEC_DISTANCE_COSINE(col, ?)`, MariaDB/SQLite). Dialects pick one by either overriding
14
+ * {@link appendVectorSort} or filling {@link vectorDistanceFns}.
15
+ */
16
+ export declare abstract class VectorSqlDialect extends AbstractDialect {
17
+ /** Vector index operator classes, keyed by distance metric. Partial: not every dialect supports every metric. */
18
+ readonly vectorOpsClass: ReadonlyMap<VectorDistance, string> | undefined;
19
+ readonly vectorExtension: string | undefined;
20
+ /**
21
+ * Mapping of UQL vector distance metrics to native SQL functions.
22
+ * Override in dialects that use function-call syntax (e.g. SQLite, MariaDB).
23
+ * Dialects with operator-based syntax (e.g. Postgres) leave this empty and override `appendVectorSort` directly.
24
+ */
25
+ protected readonly vectorDistanceFns: ReadonlyMap<VectorDistance, string>;
26
+ /** Quotes an identifier; supplied by the SQL dialect built on top of this layer. */
27
+ abstract escapeId(val: string, forbidQualified?: boolean, addDot?: boolean): string;
28
+ /**
29
+ * Resolve common parameters for a vector similarity ORDER BY expression.
30
+ * Shared by all dialect overrides of `appendVectorSort`.
31
+ */
32
+ protected resolveVectorSortParams<E>(meta: EntityMeta<E>, key: string, search: QueryVectorSearch): {
33
+ colName: string;
34
+ distance: VectorDistance;
35
+ field: FieldOptions | undefined;
36
+ vectorCast: VectorCast;
37
+ };
38
+ /**
39
+ * Append a vector similarity function call: `fn(col, ?)`.
40
+ * Used by dialects that express vector distance via SQL functions (SQLite, MariaDB).
41
+ */
42
+ protected appendFunctionVectorSort<E>(ctx: QueryContext, meta: EntityMeta<E>, key: string, search: QueryVectorSearch, dialectName: string): void;
43
+ /**
44
+ * Append a vector distance projection.
45
+ * Delegates to `appendVectorSort` so each dialect's distance syntax is written once.
46
+ */
47
+ protected appendVectorProjection<E>(ctx: QueryContext, meta: EntityMeta<E>, key: string, search: QueryVectorSearch): void;
48
+ /**
49
+ * Append a vector similarity expression for `ORDER BY`.
50
+ * Default: auto-delegates to `appendFunctionVectorSort` when `vectorDistanceFns` has entries.
51
+ */
52
+ protected appendVectorSort<E>(ctx: QueryContext, meta: EntityMeta<E>, key: string, search: QueryVectorSearch): void;
53
+ }
54
+ //# sourceMappingURL=vectorSqlDialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vectorSqlDialect.d.ts","sourceRoot":"","sources":["../../src/dialect/vectorSqlDialect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,KAAK,EACV,UAAU,EAEV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,8BAAsB,gBAAiB,SAAQ,eAAe;IAC5D,iHAAiH;IACjH,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,SAAS,CAAa;IAErF,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAa;IAEzD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAa;IAEtF,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEpF;;;OAGG;IACH,SAAS,CAAC,uBAAuB,CAAC,CAAC,EACjC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,iBAAiB,GACxB;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,CAMxG;IAED;;;OAGG;IACH,SAAS,CAAC,wBAAwB,CAAC,CAAC,EAClC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE,MAAM,GAClB,IAAI,CAYN;IAED;;;OAGG;IACH,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAChC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAGN;IAED;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAMlH;CACF"}
@@ -0,0 +1,73 @@
1
+ import { resolveVectorCast } from '../schema/canonicalType.js';
2
+ import { AbstractDialect } from './abstractDialect.js';
3
+ /**
4
+ * Vector similarity search for SQL dialects: the `ORDER BY <distance>` expression, its projection as
5
+ * a named score, and the index metadata the schema generator reads.
6
+ *
7
+ * A layer of its own because it is nearly self-contained - it needs only `escapeId` from the SQL
8
+ * dialect above it - unlike the JSON operators, which are woven into the generic comparison
9
+ * machinery (`neExpr`, `numericCast`, `formatIn`, ...) and belong with it.
10
+ *
11
+ * Two shapes exist across dialects: an operator (`"col" <=> $1`, Postgres/CockroachDB) or a function
12
+ * call (`VEC_DISTANCE_COSINE(col, ?)`, MariaDB/SQLite). Dialects pick one by either overriding
13
+ * {@link appendVectorSort} or filling {@link vectorDistanceFns}.
14
+ */
15
+ export class VectorSqlDialect extends AbstractDialect {
16
+ /** Vector index operator classes, keyed by distance metric. Partial: not every dialect supports every metric. */
17
+ vectorOpsClass = undefined;
18
+ vectorExtension = undefined;
19
+ /**
20
+ * Mapping of UQL vector distance metrics to native SQL functions.
21
+ * Override in dialects that use function-call syntax (e.g. SQLite, MariaDB).
22
+ * Dialects with operator-based syntax (e.g. Postgres) leave this empty and override `appendVectorSort` directly.
23
+ */
24
+ vectorDistanceFns = new Map();
25
+ /**
26
+ * Resolve common parameters for a vector similarity ORDER BY expression.
27
+ * Shared by all dialect overrides of `appendVectorSort`.
28
+ */
29
+ resolveVectorSortParams(meta, key, search) {
30
+ const field = meta.fields[key];
31
+ const colName = this.resolveColumnName(key, field);
32
+ const distance = search.$distance ?? field?.distance ?? 'cosine';
33
+ const vectorCast = resolveVectorCast(field);
34
+ return { colName, distance, field, vectorCast };
35
+ }
36
+ /**
37
+ * Append a vector similarity function call: `fn(col, ?)`.
38
+ * Used by dialects that express vector distance via SQL functions (SQLite, MariaDB).
39
+ */
40
+ appendFunctionVectorSort(ctx, meta, key, search, dialectName) {
41
+ const { colName, distance, vectorCast } = this.resolveVectorSortParams(meta, key, search);
42
+ const fn = this.vectorDistanceFns.get(distance);
43
+ if (!fn) {
44
+ throw Error(`${dialectName} does not support vector distance metric: ${distance}`);
45
+ }
46
+ ctx.append(`${fn}(${this.escapeId(colName)}, `);
47
+ ctx.addValue(`[${search.$vector.join(',')}]`);
48
+ if (vectorCast && dialectName === 'PostgreSQL') {
49
+ ctx.append(`::${vectorCast}`);
50
+ }
51
+ ctx.append(')');
52
+ }
53
+ /**
54
+ * Append a vector distance projection.
55
+ * Delegates to `appendVectorSort` so each dialect's distance syntax is written once.
56
+ */
57
+ appendVectorProjection(ctx, meta, key, search) {
58
+ this.appendVectorSort(ctx, meta, key, search);
59
+ ctx.append(` AS ${this.escapeId(search.$project)}`);
60
+ }
61
+ /**
62
+ * Append a vector similarity expression for `ORDER BY`.
63
+ * Default: auto-delegates to `appendFunctionVectorSort` when `vectorDistanceFns` has entries.
64
+ */
65
+ appendVectorSort(ctx, meta, key, search) {
66
+ if (this.vectorDistanceFns.size > 0) {
67
+ this.appendFunctionVectorSort(ctx, meta, key, search, this.dialectName);
68
+ return;
69
+ }
70
+ throw new TypeError('Vector similarity sort is not supported by this dialect. Use raw() for vector queries.');
71
+ }
72
+ }
73
+ //# sourceMappingURL=vectorSqlDialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vectorSqlDialect.js","sourceRoot":"","sources":["../../src/dialect/vectorSqlDialect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,4BAA4B,CAAC;AAShF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,eAAe;IAC5D,iHAAiH;IACxG,cAAc,GAAoD,SAAS,CAAC;IAE5E,eAAe,GAAuB,SAAS,CAAC;IAEzD;;;;OAIG;IACgB,iBAAiB,GAAwC,IAAI,GAAG,EAAE,CAAC;IAKtF;;;OAGG;IACO,uBAAuB,CAC/B,IAAmB,EACnB,GAAW,EACX,MAAyB;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAkB,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,EAAE,QAAQ,IAAI,QAAQ,CAAC;QACjE,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAClD,CAAC;IAED;;;OAGG;IACO,wBAAwB,CAChC,GAAiB,EACjB,IAAmB,EACnB,GAAW,EACX,MAAyB,EACzB,WAAmB;QAEnB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1F,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,KAAK,CAAC,GAAG,WAAW,6CAA6C,QAAQ,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,UAAU,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED;;;OAGG;IACO,sBAAsB,CAC9B,GAAiB,EACjB,IAAmB,EACnB,GAAW,EACX,MAAyB;QAEzB,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9C,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAS,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACO,gBAAgB,CAAI,GAAiB,EAAE,IAAmB,EAAE,GAAW,EAAE,MAAyB;QAC1G,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,wFAAwF,CAAC,CAAC;IAChH,CAAC;CACF"}
@@ -1,18 +1,11 @@
1
- import type { IndexType } from '../../schema/types.js';
2
- import type { Type, VectorIndexOptions } from '../../type/index.js';
1
+ import type { DistributiveOmit, EntityIndexMeta, Type } from '../../type/index.js';
3
2
  /**
4
- * Options for the @Index decorator.
3
+ * Options for the @Index decorator - {@link EntityIndexMeta} minus `columns`, which the decorator
4
+ * takes as its own positional argument. `DistributiveOmit` (not plain `Omit`) keeps `type`/`distance`
5
+ * a discriminated pair - `EntityIndexMeta`'s vector-index invariant, that omitting `distance` on a
6
+ * vector index type is a compile error.
5
7
  */
6
- export interface IndexDecoratorOptions extends VectorIndexOptions {
7
- /** Custom index name */
8
- name?: string;
9
- /** Whether index is unique */
10
- unique?: boolean;
11
- /** Index type */
12
- type?: IndexType;
13
- /** Partial index WHERE clause */
14
- where?: string;
15
- }
8
+ export type IndexDecoratorOptions = DistributiveOmit<EntityIndexMeta, 'columns'>;
16
9
  /**
17
10
  * Define a composite index on an entity class.
18
11
  *
@@ -1 +1 @@
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,YAC7D,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAG/B"}
1
+ {"version":3,"file":"index-decorator.d.ts","sourceRoot":"","sources":["../../../src/entity/decorator/index-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGnF;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,qBAA0B,YAC7D,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAG/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index-decorator.js","sourceRoot":"","sources":["../../../src/entity/decorator/index-decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAgBxD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,KAAK,CAAI,OAAiB,EAAE,OAAO,GAA0B,EAAE;IAC7E,OAAO,CAAC,MAAe,EAAQ,EAAE;QAC/B,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index-decorator.js","sourceRoot":"","sources":["../../../src/entity/decorator/index-decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAUxD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,KAAK,CAAI,OAAiB,EAAE,OAAO,GAA0B,EAAE;IAC7E,OAAO,CAAC,MAAe,EAAQ,EAAE;QAC/B,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC"}
@@ -8,9 +8,21 @@ export declare class MariaDialect extends MysqlLikeSqlDialect {
8
8
  constructor(options?: DialectOptions);
9
9
  insert<E>(ctx: QueryContext, entity: Type<E>, payload: E | E[], opts?: QueryOptions): void;
10
10
  upsert<E>(ctx: QueryContext, entity: Type<E>, conflictPaths: QueryConflictPaths<E>, payload: E | E[]): void;
11
- protected getJsonPathScalarExpr(escapedColumn: string, jsonPath: string): string;
12
- /** MariaDB does not support CAST(val AS JSON). We use JSON_EXTRACT to convert string to JSON. */
13
- protected getJsonCastExpr(): string;
11
+ /**
12
+ * MariaDB supports neither MySQL's `->`/`->>` shorthand nor the base's chained form. `JSON_VALUE`
13
+ * reads a scalar and `JSON_EXTRACT` the subtree that the array operators need.
14
+ */
15
+ protected getJsonPathScalarExpr(escapedColumn: string, jsonPathStr: string): string;
16
+ protected getJsonPathJsonbExpr(escapedColumn: string, jsonPathStr: string): string;
17
+ /** MariaDB has no `CAST(val AS JSON)`; `JSON_EXTRACT` at the root reads a value as JSON. */
18
+ protected jsonCast(operand: string): string;
19
+ /**
20
+ * MariaDB stores JSON as text, so JSON_ARRAYAGG would re-quote each element into a string
21
+ * (`["\"a\""]`). JSON_COMPACT marks it back as JSON, keeping element types intact.
22
+ */
23
+ protected jsonPullElem(alias: string): string;
24
+ /** Text-backed JSON compares as text, so use JSON_EQUALS for key-order-independent equality. */
25
+ protected jsonPullKeep(alias: string, operand: string): string;
14
26
  /** MariaDB 11.7+ vector distance functions. */
15
27
  protected readonly vectorDistanceFns: ReadonlyMap<VectorDistance, string>;
16
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mariaDialect.d.ts","sourceRoot":"","sources":["../../src/maria/mariaDialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7G,qBAAa,YAAa,SAAQ,mBAAmB;IACnD,SAAkB,WAAW,aAAa;IAE1C,SAAkB,gBAAgB,gDAAgD;IAGlF,SAAkB,cAAc,eAAe;IAE/C,YAAY,OAAO,GAAE,cAAmB,EAQvC;IAEQ,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,CAGlG;IAEQ,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,CAuBnH;IAED,UAAmB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQxF;IAED,iGAAiG;IACjG,UAAmB,eAAe,IAAI,MAAM,CAE3C;IAED,+CAA+C;IAC/C,mBAA4B,iBAAiB,EAAE,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAG/E;CACJ"}
1
+ {"version":3,"file":"mariaDialect.d.ts","sourceRoot":"","sources":["../../src/maria/mariaDialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7G,qBAAa,YAAa,SAAQ,mBAAmB;IACnD,SAAkB,WAAW,aAAa;IAE1C,SAAkB,gBAAgB,gDAAgD;IAGlF,SAAkB,cAAc,eAAe;IAE/C,YAAY,OAAO,GAAE,cAAmB,EAQvC;IAEQ,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,CAGlG;IAEQ,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,CAuBnH;IAED;;;OAGG;IACH,UAAmB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3F;IAED,UAAmB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1F;IAED,4FAA4F;IAC5F,UAAmB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;IAED;;;OAGG;IACH,UAAmB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;IAED,gGAAgG;IAChG,UAAmB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtE;IAED,+CAA+C;IAC/C,mBAA4B,iBAAiB,EAAE,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAG/E;CACJ"}
@@ -1,3 +1,4 @@
1
+ import { jsonPath } from '../dialect/jsonSql.js';
1
2
  import { MysqlLikeSqlDialect } from '../dialect/mysqlLikeSqlDialect.js';
2
3
  import { getMeta } from '../entity/index.js';
3
4
  export class MariaDialect extends MysqlLikeSqlDialect {
@@ -36,18 +37,30 @@ export class MariaDialect extends MysqlLikeSqlDialect {
36
37
  ctx.pushValue(...insertCtx.values);
37
38
  }
38
39
  }
39
- getJsonPathScalarExpr(escapedColumn, jsonPath) {
40
- const escapedPath = jsonPath
41
- .split('.')
42
- .map((segment) => this.escapeJsonKey(segment))
43
- .join('.');
44
- // MariaDB does not support MySQL's -> / ->> JSON shorthand operators.
45
- // JSON_VALUE keeps dot-notation access native and portable across MariaDB versions.
46
- return `JSON_VALUE(${escapedColumn}, '$.${escapedPath}')`;
47
- }
48
- /** MariaDB does not support CAST(val AS JSON). We use JSON_EXTRACT to convert string to JSON. */
49
- getJsonCastExpr() {
50
- return "JSON_EXTRACT(?, '$')";
40
+ /**
41
+ * MariaDB supports neither MySQL's `->`/`->>` shorthand nor the base's chained form. `JSON_VALUE`
42
+ * reads a scalar and `JSON_EXTRACT` the subtree that the array operators need.
43
+ */
44
+ getJsonPathScalarExpr(escapedColumn, jsonPathStr) {
45
+ return `JSON_VALUE(${escapedColumn}, ${jsonPath(jsonPathStr)})`;
46
+ }
47
+ getJsonPathJsonbExpr(escapedColumn, jsonPathStr) {
48
+ return `JSON_EXTRACT(${escapedColumn}, ${jsonPath(jsonPathStr)})`;
49
+ }
50
+ /** MariaDB has no `CAST(val AS JSON)`; `JSON_EXTRACT` at the root reads a value as JSON. */
51
+ jsonCast(operand) {
52
+ return `JSON_EXTRACT(${operand}, '$')`;
53
+ }
54
+ /**
55
+ * MariaDB stores JSON as text, so JSON_ARRAYAGG would re-quote each element into a string
56
+ * (`["\"a\""]`). JSON_COMPACT marks it back as JSON, keeping element types intact.
57
+ */
58
+ jsonPullElem(alias) {
59
+ return `JSON_COMPACT(${alias}.v)`;
60
+ }
61
+ /** Text-backed JSON compares as text, so use JSON_EQUALS for key-order-independent equality. */
62
+ jsonPullKeep(alias, operand) {
63
+ return `NOT JSON_EQUALS(${alias}.v, ${operand})`;
51
64
  }
52
65
  /** MariaDB 11.7+ vector distance functions. */
53
66
  vectorDistanceFns = new Map([
@@ -1 +1 @@
1
- {"version":3,"file":"mariaDialect.js","sourceRoot":"","sources":["../../src/maria/mariaDialect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,OAAO,YAAa,SAAQ,mBAAmB;IACjC,WAAW,GAAG,SAAS,CAAC;IAExB,gBAAgB,GAAG,4CAA4C,CAAC;IAElF,gGAAgG;IAC9E,cAAc,GAAG,WAAW,CAAC;IAE/C,YAAY,OAAO,GAAmB,EAAE;QACtC,KAAK,CAAC;YACJ,GAAG,OAAO;YACV,kBAAkB,EAAE;gBAClB,oBAAoB,EAAE,IAAI;gBAC1B,GAAG,OAAO,CAAC,kBAAkB;aAC9B;SACF,CAAC,CAAC;IACL,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,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAC5C,SAAS,EACT,IAAI,EACJ,aAAa,EACb,OAAO,EACP,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,GAAG,CAC5B,CAAC;QACF,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;YAC9D,GAAG,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,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,GAAG,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEkB,qBAAqB,CAAC,aAAqB,EAAE,QAAgB;QAC9E,MAAM,WAAW,GAAG,QAAQ;aACzB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,sEAAsE;QACtE,oFAAoF;QACpF,OAAO,cAAc,aAAa,QAAQ,WAAW,IAAI,CAAC;IAC5D,CAAC;IAED,iGAAiG;IAC9E,eAAe;QAChC,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,+CAA+C;IACnB,iBAAiB,GAAwC,IAAI,GAAG,CAAC;QAC3F,CAAC,QAAQ,EAAE,qBAAqB,CAAC;QACjC,CAAC,IAAI,EAAE,wBAAwB,CAAC;KACjC,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"mariaDialect.js","sourceRoot":"","sources":["../../src/maria/mariaDialect.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import type { TableDefinition } from '../builder/types.js';
5
5
  export declare class MongoSchemaGenerator extends AbstractDialect implements SchemaGenerator {
6
6
  protected readonly defaultForeignKeyAction?: ForeignKeyAction | undefined;
7
7
  readonly dialectName = "mongodb";
8
- protected readonly featureDefaults: import("../../type/query.js").DialectFeatures;
8
+ protected readonly featureDefaults: import("../../type/dialect.js").DialectFeatures;
9
9
  readonly insertIdSource: InsertIdSource;
10
10
  constructor(namingStrategy?: NamingStrategy, defaultForeignKeyAction?: ForeignKeyAction | undefined);
11
11
  generateCreateTable<E>(entity: Type<E>, _options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"mongoSchemaGenerator.d.ts","sourceRoot":"","sources":["../../../src/migrate/generator/mongoSchemaGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongoSchemaGenerator.d.ts","sourceRoot":"","sources":["../../../src/migrate/generator/mongoSchemaGenerator.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,8 @@ export type ReferentialAction = 'CASCADE' | 'SET NULL' | 'RESTRICT' | 'NO ACTION
24
24
  * - `mapPrimaryKeyRow()` - Extract column name from a PK row
25
25
  */
26
26
  export declare abstract class AbstractSqlSchemaIntrospector extends BaseSqlIntrospector implements SchemaIntrospector {
27
- protected abstract readonly pool: QuerierPool;
27
+ protected readonly pool: QuerierPool;
28
+ constructor(pool: QuerierPool);
28
29
  getTableSchema(tableName: string): Promise<TableSchema | undefined>;
29
30
  getTableNames(): Promise<string[]>;
30
31
  tableExists(tableName: string): Promise<boolean>;