인터페이스: Context
정의 위치: packages/db/src/query/builder/types.ts:44
Context - 쿼리 빌더 작업을 위한 중앙 상태 컨테이너입니다.
이 인터페이스는 쿼리를 빌드하고 타입을 검사하는 데 필요한 모든 정보를 추적합니다:
스키마 관리:
baseSchema:from()절의 원래 테이블/컬렉션schema: 현재 사용 가능한 테이블(join에 따라 확장되고 서브쿼리에 따라 축소됨)
쿼리 상태:
fromSourceName:from()또는 첫 번째unionAll()소스에서 사용된 테이블 - 선택성 로직에 필요합니다.hasJoins: 조인이 추가되었는지 여부입니다(결과 타입 추론에 영향을 줍니다).joinTypes: 선택성 계산을 위해 테이블 별칭을 조인 타입에 매핑합니다.
결과 추적:
result:select()후의 최종 형태입니다 - select가 호출될 때까지 정의되지 않습니다.
쿼리 빌더 체인을 거치면서 컨텍스트가 발전합니다:
from()는 baseSchema와 schema를 동일한 값으로 설정합니다.join()는 schema를 확장하고 hasJoins/joinTypes를 설정합니다.select()는 투영된 형태로 result를 설정합니다.
속성
baseSchema
baseSchema: ContextSchema;
정의 위치: packages/db/src/query/builder/types.ts:46
fromSourceName
fromSourceName: string;
정의 위치: packages/db/src/query/builder/types.ts:52
fromSourceNames?
optional fromSourceNames: readonly string[];
정의 위치: packages/db/src/query/builder/types.ts:54
hasJoins?
optional hasJoins: boolean;
정의 위치: packages/db/src/query/builder/types.ts:58
hasResult?
optional hasResult: true;
정의 위치: packages/db/src/query/builder/types.ts:67
hasUnionFrom?
optional hasUnionFrom: true;
정의 위치: packages/db/src/query/builder/types.ts:56
joinTypes?
optional joinTypes: Record<string, "inner" | "left" | "right" | "full" | "outer" | "cross">;
정의 위치: packages/db/src/query/builder/types.ts:60
refsSchema?
optional refsSchema: ContextSchema;
정의 위치: packages/db/src/query/builder/types.ts:50
result?
optional result: any;
정의 위치: packages/db/src/query/builder/types.ts:65
schema
schema: ContextSchema;
정의 위치: packages/db/src/query/builder/types.ts:48
singleResult?
optional singleResult: boolean;