Op

source: bluebase/ql/op.py

Operators.


class QlOp(refs: set[str])[source]

Bases: ABC

Variables:
  • refs (set[str])

  • opened (bool)

  • executed (bool)

  • loop_count (int)

  • row_count (int)

__iter__() → Iterator[QlRow][source]

op를 순회하는 iterator를 반환합니다.

static get_row(ref: str, schema: QlSchema, record: RmRecord) → QlRow[source]
abstract property attrs: list[QlAttr]read-only
open() → None[source]
Raises:

QlOpenedOpOpenError –

close() → None[source]
Raises:

QlClosedOpAccessError –

next() → QlRow | None[source]
Raises:
abstractmethod get_next() → QlRow | None[source]
analysis() → str[source]
abstractmethod explain(depth: int = 0) → str[source]
class QlLeafOp(context: QlContext, ref: str, cond: QlValueCond | None = None)[source]

Bases: QlOp, ABC

Variables:
property schema: QlSchemaread-only
class QlBranchOp(refs: set[str])[source]

Bases: QlOp, ABC

class QlFileScanOp(context: QlContext, ref: str, cond: QlValueCond | None = None)[source]

Bases: QlLeafOp

Variables:
property attrs: list[QlAttr]read-only
assignmentopen() → None[source]
assignmentclose() → None[source]
assignmentget_next() → QlRow | None[source]
explain(depth: int = 0) → str[source]
class QlIndexScanOp(context: QlContext, ref: str, cond: QlValueCond)[source]

Bases: QlLeafOp

Variables:
property attrs: list[QlAttr]read-only
assignmentopen() → None[source]
assignmentclose() → None[source]
assignmentget_next() → QlRow | None[source]
explain(depth: int = 0) → str[source]
class QlCartesianOp(left_op: QlOp, right_op: QlLeafOp)[source]

Bases: QlBranchOp

Variables:
property attrs: list[QlAttr]read-only
optional_advance() → None[source]

Hint

이런 함수가 있으면 편하다!

assignmentopen() → None[source]
assignmentclose() → None[source]
assignmentget_next() → QlRow | None[source]
explain(depth: int = 0) → str[source]
class QlLoopJoinOp(left_op: QlOp, right_op: QlLeafOp, on: QlAttrCond)[source]

Bases: QlBranchOp

Variables:
property attrs: list[QlAttr]read-only
optional_advance() → None[source]

Hint

이런 함수가 있으면 편하다!

assignmentopen() → None[source]
assignmentclose() → None[source]
assignmentget_next() → QlRow | None[source]
explain(depth: int = 0) → str[source]
class QlHashJoinOp(probe_op: QlOp, probe_attr: QlAttr, build_op: QlLeafOp, build_attr: QlAttr, on: QlAttrCond)[source]

Bases: QlBranchOp

Variables:
property attrs: list[QlAttr]read-only
optional_advance() → None[source]

Hint

이런 함수가 있으면 편하다!

optional_pack(value: bool | int | float | str) → bytes[source]

Hint

이런 함수가 있으면 편하다!

optional_build() → None[source]

Hint

이런 함수가 있으면 편하다!

assignmentopen() → None[source]
assignmentclose() → None[source]
assignmentget_next() → QlRow | None[source]
explain(depth: int = 0) → str[source]
class QlIndexJoinOp(context: QlContext, outer_op: QlOp, outer_attr: QlAttr, inner_op: QlLeafOp, inner_attr: QlAttr, on: QlAttrCond)[source]

Bases: QlBranchOp

Variables:
property attrs: list[QlAttr]read-only
optional_advance() → None[source]

Hint

이런 함수가 있으면 편하다!

assignmentopen() → None[source]
assignmentclose() → None[source]
assignmentget_next() → QlRow | None[source]
explain(depth: int = 0) → str[source]
class QlFilterOp(child: QlOp, conds: list[QlCond])[source]

Bases: QlBranchOp

Variables:
property attrs: list[QlAttr]read-only
open() → None[source]
Raises:

QlOpenedOpOpenError –

close() → None[source]
Raises:

QlClosedOpAccessError –

assignmentget_next() → QlRow | None[source]
explain(depth: int = 0) → str[source]
class QlProjectOp(child: QlOp, attrs: list[QlAttr])[source]

Bases: QlBranchOp

Variables:

child (QlOp)

property attrs: list[QlAttr]read-only
open() → None[source]
Raises:

QlOpenedOpOpenError –

close() → None[source]
Raises:

QlClosedOpAccessError –

assignmentget_next() → QlRow | None[source]
explain(depth: int = 0) → str[source]