brachi-wernick commented on a change in pull request #15728:
URL: https://github.com/apache/beam/pull/15728#discussion_r730304342



##########
File path: 
sdks/java/extensions/zetasketch/src/main/java/org/apache/beam/sdk/extensions/zetasketch/HllCount.java
##########
@@ -279,6 +279,10 @@ private Builder(HllCountInitFn<InputT, ?> initFn) {
       public <K> Combine.PerKey<K, InputT, byte[]> perKey() {
         return Combine.perKey(initFn);
       }
+
+      public HllCountInitFn<InputT, ?> asUdaf() {

Review comment:
       Why is it better to return `Combine.CombineFn`? this `builder` is 
specific for `HllCount`?
   Also it is problematic to return `Combine.CombineFn<InputT, 
HyperLogLogPlusPlus<?>, byte[]>` because the `?` makes issues to compile:
   ```
    error: incompatible types: HllCountInitFn<InputT,CAP#1> cannot be converted 
to CombineFn<InputT,HyperLogLogPlusPlus<?>,byte[]>
           return initFn;
                  ^
     where InputT is a type-variable:
       InputT extends @org.checkerframework.checker.nullness.qual.Nullable 
Object declared in class Builder
     where CAP#1 is a fresh type-variable:
       CAP#1 extends Object from capture of ?
   1 error
   ```
   
   if I remove the `?` it also failed with
   ```
     missing type arguments for generic class HyperLogLogPlusPlus<V>
   ```

##########
File path: 
sdks/java/extensions/zetasketch/src/main/java/org/apache/beam/sdk/extensions/zetasketch/HllCount.java
##########
@@ -279,6 +279,10 @@ private Builder(HllCountInitFn<InputT, ?> initFn) {
       public <K> Combine.PerKey<K, InputT, byte[]> perKey() {
         return Combine.perKey(initFn);
       }
+
+      public HllCountInitFn<InputT, ?> asUdaf() {

Review comment:
       Why is it better to return `Combine.CombineFn`? this `builder` is 
specific for `HllCount`.
   
   Also it is problematic to return `Combine.CombineFn<InputT, 
HyperLogLogPlusPlus<?>, byte[]>` because the `?` makes issues to compile:
   ```
    error: incompatible types: HllCountInitFn<InputT,CAP#1> cannot be converted 
to CombineFn<InputT,HyperLogLogPlusPlus<?>,byte[]>
           return initFn;
                  ^
     where InputT is a type-variable:
       InputT extends @org.checkerframework.checker.nullness.qual.Nullable 
Object declared in class Builder
     where CAP#1 is a fresh type-variable:
       CAP#1 extends Object from capture of ?
   1 error
   ```
   
   if I remove the `?` it also failed with
   ```
     missing type arguments for generic class HyperLogLogPlusPlus<V>
   ```

##########
File path: 
sdks/java/extensions/zetasketch/src/main/java/org/apache/beam/sdk/extensions/zetasketch/ApproximateCountDistinct.java
##########
@@ -99,6 +99,10 @@
         .build();
   }
 
+  public static <T> HllCountInitFn<T, ?> getUdaf(TypeDescriptor<T> input) {

Review comment:
       yes works when putting `?` instead of `HyperLogLogPlusPlus`, less strict 
but fine enough :)
   commit this.




-- 
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: github-unsubscr...@beam.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to