Skip to content

Physical

PhysicalOperator

All implemented physical operators should inherit from this class. In order for the Optimizer to consider using a physical operator for a given logical operation, the user must also write an ImplementationRule.

__init__

__init__(
    output_schema: Schema,
    input_schema: Schema | None = None,
    depends_on: list[str] | None = None,
    logical_op_id: str | None = None,
    logical_op_name: str | None = None,
    target_cache_id: str | None = None,
    verbose: bool = False,
    *args,
    **kwargs,
) -> None

get_id_params

get_id_params() -> dict

Returns a dictionary mapping of physical operator parameters which are relevant for computing the physical operator id.

NOTE: Should be overriden by subclasses to include class-specific parameters. NOTE: input_schema and output_schema are not included in the id params by default, because they may depend on the order of operations chosen by the Optimizer. This is particularly true for convert operations, where the output schema is now the union of the input and output schemas of the logical operator.

get_op_params

get_op_params() -> dict

Returns a dictionary mapping of physical operator parameters which may be used to create a copy of this physical operation.

NOTE: Should be overriden by subclasses to include class-specific parameters.