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

Jacques Nadeau commented on DRILL-381:
--------------------------------------

High level comments on initial patch:

Can you move the reader to a new SystemStoragePlugin?  You can then expose the 
options as a table in that storage plugin.  (Register this plugin automatically 
rather than having the user configure it, similar to information schema.  The 
table columns would probably be something like: [NAME, CATEGORY, DEFAULT, 
SESSION] where DEFAULT is the setting that a new session would get (a.k.a 
global) and the SESSION is the current value of the option.  In the case that 
you haven't set any options, the two values would be the same.  

For the options access interface, we should have the following things supported:

QueryContext.setOption()
QueryContext.getOption()

FragmentContext.getOption()

For getOption(), we should first consult the set of SESSION options.  If we 
don't have a value there, we should use the DEFAULT option.

We should maintain the set of global options in the distributed cache across 
the cluster.  For session options, these will be maintained on the node that 
owns the session.  All session level options that are focused on query 
execution will be included in logical and physical plans.

We should probably have a category criteria for options that describes to what 
they correspond.  For example, we could have category criteria of:

PARSING
OPTIMIZATION
EXECUTION

an example might be: 
session set.
SET OPTIMIZATION PRFER_HASH_JOIN ON

global set

SET GLOBAL OPTIMIZATION PRFER_HASH_JOIN ON

syntax is made up here to describe concepts.



> Implement SQL Options Statements
> --------------------------------
>
>                 Key: DRILL-381
>                 URL: https://issues.apache.org/jira/browse/DRILL-381
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Jason Altekruse
>            Assignee: Jason Altekruse
>         Attachments: 0001-start-of-storage-system-for-drill-options.patch
>
>
> We need to implement a system for passing and storing options at the global 
> and session level. Some example options include, explain plan format, 
> allowing quoted identifiers, null handling (concat null yields null). This 
> involves creating a notion of a user session, as previously nothing was 
> stored per user session.



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

Reply via email to