Hi All, I am relatively new to Drill and trying to write a custom storage plugin.
I have couple of (naive sounding) queries, so mostly need some brief pointers: a) Why do a StoragePlugin have to implement a registerSchemas() (coming from SchemaFactory)? I assumed that drill would discover the data-schema on-the-fly, so that shouldn't be a need for the plugin to register it beforehand. (I created a version of my plugin and skipped implementing the registerSchemas method, assuming it will be discovered, and tried to do a* "SELECT * FROM myplugin.`tableid`"* and it threw a *"VALIDATION_ERROR: Schema [[myplugin]] is not valid with respect to either root schema or current default schema"* --> So, I suspect that might be due to me not implementing registerSchemas(), hence the question) b) Similarly, I see plugins creating their own DrillTable class extending either DrillTable/DynamicDrill and then have to override the RelDataType getRowType(RelDataTypeFactory typeFactory) method, that seems to be converting the relation-item to drill types. But, I see similar type conversion also being done in the RecordReader classes when creating and loading the value-vectors. Am I reading it right, that we are doing it twice? Any pointers will be greatly appreciated. Thanks, Lokendra