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

Reply via email to