You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by br...@apache.org on 2013/10/12 17:51:21 UTC
svn commit: r1531549 - in /hive/trunk:
common/src/java/org/apache/hadoop/hive/conf/ ivy/ ql/
ql/src/java/org/apache/hadoop/hive/ql/processors/
ql/src/test/queries/clientnegative/ ql/src/test/queries/clientpositive/
ql/src/test/results/clientnegative/ q...
Author: brock
Date: Sat Oct 12 15:51:20 2013
New Revision: 1531549
URL: http://svn.apache.org/r1531549
Log:
HIVE-5252 - Add ql syntax for inline java code creation (Edward Capriolo via Brock Noland)
Added:
hive/trunk/ql/src/test/queries/clientnegative/compile_processor.q
hive/trunk/ql/src/test/queries/clientpositive/compile_processor.q
hive/trunk/ql/src/test/results/clientnegative/compile_processor.q.out
hive/trunk/ql/src/test/results/clientpositive/compile_processor.q.out
Modified:
hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
hive/trunk/ivy/libraries.properties
hive/trunk/ql/ivy.xml
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorFactory.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CompileProcessor.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/HiveCommand.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=1531549&r1=1531548&r2=1531549&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 Sat Oct 12 15:51:20 2013
@@ -774,7 +774,7 @@ public class HiveConf extends Configurat
HIVE_SERVER2_TABLE_TYPE_MAPPING("hive.server2.table.type.mapping", "CLASSIC"),
HIVE_SERVER2_SESSION_HOOK("hive.server2.session.hook", ""),
- HIVE_SECURITY_COMMAND_WHITELIST("hive.security.command.whitelist", "set,reset,dfs,add,delete"),
+ HIVE_SECURITY_COMMAND_WHITELIST("hive.security.command.whitelist", "set,reset,dfs,add,delete,compile"),
HIVE_CONF_RESTRICTED_LIST("hive.conf.restricted.list", ""),
Modified: hive/trunk/ivy/libraries.properties
URL: http://svn.apache.org/viewvc/hive/trunk/ivy/libraries.properties?rev=1531549&r1=1531548&r2=1531549&view=diff
==============================================================================
--- hive/trunk/ivy/libraries.properties (original)
+++ hive/trunk/ivy/libraries.properties Sat Oct 12 15:51:20 2013
@@ -17,7 +17,7 @@
# project configuration files.
# These are the versions of our dependencies (in alphabetical order)
-apacheant.version=1.7.1
+apacheant.version=1.8.4
ant-contrib.version=1.0b3
ant-task.version=2.0.10
antlr.version=3.4
Modified: hive/trunk/ql/ivy.xml
URL: http://svn.apache.org/viewvc/hive/trunk/ql/ivy.xml?rev=1531549&r1=1531548&r2=1531549&view=diff
==============================================================================
--- hive/trunk/ql/ivy.xml (original)
+++ hive/trunk/ql/ivy.xml Sat Oct 12 15:51:20 2013
@@ -51,6 +51,7 @@
<dependency org="org.codehaus.groovy" name="groovy-all"
rev="${groovy.version}" />
+ <dependency org="org.apache.ant" name="ant" rev="${apacheant.version}" />
<dependency org="org.json" name="json" rev="${json.version}"/>
<dependency org="commons-collections" name="commons-collections" rev="${commons-collections.version}"/>
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorFactory.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorFactory.java?rev=1531549&r1=1531548&r2=1531549&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorFactory.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorFactory.java Sat Oct 12 15:51:20 2013
@@ -19,16 +19,17 @@
package org.apache.hadoop.hive.ql.processors;
import static org.apache.commons.lang.StringUtils.isBlank;
+
+import java.sql.SQLException;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import java.sql.SQLException;
+import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.Driver;
import org.apache.hadoop.hive.ql.session.SessionState;
-import org.apache.hadoop.hive.conf.HiveConf;
/**
* CommandProcessorFactory.
@@ -75,6 +76,8 @@ public final class CommandProcessorFacto
return new AddResourceProcessor();
case DELETE:
return new DeleteResourceProcessor();
+ case COMPILE:
+ return new CompileProcessor();
default:
throw new AssertionError("Unknown HiveCommand " + hiveCommand);
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CompileProcessor.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CompileProcessor.java?rev=1531549&r1=1531548&r2=1531549&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CompileProcessor.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CompileProcessor.java Sat Oct 12 15:51:20 2013
@@ -19,6 +19,7 @@ import org.apache.hadoop.hive.ql.parse.V
import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hadoop.hive.ql.session.SessionState.LogHelper;
import org.apache.hadoop.hive.ql.session.SessionState.ResourceType;
+import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.Path;
import org.codehaus.groovy.ant.Groovyc;
@@ -202,8 +203,11 @@ public class CompileProcessor implements
throw new CompileProcessorException("writing file", e1);
}
destination.mkdir();
- g.execute();
-
+ try {
+ g.execute();
+ } catch (BuildException ex){
+ throw new CompileProcessorException("Problem compiling", ex);
+ }
File testArchive = new File(ioTempFile, jarId + ".jar");
JarArchiveOutputStream out = null;
try {
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/HiveCommand.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/HiveCommand.java?rev=1531549&r1=1531548&r2=1531549&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/HiveCommand.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/HiveCommand.java Sat Oct 12 15:51:20 2013
@@ -30,7 +30,8 @@ public enum HiveCommand {
RESET(),
DFS(),
ADD(),
- DELETE();
+ DELETE(),
+ COMPILE();
private static final Set<String> COMMANDS = new HashSet<String>();
static {
for (HiveCommand command : HiveCommand.values()) {
Added: hive/trunk/ql/src/test/queries/clientnegative/compile_processor.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/compile_processor.q?rev=1531549&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/compile_processor.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/compile_processor.q Sat Oct 12 15:51:20 2013
@@ -0,0 +1,8 @@
+
+compile `import org.apache.hadoop.hive.ql.exec.UDF \;
+public class Pyth extsfgsfgfsends UDF {
+ public double evaluate(double a, double b){
+ return Math.sqrt((a*a) + (b*b)) \;
+ }
+} ` AS GROOVY NAMED Pyth.groovy;
+
Added: hive/trunk/ql/src/test/queries/clientpositive/compile_processor.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/compile_processor.q?rev=1531549&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/compile_processor.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/compile_processor.q Sat Oct 12 15:51:20 2013
@@ -0,0 +1,11 @@
+
+compile `import org.apache.hadoop.hive.ql.exec.UDF \;
+public class Pyth extends UDF {
+ public double evaluate(double a, double b){
+ return Math.sqrt((a*a) + (b*b)) \;
+ }
+} ` AS GROOVY NAMED Pyth.groovy;
+CREATE TEMPORARY FUNCTION Pyth as 'Pyth';
+
+SELECT Pyth(3,4) FROM src limit 1;
+
Added: hive/trunk/ql/src/test/results/clientnegative/compile_processor.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/compile_processor.q.out?rev=1531549&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/compile_processor.q.out (added)
+++ hive/trunk/ql/src/test/results/clientnegative/compile_processor.q.out Sat Oct 12 15:51:20 2013
@@ -0,0 +1 @@
+Query returned non-zero code: 1, cause: Problem compiling
Added: hive/trunk/ql/src/test/results/clientpositive/compile_processor.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/compile_processor.q.out?rev=1531549&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/compile_processor.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/compile_processor.q.out Sat Oct 12 15:51:20 2013
@@ -0,0 +1,13 @@
+PREHOOK: query: CREATE TEMPORARY FUNCTION Pyth as 'Pyth'
+PREHOOK: type: CREATEFUNCTION
+POSTHOOK: query: CREATE TEMPORARY FUNCTION Pyth as 'Pyth'
+POSTHOOK: type: CREATEFUNCTION
+PREHOOK: query: SELECT Pyth(3,4) FROM src limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT Pyth(3,4) FROM src limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+5.0