You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2014/07/07 01:41:33 UTC

[jira] [Commented] (OPTIQ-333) Abstract OptiqSchema as a base class and move the existing implementation to a separate class

    [ https://issues.apache.org/jira/browse/OPTIQ-333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14053250#comment-14053250 ] 

Julian Hyde commented on OPTIQ-333:
-----------------------------------

To be fair, the recent changes to Schema and OptiqSchema were intended to make it easier to implement the SPI: OPTIQ-175, OPTIQ-106, OPTIQ-215, with Drill's needs explicitly in mind.

And, if there are future changes, if you choose to provide your own implementation of a larger-surface-area SPI, you are likely to experience more disruption than if you extend a narrower SPI.

Your proposed change would be useful to other users if you went a step further, and made OptiqSchema into a public SPI. (That is, an interface in the net.hydromatic.optiq package, with a clearly defined contract. It should be called something other than OptiqSchema.)

> Abstract OptiqSchema as a base class and move the existing implementation to a separate class
> ---------------------------------------------------------------------------------------------
>
>                 Key: OPTIQ-333
>                 URL: https://issues.apache.org/jira/browse/OPTIQ-333
>             Project: Optiq
>          Issue Type: Improvement
>            Reporter: Jacques Nadeau
>            Assignee: Jacques Nadeau
>
> The implementation of OptiqSchema can make users jump through many hoops because it holds a complex hold internal state.  A couple of times now, efforts to move Apache Drill to newer versions of Optiq has required all schema management code to be rewritten as the nature of the internally maintained state has changed.  As such, this JIRA is about abstracting out the core interface and providing an alternative, near stateless implementation.  Existing tools will continue to leverage the traditional existing implementation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)