Stamatis Zampetakis created CALCITE-4927:
--------------------------------------------
Summary: Remove deprecated RelBuilder#groupKey(ImmutableBitSet,
ImmutableList) clashing with new replacement API
Key: CALCITE-4927
URL: https://issues.apache.org/jira/browse/CALCITE-4927
Project: Calcite
Issue Type: Task
Components: core
Affects Versions: 1.28.0
Reporter: Stamatis Zampetakis
Assignee: Stamatis Zampetakis
Fix For: 1.29.0
The {{RelBuilder#groupKey(ImmutableBitSet, ImmutableList)}} API is marked for
removal before 2.0.
{code:java}
/** @deprecated Use {@link #groupKey(ImmutableBitSet)}
* or {@link #groupKey(ImmutableBitSet, Iterable)}. */
@Deprecated // to be removed before 2.0
public GroupKey groupKey(ImmutableBitSet groupSet,
@Nullable ImmutableList<ImmutableBitSet> groupSets)
{code}
I would suggest to remove it ASAP due to the fact that it clashes with the new
replacement API.
{code:java}
public GroupKey groupKey(ImmutableBitSet groupSet,
Iterable<? extends ImmutableBitSet> groupSets)
{code}
Leaving it as is creates ambiguity and requires everybody to upcast to
{{Iterable}} if they want to use the new API.
Removing it on the other hand does not seem to affect much backward
compatibility since callers will automatically use the new API with no changes
required in their code.
The main difference is that the deprecated API allows {{groupSets}} to be null
but if we care so much we can also make the new API to be more permissive.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)