hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiaomeng Huang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-7730) Extend ReadEntity to add accessed columns from query
Date Wed, 20 Aug 2014 07:32:26 GMT

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

Xiaomeng Huang updated HIVE-7730:
---------------------------------

    Description: 
-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 set another confvar for it) is true.
Then we can get accessed columns when do authorization in compile before execute.
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());
      // TODO: we can put accessed column map to ReadEntity getting from columnAccessInfo
    }
{code}

  was:
-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
is true.
Then we can get accessed columns when do authorization in compile before execute.
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());
      // TODO: we can put accessed column map to ReadEntity getting from columnAccessInfo
    }
{code}


> 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
>         Attachments: HIVE-7730.001.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 set another confvar for it) is true.
> Then we can get accessed columns when do authorization in compile before execute.
> 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());
>       // TODO: we can put accessed column map to ReadEntity getting from columnAccessInfo
>     }
> {code}



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

Mime
View raw message