Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed 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 com.facebook.presto.operator.aggregation;
 
 
 
 import static com.facebook.presto.type.TypeUtils.buildStructuralSlice;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 public class KeyValuePairs
 {
     private static final int INSTANCE_SIZE = ClassLayout.parseClass(KeyValuePairs.class).instanceSize();
     public static final int EXPECTED_HASH_SIZE = 10_000;
 
     private final GroupByHash keysHash;
     private final PageBuilder keyPageBuilder;
     private final Type keyType;
 
     private final PageBuilder valuePageBuilder;
     private final Type valueType;
 
     public KeyValuePairs(Type keyTypeType valueType)
     {
         checkNotNull(keyType"keyType is null");
         checkNotNull(valueType"valueType is null");
 
         this. = keyType;
         this. = valueType;
          = new GroupByHash(ImmutableList.of(keyType), new int[] {0}, Optional.empty(), );
          = new PageBuilder(ImmutableList.of(this.));
          = new PageBuilder(ImmutableList.of(this.));
     }
 
     public KeyValuePairs(Slice serializedType keyTypeType valueType)
     {
         checkNotNull(serialized"serialized is null");
         checkNotNull(keyType"keyType is null");
         checkNotNull(valueType"valueType is null");
 
         this. = keyType;
         this. = valueType;
          = new GroupByHash(ImmutableList.of(keyType), new int[] {0}, Optional.empty(), 10_000);
          = new PageBuilder(ImmutableList.of(this.));
          = new PageBuilder(ImmutableList.of(this.));
         deserialize(serialized);
     }
 
     public Block getKeys()
     {
         return .getBlockBuilder(0).build();
     }
 
     public Block getValues()
     {
         return .getBlockBuilder(0).build();
     }
 
     private void deserialize(Slice serialized)
     {
         Block block = TypeUtils.readStructuralBlock(serialized);
         for (int i = 0; i < block.getPositionCount(); i += 2) {
             add(blockblockii + 1);
         }
     }
 
     public Slice serialize()
     {
         Block values = .getBlockBuilder(0).build();
         Block keys = .getBlockBuilder(0).build();
         BlockBuilder blockBuilder = new VariableWidthBlockBuilder(new BlockBuilderStatus(), keys.getSizeInBytes() + values.getSizeInBytes());
         for (int i = 0; i < keys.getPositionCount(); i++) {
             .appendTo(keysiblockBuilder);
             .appendTo(valuesiblockBuilder);
         }
         return buildStructuralSlice(blockBuilder);
    }
    public long estimatedInMemorySize()
    {
    }
    public void add(Block keyBlock valueint keyPositionint valuePosition)
    {
        Page page = new Page(key);
        if (!.contains(keyPositionpage)) {
            int groupId = .putIfAbsent(keyPositionpagenew Block[] { key });
            .appendValuesTo(groupId, 0);
            if (value.isNull(valuePosition)) {
                .getBlockBuilder(0).appendNull();
            }
            else {
                .appendTo(valuevaluePosition.getBlockBuilder(0));
            }
        }
    }
New to GrepCode? Check out our FAQ X