본문으로 건너뛰기

함수: 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

QueryIR

컴파일할 쿼리 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?

KeyedStream

childCorrelationField?

PropRef<any>

반환값

CompilationResult

파이프라인, 소스 WHERE 절 및 별칭 메타데이터를 포함하는 CompilationResult입니다.