FAQ
Author: hashutosh
Date: Tue Jun 26 03:30:54 2012
New Revision: 1353808

URL: http://svn.apache.org/viewvc?rev=1353808&view=rev
Log:
HIVE-2021 : Add a configuration property that sets the variable substitution max depth (Edward Capriolo via Ashutosh Chauhan)

Modified:
hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
hive/trunk/conf/hive-default.xml.template
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java

Modified: hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
URL: http://svn.apache.org/viewvc/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java?rev=1353808&r1=1353807&r2=1353808&view=diff
==============================================================================
--- hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (original)
+++ hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java Tue Jun 26 03:30:54 2012
@@ -534,6 +534,7 @@ public class HiveConf extends Configurat

// Hive Variables
HIVEVARIABLESUBSTITUTE("hive.variable.substitute", true),
+ HIVEVARIABLESUBSTITUTEDEPTH("hive.variable.substitute.depth", 40),

SEMANTIC_ANALYZER_HOOK("hive.semantic.analyzer.hook", ""),


Modified: hive/trunk/conf/hive-default.xml.template
URL: http://svn.apache.org/viewvc/hive/trunk/conf/hive-default.xml.template?rev=1353808&r1=1353807&r2=1353808&view=diff
==============================================================================
--- hive/trunk/conf/hive-default.xml.template (original)
+++ hive/trunk/conf/hive-default.xml.template Tue Jun 26 03:30:54 2012
@@ -1037,6 +1037,11 @@
<description>This enables substitution using syntax like ${var} ${system:var} and ${env:var}.</description>
</property>

+<property>
+ <name>hive.variable.substitute.depth</name>
+ <value>40</value>
+ <description>The maximum replacements the substitution engine will do.</description>
+</property>

<property>
<name>hive.security.authorization.enabled</name>

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java?rev=1353808&r1=1353807&r2=1353808&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java Tue Jun 26 03:30:54 2012
@@ -31,7 +31,6 @@ public class VariableSubstitution {

private static final Log l4j = LogFactory.getLog(VariableSubstitution.class);
protected static Pattern varPat = Pattern.compile("\\$\\{[^\\}\\$\u0020]+\\}");
- protected static int MAX_SUBST = 40;

private String getSubstitute(HiveConf conf, String var) {
String val = null;
@@ -74,7 +73,7 @@ public class VariableSubstitution {
}
Matcher match = varPat.matcher("");
String eval = expr;
- for(int s=0; s<MAX_SUBST; s++) {
+ for(int s=0;s<conf.getIntVar(ConfVars.HIVEVARIABLESUBSTITUTEDEPTH); s++) {
match.reset(eval);
if (!match.find()) {
return eval;
@@ -91,6 +90,6 @@ public class VariableSubstitution {
eval = eval.substring(0, match.start())+val+eval.substring(match.end());
}
throw new IllegalStateException("Variable substitution depth too large: "
- + MAX_SUBST + " " + expr);
+ + conf.getIntVar(ConfVars.HIVEVARIABLESUBSTITUTEDEPTH) + " " + expr);
}
}

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupcommits @
categorieshive, hadoop
postedJun 26, '12 at 3:31a
activeJun 26, '12 at 3:31a
posts1
users1
websitehive.apache.org

1 user in discussion

Hashutosh: 1 post

People

Translate

site design / logo © 2021 Grokbase