>From Ritik Raj <[email protected]>:

Ritik Raj has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20405?usp=email )


Change subject: ignore: int to short
......................................................................

ignore: int to short

Change-Id: Ic6217534262b9b76cbfc9933227167314decb67c
---
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/bytes/stream/in/MultiPageZeroByteBuffersReader.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/FlushColumnTupleWriter.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/merge/MergeColumnTupleWriter.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/AbstractColumnValuesReader.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/readers/DefaultColumnPageZeroReader.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/readers/SparseColumnPageZeroReader.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/SparseColumnPageZeroWriter.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/DefaultColumnMultiPageZeroReader.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/SparseColumnMultiPageZeroReader.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/SparseColumnMultiPageZeroWriter.java
M 
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/ColumnBTreeReadLeafFrame.java
M 
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/IColumnPageZeroReader.java
12 files changed, 45 insertions(+), 135 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/05/20405/1

diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/bytes/stream/in/MultiPageZeroByteBuffersReader.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/bytes/stream/in/MultiPageZeroByteBuffersReader.java
index a5a7477..812fad8 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/bytes/stream/in/MultiPageZeroByteBuffersReader.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/bytes/stream/in/MultiPageZeroByteBuffersReader.java
@@ -118,9 +118,10 @@
                     segmentIndex == numberOfPageSegments - 2 ? 
numberOfColumnsInLastSegment : numberOfColumnsInAPage;
             for (int j = 0; j < numberOfColumnsInSegment; j++) {
                 int columnIndex = buffer.getInt(segmentOffset);
-                int columnOffset = buffer.getInt(segmentOffset + 
Integer.BYTES);
+                int columnOffset =
+                        buffer.getInt(segmentOffset + 
SparseColumnPageZeroWriter.COLUMN_INDEX_SIZE_IN_EXTRA_SEGMENTS);
                 offsetColumnIndexPairs[currentColumnIndex++] = 
IntPairUtil.of(columnOffset, columnIndex);
-                segmentOffset += SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
+                segmentOffset += 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS;
             }
         }
         return currentColumnIndex;
