This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/asf-site by this push: new bc3a8ac6a1 Publish built docs triggered by 25acb643585fe4460199a8731fc94c24e79466ef bc3a8ac6a1 is described below commit bc3a8ac6a1edb9df54eded27bd783a4ed3460679 Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com> AuthorDate: Fri Aug 29 17:33:20 2025 +0000 Publish built docs triggered by 25acb643585fe4460199a8731fc94c24e79466ef --- _sources/user-guide/configs.md.txt | 1 + searchindex.js | 2 +- user-guide/configs.html | 92 ++++++++++++++++++++------------------ 3 files changed, 50 insertions(+), 45 deletions(-) diff --git a/_sources/user-guide/configs.md.txt b/_sources/user-guide/configs.md.txt index 877a46ef47..5060bc3805 100644 --- a/_sources/user-guide/configs.md.txt +++ b/_sources/user-guide/configs.md.txt @@ -129,6 +129,7 @@ The following configuration settings are available: | datafusion.optimizer.enable_distinct_aggregation_soft_limit | true | When set to true, the optimizer will push a limit operation into grouped aggregations which have no aggregate expressions, as a soft limit, emitting groups once the limit is reached, before all rows in the group are read. [...] | datafusion.optimizer.enable_round_robin_repartition | true | When set to true, the physical plan optimizer will try to add round robin repartitioning to increase parallelism to leverage more CPU cores [...] | datafusion.optimizer.enable_topk_aggregation | true | When set to true, the optimizer will attempt to perform limit operations during aggregations, if possible [...] +| datafusion.optimizer.enable_window_limits | true | When set to true, the optimizer will attempt to push limit operations past window functions, if possible [...] | datafusion.optimizer.enable_dynamic_filter_pushdown | true | When set to true attempts to push down dynamic filters generated by operators into the file scan phase. For example, for a query such as `SELECT * FROM t ORDER BY timestamp DESC LIMIT 10`, the optimizer will attempt to push down the current top 10 timestamps that the TopK operator references into the file scans. This means that if we already have 10 timestamps in the year 2025 any file [...] | datafusion.optimizer.filter_null_join_keys | false | When set to true, the optimizer will insert filters before a join between a nullable and non-nullable column to filter out nulls on the nullable side. This filter can add additional overhead when the file format does not fully support predicate push down. [...] | datafusion.optimizer.repartition_aggregations | true | Should DataFusion repartition data using the aggregate keys to execute aggregates in parallel using the provided `target_partitions` level [...] diff --git a/searchindex.js b/searchindex.js index 90cd7c7031..83a7ddbcf2 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles":{"!=":[[57,"op-neq"]],"!~":[[57,"op-re-not-match"]],"!~*":[[57,"op-re-not-match-i"]],"!~~":[[57,"id19"]],"!~~*":[[57,"id20"]],"#":[[57,"op-bit-xor"]],"%":[[57,"op-modulo"]],"&":[[57,"op-bit-and"]],"(relation, name) tuples in logical fields and logical columns are unique":[[12,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[57,"op-multiply"]],"+":[[57,"op-plus"]],"-":[[57,"op-minus"]],"/":[[57,"op-divide"]],"<":[[57,"op-lt"]],"< [...] \ No newline at end of file +Search.setIndex({"alltitles":{"!=":[[57,"op-neq"]],"!~":[[57,"op-re-not-match"]],"!~*":[[57,"op-re-not-match-i"]],"!~~":[[57,"id19"]],"!~~*":[[57,"id20"]],"#":[[57,"op-bit-xor"]],"%":[[57,"op-modulo"]],"&":[[57,"op-bit-and"]],"(relation, name) tuples in logical fields and logical columns are unique":[[12,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[57,"op-multiply"]],"+":[[57,"op-plus"]],"-":[[57,"op-minus"]],"/":[[57,"op-divide"]],"<":[[57,"op-lt"]],"< [...] \ No newline at end of file diff --git a/user-guide/configs.html b/user-guide/configs.html index ea3d0dbbee..7902989b77 100644 --- a/user-guide/configs.html +++ b/user-guide/configs.html @@ -946,179 +946,183 @@ example, to configure <code class="docutils literal notranslate"><span class="pr <td><p>true</p></td> <td><p>When set to true, the optimizer will attempt to perform limit operations during aggregations, if possible</p></td> </tr> -<tr class="row-even"><td><p>datafusion.optimizer.enable_dynamic_filter_pushdown</p></td> +<tr class="row-even"><td><p>datafusion.optimizer.enable_window_limits</p></td> +<td><p>true</p></td> +<td><p>When set to true, the optimizer will attempt to push limit operations past window functions, if possible</p></td> +</tr> +<tr class="row-odd"><td><p>datafusion.optimizer.enable_dynamic_filter_pushdown</p></td> <td><p>true</p></td> <td><p>When set to true attempts to push down dynamic filters generated by operators into the file scan phase. For example, for a query such as <code class="docutils literal notranslate"><span class="pre">SELECT</span> <span class="pre">*</span> <span class="pre">FROM</span> <span class="pre">t</span> <span class="pre">ORDER</span> <span class="pre">BY</span> <span class="pre">timestamp</span> <span class="pre">DESC</span> <span class="pre">LIMIT</span> <span class="pre">10</span></code> [...] </tr> -<tr class="row-odd"><td><p>datafusion.optimizer.filter_null_join_keys</p></td> +<tr class="row-even"><td><p>datafusion.optimizer.filter_null_join_keys</p></td> <td><p>false</p></td> <td><p>When set to true, the optimizer will insert filters before a join between a nullable and non-nullable column to filter out nulls on the nullable side. This filter can add additional overhead when the file format does not fully support predicate push down.</p></td> </tr> -<tr class="row-even"><td><p>datafusion.optimizer.repartition_aggregations</p></td> +<tr class="row-odd"><td><p>datafusion.optimizer.repartition_aggregations</p></td> <td><p>true</p></td> <td><p>Should DataFusion repartition data using the aggregate keys to execute aggregates in parallel using the provided <code class="docutils literal notranslate"><span class="pre">target_partitions</span></code> level</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.optimizer.repartition_file_min_size</p></td> +<tr class="row-even"><td><p>datafusion.optimizer.repartition_file_min_size</p></td> <td><p>10485760</p></td> <td><p>Minimum total files size in bytes to perform file scan repartitioning.</p></td> </tr> -<tr class="row-even"><td><p>datafusion.optimizer.repartition_joins</p></td> +<tr class="row-odd"><td><p>datafusion.optimizer.repartition_joins</p></td> <td><p>true</p></td> <td><p>Should DataFusion repartition data using the join keys to execute joins in parallel using the provided <code class="docutils literal notranslate"><span class="pre">target_partitions</span></code> level</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.optimizer.allow_symmetric_joins_without_pruning</p></td> +<tr class="row-even"><td><p>datafusion.optimizer.allow_symmetric_joins_without_pruning</p></td> <td><p>true</p></td> <td><p>Should DataFusion allow symmetric hash joins for unbounded data sources even when its inputs do not have any ordering or filtering If the flag is not enabled, the SymmetricHashJoin operator will be unable to prune its internal buffers, resulting in certain join types - such as Full, Left, LeftAnti, LeftSemi, Right, RightAnti, and RightSemi - being produced only at the end of the execution. This is not typical in stream processing. Additionally, without proper design for long runne [...] </tr> -<tr class="row-even"><td><p>datafusion.optimizer.repartition_file_scans</p></td> +<tr class="row-odd"><td><p>datafusion.optimizer.repartition_file_scans</p></td> <td><p>true</p></td> <td><p>When set to <code class="docutils literal notranslate"><span class="pre">true</span></code>, datasource partitions will be repartitioned to achieve maximum parallelism. This applies to both in-memory partitions and FileSource’s file groups (1 group is 1 partition). For FileSources, only Parquet and CSV formats are currently supported. If set to <code class="docutils literal notranslate"><span class="pre">true</span></code> for a FileSource, all files will be repartitioned evenly ( [...] </tr> -<tr class="row-odd"><td><p>datafusion.optimizer.repartition_windows</p></td> +<tr class="row-even"><td><p>datafusion.optimizer.repartition_windows</p></td> <td><p>true</p></td> <td><p>Should DataFusion repartition data using the partitions keys to execute window functions in parallel using the provided <code class="docutils literal notranslate"><span class="pre">target_partitions</span></code> level</p></td> </tr> -<tr class="row-even"><td><p>datafusion.optimizer.repartition_sorts</p></td> +<tr class="row-odd"><td><p>datafusion.optimizer.repartition_sorts</p></td> <td><p>true</p></td> <td><p>Should DataFusion execute sorts in a per-partition fashion and merge afterwards instead of coalescing first and sorting globally. With this flag is enabled, plans in the form below <code class="docutils literal notranslate"><span class="pre">text</span> <span class="pre">"SortExec:</span> <span class="pre">[a@0</span> <span class="pre">ASC]",</span> <span class="pre">"</span> <span class="pre">CoalescePartitionsExec",</span> <span class="pre">"</span> [...] </tr> -<tr class="row-odd"><td><p>datafusion.optimizer.prefer_existing_sort</p></td> +<tr class="row-even"><td><p>datafusion.optimizer.prefer_existing_sort</p></td> <td><p>false</p></td> <td><p>When true, DataFusion will opportunistically remove sorts when the data is already sorted, (i.e. setting <code class="docutils literal notranslate"><span class="pre">preserve_order</span></code> to true on <code class="docutils literal notranslate"><span class="pre">RepartitionExec</span></code> and using <code class="docutils literal notranslate"><span class="pre">SortPreservingMergeExec</span></code>) When false, DataFusion will maximize plan parallelism using <code class="docut [...] </tr> -<tr class="row-even"><td><p>datafusion.optimizer.skip_failed_rules</p></td> +<tr class="row-odd"><td><p>datafusion.optimizer.skip_failed_rules</p></td> <td><p>false</p></td> <td><p>When set to true, the logical plan optimizer will produce warning messages if any optimization rules produce errors and then proceed to the next rule. When set to false, any rules that produce errors will cause the query to fail</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.optimizer.max_passes</p></td> +<tr class="row-even"><td><p>datafusion.optimizer.max_passes</p></td> <td><p>3</p></td> <td><p>Number of times that the optimizer will attempt to optimize the plan</p></td> </tr> -<tr class="row-even"><td><p>datafusion.optimizer.top_down_join_key_reordering</p></td> +<tr class="row-odd"><td><p>datafusion.optimizer.top_down_join_key_reordering</p></td> <td><p>true</p></td> <td><p>When set to true, the physical plan optimizer will run a top down process to reorder the join keys</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.optimizer.prefer_hash_join</p></td> +<tr class="row-even"><td><p>datafusion.optimizer.prefer_hash_join</p></td> <td><p>true</p></td> <td><p>When set to true, the physical plan optimizer will prefer HashJoin over SortMergeJoin. HashJoin can work more efficiently than SortMergeJoin but consumes more memory</p></td> </tr> -<tr class="row-even"><td><p>datafusion.optimizer.hash_join_single_partition_threshold</p></td> +<tr class="row-odd"><td><p>datafusion.optimizer.hash_join_single_partition_threshold</p></td> <td><p>1048576</p></td> <td><p>The maximum estimated size in bytes for one input side of a HashJoin will be collected into a single partition</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.optimizer.hash_join_single_partition_threshold_rows</p></td> +<tr class="row-even"><td><p>datafusion.optimizer.hash_join_single_partition_threshold_rows</p></td> <td><p>131072</p></td> <td><p>The maximum estimated size in rows for one input side of a HashJoin will be collected into a single partition</p></td> </tr> -<tr class="row-even"><td><p>datafusion.optimizer.default_filter_selectivity</p></td> +<tr class="row-odd"><td><p>datafusion.optimizer.default_filter_selectivity</p></td> <td><p>20</p></td> <td><p>The default filter selectivity used by Filter Statistics when an exact selectivity cannot be determined. Valid values are between 0 (no selectivity) and 100 (all rows are selected).</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.optimizer.prefer_existing_union</p></td> +<tr class="row-even"><td><p>datafusion.optimizer.prefer_existing_union</p></td> <td><p>false</p></td> <td><p>When set to true, the optimizer will not attempt to convert Union to Interleave</p></td> </tr> -<tr class="row-even"><td><p>datafusion.optimizer.expand_views_at_output</p></td> +<tr class="row-odd"><td><p>datafusion.optimizer.expand_views_at_output</p></td> <td><p>false</p></td> <td><p>When set to true, if the returned type is a view type then the output will be coerced to a non-view. Coerces <code class="docutils literal notranslate"><span class="pre">Utf8View</span></code> to <code class="docutils literal notranslate"><span class="pre">LargeUtf8</span></code>, and <code class="docutils literal notranslate"><span class="pre">BinaryView</span></code> to <code class="docutils literal notranslate"><span class="pre">LargeBinary</span></code>.</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.explain.logical_plan_only</p></td> +<tr class="row-even"><td><p>datafusion.explain.logical_plan_only</p></td> <td><p>false</p></td> <td><p>When set to true, the explain statement will only print logical plans</p></td> </tr> -<tr class="row-even"><td><p>datafusion.explain.physical_plan_only</p></td> +<tr class="row-odd"><td><p>datafusion.explain.physical_plan_only</p></td> <td><p>false</p></td> <td><p>When set to true, the explain statement will only print physical plans</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.explain.show_statistics</p></td> +<tr class="row-even"><td><p>datafusion.explain.show_statistics</p></td> <td><p>false</p></td> <td><p>When set to true, the explain statement will print operator statistics for physical plans</p></td> </tr> -<tr class="row-even"><td><p>datafusion.explain.show_sizes</p></td> +<tr class="row-odd"><td><p>datafusion.explain.show_sizes</p></td> <td><p>true</p></td> <td><p>When set to true, the explain statement will print the partition sizes</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.explain.show_schema</p></td> +<tr class="row-even"><td><p>datafusion.explain.show_schema</p></td> <td><p>false</p></td> <td><p>When set to true, the explain statement will print schema information</p></td> </tr> -<tr class="row-even"><td><p>datafusion.explain.format</p></td> +<tr class="row-odd"><td><p>datafusion.explain.format</p></td> <td><p>indent</p></td> <td><p>Display format of explain. Default is “indent”. When set to “tree”, it will print the plan in a tree-rendered format.</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.explain.tree_maximum_render_width</p></td> +<tr class="row-even"><td><p>datafusion.explain.tree_maximum_render_width</p></td> <td><p>240</p></td> <td><p>(format=tree only) Maximum total width of the rendered tree. When set to 0, the tree will have no width limit.</p></td> </tr> -<tr class="row-even"><td><p>datafusion.sql_parser.parse_float_as_decimal</p></td> +<tr class="row-odd"><td><p>datafusion.sql_parser.parse_float_as_decimal</p></td> <td><p>false</p></td> <td><p>When set to true, SQL parser will parse float as decimal type</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.sql_parser.enable_ident_normalization</p></td> +<tr class="row-even"><td><p>datafusion.sql_parser.enable_ident_normalization</p></td> <td><p>true</p></td> <td><p>When set to true, SQL parser will normalize ident (convert ident to lowercase when not quoted)</p></td> </tr> -<tr class="row-even"><td><p>datafusion.sql_parser.enable_options_value_normalization</p></td> +<tr class="row-odd"><td><p>datafusion.sql_parser.enable_options_value_normalization</p></td> <td><p>false</p></td> <td><p>When set to true, SQL parser will normalize options value (convert value to lowercase). Note that this option is ignored and will be removed in the future. All case-insensitive values are normalized automatically.</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.sql_parser.dialect</p></td> +<tr class="row-even"><td><p>datafusion.sql_parser.dialect</p></td> <td><p>generic</p></td> <td><p>Configure the SQL dialect used by DataFusion’s parser; supported values include: Generic, MySQL, PostgreSQL, Hive, SQLite, Snowflake, Redshift, MsSQL, ClickHouse, BigQuery, Ansi, DuckDB and Databricks.</p></td> </tr> -<tr class="row-even"><td><p>datafusion.sql_parser.support_varchar_with_length</p></td> +<tr class="row-odd"><td><p>datafusion.sql_parser.support_varchar_with_length</p></td> <td><p>true</p></td> <td><p>If true, permit lengths for <code class="docutils literal notranslate"><span class="pre">VARCHAR</span></code> such as <code class="docutils literal notranslate"><span class="pre">VARCHAR(20)</span></code>, but ignore the length. If false, error if a <code class="docutils literal notranslate"><span class="pre">VARCHAR</span></code> with a length is specified. The Arrow type system does not have a notion of maximum string length and thus DataFusion can not enforce such limits.</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.sql_parser.map_string_types_to_utf8view</p></td> +<tr class="row-even"><td><p>datafusion.sql_parser.map_string_types_to_utf8view</p></td> <td><p>true</p></td> <td><p>If true, string types (VARCHAR, CHAR, Text, and String) are mapped to <code class="docutils literal notranslate"><span class="pre">Utf8View</span></code> during SQL planning. If false, they are mapped to <code class="docutils literal notranslate"><span class="pre">Utf8</span></code>. Default is true.</p></td> </tr> -<tr class="row-even"><td><p>datafusion.sql_parser.collect_spans</p></td> +<tr class="row-odd"><td><p>datafusion.sql_parser.collect_spans</p></td> <td><p>false</p></td> <td><p>When set to true, the source locations relative to the original SQL query (i.e. <a class="reference external" href="https://docs.rs/sqlparser/latest/sqlparser/tokenizer/struct.Span.html"><code class="docutils literal notranslate"><span class="pre">Span</span></code></a>) will be collected and recorded in the logical plan nodes.</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.sql_parser.recursion_limit</p></td> +<tr class="row-even"><td><p>datafusion.sql_parser.recursion_limit</p></td> <td><p>50</p></td> <td><p>Specifies the recursion depth limit when parsing complex SQL Queries</p></td> </tr> -<tr class="row-even"><td><p>datafusion.sql_parser.default_null_ordering</p></td> +<tr class="row-odd"><td><p>datafusion.sql_parser.default_null_ordering</p></td> <td><p>nulls_max</p></td> <td><p>Specifies the default null ordering for query results. There are 4 options: - <code class="docutils literal notranslate"><span class="pre">nulls_max</span></code>: Nulls appear last in ascending order. - <code class="docutils literal notranslate"><span class="pre">nulls_min</span></code>: Nulls appear first in ascending order. - <code class="docutils literal notranslate"><span class="pre">nulls_first</span></code>: Nulls always be first in any order. - <code class="docutils litera [...] </tr> -<tr class="row-odd"><td><p>datafusion.format.safe</p></td> +<tr class="row-even"><td><p>datafusion.format.safe</p></td> <td><p>true</p></td> <td><p>If set to <code class="docutils literal notranslate"><span class="pre">true</span></code> any formatting errors will be written to the output instead of being converted into a [<code class="docutils literal notranslate"><span class="pre">std::fmt::Error</span></code>]</p></td> </tr> -<tr class="row-even"><td><p>datafusion.format.null</p></td> +<tr class="row-odd"><td><p>datafusion.format.null</p></td> <td><p></p></td> <td><p>Format string for nulls</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.format.date_format</p></td> +<tr class="row-even"><td><p>datafusion.format.date_format</p></td> <td><p>%Y-%m-%d</p></td> <td><p>Date format for date arrays</p></td> </tr> -<tr class="row-even"><td><p>datafusion.format.datetime_format</p></td> +<tr class="row-odd"><td><p>datafusion.format.datetime_format</p></td> <td><p>%Y-%m-%dT%H:%M:%S%.f</p></td> <td><p>Format for DateTime arrays</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.format.timestamp_format</p></td> +<tr class="row-even"><td><p>datafusion.format.timestamp_format</p></td> <td><p>%Y-%m-%dT%H:%M:%S%.f</p></td> <td><p>Timestamp format for timestamp arrays</p></td> </tr> -<tr class="row-even"><td><p>datafusion.format.timestamp_tz_format</p></td> +<tr class="row-odd"><td><p>datafusion.format.timestamp_tz_format</p></td> <td><p>NULL</p></td> <td><p>Timestamp format for timestamp with timezone arrays. When <code class="docutils literal notranslate"><span class="pre">None</span></code>, ISO 8601 format is used.</p></td> </tr> -<tr class="row-odd"><td><p>datafusion.format.time_format</p></td> +<tr class="row-even"><td><p>datafusion.format.time_format</p></td> <td><p>%H:%M:%S%.f</p></td> <td><p>Time format for time arrays</p></td> </tr> -<tr class="row-even"><td><p>datafusion.format.duration_format</p></td> +<tr class="row-odd"><td><p>datafusion.format.duration_format</p></td> <td><p>pretty</p></td> <td><p>Duration format. Can be either <code class="docutils literal notranslate"><span class="pre">"pretty"</span></code> or <code class="docutils literal notranslate"><span class="pre">"ISO8601"</span></code></p></td> </tr> -<tr class="row-odd"><td><p>datafusion.format.types_info</p></td> +<tr class="row-even"><td><p>datafusion.format.types_info</p></td> <td><p>false</p></td> <td><p>Show types in visual representation batches</p></td> </tr> --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@datafusion.apache.org For additional commands, e-mail: commits-h...@datafusion.apache.org