vbarua commented on code in PR #14860:
URL: https://github.com/apache/datafusion/pull/14860#discussion_r1970267828
##########
datafusion/expr/src/logical_plan/builder.rs:
##########
@@ -63,6 +63,26 @@ use indexmap::IndexSet;
/// Default table name for unnamed table
pub const UNNAMED_TABLE: &str = "?table?";
+/// Options for [`LogicalPlanBuilder`]
+#[derive(Default, Debug, Clone)]
+pub struct LogicalPlanBuilderOptions {
+ /// Flag indicating whether the plan builder should add
+ /// functionally dependent expressions as additional aggregation groupings.
+ add_implicit_group_by_exprs: bool,
Review Comment:
I lean towards having the default behaviour be `false` for this, even if
it's a breaking change, because it makes the builder less surprising IMO.
Specifically, when invoking the builder for an aggregate with a specific set of
grouping expressions, my expectation is that it should produce an aggregate
with those specific grouping expressions. If I wanted additional grouping
expressions, I would have included them.
There's definitely room and value for optimizations like what is going on
here, but I think those need to be opt-in to avoid situation like this were the
plan builder tries to be smart along one specific axis and inadvertently shoots
you in the foot in another. In the past, I think we've leaned towards having
the builder be as straightforward as possible and then handling optimizations
in the optimizer.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]