@_linked/core 2.4.0 → 2.5.0-next.20260403151718

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 (43) hide show
  1. package/CHANGELOG.md +1 -45
  2. package/README.md +7 -5
  3. package/lib/cjs/expressions/ExpressionNode.d.ts +0 -44
  4. package/lib/cjs/expressions/ExpressionNode.js +12 -78
  5. package/lib/cjs/expressions/ExpressionNode.js.map +1 -1
  6. package/lib/cjs/queries/FieldSet.d.ts +8 -0
  7. package/lib/cjs/queries/FieldSet.js +29 -0
  8. package/lib/cjs/queries/FieldSet.js.map +1 -1
  9. package/lib/cjs/queries/IRCanonicalize.d.ts +25 -5
  10. package/lib/cjs/queries/IRCanonicalize.js +103 -8
  11. package/lib/cjs/queries/IRCanonicalize.js.map +1 -1
  12. package/lib/cjs/queries/IRDesugar.d.ts +28 -8
  13. package/lib/cjs/queries/IRDesugar.js +59 -8
  14. package/lib/cjs/queries/IRDesugar.js.map +1 -1
  15. package/lib/cjs/queries/IRLower.js +92 -50
  16. package/lib/cjs/queries/IRLower.js.map +1 -1
  17. package/lib/cjs/queries/SelectQuery.d.ts +45 -14
  18. package/lib/cjs/queries/SelectQuery.js +105 -136
  19. package/lib/cjs/queries/SelectQuery.js.map +1 -1
  20. package/lib/cjs/test-helpers/query-fixtures.d.ts +1 -19
  21. package/lib/cjs/test-helpers/query-fixtures.js +0 -7
  22. package/lib/cjs/test-helpers/query-fixtures.js.map +1 -1
  23. package/lib/esm/expressions/ExpressionNode.d.ts +0 -44
  24. package/lib/esm/expressions/ExpressionNode.js +11 -74
  25. package/lib/esm/expressions/ExpressionNode.js.map +1 -1
  26. package/lib/esm/queries/FieldSet.d.ts +8 -0
  27. package/lib/esm/queries/FieldSet.js +29 -0
  28. package/lib/esm/queries/FieldSet.js.map +1 -1
  29. package/lib/esm/queries/IRCanonicalize.d.ts +25 -5
  30. package/lib/esm/queries/IRCanonicalize.js +103 -8
  31. package/lib/esm/queries/IRCanonicalize.js.map +1 -1
  32. package/lib/esm/queries/IRDesugar.d.ts +28 -8
  33. package/lib/esm/queries/IRDesugar.js +59 -8
  34. package/lib/esm/queries/IRDesugar.js.map +1 -1
  35. package/lib/esm/queries/IRLower.js +93 -51
  36. package/lib/esm/queries/IRLower.js.map +1 -1
  37. package/lib/esm/queries/SelectQuery.d.ts +45 -14
  38. package/lib/esm/queries/SelectQuery.js +103 -136
  39. package/lib/esm/queries/SelectQuery.js.map +1 -1
  40. package/lib/esm/test-helpers/query-fixtures.d.ts +1 -19
  41. package/lib/esm/test-helpers/query-fixtures.js +0 -7
  42. package/lib/esm/test-helpers/query-fixtures.js.map +1 -1
  43. package/package.json +2 -2
