datafusion/expr/src/type_coercion/binary.rs (7 lines): - line 484: // TODO if we convert the floating-point data to the decimal type, it maybe overflow. - line 502: // TODO if we convert the floating-point data to the decimal type, it maybe overflow. - line 622: // TODO: cast between array elements (#6558) - line 629: // TODO: cast between array elements (#6558) - line 657: // TODO: cast between array elements (#6558) - line 1142: // TODO add other data type - line 1343: // TODO add other data type datafusion/core/src/physical_optimizer/aggregate_statistics.rs (6 lines): - line 77: // TODO: we need all aggr_expr to be resolved (cf TODO fullres) - line 82: // TODO fullres: use statistics even if not all aggr_expr could be resolved - line 154: // TODO implementing Eq on PhysicalExpr would help a lot here - line 183: // TODO optimize with exprs other than Column - line 214: // TODO optimize with exprs other than Column - line 242: // TODO optimize with exprs other than Column datafusion/core/src/physical_optimizer/join_selection.rs (5 lines): - line 59: // TODO: We need some performance test for Right Semi/Right Join swap to Left Semi/Left Join in case that the right side is smaller but not much smaller. - line 60: // TODO: In PrestoSQL, the optimizer flips join sides only if one side is much smaller than the other by more than SIZE_DIFFERENCE_THRESHOLD times, by default is is 8 times. - line 85: // TODO check the logic in datasource::get_statistics_with_limit() - line 154: // TODO avoid adding ProjectionExec again and again, only adding Final Projection - line 389: // TODO avoid adding ProjectionExec again and again, only adding Final Projection datafusion/physical-expr/src/aggregate/groups_accumulator/accumulate.rs (5 lines): - line 199: // iterator. TODO file a ticket - line 216: // iterators. TODO file a ticket - line 335: // TODO make this more efficient rather than two - line 376: // iterator. TODO file a ticket - line 426: // iterators. TODO file a ticket datafusion/core/src/datasource/listing/helpers.rs (4 lines): - line 96: // TODO: Stable functions could be `applicable`, but that would require access to the context - line 106: // TODO: Stable functions could be `applicable`, but that would require access to the context - line 114: // TODO other expressions are not handled yet: - line 272: // TODO: Plumb this down datafusion/sql/src/expr/identifier.rs (4 lines): - line 33: // TODO: figure out if ScalarVariables should be insensitive. - line 120: // TODO: remove when can support multiple nested identifiers - line 131: // TODO: remove when can support multiple nested identifiers - line 161: // TODO: remove when can support nested identifiers for OuterReferenceColumn datafusion/core/src/datasource/avro_to_arrow/arrow_array_reader.rs (4 lines): - line 295: // TODO: ARROW-10335: APIs of dictionary arrays and others are different. Unify - line 426: // TODO: unboxing Union(Array(Union(...))) should probably be done earlier - line 618: // TODO: this is incomplete - line 978: // TODO: Fixed, Enum, Dictionary datafusion/core/src/catalog/information_schema.rs (4 lines): - line 264: // TODO: Stream this - line 355: // TODO: Stream this - line 469: // TODO: Stream this - line 654: // TODO: Stream this datafusion/core/src/datasource/physical_plan/mod.rs (4 lines): - line 201: // TODO provide accurate stat for partition column (#1186) - line 209: // TODO correct byte size? - line 1016: // TODO implement tests for partition column statistics once implemented - line 1060: // TODO implement tests for proj_stat_cols[0] once partition column datafusion/core/src/datasource/listing/table.rs (4 lines): - line 808: // TODO support inserts to sorted tables which preserve sort_order - line 1828: ParquetReadOptions::default(), // TODO implement insert_mode for parquet - line 1840: // TODO implement insert_mode for avro - line 1852: // TODO implement insert_mode for arrow datafusion/common/src/scalar.rs (3 lines): - line 554: // TODO implement this in arrow-rs with simd - line 602: // TODO: This simple implementation loses precision for calculations like - line 2193: // TODO: we might want to look into supporting ceil/floor here for floats. datafusion/substrait/src/logical_plan/consumer.rs (3 lines): - line 315: // TODO: Add parsing of order_by also - line 363: // TODO: collect only one null_eq_null - line 923: // TODO: Consider the cases where window frame is specified in query and is different from default datafusion/core/src/physical_planner.rs (3 lines): - line 223: // TODO: Add support for filter and order by in AggregateUDF - line 1075: // TODO optimize the plan, and use the config of `target_partitions` and `repartition_joins` - line 1089: // TODO SortMergeJoinExec need to support join filter datafusion/physical-expr/src/aggregate/sum.rs (3 lines): - line 270: // TODO refine the cast kernel in arrow-rs - line 320: // TODO: add the checker for overflow - line 357: // TODO: add the checker for overflow datafusion/core/src/physical_optimizer/pruning.rs (3 lines): - line 611: // TODO: support other data type for prunable cast or try cast - line 2411: // TODO: add test for other case and op - line 2440: // TODO: add other negative test for other case and op datafusion/physical-expr/src/expressions/binary.rs (3 lines): - line 670: // TODO: Currently, this implementation only supports the AND operator - line 678: // TODO: We will handle strictly false clauses by negating - line 3674: // TODO: now we do not refactor the `is distinct or is not distinct` rule of coercion. datafusion/core/src/physical_plan/aggregates/mod.rs (2 lines): - line 928: // TODO stats: group expressions: - line 931: // TODO stats: aggr expression: datafusion/core/src/physical_plan/joins/hash_join.rs (2 lines): - line 507: // TODO stats: it is not possible in general to know the output size of joins - line 1254: // TODO: Replace `ceil` wrapper with stable `div_cell` after datafusion/core/src/execution/context.rs (2 lines): - line 379: // TODO what about the other statements (like TransactionStart and TransactionEnd) - line 1370: // TODO should we print out more? datafusion/expr/src/window_state.rs (2 lines): - line 379: // TODO: Handle positive overflows. - line 387: // TODO: Handle negative overflows. datafusion/physical-expr/src/aggregate/approx_distinct.rs (2 lines): - line 89: // TODO u8, i8, u16, i16 shall really be done using bitmap, not HLL - line 90: // TODO support for boolean (trivial case) datafusion/core/src/physical_plan/joins/hash_join_utils.rs (2 lines): - line 98: // TODO: speed up collision checks - line 324: // TODO: Extend the `PhysicalSortExpr` mechanism to express independent datafusion/core/src/physical_optimizer/dist_enforcement.rs (2 lines): - line 470: // TODO merge adjacent Projections if there are - line 1171: // TODO: Orthogonalize the tests here just to verify `EnforceDistribution` and create datafusion/core/src/physical_plan/joins/symmetric_hash_join.rs (2 lines): - line 448: // TODO: Output ordering might be kept for some cases. - line 489: // TODO stats: it is not possible in general to know the output size of joins datafusion/core/src/physical_plan/sorts/sort.rs (2 lines): - line 503: // TODO: This should probably be try_grow (#5885) - line 763: // TODO support RangePartition and OrderedDistribution datafusion/core/src/datasource/file_format/mod.rs (2 lines): - line 84: /// TODO: should the file source return statistics for only columns referred to in the table schema? - line 355: // TODO parallelize serialization accross partitions and batches within partitions datafusion/physical-expr/src/expressions/cast.rs (2 lines): - line 151: // TODO: Use https://github.com/apache/arrow-rs/issues/2966 when available - line 694: #[ignore] // TODO: https://github.com/apache/arrow-datafusion/issues/5396 datafusion/optimizer/src/decorrelate_predicate_subquery.rs (2 lines): - line 60: let filters = split_conjunction(predicate); // TODO: add ExistenceJoin to support disjunctions - line 990: // TODO: support disjunction - for now expect unaltered plan datafusion/optimizer/src/push_down_filter.rs (2 lines): - line 504: // TODO refine the logic, introduce EquivalenceProperties to logical plan and infer additional filters to push down - line 1723: /// TODO: In this case we can sometimes convert the join to an INNER join datafusion/core/src/physical_optimizer/sort_pushdown.rs (2 lines): - line 259: // TODO: Add support for Projection push down - line 282: // TODO: Add support for Projection push down datafusion/core/src/physical_plan/projection.rs (2 lines): - line 349: // TODO stats: estimate more statistics from expressions - line 361: // TODO stats: knowing the type of the new columns we can guess the output size datafusion/optimizer/src/analyzer/type_coercion.rs (2 lines): - line 114: // TODO: from_plan can't change the schema, so we need to do this here - line 1073: // TODO: we should cast col(a). datafusion/core/src/physical_plan/joins/nested_loop_join.rs (2 lines): - line 382: // TODO: support null aware equal - line 432: // TODO: Replace `ceil` wrapper with stable `div_cell` after datafusion/core/src/physical_plan/joins/cross_join.rs (2 lines): - line 204: // TODO optimize CrossJoin implementation to generate M * N partitions - line 213: // TODO check the output ordering of CrossJoin datafusion/core/src/physical_plan/analyze.rs (2 lines): - line 192: // TODO use some sort of enum rather than strings? - line 201: // TODO make this more sophisticated datafusion/substrait/src/logical_plan/producer.rs (2 lines): - line 1163: invocation: 0, // TODO: fix - line 1566: // TODO: Extend support for remaining data types datafusion/expr/src/type_coercion/aggregates.rs (2 lines): - line 348: // TODO add checker, if the value type is complex data type - line 351: // TODO add checker for datatype which min and max supported datafusion/optimizer/src/simplify_expressions/expr_simplifier.rs (1 line): - line 123: // TODO iterate until no changes are made during rewrite datafusion/physical-expr/src/expressions/try_cast.rs (1 line): - line 299: // TODO we should add function to create Decimal128Array with value and metadata datafusion/physical-expr/src/intervals/cp_solver.rs (1 line): - line 1091: // TODO: We expect nodes a@0 and b@1 to be pruned, and intervals to be provided from the a@0 + b@1 node. datafusion/optimizer/src/simplify_expressions/simplify_exprs.rs (1 line): - line 89: // TODO: unify with `rewrite_preserving_name` datafusion-cli/src/main.rs (1 line): - line 148: // TODO maybe we can have thiserror for cli but for now let's keep it simple datafusion/optimizer/src/unwrap_cast_in_comparison.rs (1 line): - line 266: // TODO: handle other expr type and dfs visit them datafusion/core/src/datasource/file_format/avro.rs (1 line): - line 60: // TODO: Fetching entire file to get schema is potentially wasteful datafusion/core/src/physical_plan/joins/sort_merge_join.rs (1 line): - line 373: // TODO stats: it is not possible in general to know the output size of joins datafusion/optimizer/src/analyzer/subquery.rs (1 line): - line 85: // TODO revisit this validation logic datafusion/optimizer/src/propagate_empty_relation.rs (1 line): - line 66: // TODO: For Join, more join type need to be careful: datafusion/expr/src/utils.rs (1 line): - line 1379: // FIXME use as_ref datafusion/core/src/physical_plan/windows/window_agg_exec.rs (1 line): - line 263: // TODO stats: some windowing function will maintain invariants such as min, max... datafusion/core/src/datasource/streaming.rs (1 line): - line 93: // TODO: push limit down datafusion/proto/src/physical_plan/from_proto.rs (1 line): - line 247: // TODO Do not create new the ExecutionProps datafusion/core/src/physical_plan/windows/bounded_window_agg_exec.rs (1 line): - line 339: // TODO stats: some windowing function will maintain invariants such as min, max... datafusion/core/src/datasource/file_format/arrow.rs (1 line): - line 60: // TODO: Fetching entire file to get schema is potentially wasteful datafusion/core/src/physical_plan/insert.rs (1 line): - line 49: // TODO add desired input ordering datafusion/core/src/physical_optimizer/utils.rs (1 line): - line 94: // TODO: Remove this function when `is_sorted` graduates from Rust nightly. datafusion/physical-expr/src/aggregate/array_agg_ordered.rs (1 line): - line 281: // TODO: Calculate size of each `PhysicalSortExpr` more accurately. datafusion/expr/src/tree_node/expr.rs (1 line): - line 362: // TODO: datafusion/sql/src/statement.rs (1 line): - line 551: // TODO: implement as part of https://github.com/apache/arrow-datafusion/issues/5654 datafusion/sql/src/expr/arrow_cast.rs (1 line): - line 723: // TODO support more structured types (List, LargeList, Struct, Union, Map, RunEndEncoded, etc) datafusion/physical-expr/src/expressions/case.rs (1 line): - line 1016: // TODO: now just use the `equal` coercion rule for case when. If find the issue, and datafusion/physical-expr/src/datetime_expressions.rs (1 line): - line 521: // TODO (my next PR): without `INTERVAL` keyword, the stride was converted into ScalarValue::IntervalDayTime somwhere datafusion/substrait/src/physical_plan/consumer.rs (1 line): - line 77: // TODO substrait plans do not have `last_modified` or `size` but `ObjectMeta` datafusion/expr/src/logical_plan/builder.rs (1 line): - line 1239: // TODO: move it into analyzer datafusion/core/src/datasource/memory.rs (1 line): - line 272: // TODO parallelize outer and inner loops dev/release/generate-changelog.py (1 line): - line 55: #TODO: make categories configurable datafusion/core/src/datasource/physical_plan/parquet/row_filter.rs (1 line): - line 307: // TODO How do we know this? datafusion/physical-expr/src/aggregate/correlation.rs (1 line): - line 164: // TODO: null input skipping logic duplicated across Correlation datafusion/core/src/datasource/file_format/parquet.rs (1 line): - line 63: /// TODO: Deprecate and remove overrides datafusion/core/src/physical_plan/aggregates/no_grouping.rs (1 line): - line 191: /// TODO: Make this a member function datafusion/expr/src/accumulator.rs (1 line): - line 180: // TODO add retract for all accumulators datafusion/physical-expr/src/intervals/rounding.rs (1 line): - line 19: //! TODO: Remove this custom implementation and the "libc" dependency when datafusion/core/src/datasource/physical_plan/chunked_store.rs (1 line): - line 39: /// TODO: Upstream into object_store_rs datafusion/core/src/datasource/physical_plan/json.rs (1 line): - line 463: // TODO: this is not where schema inference should be tested datafusion/core/src/physical_plan/mod.rs (1 line): - line 456: // TODO: Replace with [join_next_with_id](https://docs.rs/tokio/latest/tokio/task/struct.JoinSet.html#method.join_next_with_id datafusion/core/src/datasource/listing/url.rs (1 line): - line 108: // TODO: Currently we do not have an IO-related error variant that accepts () datafusion/physical-expr/src/window/lead_lag.rs (1 line): - line 145: // TODO: change the original arrow::compute::kernels::window::shift impl to support an optional default value datafusion/optimizer/src/optimizer.rs (1 line): - line 350: // TODO: future feature: We can do Batch optimize datafusion/core/src/physical_plan/limit.rs (1 line): - line 377: // TODO stats: find a more explicit way to vehiculate this information datafusion/expr/src/type_coercion/other.rs (1 line): - line 53: // TODO: now just use the `equal` coercion rule for case when. If find the issue, and datafusion/optimizer/src/analyzer/mod.rs (1 line): - line 100: // TODO add common rule executor for Analyzer and Optimizer datafusion/core/src/physical_plan/aggregates/group_values/row.rs (1 line): - line 161: // TODO file some ticket in arrow-rs to make this more efficent? datafusion/sql/src/expr/value.rs (1 line): - line 336: // TODO make interval parsing better in arrow-rs / expose `IntervalType`