Class: Polars::QueryOptFlags
- Inherits:
-
Object
- Object
- Polars::QueryOptFlags
- Defined in:
- lib/polars/query_opt_flags.rb
Overview
This functionality is considered unstable. It may be changed at any point without it being considered a breaking change.
The set of the optimizations considered during query optimization.
Class Method Summary collapse
-
._eager ⇒ Object
Create new empty set off optimizations.
-
.none(predicate_pushdown: nil, projection_pushdown: nil, simplify_expression: nil, slice_pushdown: nil, comm_subplan_elim: nil, comm_subexpr_elim: nil, cluster_with_columns: nil, collapse_joins: nil, check_order_observe: nil, fast_projection: nil) ⇒ Object
Create new empty set off optimizations.
Instance Method Summary collapse
-
#check_order_observe ⇒ Object
Do not maintain order if the order would not be observed.
- #check_order_observe=(value) ⇒ Object
-
#cluster_with_columns ⇒ Object
Cluster sequential
with_columnscalls to independent calls. - #cluster_with_columns=(value) ⇒ Object
-
#comm_subexpr_elim ⇒ Object
Elide duplicate expressions and caches their outputs.
- #comm_subexpr_elim=(value) ⇒ Object
-
#comm_subplan_elim ⇒ Object
Elide duplicate plans and caches their outputs.
- #comm_subplan_elim=(value) ⇒ Object
-
#fast_projection ⇒ Object
Replace simple projections with a faster inlined projection that skips the expression engine.
- #fast_projection=(value) ⇒ Object
-
#initialize(predicate_pushdown: nil, projection_pushdown: nil, simplify_expression: nil, slice_pushdown: nil, comm_subplan_elim: nil, comm_subexpr_elim: nil, cluster_with_columns: nil, collapse_joins: nil, check_order_observe: nil, fast_projection: nil) ⇒ QueryOptFlags
constructor
A new instance of QueryOptFlags.
-
#no_optimizations ⇒ Object
Remove selected optimizations.
-
#predicate_pushdown ⇒ Object
Apply predicates/filters as early as possible.
- #predicate_pushdown=(value) ⇒ Object
-
#projection_pushdown ⇒ Object
Only read columns that are used later in the query.
- #projection_pushdown=(value) ⇒ Object
-
#simplify_expression ⇒ Object
Run many expression optimization rules until fixed point.
- #simplify_expression=(value) ⇒ Object
-
#slice_pushdown ⇒ Object
Pushdown slices/limits.
- #slice_pushdown=(value) ⇒ Object
- #to_s ⇒ Object (also: #inspect)
- #update(predicate_pushdown: nil, projection_pushdown: nil, simplify_expression: nil, slice_pushdown: nil, comm_subplan_elim: nil, comm_subexpr_elim: nil, cluster_with_columns: nil, collapse_joins: nil, check_order_observe: nil, fast_projection: nil) ⇒ Object
Constructor Details
#initialize(predicate_pushdown: nil, projection_pushdown: nil, simplify_expression: nil, slice_pushdown: nil, comm_subplan_elim: nil, comm_subexpr_elim: nil, cluster_with_columns: nil, collapse_joins: nil, check_order_observe: nil, fast_projection: nil) ⇒ QueryOptFlags
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/polars/query_opt_flags.rb', line 11 def initialize( predicate_pushdown: nil, projection_pushdown: nil, simplify_expression: nil, slice_pushdown: nil, comm_subplan_elim: nil, comm_subexpr_elim: nil, cluster_with_columns: nil, collapse_joins: nil, check_order_observe: nil, fast_projection: nil ) self._rboptflags = RbOptFlags.default update( predicate_pushdown: predicate_pushdown, projection_pushdown: projection_pushdown, simplify_expression: simplify_expression, slice_pushdown: slice_pushdown, comm_subplan_elim: comm_subplan_elim, comm_subexpr_elim: comm_subexpr_elim, cluster_with_columns: cluster_with_columns, collapse_joins: collapse_joins, check_order_observe: check_order_observe, fast_projection: fast_projection ) end |
Class Method Details
._eager ⇒ Object
Create new empty set off optimizations.
120 121 122 123 124 125 126 |
# File 'lib/polars/query_opt_flags.rb', line 120 def self._eager optflags = QueryOptFlags.new optflags.no_optimizations optflags._rboptflags.eager = true optflags.simplify_expression = true optflags end |
.none(predicate_pushdown: nil, projection_pushdown: nil, simplify_expression: nil, slice_pushdown: nil, comm_subplan_elim: nil, comm_subexpr_elim: nil, cluster_with_columns: nil, collapse_joins: nil, check_order_observe: nil, fast_projection: nil) ⇒ Object
Create new empty set off optimizations.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/polars/query_opt_flags.rb', line 39 def self.none( predicate_pushdown: nil, projection_pushdown: nil, simplify_expression: nil, slice_pushdown: nil, comm_subplan_elim: nil, comm_subexpr_elim: nil, cluster_with_columns: nil, collapse_joins: nil, check_order_observe: nil, fast_projection: nil ) optflags = QueryOptFlags.new optflags.no_optimizations optflags.update( predicate_pushdown: predicate_pushdown, projection_pushdown: projection_pushdown, simplify_expression: simplify_expression, slice_pushdown: slice_pushdown, comm_subplan_elim: comm_subplan_elim, comm_subexpr_elim: comm_subexpr_elim, cluster_with_columns: cluster_with_columns, collapse_joins: collapse_joins, check_order_observe: check_order_observe, fast_projection: fast_projection ) end |
Instance Method Details
#check_order_observe ⇒ Object
Do not maintain order if the order would not be observed.
197 198 199 |
# File 'lib/polars/query_opt_flags.rb', line 197 def check_order_observe _rboptflags.check_order_observe end |
#check_order_observe=(value) ⇒ Object
201 202 203 |
# File 'lib/polars/query_opt_flags.rb', line 201 def check_order_observe=(value) _rboptflags.check_order_observe = value end |
#cluster_with_columns ⇒ Object
Cluster sequential with_columns calls to independent calls.
152 153 154 |
# File 'lib/polars/query_opt_flags.rb', line 152 def cluster_with_columns _rboptflags.cluster_with_columns end |
#cluster_with_columns=(value) ⇒ Object
156 157 158 |
# File 'lib/polars/query_opt_flags.rb', line 156 def cluster_with_columns=(value) _rboptflags.cluster_with_columns = value end |
#comm_subexpr_elim ⇒ Object
Elide duplicate expressions and caches their outputs.
188 189 190 |
# File 'lib/polars/query_opt_flags.rb', line 188 def comm_subexpr_elim _rboptflags.comm_subexpr_elim end |
#comm_subexpr_elim=(value) ⇒ Object
192 193 194 |
# File 'lib/polars/query_opt_flags.rb', line 192 def comm_subexpr_elim=(value) _rboptflags.comm_subexpr_elim = value end |
#comm_subplan_elim ⇒ Object
Elide duplicate plans and caches their outputs.
179 180 181 |
# File 'lib/polars/query_opt_flags.rb', line 179 def comm_subplan_elim _rboptflags.comm_subplan_elim end |
#comm_subplan_elim=(value) ⇒ Object
183 184 185 |
# File 'lib/polars/query_opt_flags.rb', line 183 def comm_subplan_elim=(value) _rboptflags.comm_subplan_elim = value end |
#fast_projection ⇒ Object
Replace simple projections with a faster inlined projection that skips the expression engine.
206 207 208 |
# File 'lib/polars/query_opt_flags.rb', line 206 def fast_projection _rboptflags.fast_projection end |
#fast_projection=(value) ⇒ Object
210 211 212 |
# File 'lib/polars/query_opt_flags.rb', line 210 def fast_projection=(value) _rboptflags.fast_projection = value end |
#no_optimizations ⇒ Object
Remove selected optimizations.
129 130 131 |
# File 'lib/polars/query_opt_flags.rb', line 129 def no_optimizations _rboptflags.no_optimizations end |
#predicate_pushdown ⇒ Object
Apply predicates/filters as early as possible.
143 144 145 |
# File 'lib/polars/query_opt_flags.rb', line 143 def predicate_pushdown _rboptflags.predicate_pushdown end |
#predicate_pushdown=(value) ⇒ Object
147 148 149 |
# File 'lib/polars/query_opt_flags.rb', line 147 def predicate_pushdown=(value) _rboptflags.predicate_pushdown = value end |
#projection_pushdown ⇒ Object
Only read columns that are used later in the query.
134 135 136 |
# File 'lib/polars/query_opt_flags.rb', line 134 def projection_pushdown _rboptflags.projection_pushdown end |
#projection_pushdown=(value) ⇒ Object
138 139 140 |
# File 'lib/polars/query_opt_flags.rb', line 138 def projection_pushdown=(value) _rboptflags.projection_pushdown = value end |
#simplify_expression ⇒ Object
Run many expression optimization rules until fixed point.
161 162 163 |
# File 'lib/polars/query_opt_flags.rb', line 161 def simplify_expression _rboptflags.simplify_expression end |
#simplify_expression=(value) ⇒ Object
165 166 167 |
# File 'lib/polars/query_opt_flags.rb', line 165 def simplify_expression=(value) _rboptflags.simplify_expression = value end |
#slice_pushdown ⇒ Object
Pushdown slices/limits.
170 171 172 |
# File 'lib/polars/query_opt_flags.rb', line 170 def slice_pushdown _rboptflags.slice_pushdown end |
#slice_pushdown=(value) ⇒ Object
174 175 176 |
# File 'lib/polars/query_opt_flags.rb', line 174 def slice_pushdown=(value) _rboptflags.slice_pushdown = value end |
#to_s ⇒ Object Also known as: inspect
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 |
# File 'lib/polars/query_opt_flags.rb', line 214 def to_s " QueryOptFlags {\n type_coercion: \#{_rboptflags.type_coercion}\n type_check: \#{_rboptflags.type_check}\n\n predicate_pushdown: \#{predicate_pushdown}\n projection_pushdown: \#{projection_pushdown}\n simplify_expression: \#{simplify_expression}\n slice_pushdown: \#{slice_pushdown}\n comm_subplan_elim: \#{comm_subplan_elim}\n comm_subexpr_elim: \#{comm_subexpr_elim}\n cluster_with_columns: \#{cluster_with_columns}\n check_order_observe: \#{check_order_observe}\n fast_projection: \#{fast_projection}\n\n eager: \#{_rboptflags.eager}\n streaming: \#{_rboptflags.streaming}\n }\n STR\nend\n" |
#update(predicate_pushdown: nil, projection_pushdown: nil, simplify_expression: nil, slice_pushdown: nil, comm_subplan_elim: nil, comm_subexpr_elim: nil, cluster_with_columns: nil, collapse_joins: nil, check_order_observe: nil, fast_projection: nil) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/polars/query_opt_flags.rb', line 67 def update( predicate_pushdown: nil, projection_pushdown: nil, simplify_expression: nil, slice_pushdown: nil, comm_subplan_elim: nil, comm_subexpr_elim: nil, cluster_with_columns: nil, collapse_joins: nil, check_order_observe: nil, fast_projection: nil ) if !predicate_pushdown.nil? self.predicate_pushdown = predicate_pushdown end if !projection_pushdown.nil? self.projection_pushdown = projection_pushdown end if !simplify_expression.nil? self.simplify_expression = simplify_expression end if !slice_pushdown.nil? self.slice_pushdown = slice_pushdown end if !comm_subplan_elim.nil? self.comm_subplan_elim = comm_subplan_elim end if !comm_subexpr_elim.nil? self.comm_subexpr_elim = comm_subexpr_elim end if !cluster_with_columns.nil? self.cluster_with_columns = cluster_with_columns end if !collapse_joins.nil? Utils.issue_deprecation_warning( "the `collapse_joins` parameter for `QueryOptFlags` is deprecated. " + "Use `predicate_pushdown` instead." ) if !collapse_joins self.predicate_pushdown = false end end if !check_order_observe.nil? self.check_order_observe = check_order_observe end if !fast_projection.nil? self.fast_projection = fast_projection end self end |