@@ -1,19 +1,114 @@
1
+ import { WhereMethods } from './SelectQuery.js';
2
+ const toComparison = (comparison) => {
3
+ return {
4
+ kind: 'where_binary',
5
+ operator: comparison.operator,
6
+ left: comparison.left,
7
+ right: comparison.right,
8
+ };
9
+ };
10
+ const isDesugaredWhere = (arg) => {
11
+ return (typeof arg === 'object' &&
12
+ !!arg &&
13
+ 'kind' in arg &&
14
+ (arg.kind === 'where_comparison' ||
15
+ arg.kind === 'where_boolean'));
16
+ };
17
+ const toExists = (comparison) => {
18
+ const nested = comparison.right.find(isDesugaredWhere);
19
+ if (!nested) {
20
+ return toComparison(comparison);
21
+ }
22
+ const nestedExpr = canonicalizeWhere(nested);
23
+ if (comparison.operator === WhereMethods.SOME) {
24
+ return {
25
+ kind: 'where_exists',
26
+ path: comparison.left,
27
+ predicate: nestedExpr,
28
+ };
29
+ }
30
+ if (comparison.operator === WhereMethods.EVERY) {
31
+ return {
32
+ kind: 'where_not',
33
+ expression: {
34
+ kind: 'where_exists',
35
+ path: comparison.left,
36
+ predicate: {
37
+ kind: 'where_not',
38
+ expression: nestedExpr,
39
+ },
40
+ },
41
+ };
42
+ }
43
+ return toComparison(comparison);
44
+ };
45
+ const canonicalizeComparison = (comparison) => {
46
+ if (comparison.operator === WhereMethods.SOME ||
47
+ comparison.operator === WhereMethods.EVERY ||
48
+ comparison.operator === 'some' ||
49
+ comparison.operator === 'every') {
50
+ return toExists(comparison);
51
+ }
52
+ return toComparison(comparison);
53
+ };
54
+ const flattenLogical = (operator, left, right) => {
55
+ const expressions = [];
56
+ if (left.kind === 'where_logical' && left.operator === operator) {
57
+ expressions.push(...left.expressions);
58
+ }
59
+ else {
60
+ expressions.push(left);
61
+ }
62
+ if (right.kind === 'where_logical' && right.operator === operator) {
63
+ expressions.push(...right.expressions);
64
+ }
65
+ else {
66
+ expressions.push(right);
67
+ }
68
+ return {
69
+ kind: 'where_logical',
70
+ operator,
71
+ expressions,
72
+ };
73
+ };
1
74
  /**
2
- * Recursively rewrites a desugared where-clause into canonical form.
3
- * With the Evaluation class retired, this is now a simple passthrough
4
- * for expression and exists where types.
75
+ * Recursively rewrites a desugared where-clause into canonical form:
76
+ * flattens nested AND/OR groups, converts quantifiers (some/every) to exists patterns.
5
77
  */
