Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-5318 Create a sub-operator test framework
  3. DRILL-5324

Provide simplified column reader/writer for use in tests

    XMLWordPrintableJSON

    Details

      Description

      In support of DRILL-5323, we wish to provide a very easy way to work with row sets. See the comment section for examples of the target API.

      Drill provides over 100 different value vectors, any of which may be required to perform a specific unit test. Creating these vectors, populating them, and retrieving values, is very tedious. The work is so complex that it acts to discourage developers from writing such tests.

      To simplify the task, we wish to provide a simplified row set reader and writer. To do that, we need to generate the corresponding column reader and writer for each value vector. This ticket focuses on the column-level readers and writers, and the required code generation.

      Drill already provides vector readers and writers derived from FieldReader. However, these readers do not provide a uniform get/set interface that is type independent on the application side. Instead, application code must be aware of the type of the vector, something we seek to avoid for test code.

      The reader and writer classes are designed to be used in many contexts, not just for testing. As a result, their implementation makes no assumptions about the broader row reader and writer, other than that a row index and the required value vector are both available.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                paul-rogers Paul Rogers
                Reporter:
                paul-rogers Paul Rogers
                Reviewer:
                Karthikeyan Manivannan
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: