joist-core 2.1.0 → 2.2.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 (160) hide show
  1. package/build/ConditionBuilder.d.ts +1 -22
  2. package/build/ConditionBuilder.d.ts.map +1 -1
  3. package/build/ConditionBuilder.js +6 -72
  4. package/build/ConditionBuilder.js.map +1 -1
  5. package/build/EntityFilter.d.ts +2 -0
  6. package/build/EntityFilter.d.ts.map +1 -1
  7. package/build/EntityGraphQLFilter.d.ts +2 -0
  8. package/build/EntityGraphQLFilter.d.ts.map +1 -1
  9. package/build/EntityGraphQLFilter.js.map +1 -1
  10. package/build/EntityManager.d.ts +5 -0
  11. package/build/EntityManager.d.ts.map +1 -1
  12. package/build/EntityManager.js +59 -29
  13. package/build/EntityManager.js.map +1 -1
  14. package/build/EntityMetadata.d.ts +2 -0
  15. package/build/EntityMetadata.d.ts.map +1 -1
  16. package/build/EntityMetadata.js.map +1 -1
  17. package/build/InstanceData.d.ts +7 -1
  18. package/build/InstanceData.d.ts.map +1 -1
  19. package/build/InstanceData.js +36 -7
  20. package/build/InstanceData.js.map +1 -1
  21. package/build/IsLoadedCache.d.ts +1 -1
  22. package/build/IsLoadedCache.d.ts.map +1 -1
  23. package/build/IsLoadedCache.js +6 -1
  24. package/build/IsLoadedCache.js.map +1 -1
  25. package/build/JoinRows.d.ts +1 -1
  26. package/build/JoinRows.js +6 -1
  27. package/build/JoinRows.js.map +1 -1
  28. package/build/PluginManager.d.ts +12 -0
  29. package/build/PluginManager.d.ts.map +1 -1
  30. package/build/PluginManager.js +18 -2
  31. package/build/PluginManager.js.map +1 -1
  32. package/build/QueryParser.collectionJoins.d.ts +27 -0
  33. package/build/QueryParser.collectionJoins.d.ts.map +1 -0
  34. package/build/QueryParser.collectionJoins.js +460 -0
  35. package/build/QueryParser.collectionJoins.js.map +1 -0
  36. package/build/QueryParser.collectionJoins.test.d.ts +2 -0
  37. package/build/QueryParser.collectionJoins.test.d.ts.map +1 -0
  38. package/build/QueryParser.collectionJoins.test.js +772 -0
  39. package/build/QueryParser.collectionJoins.test.js.map +1 -0
  40. package/build/QueryParser.d.ts +62 -9
  41. package/build/QueryParser.d.ts.map +1 -1
  42. package/build/QueryParser.js +39 -33
  43. package/build/QueryParser.js.map +1 -1
  44. package/build/QueryParser.pruning.d.ts +4 -2
  45. package/build/QueryParser.pruning.d.ts.map +1 -1
  46. package/build/QueryParser.pruning.js +80 -10
  47. package/build/QueryParser.pruning.js.map +1 -1
  48. package/build/QueryParser.pruning.test.d.ts +2 -0
  49. package/build/QueryParser.pruning.test.d.ts.map +1 -0
  50. package/build/QueryParser.pruning.test.js +106 -0
  51. package/build/QueryParser.pruning.test.js.map +1 -0
  52. package/build/QueryVisitor.d.ts.map +1 -1
  53. package/build/QueryVisitor.js +22 -0
  54. package/build/QueryVisitor.js.map +1 -1
  55. package/build/ReactionsManager.js +2 -2
  56. package/build/batchloaders/BatchLoader.d.ts.map +1 -1
  57. package/build/batchloaders/BatchLoader.js +4 -1
  58. package/build/batchloaders/BatchLoader.js.map +1 -1
  59. package/build/batchloaders/manyToManyBatchLoader.js +3 -1
  60. package/build/batchloaders/manyToManyBatchLoader.js.map +1 -1
  61. package/build/batchloaders/recursiveM2mBatchLoader.d.ts.map +1 -1
  62. package/build/batchloaders/recursiveM2mBatchLoader.js +3 -1
  63. package/build/batchloaders/recursiveM2mBatchLoader.js.map +1 -1
  64. package/build/changes.d.ts.map +1 -1
  65. package/build/changes.js +1 -4
  66. package/build/changes.js.map +1 -1
  67. package/build/config.d.ts.map +1 -1
  68. package/build/config.js +18 -10
  69. package/build/config.js.map +1 -1
  70. package/build/configure.js +2 -2
  71. package/build/dataloaders/findCountDataLoader.js +2 -2
  72. package/build/dataloaders/findCountDataLoader.js.map +1 -1
  73. package/build/dataloaders/findDataLoader.d.ts.map +1 -1
  74. package/build/dataloaders/findDataLoader.js +0 -7
  75. package/build/dataloaders/findDataLoader.js.map +1 -1
  76. package/build/dataloaders/findIdsDataLoader.js +2 -2
  77. package/build/dataloaders/findIdsDataLoader.js.map +1 -1
  78. package/build/dataloaders/findOrCreateDataLoader.d.ts.map +1 -1
  79. package/build/dataloaders/findOrCreateDataLoader.js +6 -1
  80. package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
  81. package/build/defaults.d.ts.map +1 -1
  82. package/build/defaults.js +49 -42
  83. package/build/defaults.js.map +1 -1
  84. package/build/drivers/buildRawQuery.d.ts.map +1 -1
  85. package/build/drivers/buildRawQuery.js +3 -2
  86. package/build/drivers/buildRawQuery.js.map +1 -1
  87. package/build/drivers/buildUtils.d.ts +7 -2
  88. package/build/drivers/buildUtils.d.ts.map +1 -1
  89. package/build/drivers/buildUtils.js +14 -5
  90. package/build/drivers/buildUtils.js.map +1 -1
  91. package/build/fields.d.ts.map +1 -1
  92. package/build/fields.js +16 -7
  93. package/build/fields.js.map +1 -1
  94. package/build/index.d.ts +2 -1
  95. package/build/index.d.ts.map +1 -1
  96. package/build/index.js +7 -5
  97. package/build/index.js.map +1 -1
  98. package/build/json.d.ts +3 -3
  99. package/build/json.d.ts.map +1 -1
  100. package/build/json.js +4 -4
  101. package/build/json.js.map +1 -1
  102. package/build/loadHints.d.ts +4 -4
  103. package/build/loadHints.d.ts.map +1 -1
  104. package/build/loadLens.js +1 -1
  105. package/build/loadLens.js.map +1 -1
  106. package/build/preloading/JsonAggregatePreloader.js +6 -2
  107. package/build/preloading/JsonAggregatePreloader.js.map +1 -1
  108. package/build/reactiveHints.d.ts +24 -7
  109. package/build/reactiveHints.d.ts.map +1 -1
  110. package/build/reactiveHints.js +45 -28
  111. package/build/reactiveHints.js.map +1 -1
  112. package/build/relations/AbstractRelationImpl.d.ts +7 -2
  113. package/build/relations/AbstractRelationImpl.d.ts.map +1 -1
  114. package/build/relations/AbstractRelationImpl.js.map +1 -1
  115. package/build/relations/AsyncProperty.d.ts +36 -0
  116. package/build/relations/AsyncProperty.d.ts.map +1 -0
  117. package/build/relations/AsyncProperty.js +80 -0
  118. package/build/relations/AsyncProperty.js.map +1 -0
  119. package/build/relations/{ReactiveQueryField.d.ts → AsyncReactiveField.d.ts} +10 -10
  120. package/build/relations/AsyncReactiveField.d.ts.map +1 -0
  121. package/build/relations/{ReactiveQueryField.js → AsyncReactiveField.js} +19 -19
  122. package/build/relations/{ReactiveQueryField.js.map → AsyncReactiveField.js.map} +1 -1
  123. package/build/relations/ReactiveField.d.ts +7 -9
  124. package/build/relations/ReactiveField.d.ts.map +1 -1
  125. package/build/relations/ReactiveField.js +5 -10
  126. package/build/relations/ReactiveField.js.map +1 -1
  127. package/build/relations/ReactiveGetter.d.ts +5 -5
  128. package/build/relations/ReactiveGetter.d.ts.map +1 -1
  129. package/build/relations/ReactiveGetter.js +3 -3
  130. package/build/relations/ReactiveGetter.js.map +1 -1
  131. package/build/relations/ReactiveReference.d.ts +2 -2
  132. package/build/relations/ReactiveReference.d.ts.map +1 -1
  133. package/build/relations/ReactiveReference.js +100 -36
  134. package/build/relations/ReactiveReference.js.map +1 -1
  135. package/build/relations/{hasAsyncProperty.d.ts → hasProperty.d.ts} +12 -12
  136. package/build/relations/hasProperty.d.ts.map +1 -0
  137. package/build/relations/{hasAsyncProperty.js → hasProperty.js} +20 -20
  138. package/build/relations/hasProperty.js.map +1 -0
  139. package/build/relations/index.d.ts +3 -2
  140. package/build/relations/index.d.ts.map +1 -1
  141. package/build/relations/index.js +16 -11
  142. package/build/relations/index.js.map +1 -1
  143. package/build/resurrection.d.ts +10 -0
  144. package/build/resurrection.d.ts.map +1 -0
  145. package/build/resurrection.js +93 -0
  146. package/build/resurrection.js.map +1 -0
  147. package/build/rules.js +3 -3
  148. package/build/trusted.d.ts +1 -1
  149. package/build/trusted.d.ts.map +1 -1
  150. package/build/trusted.js +1 -1
  151. package/build/trusted.js.map +1 -1
  152. package/build/upsert.d.ts.map +1 -1
  153. package/build/upsert.js +26 -10
  154. package/build/upsert.js.map +1 -1
  155. package/build/withLoaded.js +5 -5
  156. package/build/withLoaded.js.map +1 -1
  157. package/package.json +9 -9
  158. package/build/relations/ReactiveQueryField.d.ts.map +0 -1
  159. package/build/relations/hasAsyncProperty.d.ts.map +0 -1
  160. package/build/relations/hasAsyncProperty.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryParser.collectionJoins.test.js","sourceRoot":"","sources":["../src/QueryParser.collectionJoins.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ExpressionFilter, OrderBy, ValueFilter } from "./EntityFilter";
