Manager
source: bluebase/ql/manager.py
- dataclassclass QlOptim(push_file: bool = False, push_index: bool = False, loop_join: bool = False, hash_join: bool = False, index_join: bool = False, first_leaf: bool = False)[source]
Bases:
object- Variables:
push_file (bool)
push_index (bool)
loop_join (bool)
hash_join (bool)
index_join (bool)
first_leaf (bool)
- class QlManager(sm: SmManager)[source]
Bases:
objectA manager for the
QLcomponent.- optional_resolve_attrs(context: QlContext, attrs_: list[AstAttr]) list[QlAttr][source]
Hint
이런 함수가 있으면 편하다!
- optional_resolve_conds(context: QlContext, conds_: list[AstCond]) dict[str, QlCond][source]
Hint
이런 함수가 있으면 편하다!
- optional_resolve_assign(context: QlContext, assign_: AstAssign) QlAssign[source]
Hint
이런 함수가 있으면 편하다!
- optional_resolve_assigns(context: QlContext, assigns_: list[AstAssign]) dict[str, QlAssign][source]
Hint
이런 함수가 있으면 편하다!
- optional_pushdown_conds(context: QlContext, conds: dict[str, QlCond]) dict[str, tuple[QlValueCond, bool]][source]
Hint
이런 함수가 있으면 편하다!
- optional_determine_join(op: QlOp, ref: str, cond: QlCond) QlAttr | None[source]
Hint
이런 함수가 있으면 편하다!
- optional_find_index_join(context: QlContext, op: QlOp, leafs: dict[str, QlLeafOp], conds: dict[str, QlCond]) tuple[str, QlAttrCond] | None[source]
Hint
이런 함수가 있으면 편하다!
- optional_find_hash_join(op: QlOp, leafs: dict[str, QlLeafOp], conds: dict[str, QlCond]) tuple[str, QlAttrCond] | None[source]
Hint
이런 함수가 있으면 편하다!
- optional_find_loop_join(op: QlOp, leafs: dict[str, QlLeafOp], conds: dict[str, QlCond]) tuple[str, QlAttrCond] | None[source]
Hint
이런 함수가 있으면 편하다!
- optional_choose_first_leaf(context: QlContext, leafs: dict[str, QlLeafOp], conds: dict[str, QlCond], pushdown: dict[str, tuple[QlValueCond, bool]]) QlLeafOp[source]
Hint
이런 함수가 있으면 편하다!
- optional_align_attr(leaf: QlLeafOp, cond: QlAttrCond) tuple[QlAttr, QlAttr][source]
Hint
이런 함수가 있으면 편하다!
- assignmentdelete(ast: AstDelete, explain: bool = False) QlOp | None[source]
scan 중에 delete를 허용하는 방법은 index scan cursor 관리가 굉장히 어렵습니다. 여기서는 일단 scan 결과를 모두 취득한 후, 한번에 delete를 진행합니다. 이른바 materialization 기법이며, 구현은 간단해지지만 메모리가 조금 낭비됩니다.
- Raises: