Hello Calcite Devs,
I'm working on a data mocking system that's accessible via a relational
API: tables, columns, indexes, etc. I implemented a rudimentary query
runner layer from scratch, so the project is already usable in MVP
state. The next step would be the integration of Calcite.
For now, I have created an initial version by implementing the
ScannableTable interface. This was very easy, but the functionality is,
of course, slow due to the full table scan, as it does not make use of
the available indexes. There seems to be a big gap between
ScannableTable and QueryableTable. Implementing the Queryable interface
for QueryableTable manually is quite a lot of work.
Is there some existing or proposed method for the (probably common) case
where indexes are available for an otherwise scannable table? If I do
need to implement this manually, what should I look out for?
For context, here is the original storage API I defined for the MVP
version:
https://github.com/miniconnect/minibase/tree/master/projects/storage/src/main/java/hu/webarticum/minibase/storage/api
This is my current sketchy table adapter based on ScannableTable:
https://github.com/miniconnect/calcite-integration/blob/main/projects/minibase-calcite/src/main/java/hu/webarticum/minibase/calcite/driver/MinibaseCalciteTable.java
Thanks and regards,
Dávid Horváth