Uploaded image for project: 'ORC'
  1. ORC
  2. ORC-622

Refactoring of TreeReader into TypeReader and BatchReader

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.7.0
    • Component/s: Java, Reader
    • Labels:
      None
    • Flags:
      Patch

      Description

      The org.apache.orc.impl.TreeReaderFactory.TreeReader class is playing two functions:

      1. Type Read: Activities that deal with the read of a particular type that finally results in the population of the vector.
      2. Batch Read: This is invoked on the Type Reader where the Type Reader is as determined by the Root Type. In this case the activities are about the population of the vectors into the VectorizedRowBatch e.g. Ignoring the columns that are the partition fields, setting the batch size, etc

      This request proposes that these functions be separated into distinct interfaces. Separating the more generic Batch functions away from the Type specific functions allows enhancements to TypeReaders to focus purely on type functions without having to deal with the Batch related functions.

      In addition the request also proposes that certain methods and classes within impl package be made public with the understanding that classes within the impl package are internal.

      • TreeReader.checkEncoding
      • TreeReader.startStripe
      • TreeReader.skipRows
      • StreamInformation
        This enables the use of these classes and methods without having to clobber the impl package.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                planka Pavan Lanka
                Reporter:
                planka Pavan Lanka
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: