Skip to content

Commit d8e78eb

Browse files
authored
PARQUET-1310: Column indexes: Filtering (#509)
1 parent 43ac3e1 commit d8e78eb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+5227
-866
lines changed

parquet-column/src/main/java/org/apache/parquet/column/ColumnReader.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ public interface ColumnReader {
4141

4242
/**
4343
* @return the totalCount of values to be consumed
44+
* @deprecated will be removed in 2.0.0; Total values might not be able to be counted before reading the values (e.g.
45+
* in case of column index based filtering)
4446
*/
47+
@Deprecated
4548
long getTotalValueCount();
4649

4750
/**

parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReadStoreImpl.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,13 @@ public ColumnReadStoreImpl(PageReadStore pageReadStore,
7272

7373
@Override
7474
public ColumnReader getColumnReader(ColumnDescriptor path) {
75-
return newMemColumnReader(path, pageReadStore.getPageReader(path));
76-
}
77-
78-
private ColumnReaderImpl newMemColumnReader(ColumnDescriptor path, PageReader pageReader) {
7975
PrimitiveConverter converter = getPrimitiveConverter(path);
80-
return new ColumnReaderImpl(path, pageReader, converter, writerVersion);
76+
PageReader pageReader = pageReadStore.getPageReader(path);
77+
if (pageReadStore.isInPageFilteringMode()) {
78+
return new SynchronizingColumnReader(path, pageReader, converter, writerVersion, pageReadStore.getRowIndexes());
79+
} else {
80+
return new ColumnReaderImpl(path, pageReader, converter, writerVersion);
81+
}
8182
}
8283

8384
private PrimitiveConverter getPrimitiveConverter(ColumnDescriptor path) {

0 commit comments

Comments
 (0)