You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Stamatis Zampetakis (Jira)" <ji...@apache.org> on 2021/12/08 15:29:00 UTC
[jira] [Created] (CALCITE-4927) Remove deprecated RelBuilder#groupKey(ImmutableBitSet, ImmutableList) clashing with new replacement API
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)