[ https://issues.apache.org/jira/browse/HIVE-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12893022#action_12893022 ]
Carl Steinbach commented on HIVE-1096: -------------------------------------- The reviewboard jiraposter is temporarily down so I'm posting this by hand. The original comments and context are here: https://review.cloudera.org/r/229/ * trunk/conf/hive-default.xml: Spelling: substituation * trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java: Make these variables private? * trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java: This should be static. No need to instantiate a VariableSubstitution object. * trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java: Since we want to do substitution for all commands it would probably make sense to do the substitution in CommandProcessorFactory.get() and make CommandProcessor an abstract class with the following implementation: {code} public abstract class { protected String command; CommandProcessor(String command) { this.command = command; } public abstract CommandProcessorResponse run(); public String getCommand() { return command; } } {code} In other words, CommandProcessorFactory would return a CommandProcessor object that has been initialized with a substituted copy of the command. * trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java: Replace these string literals with constants, e.g: {code} public static final String ENV_PREFIX = "env:"; public static final String SYSTEM_PREFIX = "system:" public static final String HIVECONF_PREFIX = "hiveconf:" {code} * trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java: String propName = varname.substring(SYSTEM_PREFIX.length()); * trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java: Can we remove this special case for "silent"? In SessionState this actually maps to "hive.session.silent" and I don't see any test cases that cover this case, i.e. that call "set silent" or "set silent=x". It also seems that this introduces in inconsistency since "set silent" will show the value of "hive.session.silent", but the output of "set" will not list a value for the property "silent". Anyone know if there is any older code that depends on this behavior? > Hive Variables > -------------- > > Key: HIVE-1096 > URL: https://issues.apache.org/jira/browse/HIVE-1096 > Project: Hadoop Hive > Issue Type: New Feature > Components: Query Processor > Reporter: Edward Capriolo > Assignee: Edward Capriolo > Fix For: 0.6.0, 0.7.0 > > Attachments: 1096-9.diff, hive-1096-10-patch.txt, > hive-1096-11-patch.txt, hive-1096-12.patch.txt, hive-1096-2.diff, > hive-1096-7.diff, hive-1096-8.diff, hive-1096.diff > > > 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.