Plot the query plan
Source code
Description
This only returns the "dot" output that can be passed to other packages,
such as DiagrammeR::grViz().
Usage
<LazyFrame>$to_dot(
...,
optimized = TRUE,
optimizations = pl\$QueryOptFlags(),
type_coercion = deprecated(),
predicate_pushdown = deprecated(),
projection_pushdown = deprecated(),
simplify_expression = deprecated(),
slice_pushdown = deprecated(),
comm_subplan_elim = deprecated(),
comm_subexpr_elim = deprecated(),
cluster_with_columns = deprecated(),
collapse_joins = deprecated()
)
Arguments
…
|
Ignored.
|
optimized
|
Optimize the query plan.
|
optimizations
|
A QueryOptFlags object to indicate optimization passes done during query
optimization.
|
type_coercion
|
Use the type_coercion property of a QueryOptFlags object,
then pass that to the optimizations argument instead.
|
predicate_pushdown
|
Use the predicate_pushdown property of a QueryOptFlags
object, then pass that to the optimizations argument
instead.
|
projection_pushdown
|
Use the projection_pushdown property of a QueryOptFlags
object, then pass that to the optimizations argument
instead.
|
simplify_expression
|
Use the simplify_expression property of a QueryOptFlags
object, then pass that to the optimizations argument
instead.
|
slice_pushdown
|
Use the slice_pushdown property of a QueryOptFlags object,
then pass that to the optimizations argument instead.
|
comm_subplan_elim
|
Use the comm_subplan_elim property of a QueryOptFlags
object, then pass that to the optimizations argument
instead.
|
comm_subexpr_elim
|
Use the comm_subexpr_elim property of a QueryOptFlags
object, then pass that to the optimizations argument
instead.
|
cluster_with_columns
|
Use the cluster_with_columns property of a QueryOptFlags
object, then pass that to the optimizations argument
instead.
|
collapse_joins
|
Use the predicate_pushdown property of a QueryOptFlags
object, then pass that to the optimizations argument
instead.
|
Value
A character vector
Examples
library("polars")
lf <- pl$LazyFrame(
a = c("a", "b", "a", "b", "b", "c"),
b = 1:6,
c = 6:1
)
query <- lf$group_by("a", .maintain_order = TRUE)$agg(
pl$all()$sum()
)$sort("a")
query$to_dot() |> cat()
#> digraph polars_query {
#> rankdir="BT"
#> node [fontname="Monospace", shape="box"]
#> p2 -> p1
#> p3 -> p2
#> p3[label="TABLE\nπ 3/3"]
#> p2[label="AGG [col(\"b\").sum(), col(\"c\").sum()]\nBY\n[col(\"a\")]"]
#> p1[label="SORT BY [col(\"a\")]"]
#> }
# You could print the graph by using DiagrammeR for example, with
# query$to_dot() |> DiagrammeR::grViz().