Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-4927

Remove deprecated RelBuilder#groupKey(ImmutableBitSet, ImmutableList) clashing with new replacement API

    XMLWordPrintableJSON

Details

    Description

      The RelBuilder#groupKey(ImmutableBitSet, ImmutableList) API is marked for removal before 2.0.

      /** @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)
      

      I would suggest to remove it ASAP due to the fact that it clashes with the new replacement API.

      public GroupKey groupKey(ImmutableBitSet groupSet,
            Iterable<? extends ImmutableBitSet> groupSets)
      

      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.

      Attachments

        Issue Links

          Activity

            People

              zabetak Stamatis Zampetakis
              zabetak Stamatis Zampetakis
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m