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":"abstractSqlDialect.js","sourceRoot":"","sources":["../../src/dialect/abstractSqlDialect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstractSqlDialect.js","sourceRoot":"","sources":["../../src/dialect/abstractSqlDialect.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  /**
2
- * Shared `$elemMatch` object expansion logic:
3
- * - for each field:
4
- * - if the value is an operator-object (object, non-array), expand each operator
5
- * - otherwise treat it as plain equality
2
+ * Expands an `$elemMatch` object into per-field conditions: a field whose value is an operator
3
+ * object contributes one condition per operator, and a plain value contributes an `$eq`.
6
4
  *
7
- * Dialects decide the actual SQL produced via the callbacks.
5
+ * Treating plain equality as `$eq` is what keeps `{ count: 5 }` and `{ count: { $eq: 5 } }`
6
+ * identical - they used to take different code paths and emit different SQL.
8
7
  */
9
- export declare function buildElemMatchConditions(match: Record<string, unknown>, onOperator: (field: string, op: string, opVal: unknown) => string, onEq: (field: string, value: unknown) => string): string[];
8
+ export declare function buildElemMatchConditions(match: Record<string, unknown>, onCondition: (field: string, op: string, value: unknown) => string): string[];
10
9
  //# sourceMappingURL=jsonArrayElemMatchUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsonArrayElemMatchUtils.d.ts","sourceRoot":"","sources":["../../src/dialect/jsonArrayElemMatchUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,EACjE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,GAC9C,MAAM,EAAE,CAeV"}