@@ -128,7 +129,7 @@

     public void readAllColumns(BitSet presentColumns, int 
numberOfPageSegments, int numberOfColumnsInAPage,
             int numberOfColumnsInLastSegment) {
-        final int stride = SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
+        final int stride = 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS;
         final int lastSegmentIndex = numberOfPageSegments - 2;

         for (Int2IntMap.Entry entry : segmentDir.int2IntEntrySet()) {
@@ -195,7 +196,7 @@
         int end = numberOfColumnsInSegment - 1;
         while (start <= end) {
             int mid = start + (end - start) / 2;
-            int midColumnIndex = buffer.getInt(mid * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE);
+            int midColumnIndex = buffer.getInt(mid * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS);
             if (midColumnIndex == columnIndex) {
                 return mid; // found the column index
             } else if (midColumnIndex < columnIndex) {
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/FlushColumnTupleWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/FlushColumnTupleWriter.java
index 56149bc..ee7b6ad 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/FlushColumnTupleWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/FlushColumnTupleWriter.java
@@ -182,7 +182,7 @@
     private int getSpaceOccupiedBySparseWriter(int 
maxColumnsInPageZerothSegment, int bufferCapacity) {
         int presentColumns = 
transformerForCurrentTuple.getNumberOfVisitedColumnsInBatch();
         int maximumNumberOfColumnsInASegment =
-                
SparseColumnMultiPageZeroWriter.getMaximumNumberOfColumnsInAPage(bufferCapacity);
+                
SparseColumnMultiPageZeroWriter.getMaximumNumberOfColumnsInASegmentPage(bufferCapacity);
         int numberOfExtraPagesRequired = presentColumns <= 
maxColumnsInPageZerothSegment ? 0
                 : (int) Math.ceil(
                         (double) (presentColumns - 
maxColumnsInPageZerothSegment) / maximumNumberOfColumnsInASegment);
@@ -249,8 +249,8 @@
         int beforeTransformColumnCount = 
transformerForCurrentTuple.getBeforeTransformColumnsCount();
         int currentTupleColumnsCount = 
transformerForCurrentTuple.getNumberOfVisitedColumnsInBatch();
         if (beforeTransformColumnCount != presentColumnsCount || 
currentTupleColumnsCount != presentColumnsCount) {
-            LOGGER.debug("mismatch in column counts: beforeTransform={}, 
currentTuple={}, expected={}",
-                    beforeTransformColumnCount, currentTupleColumnsCount, 
presentColumnsCount);
+//            LOGGER.debug("mismatch in column counts: beforeTransform={}, 
currentTuple={}, expected={}",
+//                    beforeTransformColumnCount, currentTupleColumnsCount, 
presentColumnsCount);
         }

         writer.setPageZeroWriter(pageZeroWriter, 
toIndexArray(presentColumnsIndexes), numberOfColumns);
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/merge/MergeColumnTupleWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/merge/MergeColumnTupleWriter.java
index 0ae1aea..45e7c37 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/merge/MergeColumnTupleWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/merge/MergeColumnTupleWriter.java
@@ -184,7 +184,7 @@
     private int getSpaceOccupiedBySparseWriter(int 
maxColumnsInPageZerothSegment, int bufferCapacity) {
         int numberOfColumns = columnMetadata.getNumberOfColumns();
         int maximumNumberOfColumnsInASegment =
-                
SparseColumnMultiPageZeroWriter.getMaximumNumberOfColumnsInAPage(bufferCapacity);
+                
SparseColumnMultiPageZeroWriter.getMaximumNumberOfColumnsInASegmentPage(bufferCapacity);
         int numberOfExtraPagesRequired = numberOfColumns <= 
maxColumnsInPageZerothSegment ? 0
                 : (int) Math.ceil(
                         (double) (numberOfColumns - 
maxColumnsInPageZerothSegment) / maximumNumberOfColumnsInASegment);
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/AbstractColumnValuesReader.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/AbstractColumnValuesReader.java
index 62d45a4..4f0e841 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/AbstractColumnValuesReader.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/AbstractColumnValuesReader.java
@@ -18,8 +18,6 @@
  */
 package org.apache.asterix.column.values.reader;

-import java.io.IOException;
-
 import 
org.apache.asterix.column.bytes.decoder.ParquetRunLengthBitPackingHybridDecoder;
 import org.apache.asterix.column.bytes.stream.in.AbstractBytesInputStream;
 import org.apache.asterix.column.bytes.stream.in.ByteBufferInputStream;
@@ -136,7 +134,7 @@
             if (valueLength > 0) {
                 valueReader.init(valuesStream, tupleCount);
             }
-        } catch (IOException e) {
+        } catch (Exception e) {
             ObjectNode infoNode = OBJECT_MAPPER.createObjectNode();
             appendReaderInformation(infoNode);
             LOGGER.error("error while resetting reader, collected info: {}", 
infoNode);
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/readers/DefaultColumnPageZeroReader.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/readers/DefaultColumnPageZeroReader.java
index 37aecde..33ece54 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/readers/DefaultColumnPageZeroReader.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/readers/DefaultColumnPageZeroReader.java
@@ -151,18 +151,6 @@
     }

     @Override
-    public void getAllColumns(BitSet presentColumns) {
-        //Don't ask for pageZeroBuf.getInt(NUMBER_OF_COLUMNS_OFFSET) here, as 
the cursor might have been closed.
-        //and the cached page might have been recycled.
-        presentColumns.set(0, numberOfPresentColumns);
-    }
-
-    @Override
-    public ByteBuffer getPageZeroBuf() {
-        return pageZeroBuf;
-    }
-
-    @Override
     public int populateOffsetColumnIndexPairs(long[] offsetColumnIndexPairs) {
         int columnOffsetStart = headerSize;
         for (int i = 0; i < numberOfPresentColumns; i++) {
@@ -199,10 +187,6 @@
     }
 
     @Override
-    public void setPresentColumnsIndices() {
-    }
-
-    @Override
     public void printPageZeroReaderInfo() {
         ColumnarValueException ex = new ColumnarValueException();
         ObjectNode readerNode = ex.createNode(getClass().getSimpleName());
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/readers/SparseColumnPageZeroReader.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/readers/SparseColumnPageZeroReader.java
index a008c79..265e448 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/readers/SparseColumnPageZeroReader.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/readers/SparseColumnPageZeroReader.java
@@ -54,8 +54,8 @@
     @Override
     public int getColumnOffset(int columnIndex) {
         int relativeColumnIndex = getRelativeColumnIndex(columnIndex);
-        return pageZeroBuf.getInt(
-                headerSize + relativeColumnIndex * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE + Integer.BYTES);
+        return pageZeroBuf.getInt(headerSize + relativeColumnIndex * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE
+                + SparseColumnPageZeroWriter.COLUMN_INDEX_SIZE);
     }

     @Override
@@ -87,7 +87,7 @@
             return cachedIndex;
         }
         int startColumnIndex = getColumnIndex(0);
-        int startColumn = pageZeroBuf.getInt(startColumnIndex);
+        int startColumn = pageZeroBuf.getShort(startColumnIndex);
         if (startColumn == columnIndex) {
             columnIndexToRelativeColumnIndex.put(columnIndex, 0);
             return 0;
@@ -95,7 +95,7 @@

         int totalColumns = numberOfPresentColumns;
         int lastColumnIndex = getColumnIndex(totalColumns - 1);
-        int lastColumn = pageZeroBuf.getInt(lastColumnIndex);
+        int lastColumn = pageZeroBuf.getShort(lastColumnIndex);
         if (lastColumn == columnIndex) {
             columnIndexToRelativeColumnIndex.put(columnIndex, totalColumns - 
1);
             return totalColumns - 1;
@@ -106,7 +106,7 @@
         while (start <= end) {
             int mid = start + (end - start) / 2;
             int midIndex = getColumnIndex(mid);
-            int midColumnIndex = pageZeroBuf.getInt(midIndex);
+            int midColumnIndex = pageZeroBuf.getShort(midIndex);
             if (midColumnIndex == columnIndex) {
                 columnIndexToRelativeColumnIndex.put(columnIndex, mid);
                 return mid; // this is the relative index
@@ -131,33 +131,10 @@
     }

     @Override
-    public void setPresentColumnsIndices() {
-        presentColumnsIndices.clear();
-        if (numberOfPresentColumns == 0) {
-            return;
-        }
-
-        int columnIndex = headerSize;
-        int limit = columnIndex + numberOfPresentColumns * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
-
-        while (columnIndex < limit) {
-            int column = pageZeroBuf.getInt(columnIndex);
-            presentColumnsIndices.set(column);
-            columnIndex += SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
-        }
-    }
-
-    @Override
-    public void getAllColumns(BitSet presentColumns) {
-        //Iterate through the present columns indices and set them in the 
BitSet
-        presentColumns.or(presentColumnsIndices);
-    }
-
-    @Override
     public int populateOffsetColumnIndexPairs(long[] offsetColumnIndexPairs) {
         int columnIndex = getColumnIndex(0);
         for (int i = 0; i < numberOfPresentColumns; i++) {
-            int column = pageZeroBuf.getInt(columnIndex);
+            int column = pageZeroBuf.getShort(columnIndex);
             int offset = pageZeroBuf.getInt(columnIndex + 
SparseColumnPageZeroWriter.COLUMN_INDEX_SIZE);
             offsetColumnIndexPairs[i] = IntPairUtil.of(offset, column);
             columnIndex += SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/SparseColumnPageZeroWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/SparseColumnPageZeroWriter.java
index 4fc2550..61b4d95 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/SparseColumnPageZeroWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/SparseColumnPageZeroWriter.java
@@ -42,9 +42,11 @@
  */
 public class SparseColumnPageZeroWriter extends DefaultColumnPageZeroWriter {
     /** Size in bytes for storing a column index */
-    public static final int COLUMN_INDEX_SIZE = Integer.BYTES;
+    public static final int COLUMN_INDEX_SIZE = Short.BYTES;
+    public static final int COLUMN_INDEX_SIZE_IN_EXTRA_SEGMENTS = 
Integer.BYTES;
     /** Size in bytes for storing a column entry (index + offset) */
     public static final int COLUMN_OFFSET_SIZE = Integer.BYTES + 
COLUMN_INDEX_SIZE;
+    public static final int COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS = 
Integer.BYTES + Integer.BYTES;

     private int[] presentColumns;
     private int numberOfPresentColumns;
@@ -112,9 +114,9 @@
     public void putColumnOffset(int absoluteColumnIndex, int 
relativeColumnIndex, int offset) {
         int columnOffset = columnsOffset + COLUMN_OFFSET_SIZE * 
relativeColumnIndex;
         // Store the absolute column index first
-        pageZero.putInt(columnOffset, absoluteColumnIndex);
+        pageZero.putShort(columnOffset, (short) absoluteColumnIndex);
         // Then store the data offset
-        pageZero.putInt(columnOffset + Integer.BYTES, offset);
+        pageZero.putInt(columnOffset + COLUMN_INDEX_SIZE, offset);
     }

     /**
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/DefaultColumnMultiPageZeroReader.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/DefaultColumnMultiPageZeroReader.java
index 6d6deaa..fc97f96 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/DefaultColumnMultiPageZeroReader.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/DefaultColumnMultiPageZeroReader.java
@@ -222,18 +222,6 @@
     }

     @Override
-    public void getAllColumns(BitSet presentColumns) {
-        //Don't ask for pageZeroBuf.getInt(NUMBER_OF_COLUMNS_OFFSET) here, as 
the cursor might have been closed.
-        //and the cached page might have been recycled.
-        presentColumns.set(0, numberOfColumns);
-    }
-
-    @Override
-    public ByteBuffer getPageZeroBuf() {
-        return pageZeroBuf;
-    }
-
-    @Override
     public int populateOffsetColumnIndexPairs(long[] offsetColumnIndexPairs) {
         int columnOffsetStart = headerSize;
         int numberOfColumns = getNumberOfPresentColumns();
@@ -283,10 +271,6 @@
     }

     @Override
-    public void setPresentColumnsIndices() {
-    }
-
-    @Override
     public void unPinNotRequiredPageZeroSegments() throws HyracksDataException 
{
         segmentBuffers.unPinNotRequiredSegments(pageZeroSegmentsPages, 
numberOfPageZeroSegments);
     }
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/SparseColumnMultiPageZeroReader.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/SparseColumnMultiPageZeroReader.java
index be47e2b..6cbc3c3 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/SparseColumnMultiPageZeroReader.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/SparseColumnMultiPageZeroReader.java
@@ -67,7 +67,7 @@
         zerothSegmentReader = new SparseColumnPageZeroReader();
         this.pageZeroSegmentsPages = new BitSet();
         this.maxNumberOfColumnsInAPage =
-                
SparseColumnMultiPageZeroWriter.getMaximumNumberOfColumnsInAPage(bufferCapacity);
+                
SparseColumnMultiPageZeroWriter.getMaximumNumberOfColumnsInASegmentPage(bufferCapacity);
         this.offsetPointable = new VoidPointable();
         this.columnIndexToRelativeColumnIndex = new Int2IntOpenHashMap();
         columnIndexToRelativeColumnIndex.defaultReturnValue(-1);
@@ -106,9 +106,10 @@
                 int columnIndexInRequiredSegment =
                         (relativeColumnIndex - numberOfColumnInZerothSegment) 
% maxNumberOfColumnsInAPage;
                 int segmentOffset =
-                        columnIndexInRequiredSegment * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE + Integer.BYTES; // skipping 4 
bytes of columnIndex
+                        columnIndexInRequiredSegment * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS
+                                + Integer.BYTES; // skipping 4 bytes of 
columnIndex
                 segmentBuffers.read(segmentIndex, offsetPointable, 
segmentOffset,
-                        SparseColumnPageZeroWriter.COLUMN_INDEX_SIZE);
+                        
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS);
                 return 
IntegerPointable.getInteger(offsetPointable.getByteArray(), 
offsetPointable.getStartOffset());
             }
         } catch (EOFException e) {
@@ -190,8 +191,8 @@
                 int relativeColumnIndex = findRelativeColumnIndex(columnIndex);
                 int columnIndexInRequiredSegment =
                         (relativeColumnIndex - numberOfColumnInZerothSegment) 
% maxNumberOfColumnsInAPage;
-                int segmentOffset =
-                        findNumberOfColumnsInSegment(segmentIndex) * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
+                int segmentOffset = findNumberOfColumnsInSegment(segmentIndex)
+                        * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS;
                 segmentOffset += columnIndexInRequiredSegment * 
SparseColumnPageZeroWriter.FILTER_SIZE;
                 segmentBuffers.read(segmentIndex, offsetPointable, 
segmentOffset, Long.BYTES);
                 return LongPointable.getLong(offsetPointable.getByteArray(), 
offsetPointable.getStartOffset());
@@ -211,8 +212,8 @@
                 int relativeColumnIndex = findRelativeColumnIndex(columnIndex);
                 int columnIndexInRequiredSegment =
                         (relativeColumnIndex - numberOfColumnInZerothSegment) 
% maxNumberOfColumnsInAPage;
-                int segmentOffset =
-                        findNumberOfColumnsInSegment(segmentIndex) * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
+                int segmentOffset = findNumberOfColumnsInSegment(segmentIndex)
+                        * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS;
                 segmentOffset += columnIndexInRequiredSegment * 
SparseColumnPageZeroWriter.FILTER_SIZE;
                 segmentOffset += Long.BYTES; // skip min filter
                 segmentBuffers.read(segmentIndex, offsetPointable, 
segmentOffset, Long.BYTES);
@@ -279,38 +280,6 @@
     }

     @Override
-    public void setPresentColumnsIndices() {
-        presentColumnsIndices.clear();
-        int numberOfPresentColumns = getNumberOfPresentColumns();
-        if (numberOfPresentColumns == 0) {
-            return;
-        }
-        int columnOffsetStart = headerSize;
-        for (int i = 0; i < Math.min(numberOfPresentColumns, 
numberOfColumnInZerothSegment); i++) {
-            int columnIndex = pageZeroBuf.getInt(columnOffsetStart);
-            presentColumnsIndices.set(columnIndex);
-            columnOffsetStart += SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
-        }
-        if (numberOfPresentColumns > numberOfColumnInZerothSegment) {
-            // read the rest of the columns from the segment stream
-            int columnsInLastSegment = getNumberOfPresentColumns() - 
numberOfColumnInZerothSegment
-                    - (numberOfPageZeroSegments - 2) * 
maxNumberOfColumnsInAPage;
-            segmentBuffers.readAllColumns(presentColumnsIndices, 
numberOfPageZeroSegments, maxNumberOfColumnsInAPage,
-                    columnsInLastSegment);
-        }
-    }
-
-    @Override
-    public void getAllColumns(BitSet presentColumns) {
-        presentColumns.or(presentColumnsIndices);
-    }
-
-    @Override
-    public ByteBuffer getPageZeroBuf() {
-        throw new UnsupportedOperationException("This method is not supported 
for multi-page zero readers.");
-    }
-
-    @Override
     public int populateOffsetColumnIndexPairs(long[] offsetColumnIndexPairs) {
         // offsetColumnIndexPairs >= getNumberOfPresentColumns() + 1 (maybe 
because of the previous MegaLeaf).
         // Do not rely on offsetColumnIndexPairs.length, as it may be larger 
than the number of present columns.
@@ -319,7 +288,7 @@
         int currentColumnIndex = 0;
         int numberOfColumns = getNumberOfPresentColumns();
         while (currentColumnIndex < Math.min(numberOfColumns, 
numberOfColumnInZerothSegment)) {
-            int columnIndex = pageZeroBuf.getInt(columnOffsetStart);
+            int columnIndex = pageZeroBuf.getShort(columnOffsetStart);
             int columnOffset = pageZeroBuf.getInt(columnOffsetStart + 
SparseColumnPageZeroWriter.COLUMN_INDEX_SIZE);
             offsetColumnIndexPairs[currentColumnIndex++] = 
IntPairUtil.of(columnOffset, columnIndex);
             columnOffsetStart += SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/SparseColumnMultiPageZeroWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/SparseColumnMultiPageZeroWriter.java
index 5753632..f10e777 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/SparseColumnMultiPageZeroWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/writers/multipage/SparseColumnMultiPageZeroWriter.java
@@ -96,7 +96,7 @@
         segments = new 
MultiPersistentPageZeroBufferBytesOutputStream(multiPageOpRef);
         this.zerothSegmentMaxColumns = zerothSegmentMaxColumns;
         this.zerothSegmentWriter = new SparseColumnPageZeroWriter();
-        this.maximumNumberOfColumnsInAPage = 
getMaximumNumberOfColumnsInAPage(bufferCachePageSize);
+        this.maximumNumberOfColumnsInAPage = 
getMaximumNumberOfColumnsInASegmentPage(bufferCachePageSize);
     }

     @Override
@@ -153,7 +153,8 @@
                 int columnIndexInSegment = relativeColumnIndex - 
numberOfColumnInZerothSegment;
                 int requiredSegment = columnIndexInSegment / 
maximumNumberOfColumnsInAPage;
                 int columnIndexInRequiredSegment = columnIndexInSegment % 
maximumNumberOfColumnsInAPage;
-                int offsetInSegment = columnIndexInRequiredSegment * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
+                int offsetInSegment =
+                        columnIndexInRequiredSegment * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS;
                 segments.writeInSegment(requiredSegment, offsetInSegment, 
absoluteColumnIndex, offset);
             }
         } catch (Exception e) {
@@ -173,7 +174,8 @@
                 int requiredSegment = columnIndexInSegment / 
maximumNumberOfColumnsInAPage;
                 int columnIndexInRequiredSegment = columnIndexInSegment % 
maximumNumberOfColumnsInAPage;
                 int numberOfColumnsInSegment = 
findNumberOfColumnsInSegment(requiredSegment);
-                int segmentFilterOffset = numberOfColumnsInSegment * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
+                int segmentFilterOffset =
+                        numberOfColumnsInSegment * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS;
                 int offsetInSegment =
                         segmentFilterOffset + columnIndexInRequiredSegment * 
SparseColumnPageZeroWriter.FILTER_SIZE;
                 segments.writeInSegment(requiredSegment, offsetInSegment, 
normalizedMinValue);
@@ -227,7 +229,13 @@

     @Override
     public int getColumnOffsetsSize() {
-        return numberOfPresentColumns * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
+        if (numberOfPageZeroSegments == 1) {
+            return numberOfPresentColumns * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE;
+        } else {
+            return (numberOfColumnInZerothSegment * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE)
+                    + (numberOfPresentColumns - numberOfColumnInZerothSegment)
+                            * 
SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS;
+        }
     }

     @Override
@@ -285,8 +293,8 @@
         return MAX_COLUMNS_INDEX_IN_ZEROTH_SEGMENT_OFFSET + 
numberOfExtraPagesRequired * Integer.BYTES;
     }

-    public static int getMaximumNumberOfColumnsInAPage(int 
bufferCachePageSize) {
-        return bufferCachePageSize
-                / (SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE + 
SparseColumnPageZeroWriter.FILTER_SIZE);
+    public static int getMaximumNumberOfColumnsInASegmentPage(int 
bufferCachePageSize) {
+        return bufferCachePageSize / 
(SparseColumnPageZeroWriter.COLUMN_OFFSET_SIZE_IN_EXTRA_SEGMENTS
+                + SparseColumnPageZeroWriter.FILTER_SIZE);
     }
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/ColumnBTreeReadLeafFrame.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/ColumnBTreeReadLeafFrame.java
index caa9619..827fe85 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/ColumnBTreeReadLeafFrame.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/ColumnBTreeReadLeafFrame.java
@@ -94,10 +94,6 @@
         return rightMostTuple;
     }

-    public void getAllColumns(BitSet presentColumns) {
-        columnPageZeroReader.getAllColumns(presentColumns);
-    }
-
     public IColumnTupleIterator createTupleReference(int index, 
IColumnReadMultiPageOp multiPageOp) {
         return columnarTupleReader.createTupleIterator(this, index, 
multiPageOp);
     }
@@ -200,8 +196,4 @@
     public void printPageZeroReaderInfo() {
         columnPageZeroReader.printPageZeroReaderInfo();
     }
-
-    public void setPresentColumnsIndices() {
-        columnPageZeroReader.setPresentColumnsIndices();
-    }
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/IColumnPageZeroReader.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/IColumnPageZeroReader.java
index 6219c03..73a767f 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/IColumnPageZeroReader.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/IColumnPageZeroReader.java
@@ -61,10 +61,6 @@

     boolean isValidColumn(int columnIndex) throws HyracksDataException;

-    void getAllColumns(BitSet presentColumns);
-
-    ByteBuffer getPageZeroBuf();
-
     int populateOffsetColumnIndexPairs(long[] offsetColumnIndexPairs);

     int getNumberOfPageZeroSegments();
@@ -81,5 +77,4 @@

     void unPinNotRequiredPageZeroSegments() throws HyracksDataException;

-    void setPresentColumnsIndices();
 }

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20405?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: ionic
Gerrit-Change-Id: Ic6217534262b9b76cbfc9933227167314decb67c
Gerrit-Change-Number: 20405
Gerrit-PatchSet: 1
Gerrit-Owner: Ritik Raj <[email protected]>

Reply via email to