[ 
https://issues.apache.org/jira/browse/FLINK-2565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14708964#comment-14708964
 ] 

ASF GitHub Bot commented on FLINK-2565:
---------------------------------------

Github user zentol commented on a diff in the pull request:

    https://github.com/apache/flink/pull/1043#discussion_r37729559
  
    --- Diff: 
flink-core/src/main/java/org/apache/flink/api/common/typeutils/base/array/BooleanPrimitiveArrayComparator.java
 ---
    @@ -0,0 +1,56 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you under the Apache License, Version 2.0 (the
    + * "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package org.apache.flink.api.common.typeutils.base.array;
    +
    +import static java.lang.Math.min;
    +import org.apache.flink.api.common.typeutils.TypeComparator;
    +import org.apache.flink.api.common.typeutils.base.BooleanComparator;
    +
    +public class BooleanPrimitiveArrayComparator extends 
PrimitiveArrayComparator<boolean[], BooleanComparator> {
    +   public BooleanPrimitiveArrayComparator(boolean ascending) {
    +           super(ascending, new BooleanComparator(ascending));
    +   }
    +
    +   @Override
    +   public int hash(boolean[] record) {
    +           int result = 0;
    +           for (boolean field : record) {
    +                   result += comparator.hash(field);
    +           }
    +           return result;
    +   }
    +
    +   @Override
    +   public int compare(boolean[] first, boolean[] second) {
    +           for (int x = 0; x < min(first.length, second.length); x++) {
    +                   int cmp = comparator.compare(first[x], second[x]);
    +                   if (cmp != 0) {
    +                           return cmp;
    --- End diff --
    
    no, because the underlying comparator has used the ascending flag already.
    
    It's always a headache thinking about the comparator logic :(


> Support primitive arrays as keys
> --------------------------------
>
>                 Key: FLINK-2565
>                 URL: https://issues.apache.org/jira/browse/FLINK-2565
>             Project: Flink
>          Issue Type: Improvement
>          Components: Java API
>            Reporter: Chesnay Schepler
>            Assignee: Chesnay Schepler
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to