1
+ {"version":3,"file":"jsonArrayElemMatchUtils.d.ts","sourceRoot":"","sources":["../../src/dialect/jsonArrayElemMatchUtils.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,GACjE,MAAM,EAAE,CAMV"}
@@ -1,24 +1,14 @@
1
+ import { isOperatorObject } from '../util/object.util.js';
1
2
  /**
2
- * Shared `$elemMatch` object expansion logic:
3
- * - for each field:
4
- * - if the value is an operator-object (object, non-array), expand each operator
5
- * - otherwise treat it as plain equality
3
+ * Expands an `$elemMatch` object into per-field conditions: a field whose value is an operator
4
+ * object contributes one condition per operator, and a plain value contributes an `$eq`.
6
5
  *
7
- * Dialects decide the actual SQL produced via the callbacks.
6
+ * Treating plain equality as `$eq` is what keeps `{ count: 5 }` and `{ count: { $eq: 5 } }`
7
+ * identical - they used to take different code paths and emit different SQL.
8
8
  */
9
- export function buildElemMatchConditions(match, onOperator, onEq) {
10
- const conditions = [];
11
- for (const [field, value] of Object.entries(match)) {
12
- if (value && typeof value === 'object' && !Array.isArray(value)) {
13
- const ops = value;
14
- for (const [op, opVal] of Object.entries(ops)) {
15
- conditions.push(onOperator(field, op, opVal));
16
- }
17
- }
18
- else {
19
- conditions.push(onEq(field, value));
20
- }
21
- }
22
- return conditions;
9
+ export function buildElemMatchConditions(match, onCondition) {
10
+ return Object.entries(match).flatMap(([field, value]) => isOperatorObject(value)
11
+ ? Object.entries(value).map(([op, opVal]) => onCondition(field, op, opVal))
12
+ : onCondition(field, '$eq', value));
23
13
  }
24
14
  //# sourceMappingURL=jsonArrayElemMatchUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsonArrayElemMatchUtils.js","sourceRoot":"","sources":["../../src/dialect/jsonArrayElemMatchUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAA8B,EAC9B,UAAiE,EACjE,IAA+C;IAE/C,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,GAAG,GAAG,KAAgC,CAAC;YAC7C,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"jsonArrayElemMatchUtils.js","sourceRoot":"","sources":["../../src/dialect/jsonArrayElemMatchUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAA8B,EAC9B,WAAkE;IAElE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CACtD,gBAAgB,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { FieldOptions } from '../type/index.js';
2
+ /**
3
+ * A `'$.a.b'` JSON path literal, each dot-separated segment escaped. `suffix` appends an accessor
4
+ * such as `[#]` or `[*]`. Shared across dialects unchanged: no dialect escapes a JSON path key
5
+ * differently from an ANSI string literal.
6
+ */
7
+ export declare function jsonPath(path: string, suffix?: string): string;
8
+ /**
9
+ * `FN(target, path, value, ...)` - the multi-pair JSON assignment shape shared by MySQL's
10
+ * `JSON_SET` and SQLite's `json_set`/`json_insert`. `pathSuffix` appends an accessor per key
11
+ * (SQLite's `[#]` append). Values bind in key order through `bindValue`, the caller's
12
+ * `jsonScalarParam` bound to its `QueryContext`.
13
+ */
14
+ export declare function jsonAssignCall(bindValue: (value: unknown) => string, fn: string, target: string, entries: Record<string, unknown>, pathSuffix?: string): string;
15
+ /** The `$set` target: a nullable column needs a `COALESCE` fallback to build on. */
16
+ export declare function jsonSetTarget(expr: string, field: FieldOptions | undefined, empty: string): string;
17
+ /**
18
+ * `FN(expr, path, ...)` - the multi-path JSON removal shape shared by MySQL's `JSON_REMOVE` and
19
+ * SQLite's `json_remove`, both of which take every path in a single call.
20
+ */
21
+ export declare function jsonRemoveCall(fn: string, expr: string, keys: readonly string[]): string;
22
+ /** `WHERE` is omitted for an empty `$elemMatch`, which asks only that the array has an element. */
23
+ export declare function jsonElemExists(from: string, conditions: readonly string[]): string;
24
+ //# sourceMappingURL=jsonSql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonSql.d.ts","sourceRoot":"","sources":["../../src/dialect/jsonSql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,MAAM,CAG1D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,EACrC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,SAAK,GACd,MAAM,CAGR;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAElG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAExF;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAGlF"}
@@ -0,0 +1,37 @@
1
+ import { escapeSingleQuotes } from '../util/ansiSqlLiteral.js';
2
+ /**
3
+ * A `'$.a.b'` JSON path literal, each dot-separated segment escaped. `suffix` appends an accessor
4
+ * such as `[#]` or `[*]`. Shared across dialects unchanged: no dialect escapes a JSON path key
5
+ * differently from an ANSI string literal.
6
+ */
7
+ export function jsonPath(path, suffix = '') {
8
+ const segments = path.split('.').map(escapeSingleQuotes).join('.');
9
+ return `'$.${segments}${suffix}'`;
10
+ }
11
+ /**
12
+ * `FN(target, path, value, ...)` - the multi-pair JSON assignment shape shared by MySQL's
13
+ * `JSON_SET` and SQLite's `json_set`/`json_insert`. `pathSuffix` appends an accessor per key
14
+ * (SQLite's `[#]` append). Values bind in key order through `bindValue`, the caller's
15
+ * `jsonScalarParam` bound to its `QueryContext`.
16
+ */
17
+ export function jsonAssignCall(bindValue, fn, target, entries, pathSuffix = '') {
18
+ const pairs = Object.entries(entries).map(([key, value]) => `${jsonPath(key, pathSuffix)}, ${bindValue(value)}`);
19
+ return `${fn}(${target}, ${pairs.join(', ')})`;
20
+ }
21
+ /** The `$set` target: a nullable column needs a `COALESCE` fallback to build on. */
22
+ export function jsonSetTarget(expr, field, empty) {
23
+ return field?.nullable === false ? expr : `COALESCE(${expr}, ${empty})`;
24
+ }
25
+ /**
26
+ * `FN(expr, path, ...)` - the multi-path JSON removal shape shared by MySQL's `JSON_REMOVE` and
27
+ * SQLite's `json_remove`, both of which take every path in a single call.
28
+ */
29
+ export function jsonRemoveCall(fn, expr, keys) {
30
+ return `${fn}(${expr}, ${keys.map((key) => jsonPath(key)).join(', ')})`;
31
+ }
32
+ /** `WHERE` is omitted for an empty `$elemMatch`, which asks only that the array has an element. */
33
+ export function jsonElemExists(from, conditions) {
34
+ const where = conditions.length ? ` WHERE ${conditions.join(' AND ')}` : '';
35
+ return `EXISTS (SELECT 1 FROM ${from}${where})`;
36
+ }
37
+ //# sourceMappingURL=jsonSql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonSql.js","sourceRoot":"","sources":["../../src/dialect/jsonSql.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,MAAM,GAAG,EAAE;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,OAAO,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAqC,EACrC,EAAU,EACV,MAAc,EACd,OAAgC,EAChC,UAAU,GAAG,EAAE;IAEf,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjH,OAAO,GAAG,EAAE,IAAI,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACjD,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAA+B,EAAE,KAAa;IACxF,OAAO,KAAK,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,KAAK,KAAK,GAAG,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,IAAY,EAAE,IAAuB;IAC9E,OAAO,GAAG,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1E,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,UAA6B;IACxE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,OAAO,yBAAyB,IAAI,GAAG,KAAK,GAAG,CAAC;AAClD,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { DialectFeatures, InsertIdSource, QueryContext, QuerySizeComparisonOps } from '../type/index.js';
1
+ import type { DialectFeatures, FieldOptions, InsertIdSource, QueryContext, QuerySizeComparisonOps } from '../type/index.js';
2
2
  import { AbstractSqlDialect } from './abstractSqlDialect.js';
3
3
  /**
4
4
  * Shared JSON-array / JSON-object operator implementation between MySQL and MariaDB.
@@ -7,11 +7,13 @@ import { AbstractSqlDialect } from './abstractSqlDialect.js';
7
7
  * - `$size` (JSON_LENGTH)
8
8
  * - `$all` (JSON_CONTAINS)
9
9
  * - `$elemMatch` (JSON_TABLE, or fast JSON_CONTAINS for the simple case)
10
+ * - the update operators `$set` (JSON_SET), `$unset` (JSON_REMOVE), `$push` (JSON_MERGE_PRESERVE)
11
+ * and `$pull` (JSON_REPLACE over JSON_TABLE)
10
12
  */
11
13
  export declare abstract class MysqlLikeSqlDialect extends AbstractSqlDialect {
12
14
  /** Default {@link DialectFeatures} for MySQL-compatible SQL dialects. */
13
15
  protected readonly featureDefaults: DialectFeatures;
14
- readonly quoteChar = "`";
16
+ readonly escapeIdChar = "`";
15
17
  readonly tableOptions = "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4";
16
18
  readonly beginTransactionCommand = "START TRANSACTION";
17
19
  readonly commitTransactionCommand = "COMMIT";
@@ -28,8 +30,38 @@ export declare abstract class MysqlLikeSqlDialect extends AbstractSqlDialect {
28
30
  protected numericCast(expr: string): string;
29
31
  protected ilikeExpr(f: string, ph: string): string;
30
32
  protected neExpr(field: string, ph: string): string;
33
+ /** How a surviving element is fed back into the array a `$pull` rebuilds. */
34
+ protected jsonPullElem(alias: string): string;
35
+ /** Condition keeping the elements a `$pull` does *not* remove, given the bound pulled value. */
36
+ protected jsonPullKeep(alias: string, operand: string): string;
37
+ /**
38
+ * `JSON_REPLACE` leaves an absent key (and a NULL column) untouched, which is what makes `$pull`
39
+ * a no-op there. The subquery reads the column, so its value binds exactly once.
40
+ */
41
+ protected jsonPullKey(ctx: QueryContext, expr: string, escapedCol: string, key: string, value: unknown): string;
42
+ /**
43
+ * Omitting the `COALESCE` on a NOT NULL column keeps MySQL's partial in-place JSON update
44
+ * applicable: it requires the target column as the direct `JSON_SET` input.
45
+ */
46
+ protected jsonSet(ctx: QueryContext, expr: string, set: Record<string, unknown>, field?: FieldOptions): string;
47
+ /**
48
+ * `JSON_MERGE_PRESERVE` concatenates arrays and creates absent keys, so every pushed key is
49
+ * handled in one call that references `expr` once - unlike `JSON_ARRAY_APPEND`, which needs a
50
+ * second reference for the array source and returns NULL on MariaDB for an absent key.
51
+ */
52
+ protected jsonPush(ctx: QueryContext, expr: string, push: Record<string, unknown>): string;
53
+ protected jsonUnset(_ctx: QueryContext, expr: string, unset: readonly string[]): string;
54
+ /**
55
+ * MySQL's `->`/`->>` take a full JSON path (`'$.a.b'`, never a bare key) and only apply to a
56
+ * column reference, so the whole dotted path goes into a single accessor instead of the base's
57
+ * chained `col->'a'->>'b'`, which the server rejects with "Invalid JSON path expression".
58
+ */
59
+ protected getJsonPathScalarExpr(escapedColumn: string, jsonPathStr: string): string;
60
+ protected getJsonPathJsonbExpr(escapedColumn: string, jsonPathStr: string): string;
31
61
  protected jsonAll(ctx: QueryContext, jsonField: string, value: unknown): string;
32
62
  protected jsonSize(ctx: QueryContext, jsonField: string, value: number | QuerySizeComparisonOps): string;
33
- protected jsonElemMatch(ctx: QueryContext, jsonField: string, match: Record<string, unknown>): string;
63
+ /** `JSON_TABLE` needs its columns declared upfront, so the object form maps `fields` to columns. */
64
+ protected jsonElemFrom(jsonField: string, fields: readonly string[]): string;
65
+ protected jsonElemRef(field?: string, asJson?: boolean): string;
34
66
  }
35
67
  //# sourceMappingURL=mysqlLikeSqlDialect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mysqlLikeSqlDialect.d.ts","sourceRoot":"","sources":["../../src/dialect/mysqlLikeSqlDialect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D;;;;;;;GAOG;AACH,8BAAsB,mBAAoB,SAAQ,kBAAkB;IAClE,yEAAyE;IACzE,mBAA4B,eAAe,EAAE,eAAe,CAc1D;IAEF,SAAkB,SAAS,OAAO;IAElC,SAAkB,YAAY,2CAA2C;IAEzE,SAAkB,uBAAuB,uBAAuB;IAEhE,SAAkB,wBAAwB,YAAY;IAEtD,SAAkB,0BAA0B,cAAc;IAE1D,SAAkB,sBAAsB,gBAAgB;IAExD,SAAkB,oBAAoB,sBAAsB;IAE5D,SAAkB,eAAe,cAAc;IAE/C,SAAkB,iBAAiB,kBAAkB;IAErD,SAAkB,iBAAiB,mBAAmB;IAEtD,SAAkB,cAAc,aAAa;IAI7C,SAAkB,cAAc,EAAE,cAAc,CAAa;IAE7D,SAAkB,aAAa,EAAE,MAAM,CAAS;IAEvC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtC;IAED,UAAmB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;IAED,UAAmB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE1D;IAED,UAAmB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAG3D;IAED,UAAmB,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAEvF;IAED,UAAmB,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,sBAAsB,GAAG,MAAM,CAKhH;IAED,UAAmB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAiC7G;CACF"}
1
+ {"version":3,"file":"mysqlLikeSqlDialect.d.ts","sourceRoot":"","sources":["../../src/dialect/mysqlLikeSqlDialect.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import SqlString from 'sqlstring';
2
- import { someKey } from '../util/index.js';
2
+ import { escapeSingleQuotes } from '../util/ansiSqlLiteral.js';
3
3
  import { AbstractSqlDialect } from './abstractSqlDialect.js';
4
- import { buildElemMatchConditions } from './jsonArrayElemMatchUtils.js';
4
+ import { jsonAssignCall, jsonPath, jsonRemoveCall, jsonSetTarget } from './jsonSql.js';
5
5
  /**
6
6
  * Shared JSON-array / JSON-object operator implementation between MySQL and MariaDB.
7
7
  *
@@ -9,6 +9,8 @@ import { buildElemMatchConditions } from './jsonArrayElemMatchUtils.js';
9
9
  * - `$size` (JSON_LENGTH)
10
10
  * - `$all` (JSON_CONTAINS)
11
11
  * - `$elemMatch` (JSON_TABLE, or fast JSON_CONTAINS for the simple case)
12
+ * - the update operators `$set` (JSON_SET), `$unset` (JSON_REMOVE), `$push` (JSON_MERGE_PRESERVE)
13
+ * and `$pull` (JSON_REPLACE over JSON_TABLE)
12
14
  */
13
15
  export class MysqlLikeSqlDialect extends AbstractSqlDialect {
14
16
  /** Default {@link DialectFeatures} for MySQL-compatible SQL dialects. */
@@ -27,7 +29,7 @@ export class MysqlLikeSqlDialect extends AbstractSqlDialect {
27
29
  supportsTimestamptz: false,
28
30
  defaultStringAsText: false,
29
31
  };
30
- quoteChar = '`';
32
+ escapeIdChar = '`';
31
33
  tableOptions = 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4';
32
34
  beginTransactionCommand = 'START TRANSACTION';
33
35
  commitTransactionCommand = 'COMMIT';
@@ -55,6 +57,53 @@ export class MysqlLikeSqlDialect extends AbstractSqlDialect {
55
57
  // MySQL/MariaDB null-safe inequality: true when values differ or one side is NULL.
56
58
  return `NOT (${field} <=> ${ph})`;
57
59
  }
60
+ /** How a surviving element is fed back into the array a `$pull` rebuilds. */
61
+ jsonPullElem(alias) {
62
+ return `${alias}.v`;
63
+ }
64
+ /** Condition keeping the elements a `$pull` does *not* remove, given the bound pulled value. */
65
+ jsonPullKeep(alias, operand) {
66
+ return `${alias}.v <> ${operand}`;
67
+ }
68
+ /**
69
+ * `JSON_REPLACE` leaves an absent key (and a NULL column) untouched, which is what makes `$pull`
70
+ * a no-op there. The subquery reads the column, so its value binds exactly once.
71
+ */
72
+ jsonPullKey(ctx, expr, escapedCol, key, value) {
73
+ const elements = `JSON_TABLE(${escapedCol}, ${jsonPath(key, '[*]')} COLUMNS (v JSON PATH '$')) uql_pull`;
74
+ const kept = `SELECT COALESCE(JSON_ARRAYAGG(${this.jsonPullElem('uql_pull')}), JSON_ARRAY()) FROM ${elements} WHERE ${this.jsonPullKeep('uql_pull', this.jsonScalarParam(ctx, value))}`;
75
+ return `JSON_REPLACE(${expr}, ${jsonPath(key)}, (${kept}))`;
76
+ }
77
+ /**
78
+ * Omitting the `COALESCE` on a NOT NULL column keeps MySQL's partial in-place JSON update
79
+ * applicable: it requires the target column as the direct `JSON_SET` input.
80
+ */
81
+ jsonSet(ctx, expr, set, field) {
82
+ return jsonAssignCall((value) => this.jsonScalarParam(ctx, value), 'JSON_SET', jsonSetTarget(expr, field, `'{}'`), set);
83
+ }
84
+ /**
85
+ * `JSON_MERGE_PRESERVE` concatenates arrays and creates absent keys, so every pushed key is
86
+ * handled in one call that references `expr` once - unlike `JSON_ARRAY_APPEND`, which needs a
87
+ * second reference for the array source and returns NULL on MariaDB for an absent key.
88
+ */
89
+ jsonPush(ctx, expr, push) {
90
+ const entries = Object.entries(push).map(([key, value]) => `'${escapeSingleQuotes(key)}', JSON_ARRAY(${this.jsonScalarParam(ctx, value)})`);
91
+ return `JSON_MERGE_PRESERVE(${expr}, JSON_OBJECT(${entries.join(', ')}))`;
92
+ }
93
+ jsonUnset(_ctx, expr, unset) {
94
+ return jsonRemoveCall('JSON_REMOVE', expr, unset);
95
+ }
96
+ /**
97
+ * MySQL's `->`/`->>` take a full JSON path (`'$.a.b'`, never a bare key) and only apply to a
98
+ * column reference, so the whole dotted path goes into a single accessor instead of the base's
99
+ * chained `col->'a'->>'b'`, which the server rejects with "Invalid JSON path expression".
100
+ */
101
+ getJsonPathScalarExpr(escapedColumn, jsonPathStr) {
102
+ return `(${escapedColumn}->>${jsonPath(jsonPathStr)})`;
103
+ }
104
+ getJsonPathJsonbExpr(escapedColumn, jsonPathStr) {
105
+ return `${escapedColumn}->${jsonPath(jsonPathStr)}`;
106
+ }
58
107
  jsonAll(ctx, jsonField, value) {
59
108
  return `JSON_CONTAINS(${jsonField}, ${this.addValue(ctx.values, JSON.stringify(value))})`;
60
109
  }
@@ -64,21 +113,18 @@ export class MysqlLikeSqlDialect extends AbstractSqlDialect {
64
113
  ctx.pushValue(...tmpCtx.values);
65
114
  return tmpCtx.sql;
66
115
  }
67
- jsonElemMatch(ctx, jsonField, match) {
68
- const isPrimitiveElement = someKey(match, (k) => k.startsWith('$'));
69
- if (isPrimitiveElement) {
70
- const ops = Object.entries(match);
71
- const conditions = ops.map(([op, opVal]) => this.buildJsonFieldCondition(ctx, () => 'jt.elem_text', '', op, opVal));
72
- return `EXISTS (SELECT 1 FROM JSON_TABLE(${jsonField}, '$[*]' COLUMNS (elem_text TEXT PATH '$')) AS jt WHERE ${conditions.join(' AND ')})`;
73
- }
74
- const hasOperators = Object.values(match).some((v) => v && typeof v === 'object' && !Array.isArray(v) && someKey(v, (k) => k.startsWith('$')));
75
- if (!hasOperators) {
76
- return `JSON_CONTAINS(${jsonField}, ${this.addValue(ctx.values, JSON.stringify([match]))})`;
77
- }
78
- const fields = Object.keys(match);
79
- const columns = fields.map((f) => `${this.escapeId(f, true)} TEXT PATH '$.${this.escapeJsonKey(f)}'`).join(', ');
80
- const conditions = buildElemMatchConditions(match, (field, op, opVal) => this.buildJsonFieldCondition(ctx, (f) => `jt.${this.escapeId(f, true)}`, field, op, opVal), (field, val) => `jt.${this.escapeId(field, true)} = ${this.addValue(ctx.values, val)}`);
81
- return `EXISTS (SELECT 1 FROM JSON_TABLE(${jsonField}, '$[*]' COLUMNS (${columns})) AS jt WHERE ${conditions.join(' AND ')})`;
116
+ /** `JSON_TABLE` needs its columns declared upfront, so the object form maps `fields` to columns. */
117
+ jsonElemFrom(jsonField, fields) {
118
+ const columns = fields.length
119
+ ? fields.map((field) => `${this.escapeId(field, true)} TEXT PATH ${jsonPath(field)}`).join(', ')
120
+ : `elem_text TEXT PATH '$'`;
121
+ return `JSON_TABLE(${jsonField}, '$[*]' COLUMNS (${columns})) AS jt`;
122
+ }
123
+ jsonElemRef(field, asJson = false) {
124
+ const ref = field === undefined ? 'jt.elem_text' : `jt.${this.escapeId(field, true)}`;
125
+ // `JSON_TABLE` columns stay `TEXT` so the string operators keep working; the JSON form reads
126
+ // that text back as JSON.
127
+ return asJson ? this.jsonCast(ref) : ref;
82
128
  }
83
129
  }
84
130
  //# sourceMappingURL=mysqlLikeSqlDialect.js.map