parquet-column/src/main/java/org/apache/parquet/io/FilteredRecordReader.java
private void skipToMatch() {
    while (recordsRead < recordCount && !recordFilter.isMatch()) {
      State currentState = getState(0);
      do {
        ColumnReader columnReader = currentState.column;

        // currentLevel = depth + 1 at this point
        // set the current value
        if (columnReader.getCurrentDefinitionLevel() >= currentState.maxDefinitionLevel) {
          columnReader.skip();
        }
        columnReader.consume();

        // Based on repetition level work out next state to go to
        int nextR = currentState.maxRepetitionLevel == 0 ? 0 : columnReader.getCurrentRepetitionLevel();
        currentState = currentState.getNextState(nextR);
      } while (currentState != null);
      ++ recordsRead;
    }
  }
private void skipToMatch() {
    while (recordsRead < recordCount && !recordFilter.isMatch()) {
      State currentState = getState(0);
      do {
        ColumnReader columnReader = currentState.column;

        // currentLevel = depth + 1 at this point
        // set the current value
        if (columnReader.getCurrentDefinitionLevel() >= currentState.maxDefinitionLevel) {
          columnReader.skip();
        }
        columnReader.consume();

        // Based on repetition level work out next state to go to
        int nextR = currentState.maxRepetitionLevel == 0 ? 0 : columnReader.getCurrentRepetitionLevel();
        currentState = currentState.getNextState(nextR);
      } while (currentState != null);
      ++ recordsRead;
    }
  }
private void skipToMatch ( ) { while ( recordsRead < recordCount && ! recordFilter . isMatch ( ) ) { State currentState = getState ( 0 ) ; do { ColumnReader columnReader = currentState . column ; // currentLevel = depth + 1 at this point // set the current value if ( columnReader . getCurrentDefinitionLevel ( ) >= currentState . maxDefinitionLevel ) { columnReader . skip ( ) ; } columnReader . consume ( ) ; // Based on repetition level work out next state to go to int nextR = currentState . maxRepetitionLevel == 0 ? 0 : columnReader . getCurrentRepetitionLevel ( ) ; currentState = currentState . getNextState ( nextR ) ; } while ( currentState != null ) ; ++ recordsRead ; } }
Skips forwards until the filter finds the first match. Returns false
if none found.
Skips forwards until the filter finds the first match . Returns false if none found .