[ 
https://issues.apache.org/jira/browse/HIVE-7730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaomeng Huang reopened HIVE-7730:
----------------------------------

> Extend ReadEntity to add accessed columns from query
> ----------------------------------------------------
>
>                 Key: HIVE-7730
>                 URL: https://issues.apache.org/jira/browse/HIVE-7730
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Xiaomeng Huang
>            Assignee: Xiaomeng Huang
>             Fix For: 0.14.0
>
>         Attachments: HIVE-7730.001.patch, HIVE-7730.002.patch, 
> HIVE-7730.003.patch, HIVE-7730.004.patch
>
>
> -Now what we get from HiveSemanticAnalyzerHookContextImpl is limited. If we 
> have hook of HiveSemanticAnalyzerHook, we may want to get more things from 
> hookContext. (e.g. the needed colums from query).-
> -So we should get instance of HiveSemanticAnalyzerHookContext from 
> configuration, extends HiveSemanticAnalyzerHookContext with a new 
> implementation, overide the HiveSemanticAnalyzerHookContext.update() and put 
> what you want to the class.-
> Hive should store accessed columns to ReadEntity when we set 
> HIVE_STATS_COLLECT_SCANCOLS(or we can add a confVar) is true.
> Then external authorization model can get accessed columns when do 
> authorization in compile before execute. Maybe we will remove 
> columnAccessInfo from BaseSemanticAnalyzer, old authorization and 
> AuthorizationModeV2 can get accessed columns from ReadEntity too.
> Here is the quick implement in SemanticAnalyzer.analyzeInternal() below:
> {code}   boolean isColumnInfoNeedForAuth = 
> SessionState.get().isAuthorizationModeV2()
>         && HiveConf.getBoolVar(conf, 
> HiveConf.ConfVars.HIVE_AUTHORIZATION_ENABLED);
>     if (isColumnInfoNeedForAuth
>         || HiveConf.getBoolVar(this.conf, 
> HiveConf.ConfVars.HIVE_STATS_COLLECT_SCANCOLS) == true) {
>       ColumnAccessAnalyzer columnAccessAnalyzer = new 
> ColumnAccessAnalyzer(pCtx);
>       setColumnAccessInfo(columnAccessAnalyzer.analyzeColumnAccess()); 
>     }
>     compiler.compile(pCtx, rootTasks, inputs, outputs);
>     // TODO: 
>     // after compile, we can put accessed column list to ReadEntity getting 
> from columnAccessInfo if HIVE_AUTHORIZATION_ENABLED is set true
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to