MCPcopy Index your code
hub / github.com/TanStack/db / optimizeQueryRecursive

Function optimizeQueryRecursive

packages/db/src/utils/index-optimization.ts:209–234  ·  view source on GitHub ↗

* Recursively optimizes query expressions

(
  expression: BasicExpression,
  collection: CollectionLike<T, TKey>,
)

Source from the content-addressed store, hash-verified

207 * Recursively optimizes query expressions
208 */
209function optimizeQueryRecursive<T extends object, TKey extends string | number>(
210 expression: BasicExpression,
211 collection: CollectionLike<T, TKey>,
212): OptimizationResult<TKey> {
213 if (expression.type === `func`) {
214 switch (expression.name) {
215 case `eq`:
216 case `gt`:
217 case `gte`:
218 case `lt`:
219 case `lte`:
220 return optimizeSimpleComparison(expression, collection)
221
222 case `and`:
223 return optimizeAndExpression(expression, collection)
224
225 case `or`:
226 return optimizeOrExpression(expression, collection)
227
228 case `in`:
229 return optimizeInArrayExpression(expression, collection)
230 }
231 }
232
233 return { canOptimize: false, matchingKeys: new Set(), isExact: false }
234}
235
236/**
237 * Checks if an expression can be optimized

Callers 3

optimizeAndExpressionFunction · 0.85
optimizeOrExpressionFunction · 0.85

Calls 4

optimizeSimpleComparisonFunction · 0.85
optimizeAndExpressionFunction · 0.85
optimizeOrExpressionFunction · 0.85

Tested by

no test coverage detected