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.