6
78
  export const canonicalizeWhere = (where) => {
7
79
  // ExpressionNode-based WHERE — passthrough (already canonical)
8
80
  if (where.kind === 'where_expression') {
9
81
  return where;
10
82
  }
11
- // ExistsCondition-based WHERE passthrough to lowering
12
- if (where.kind === 'where_exists_condition') {
13
- return where;
83
+ if (where.kind === 'where_comparison') {
84
+ if (where.operator === WhereMethods.EQUALS) {
85
+ const nestedQuantifier = where.right.find((arg) => isDesugaredWhere(arg) &&
86
+ arg.kind === 'where_comparison' &&
87
+ (arg.operator === WhereMethods.SOME ||
88
+ arg.operator === WhereMethods.EVERY));
89
+ if (nestedQuantifier) {
90
+ return canonicalizeWhere(nestedQuantifier);
91
+ }
92
+ }
93
+ if (where.operator === WhereMethods.SOME ||
94
+ where.operator === WhereMethods.EVERY ||
95
+ where.operator === 'some' ||
96
+ where.operator === 'every') {
97
+ return toExists(where);
98
+ }
99
+ return toComparison(where);
14
100
  }
15
- const _exhaustive = where;
16
- throw new Error(`Unknown where kind: ${_exhaustive.kind}`);
101
+ const grouped = where;
102
+ let current = canonicalizeComparison(grouped.first);
103
+ grouped.andOr.forEach((token) => {
104
+ if (token.and) {
105
+ current = flattenLogical('and', current, canonicalizeWhere(token.and));
106
+ }
107
+ else if (token.or) {
108
+ current = flattenLogical('or', current, canonicalizeWhere(token.or));
109
+ }
110
+ });
111
+ return current;
17
112
  };
18
113
  /**
19
114
  * Canonicalizes a desugared select query by normalizing its where-clause.
@@ -1 +1 @@
1
- {"version":3,"file":"IRCanonicalize.js","sourceRoot":"","sources":["../../../src/queries/IRCanonicalize.ts"],"names":[],"mappings":"AAwBA;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAAqB,EACK,EAAE;IAC5B,+DAA+D;IAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,wDAAwD;IACxD,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,WAAW,GAAU,KAAK,CAAC;IACjC,MAAM,IAAI,KAAK,CAAC,uBAAwB,WAA8B,CAAC,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,KAA2B,EACI,EAAE;;IACjC,uCACK,KAAK,KACR,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAC/D,YAAY,EAAE,MAAA,KAAK,CAAC,YAAY,0CAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/D,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC,IACH;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"IRCanonicalize.js","sourceRoot":"","sources":["../../../src/queries/IRCanonicalize.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { SortByPath, WherePath } from './SelectQuery.js';
1
+ import { JSNonNullPrimitive, SortByPath, WhereMethods, WherePath } from './SelectQuery.js';
2
+ import { NodeReferenceValue, ShapeReferenceValue } from './QueryFactory.js';
2
3
  import type { FieldSetEntry } from './FieldSet.js';
3
- import { ExpressionNode, ExistsCondition } from '../expressions/ExpressionNode.js';
4
+ import { ExpressionNode } from '../expressions/ExpressionNode.js';
4
5
  import type { PathExpr } from '../paths/PropertyPathExpr.js';
5
6
  /**
6
7
  * Pipeline input type — accepts FieldSet entries directly.
@@ -66,6 +67,10 @@ export type DesugaredCustomObjectEntry = {
66
67
  key: string;
67
68
  value: DesugaredSelection;
68
69
  };
70
+ export type DesugaredEvaluationSelect = {
71
+ kind: 'evaluation_select';
72
+ where: DesugaredWhere;
73
+ };
69
74
  export type DesugaredExpressionSelect = {
70
75
  kind: 'expression_select';
71
76
  expressionNode: import('../expressions/ExpressionNode.js').ExpressionNode;
@@ -74,20 +79,35 @@ export type DesugaredMultiSelection = {
74
79
  kind: 'multi_selection';
75
80
  selections: DesugaredSelection[];
76
81
  };
77
- export type DesugaredSelection = DesugaredSelectionPath | DesugaredSubSelect | DesugaredCustomObjectSelect | DesugaredExpressionSelect | DesugaredMultiSelection;
82
+ export type DesugaredSelection = DesugaredSelectionPath | DesugaredSubSelect | DesugaredCustomObjectSelect | DesugaredEvaluationSelect | DesugaredExpressionSelect | DesugaredMultiSelection;
83
+ export type DesugaredWhereComparison = {
84
+ kind: 'where_comparison';
85
+ operator: WhereMethods;
86
+ left: DesugaredSelectionPath;
87
+ right: DesugaredWhereArg[];
88
+ };
89
+ export type DesugaredWhereBoolean = {
90
+ kind: 'where_boolean';
91
+ first: DesugaredWhereComparison;
92
+ andOr: Array<{
93
+ and?: DesugaredWhere;
94
+ or?: DesugaredWhere;
95
+ }>;
96
+ };
78
97
  export type DesugaredExpressionWhere = {
79
98
  kind: 'where_expression';
80
99
  expressionNode: ExpressionNode;
81
100
  };
82
- export type DesugaredExistsWhere = {
83
- kind: 'where_exists_condition';
84
- existsCondition: ExistsCondition;
85
- };
86
- export type DesugaredWhere = DesugaredExpressionWhere | DesugaredExistsWhere;
101
+ export type DesugaredWhere = DesugaredWhereComparison | DesugaredWhereBoolean | DesugaredExpressionWhere;
87
102
  export type DesugaredSortBy = {
88
103
  direction: 'ASC' | 'DESC';
89
104
  paths: DesugaredSelectionPath[];
90
105
  };
106
+ export type DesugaredWhereArg = JSNonNullPrimitive | NodeReferenceValue | ShapeReferenceValue | {
107
+ kind: 'arg_path';
108
+ subject?: ShapeReferenceValue;
109
+ path: DesugaredSelectionPath;
110
+ } | DesugaredWhere;
91
111
  /** A desugared MINUS entry. */
92
112
  export type DesugaredMinusEntry = {
93
113
  shapeId?: string;
@@ -1,3 +1,4 @@
1
+ import { isWhereEvaluationPath, } from './SelectQuery.js';
1
2
  import { isComplexPathExpr } from '../paths/PropertyPathExpr.js';
2
3
  const isShapeRef = (value) => !!value && typeof value === 'object' && 'id' in value && 'shape' in value;
3
4
  const isNodeRef = (value) => typeof value === 'object' && value !== null && 'id' in value;
@@ -30,6 +31,13 @@ const desugarEntry = (entry) => {
30
31
  expressionNode: entry.expressionNode,
31
32
  };
32
33
  }
34
+ // Evaluation → where-as-selection (e.g. p.bestFriend.equals(...) used as select)
35
+ if (entry.evaluation) {
36
+ return {
37
+ kind: 'evaluation_select',
38
+ where: toWhere(entry.evaluation.wherePath),
39
+ };
40
+ }
33
41
  // Count aggregation → DesugaredCountStep
34
42
  if (entry.aggregation === 'count') {
35
43
  if (segments.length === 0) {
@@ -166,14 +174,46 @@ const toSelectionPath = (path) => ({
166
174
  throw new Error('Unsupported step in where path');
167
175
  }),
168
176
  });
169
- export const toWhere = (path) => {
170
- // ExistsCondition-based WHERE (from .some()/.every()/.none()) passthrough to lowering
171
- if ('existsCondition' in path) {
172
- return {
173
- kind: 'where_exists_condition',
174
- existsCondition: path.existsCondition,
175
- };
177
+ const isArgPath = (arg) => !!arg && typeof arg === 'object' && 'path' in arg && 'subject' in arg;
178
+ const toWhereArg = (arg) => {
179
+ if (typeof arg === 'string' ||
180
+ typeof arg === 'number' ||
181
+ typeof arg === 'boolean' ||
182
+ arg instanceof Date) {
183
+ return arg;
176
184
  }
185
+ if (isShapeRef(arg)) {
186
+ return arg;
187
+ }
188
+ if (isNodeRef(arg)) {
189
+ return arg;
190
+ }
191
+ if (arg && typeof arg === 'object') {
192
+ if (isWhereEvaluationPath(arg) || 'firstPath' in arg) {
193
+ return toWhere(arg);
194
+ }
195
+ if (isArgPath(arg)) {
196
+ return {
197
+ kind: 'arg_path',
198
+ subject: arg.subject,
199
+ path: toSelectionPath(arg.path),
200
+ };
201
+ }
202
+ }
203
+ throw new Error('Unsupported where argument in desugar pass');
204
+ };
205
+ const toWhereComparison = (path) => {
206
+ if (!isWhereEvaluationPath(path)) {
207
+ throw new Error('Expected where evaluation path');
208
+ }
209
+ return {
210
+ kind: 'where_comparison',
211
+ operator: path.method,
212
+ left: toSelectionPath(path.path),
213
+ right: (path.args || []).map(toWhereArg),
214
+ };
215
+ };
216
+ export const toWhere = (path) => {
177
217
  // ExpressionNode-based WHERE — passthrough to lowering
178
218
  if ('expressionNode' in path) {
179
219
  return {
@@ -181,7 +221,18 @@ export const toWhere = (path) => {
181
221
  expressionNode: path.expressionNode,
182
222
  };
183
223
  }
184
- throw new Error('Unknown WherePath kind in desugar');
224
+ if (path.firstPath) {
225
+ const grouped = path;
226
+ return {
227
+ kind: 'where_boolean',
228
+ first: toWhereComparison(grouped.firstPath),
229
+ andOr: grouped.andOr.map((token) => ({
230
+ and: token.and ? toWhere(token.and) : undefined,
231
+ or: token.or ? toWhere(token.or) : undefined,
232
+ })),
233
+ };
234
+ }
235
+ return toWhereComparison(path);
185
236
  };
186
237
  const toSortBy = (query) => {
187
238
  if (!query.sortBy) {
@@ -1 +1 @@
1
- {"version":3,"file":"IRDesugar.js","sourceRoot":"","sources":["../../../src/queries/IRDesugar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IRDesugar.js","sourceRoot":"","sources":["../../../src/queries/IRDesugar.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { resolveExpressionRefs, ExistsCondition } from '../expressions/ExpressionNode.js';
1
+ import { resolveExpressionRefs } from '../expressions/ExpressionNode.js';
2
2
  import { canonicalizeWhere } from './IRCanonicalize.js';
3
3
  import { lowerSelectionPathExpression, projectionKeyFromPath } from './IRProjection.js';
4
4
  import { IRAliasScope } from './IRAliasScope.js';
@@ -73,69 +73,100 @@ class LoweringContext {
73
73
  });
74
74
  }
75
75
  }
76
+ const isShapeRef = (value) => !!value && typeof value === 'object' && 'id' in value && 'shape' in value;
77
+ const isNodeRef = (value) => typeof value === 'object' && value !== null && 'id' in value;
76
78
  const lowerPath = (path, options) => lowerSelectionPathExpression(path, options);
79
+ const lowerWhereArg = (arg, ctx, options) => {
80
+ if (typeof arg === 'string' || typeof arg === 'number' || typeof arg === 'boolean') {
81
+ return { kind: 'literal_expr', value: arg };
82
+ }
83
+ if (arg instanceof Date) {
84
+ return { kind: 'literal_expr', value: arg.toISOString() };
85
+ }
86
+ if (arg && typeof arg === 'object') {
87
+ if ('kind' in arg && arg.kind === 'arg_path') {
88
+ const argPath = arg;
89
+ if (argPath.subject && argPath.subject.id) {
90
+ // Context entity path — resolve property relative to the context IRI
91
+ const lastStep = argPath.path.steps[argPath.path.steps.length - 1];
92
+ if (lastStep && lastStep.kind === 'property_step') {
93
+ return {
94
+ kind: 'context_property_expr',
95
+ contextIri: argPath.subject.id,
96
+ property: lastStep.propertyShapeId,
97
+ };
98
+ }
99
+ }
100
+ return lowerPath(argPath.path, options);
101
+ }
102
+ if (isShapeRef(arg)) {
103
+ return { kind: 'reference_expr', value: arg.id };
104
+ }
105
+ if (isNodeRef(arg)) {
106
+ return { kind: 'reference_expr', value: arg.id };
107
+ }
108
+ }
109
+ return { kind: 'literal_expr', value: null };
110
+ };
77
111
  const lowerWhere = (where, ctx, options) => {
78
112
  switch (where.kind) {
113
+ case 'where_binary': {
114
+ const comp = where;
115
+ return {
116
+ kind: 'binary_expr',
117
+ operator: comp.operator,
118
+ left: lowerPath(comp.left, options),
119
+ right: comp.right.length > 0
120
+ ? lowerWhereArg(comp.right[0], ctx, options)
121
+ : { kind: 'literal_expr', value: null },
122
+ };
123
+ }
124
+ case 'where_logical': {
125
+ const logical = where;
126
+ return {
127
+ kind: 'logical_expr',
128
+ operator: logical.operator,
129
+ expressions: logical.expressions.map((expr) => lowerWhere(expr, ctx, options)),
130
+ };
131
+ }
132
+ case 'where_exists': {
133
+ const exists = where;
134
+ const { resolve: existsResolveTraversal, patterns: traversals } = createTraversalResolver(() => ctx.generateAlias(), (from, to, property) => ({ kind: 'traverse', from, to, property }));
135
+ let existsRootAlias = options.rootAlias;
136
+ for (const step of exists.path.steps) {
137
+ if (step.kind === 'property_step') {
138
+ existsRootAlias = existsResolveTraversal(existsRootAlias, step.propertyShapeId);
139
+ }
140
+ }
141
+ const filter = lowerWhere(exists.predicate, ctx, {
142
+ rootAlias: existsRootAlias,
143
+ resolveTraversal: existsResolveTraversal,
144
+ });
145
+ return {
146
+ kind: 'exists_expr',
147
+ pattern: traversals.length === 1
148
+ ? traversals[0]
149
+ : { kind: 'join', patterns: traversals },
150
+ filter,
151
+ };
152
+ }
153
+ case 'where_not': {
154
+ const not = where;
155
+ return {
156
+ kind: 'not_expr',
157
+ expression: lowerWhere(not.expression, ctx, options),
158
+ };
159
+ }
79
160
  case 'where_expression': {
80
161
  // ExpressionNode-based WHERE — resolve refs and return IRExpression directly
81
162
  const exprWhere = where;
82
163
  return resolveExpressionRefs(exprWhere.expressionNode.ir, exprWhere.expressionNode._refs, options.rootAlias, options.resolveTraversal);
83
164
  }
84
- case 'where_exists_condition': {
85
- // ExistsCondition-based WHERE (from .some()/.every()/.none())
86
- const existsWhere = where;
87
- return lowerExistsCondition(existsWhere.existsCondition, ctx, options);
88
- }
89
165
  default:
90
166
  const _exhaustive = where;
91
167
  throw new Error(`Unknown canonical where kind: ${_exhaustive.kind}`);
92
168
  }
93
169
  };
94
- /**
95
- * Lower an ExistsCondition to IRExistsExpression with proper traversal patterns.
96
- */
97
- const lowerExistsCondition = (condition, ctx, options) => {
98
- // Build traversal patterns for the collection path
99
- const { resolve: existsResolve, patterns: traversals } = createTraversalResolver(() => ctx.generateAlias(), (from, to, property) => ({ kind: 'traverse', from, to, property }));
100
- // Walk the path segments to create traversal patterns
101
- let currentAlias = options.rootAlias;
102
- for (const segmentId of condition.pathSegmentIds) {
103
- currentAlias = existsResolve(currentAlias, segmentId);
104
- }
105
- // Resolve the inner predicate's property refs against the EXISTS scope
106
- const filter = resolveExpressionRefs(condition.predicate.ir, condition.predicate._refs, currentAlias, existsResolve);
107
- let existsExpr = {
108
- kind: 'exists_expr',
109
- pattern: traversals.length === 1
110
- ? traversals[0]
111
- : { kind: 'join', patterns: traversals },
112
- filter,
113
- };
114
- // Wrap in NOT if negated (.none() or outer NOT of .every())
115
- if (condition.negated) {
116
- existsExpr = { kind: 'not_expr', expression: existsExpr };
117
- }
118
- // Handle .and()/.or() chaining
119
- if (condition.chain.length > 0) {
120
- let result = existsExpr;
121
- for (const link of condition.chain) {
122
- let rightExpr;
123
- if (link.condition instanceof ExistsCondition) {
124
- rightExpr = lowerExistsCondition(link.condition, ctx, options);
125
- }
126
- else {
127
- rightExpr = resolveExpressionRefs(link.condition.ir, link.condition._refs, options.rootAlias, options.resolveTraversal);
128
- }
129
- result = {
130
- kind: 'logical_expr',
131
- operator: link.op,
132
- expressions: [result, rightExpr],
133
- };
134
- }
135
- return result;
136
- }
137
- return existsExpr;
138
- };
139
170
  const combineWithParentPath = (parentPath, path) => ({
140
171
  kind: 'selection_path',
141
172
  steps: [...parentPath, ...path.steps],
@@ -182,6 +213,17 @@ export const lowerSelectQuery = (canonical) => {
182
213
  if (selection.kind === 'multi_selection') {
183
214
  return selection.selections.flatMap((nestedSelection) => collectProjectionSeeds(nestedSelection, key, parentPath));
184
215
  }
216
+ if (selection.kind === 'evaluation_select') {
217
+ const canonicalWhere = canonicalizeWhere(selection.where);
218
+ return [{
219
+ kind: 'expression',
220
+ key: key || 'value',
221
+ expression: lowerWhere(canonicalWhere, ctx, {
222
+ rootAlias: aliasAfterPath(parentPath),
223
+ resolveTraversal: pathOptions.resolveTraversal,
224
+ }),
225
+ }];
226
+ }
185
227
  if (selection.kind === 'expression_select') {
186
228
  const exprSelect = selection;
187
229
  const resolved = resolveExpressionRefs(exprSelect.expressionNode.ir, exprSelect.expressionNode._refs, aliasAfterPath(parentPath), pathOptions.resolveTraversal);
@@ -1 +1 @@
1
- {"version":3,"file":"IRLower.js","sourceRoot":"","sources":["../../../src/queries/IRLower.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IRLower.js","sourceRoot":"","sources":["../../../src/queries/IRLower.ts"],"names":[],"mappings":"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"}