2
- import { EntityMetadata } from "./EntityMetadata";
2
+ import { type EntityMetadata } from "./EntityMetadata";
3
3
  import { Column } from "./index";
4
4
  /** A tree of ANDs/ORs with conditions or nested conditions. */
5
5
  export interface ParsedExpressionFilter {
@@ -8,7 +8,7 @@ export interface ParsedExpressionFilter {
8
8
  conditions: ParsedExpressionCondition[];
9
9
  }
10
10
  /** A condition or nested condition in a `ParsedExpressionFilter`. */
11
- export type ParsedExpressionCondition = ParsedExpressionFilter | ColumnCondition | RawCondition;
11
+ export type ParsedExpressionCondition = ParsedExpressionFilter | ColumnCondition | RawCondition | ExistsCondition;
12
12
  export interface ColumnCondition {
13
13
  kind: "column";
14
14
  alias: string;
@@ -33,6 +33,16 @@ export interface RawCondition {
33
33
  /** Used to mark system-added conditions (like `LATERAL JOIN` conditions), which can be ignored when pruning unused joins. */
34
34
  pruneable: boolean;
35
35
  }
36
+ /** An EXISTS or NOT EXISTS subquery condition. */
37
+ export interface ExistsCondition {
38
+ kind: "exists";
39
+ /** When true, renders as NOT EXISTS. */
40
+ negate: boolean;
41
+ /** The subquery: SELECT 1 FROM child WHERE correlation AND filter. */
42
+ subquery: ParsedFindQuery;
43
+ /** Outer aliases referenced by the correlation predicate, for join pruning. */
44
+ outerAliases: string[];
45
+ }
36
46
  /** A marker condition for alias methods to indicate they should be skipped/pruned. */
37
47
  export declare const skipCondition: ColumnCondition;
38
48
  export interface PrimaryTable {
@@ -47,6 +57,35 @@ export interface JoinTable {
47
57
  col1: string;
48
58
  col2: string;
49
59
  distinct?: boolean;
60
+ /**
61
+ * Metadata used by `optimizeCollectionJoins` to rewrite collection joins into EXISTS.
62
+ *
63
+ * I.e. for `Author.books.reviews`:
64
+ * ```sql
65
+ * authors a
66
+ * LEFT JOIN books b ON a.id = b.author_id
67
+ * LEFT JOIN book_reviews br ON b.id = br.book_id
68
+ * ```
69
+ * `books b` has `parentAlias: "a"` and `rootAlias: "b"`, while `book_reviews br` has
70
+ * `parentAlias: "b"` and `rootAlias: "br"`.
71
+ *
72
+ * I.e. for `Author.tags`, the m2m join table is the collection root:
73
+ * ```sql
74
+ * authors a
75
+ * LEFT JOIN authors_to_tags att ON a.id = att.author_id
76
+ * LEFT JOIN tags t ON att.tag_id = t.id
77
+ * ```
78
+ * `authors_to_tags att` has `alias: "att"` and `rootAlias: "att"`, while `tags t` has `alias: "t"`
79
+ * but still has `rootAlias: "att"` because it belongs to the m2m subtree rooted at the join table.
80
+ */
81
+ collection?: {
82
+ /** The collection relation type, i.e. `o2m` for `Author.books`, or `m2m` for `Author.tags`. */
83
+ kind: "o2m" | "m2m";
84
+ /** The alias that owns this collection path, i.e. `a` for `Author.books`, or `att` for `Author.tags -> tags`. */
85
+ parentAlias: string;
86
+ /** The top-level alias in this collection subtree, i.e. `b` for `Author.books.reviews`, or `att` for `Author.tags`. */
87
+ rootAlias: string;
88
+ };
50
89
  }
51
90
  /**
52
91
  * Creates a `CROSS JOIN`, currently used for our `em.find` batching.
@@ -127,7 +166,7 @@ export interface ParsedGroupBy {
127
166
  alias: string;
128
167
  column: string;
129
168
  }
130
- type ParsedSelect = string | ParsedSelectWithBindings;
169
+ export type ParsedSelect = string | ParsedSelectWithBindings;
131
170
  type ParsedSelectWithBindings = {
132
171
  sql: string;
133
172
  bindings: any[];
@@ -138,11 +177,6 @@ export interface ParsedFindQuery {
138
177
  selects: ParsedSelect[];
139
178
  /** The primary table plus any joins. */
140
179
  tables: ParsedTable[];
141
- /** Any cross lateral joins, where the `joins: string[]` has the full join as raw SQL; currently only for preloading. */
142
- lateralJoins?: {
143
- joins: string[];
144
- bindings: any[];
145
- };
146
180
  /** The query's conditions. */
147
181
  condition?: ParsedExpressionFilter;
148
182
  /** Extremely optional group bys; we generally don't support adhoc/aggregate queries, but the auto-batching infra uses these. */
@@ -152,14 +186,33 @@ export interface ParsedFindQuery {
152
186
  /** Optional CTE to prefix to the query, i.e. for recursive relations. */
153
187
  ctes?: ParsedCteClause[];
154
188
  }
155
- /** Parses an `em.find` filter into a `ParsedFindQuery` AST for simpler execution. */
189
+ /**
190
+ * Parses an `em.find` filter into a logical `ParsedFindQuery` AST, leaving optimization/pruning to callers.
191
+ *
192
+ * The main execution flow is:
193
+ * parseFindQuery -> beforeFind plugins -> optimizeCollectionJoins -> pruneUnusedJoins -> execute SQL.
194
+ */
156
195
  export declare function parseFindQuery(meta: EntityMetadata, filter: any, opts?: {
157
196
  conditions?: ExpressionFilter;
158
197
  orderBy?: any;
159
198
  pruneJoins?: boolean;
160
199
  keepAliases?: string[];
161
200
  softDeletes?: "include" | "exclude";
201
+ allowMultipleLeftJoins?: boolean;
202
+ optimizeJoinsToExists?: boolean;
162
203
  }): ParsedFindQuery;
204
+ /**
205
+ * Look for conditions doing `some_column IS NULL` in an outer join that
206
+ * need an `id IS NOT NULL` to make sure they don't match inadvertently on
207
+ * the child row simply not existing.
208
+ *
209
+ * Note: Instead of injecting an extra `id IS NOT NULL` condition, I had tried
210
+ * using all INNER JOINs and flipping joins to OUTER only if the user explicit
211
+ * had `id IS NULL` in their filter, but that didn't work for queries that wanted
212
+ * to do an `OR` across two different children (which queries both children being
213
+ * OUTER JOINs, and detecting that case seemed complicated).
214
+ */
215
+ export declare function maybeAddIdNotNulls(query: ParsedFindQuery): void;
163
216
  /** Returns the `a` from `"a".*`. */
164
217
  export declare function parseAlias(alias: string): string;
165
218
  /** An ADT version of `EntityFilter`. */
@@ -1 +1 @@
1
- {"version":3,"file":"QueryParser.d.ts","sourceRoot":"","sources":["../src/QueryParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryParser.d.ts","sourceRoot":"","sources":["../src/QueryParser.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.skipCondition = void 0;
4
4
  exports.parseFindQuery = parseFindQuery;
5
+ exports.maybeAddIdNotNulls = maybeAddIdNotNulls;
5
6
  exports.parseAlias = parseAlias;
6
7
  exports.parseEntityFilter = parseEntityFilter;
7
8
  exports.parseValueFilter = parseValueFilter;
@@ -29,13 +30,18 @@ exports.skipCondition = {
29
30
  dbType: "skip",
30
31
  cond: undefined,
31
32
  };
32
- /** Parses an `em.find` filter into a `ParsedFindQuery` AST for simpler execution. */
33
+ /**
34
+ * Parses an `em.find` filter into a logical `ParsedFindQuery` AST, leaving optimization/pruning to callers.
35
+ *
36
+ * The main execution flow is:
37
+ * parseFindQuery -> beforeFind plugins -> optimizeCollectionJoins -> pruneUnusedJoins -> execute SQL.
38
+ */
33
39
  function parseFindQuery(meta, filter, opts = {}) {
34
40
  const selects = [];
35
41
  const tables = [];
36
42
  const orderBys = [];
37
43
  const query = { selects, tables, orderBys };
38
- const { orderBy = undefined, conditions: optsExpression = undefined, softDeletes = "exclude", pruneJoins = true, keepAliases = [], } = opts;
44
+ const { orderBy = undefined, conditions: optsExpression = undefined, softDeletes = "exclude", pruneJoins = false, keepAliases = [], } = opts;
39
45
  const cb = new index_1.ConditionBuilder();
40
46
  const aliases = {};
41
47
  function getAlias(tableName) {
@@ -44,7 +50,7 @@ function parseFindQuery(meta, filter, opts = {}) {
44
50
  aliases[abbrev] = i + 1;
45
51
  return i === 0 ? abbrev : `${abbrev}${i}`;
46
52
  }
47
- function maybeAddNotSoftDeleted(meta, alias) {
53
+ function addSoftDeleteCondition(meta, alias) {
48
54
  if (filterSoftDeletes(meta, softDeletes)) {
49
55
  const column = meta.allFields[(0, EntityMetadata_1.getBaseMeta)(meta).timestampFields.deletedAt].serde?.columns[0];
50
56
  cb.addSimpleCondition({
@@ -65,7 +71,7 @@ function parseFindQuery(meta, filter, opts = {}) {
65
71
  }
66
72
  if (join === "primary") {
67
73
  tables.push({ alias, table: meta.tableName, join });
68
- addTablePerClassJoinsAndClassTag(query, meta, alias, true);
74
+ addTablePerClassJoinsAndClassTag({ selects, tables, orderBys }, meta, alias, true);
69
75
  }
70
76
  else if (meta.inheritanceType === "cti" && fieldName && !(fieldName in meta.fields)) {
71
77
  // For cti, our meta might be a subtype while the FK is actually on the base table. This should only be the case
@@ -97,12 +103,12 @@ function parseFindQuery(meta, filter, opts = {}) {
97
103
  else {
98
104
  tables.push({ alias, table: meta.tableName, join, col1, col2 });
99
105
  // Maybe only do this if we're the primary, or have a field that needs it?
100
- addTablePerClassJoinsAndClassTag(query, meta, alias, false);
106
+ addTablePerClassJoinsAndClassTag({ selects, tables, orderBys }, meta, alias, false);
101
107
  }
102
108
  if (needsStiDiscriminator(meta)) {
103
109
  addStiSubtypeFilter(cb, meta, alias);
104
110
  }
105
- maybeAddNotSoftDeleted(meta, alias);
111
+ addSoftDeleteCondition(meta, alias);
106
112
  // The user's locally declared aliases, i.e. `const [a, b] = aliases(Author, Book)`,
107
113
  // aren't guaranteed to line up with the aliases we've assigned internally, like `a`
108
114
  // might actually be `a1` if there are two `authors` tables in the query, so push the
@@ -240,62 +246,62 @@ function parseFindQuery(meta, filter, opts = {}) {
240
246
  addTable(field.otherMetadata(), a, "outer", (0, keywords_1.kqDot)(alias, "id"), (0, keywords_1.kqDot)(a, otherColumn), ef.subFilter[key], field.otherFieldName);
241
247
  }
242
248
  else if (field.kind === "o2m") {
243
- const a = getAlias(field.otherMetadata().tableName);
244
- const otherField = field.otherMetadata().allFields[field.otherFieldName];
249
+ const otherMeta = field.otherMetadata();
250
+ const otherField = otherMeta.allFields[field.otherFieldName];
245
251
  let otherColumn = otherField.serde.columns[0].columnName;
246
- // If the other field is a poly, we need to find the right column
247
252
  if (otherField.kind === "poly") {
248
- // For a subcomponent that matches field's metadata
249
253
  const otherComponent = otherField.components.find((c) => c.otherMetadata() === meta) ??
250
254
  (0, utils_1.fail)(`No poly component found for ${otherField.fieldName}`);
251
255
  otherColumn = otherComponent.columnName;
252
256
  }
253
- addTable(field.otherMetadata(), a, "outer", (0, keywords_1.kqDot)(alias, "id"), (0, keywords_1.kqDot)(a, otherColumn), ef.subFilter[key], field.otherFieldName);
257
+ const isCtiBaseFk = otherMeta.inheritanceType === "cti" && field.otherFieldName && !(field.otherFieldName in otherMeta.fields);
258
+ const a = getAlias(otherMeta.tableName);
259
+ addTable(otherMeta, a, "outer", (0, keywords_1.kqDot)(alias, "id"), (0, keywords_1.kqDot)(a, otherColumn), ef.subFilter[key], field.otherFieldName);
260
+ if (!isCtiBaseFk) {
261
+ const table = tables.find((t) => t.alias === a);
262
+ if (table && (table.join === "inner" || table.join === "outer")) {
263
+ table.collection = { parentAlias: alias, rootAlias: a, kind: "o2m" };
264
+ }
265
+ }
254
266
  }
255
267
  else if (field.kind === "m2m") {
256
- // Always join into the m2m table
268
+ const sub = ef.subFilter[key];
269
+ const f = parseEntityFilter(field.otherMetadata(), sub);
270
+ if (!f && !(0, Aliases_1.isAlias)(sub))
271
+ return;
257
272
  const ja = getAlias(field.joinTableName);
258
273
  tables.push({
259
- alias: ja,
260
274
  join: "outer",
275
+ alias: ja,
261
276
  table: field.joinTableName,
262
277
  col1: (0, keywords_1.kqDot)(alias, "id"),
263
278
  col2: (0, keywords_1.kqDot)(ja, field.columnNames[0]),
279
+ collection: { parentAlias: alias, rootAlias: ja, kind: "m2m" },
264
280
  });
265
- // But conditionally join into the alias table
266
- const sub = ef.subFilter[key];
267
- if ((0, Aliases_1.isAlias)(sub)) {
281
+ if ((0, Aliases_1.isAlias)(sub) || f?.kind === "join" || filterSoftDeletes(field.otherMetadata(), softDeletes)) {
268
282
  const a = getAlias(field.otherMetadata().tableName);
269
283
  addTable(field.otherMetadata(), a, "outer", (0, keywords_1.kqDot)(ja, field.columnNames[1]), (0, keywords_1.kqDot)(a, "id"), sub);
284
+ const table = tables.find((t) => t.alias === a);
285
+ if (table && (table.join === "inner" || table.join === "outer")) {
286
+ table.collection = { parentAlias: ja, rootAlias: ja, kind: "m2m" };
287
+ }
270
288
  }
271
- const f = parseEntityFilter(field.otherMetadata(), sub);
272
- // Probe the filter and see if it's just an id, if so we can avoid the join
273
- if (!f) {
274
- // skip
275
- }
276
- else if (f.kind === "join" || filterSoftDeletes(field.otherMetadata(), softDeletes)) {
277
- const a = getAlias(field.otherMetadata().tableName);
278
- addTable(field.otherMetadata(), a, "outer", (0, keywords_1.kqDot)(ja, field.columnNames[1]), (0, keywords_1.kqDot)(a, "id"), ef.subFilter[key]);
279
- }
280
- else {
281
- const meta = field.otherMetadata();
282
- // We normally don't have `columns` for m2m fields, b/c they don't go through normal serde
283
- // codepaths, so make one up to leverage the existing `mapToDb` function.
289
+ else if (f) {
290
+ const otherMeta = field.otherMetadata();
284
291
  const column = {
285
292
  columnName: field.columnNames[1],
286
- dbType: meta.idDbType,
293
+ dbType: otherMeta.idDbType,
287
294
  mapToDb(value) {
288
- // Check for `typeof value === number` in case this is a new entity, and we've been given the nilIdValue
289
295
  return value === null || isNilIdValue(value)
290
296
  ? value
291
- : (0, index_1.keyToNumber)(meta, (0, index_1.maybeResolveReferenceToId)(value));
297
+ : (0, index_1.keyToNumber)(otherMeta, (0, index_1.maybeResolveReferenceToId)(value));
292
298
  },
293
299
  };
294
300
  cb.addSimpleCondition({
295
301
  kind: "column",
296
302
  alias: ja,
297
303
  column: field.columnNames[1],
298
- dbType: meta.idDbType,
304
+ dbType: otherMeta.idDbType,
299
305
  cond: mapToDb(column, f),
300
306
  });
301
307
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryParser.js","sourceRoot":"","sources":["../src/QueryParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryParser.js","sourceRoot":"","sources":["../src/QueryParser.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- import { ColumnCondition, ParsedExpressionFilter, ParsedFindQuery, RawCondition } from "./QueryParser";
1
+ import { ColumnCondition, ExistsCondition, ParsedExpressionFilter, ParsedFindQuery, RawCondition } from "./QueryParser";
2
2
  export declare function pruneUnusedJoins(parsed: ParsedFindQuery, keepAliases: string[]): void;
3
+ /** Returns true if a raw select expression references `alias.column` or the whole-row `alias`. */
4
+ export declare function selectReferencesAlias(select: string, alias: string): boolean;
3
5
  /** Pulls out a flat list of all `ColumnCondition`s from a `ParsedExpressionFilter` tree. */
4
- export declare function deepFindConditions(condition: ParsedExpressionFilter | undefined, filterPruneable: boolean): (ColumnCondition | RawCondition)[];
6
+ export declare function deepFindConditions(condition: ParsedExpressionFilter | undefined, filterPruneable: boolean): (ColumnCondition | RawCondition | ExistsCondition)[];
5
7
  //# sourceMappingURL=QueryParser.pruning.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryParser.pruning.d.ts","sourceRoot":"","sources":["../src/QueryParser.pruning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,eAAe,EAAE,YAAY,EAAc,MAAM,eAAe,CAAC;AAInH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAgErF;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,sBAAsB,GAAG,SAAS,EAC7C,eAAe,EAAE,OAAO,GACvB,CAAC,eAAe,GAAG,YAAY,CAAC,EAAE,CAgBpC"}
1
+ {"version":3,"file":"QueryParser.pruning.d.ts","sourceRoot":"","sources":["../src/QueryParser.pruning.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EAEf,sBAAsB,EACtB,eAAe,EACf,YAAY,EAEb,MAAM,eAAe,CAAC;AAIvB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CA2ErF;AAgBD,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAY5E;AAoCD,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,sBAAsB,GAAG,SAAS,EAC7C,eAAe,EAAE,OAAO,GACvB,CAAC,eAAe,GAAG,YAAY,GAAG,eAAe,CAAC,EAAE,CAkBtD"}