[ https://issues.apache.org/jira/browse/HIVE-7730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xiaomeng Huang updated HIVE-7730: --------------------------------- Attachment: HIVE-7730.003.patch Fixed something from [~szehon] > 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, HIVE-7730.002.patch, > HIVE-7730.003.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.2#6252)