함수: compileQuery()
function compileQuery(
rawQuery,
inputs,
collections,
subscriptions,
callbacks,
lazySources,
optimizableOrderByCollections,
setWindowFn,
cache,
queryMapping,
parentKeyStream?,
childCorrelationField?): CompilationResult;
정의 위치: packages/db/src/query/compiler/index.ts:322
쿼리 IR을 D2 파이프라인으로 컴파일합니다.
매개변수
rawQuery
컴파일할 쿼리 IR입니다.
inputs
Record<string, KeyedStream>
소스 별칭을 입력 스트림에 매핑합니다(예: { employee: input1, manager: input2 })
collections
Record<string, Collection<any, any, any, any, any>>
컬렉션 ID를 Collection 인스턴스에 매핑합니다.
subscriptions
Record<string, CollectionSubscription>
소스 별칭을 CollectionSubscription 인스턴스에 매핑합니다.
callbacks
Record<string, LazyCollectionCallbacks>
소스 별칭을 지연 로딩 콜백에 매핑합니다.
lazySources
Set<string>
데이터를 지연 로드해야 하는 소스 ID 집합입니다.
optimizableOrderByCollections
Record<string, OrderByOptimizationInfo>
소스 ID를 order-by 최적화 정보에 매핑합니다.
setWindowFn
(windowFn) => void
cache
QueryCache = ...
컴파일된 하위 쿼리를 위한 선택적 캐시입니다(재귀에 내부적으로 사용됨).
queryMapping
QueryMapping = ...
최적화된 쿼리에서 원래 쿼리로의 선택적 매핑입니다.
parentKeyStream?
childCorrelationField?
PropRef<any>
반환값
CompilationResult
파이프라인, 소스 WHERE 절 및 별칭 메타데이터를 포함하는 CompilationResult입니다.