[ https://issues.apache.org/jira/browse/HIVE-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804685#action_12804685 ]
John Sichi commented on HIVE-1096: ---------------------------------- I'm fine with it if we start with the implementation you are proposing, document the limitation with respect to views, and decide if more is needed based on user feedback. I'm guessing that once people start using the two features together, they might end up wanting the variables to be expanded as part of evaluating a view, otherwise they may be forced to move ETL logic which belongs inside a reusable view out into the calling SQL statements instead where the expansion happens. This would limit the utility of views. I agree that treating variables as first-class objects is a heavyweight change. There is one possible middle ground approach, which is to avoid introducing variables as first-class objects, but still try to expand them in views by passing the substitution map down into SemanticAnalyzer and letting it apply the substitutions as part of reparsing the view's definition obtained from the catalog. This would imply (a) CREATE VIEW would need to be able to undo the substitutions so that the stored view definition in the catalog would contain variable references instead of replacements. (b) If a variable was defined when the view was created, but undefined when referenced later, we'd need to substitute NULL or raise an exception. Probably best to be consistent with whatever you're planning for the top-level substitutions in this case. I made the view reparse error handling verbose so that a user should have a chance of figuring out what happened in this case, although it will be about as pretty as a C++ template compilation failure. > Hive Variables > -------------- > > Key: HIVE-1096 > URL: https://issues.apache.org/jira/browse/HIVE-1096 > Project: Hadoop Hive > Issue Type: New Feature > Reporter: Edward Capriolo > Assignee: Edward Capriolo > > From mailing list: > --Amazon Elastic MapReduce version of Hive seems to have a nice feature > called "Variables." Basically you can define a variable via command-line > while invoking hive with -d DT=2009-12-09 and then refer to the variable via > ${DT} within the hive queries. This could be extremely useful. I can't seem > to find this feature even on trunk. Is this feature currently anywhere in the > roadmap?-- > This could be implemented in many places. > A simple place to put this is > in Driver.compile or Driver.run we can do string substitutions at that level, > and further downstream need not be effected. > There could be some benefits to doing this further downstream, parser,plan. > but based on the simple needs we may not need to overthink this. > I will get started on implementing in compile unless someone wants to discuss > this more. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.