Modified: 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g?rev=1570760&r1=1570759&r2=1570760&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g 
(original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g 
Sat Feb 22 00:20:49 2014
@@ -544,5 +544,5 @@ functionIdentifier
 
 nonReserved
     :
-    KW_TRUE | KW_FALSE | KW_LIKE | KW_EXISTS | KW_ASC | KW_DESC | KW_ORDER | 
KW_GROUP | KW_BY | KW_AS | KW_INSERT | KW_OVERWRITE | KW_OUTER | KW_LEFT | 
KW_RIGHT | KW_FULL | KW_PARTITION | KW_PARTITIONS | KW_TABLE | KW_TABLES | 
KW_COLUMNS | KW_INDEX | KW_INDEXES | KW_REBUILD | KW_FUNCTIONS | KW_SHOW | 
KW_MSCK | KW_REPAIR | KW_DIRECTORY | KW_LOCAL | KW_USING | KW_CLUSTER | 
KW_DISTRIBUTE | KW_SORT | KW_UNION | KW_LOAD | KW_EXPORT | KW_IMPORT | KW_DATA 
| KW_INPATH | KW_IS | KW_NULL | KW_CREATE | KW_EXTERNAL | KW_ALTER | KW_CHANGE 
| KW_FIRST | KW_AFTER | KW_DESCRIBE | KW_DROP | KW_RENAME | KW_IGNORE | 
KW_PROTECTION | KW_TO | KW_COMMENT | KW_BOOLEAN | KW_TINYINT | KW_SMALLINT | 
KW_INT | KW_BIGINT | KW_FLOAT | KW_DOUBLE | KW_DATE | KW_DATETIME | 
KW_TIMESTAMP | KW_DECIMAL | KW_STRING | KW_ARRAY | KW_STRUCT | KW_UNIONTYPE | 
KW_PARTITIONED | KW_CLUSTERED | KW_SORTED | KW_INTO | KW_BUCKETS | KW_ROW | 
KW_ROWS | KW_FORMAT | KW_DELIMITED | KW_FIELDS | KW_TERMINATED | KW_ESCAPED | 
KW_COLLECTION | 
 KW_ITEMS | KW_KEYS | KW_KEY_TYPE | KW_LINES | KW_STORED | KW_FILEFORMAT | 
KW_SEQUENCEFILE | KW_TEXTFILE | KW_RCFILE | KW_ORCFILE | KW_PARQUETFILE | 
KW_INPUTFORMAT | KW_OUTPUTFORMAT | KW_INPUTDRIVER | KW_OUTPUTDRIVER | 
KW_OFFLINE | KW_ENABLE | KW_DISABLE | KW_READONLY | KW_NO_DROP | KW_LOCATION | 
KW_BUCKET | KW_OUT | KW_OF | KW_PERCENT | KW_ADD | KW_REPLACE | KW_RLIKE | 
KW_REGEXP | KW_TEMPORARY | KW_EXPLAIN | KW_FORMATTED | KW_PRETTY | 
KW_DEPENDENCY | KW_LOGICAL | KW_SERDE | KW_WITH | KW_DEFERRED | 
KW_SERDEPROPERTIES | KW_DBPROPERTIES | KW_LIMIT | KW_SET | KW_UNSET | 
KW_TBLPROPERTIES | KW_IDXPROPERTIES | KW_VALUE_TYPE | KW_ELEM_TYPE | KW_MAPJOIN 
| KW_STREAMTABLE | KW_HOLD_DDLTIME | KW_CLUSTERSTATUS | KW_UTC | 
KW_UTCTIMESTAMP | KW_LONG | KW_DELETE | KW_PLUS | KW_MINUS | KW_FETCH | 
KW_INTERSECT | KW_VIEW | KW_IN | KW_DATABASES | KW_MATERIALIZED | KW_SCHEMA | 
KW_SCHEMAS | KW_GRANT | KW_REVOKE | KW_SSL | KW_UNDO | KW_LOCK | KW_LOCKS | 
KW_UNLOCK | KW_SHARED | KW_EXCLUSIVE | KW_PROCEDURE |
  KW_UNSIGNED | KW_WHILE | KW_READ | KW_READS | KW_PURGE | KW_RANGE | 
KW_ANALYZE | KW_BEFORE | KW_BETWEEN | KW_BOTH | KW_BINARY | KW_CONTINUE | 
KW_CURSOR | KW_TRIGGER | KW_RECORDREADER | KW_RECORDWRITER | KW_SEMI | 
KW_LATERAL | KW_TOUCH | KW_ARCHIVE | KW_UNARCHIVE | KW_COMPUTE | KW_STATISTICS 
| KW_USE | KW_OPTION | KW_CONCATENATE | KW_SHOW_DATABASE | KW_UPDATE | 
KW_RESTRICT | KW_CASCADE | KW_SKEWED | KW_ROLLUP | KW_CUBE | KW_DIRECTORIES | 
KW_FOR | KW_GROUPING | KW_SETS | KW_TRUNCATE | KW_NOSCAN | KW_USER | KW_ROLE | 
KW_ROLES | KW_INNER | KW_DEFINED | KW_ADMIN
+    KW_TRUE | KW_FALSE | KW_LIKE | KW_EXISTS | KW_ASC | KW_DESC | KW_ORDER | 
KW_GROUP | KW_BY | KW_AS | KW_INSERT | KW_OVERWRITE | KW_OUTER | KW_LEFT | 
KW_RIGHT | KW_FULL | KW_PARTITION | KW_PARTITIONS | KW_TABLE | KW_TABLES | 
KW_COLUMNS | KW_INDEX | KW_INDEXES | KW_REBUILD | KW_FUNCTIONS | KW_SHOW | 
KW_MSCK | KW_REPAIR | KW_DIRECTORY | KW_LOCAL | KW_USING | KW_CLUSTER | 
KW_DISTRIBUTE | KW_SORT | KW_UNION | KW_LOAD | KW_EXPORT | KW_IMPORT | KW_DATA 
| KW_INPATH | KW_IS | KW_NULL | KW_CREATE | KW_EXTERNAL | KW_ALTER | KW_CHANGE 
| KW_FIRST | KW_AFTER | KW_DESCRIBE | KW_DROP | KW_RENAME | KW_IGNORE | 
KW_PROTECTION | KW_TO | KW_COMMENT | KW_BOOLEAN | KW_TINYINT | KW_SMALLINT | 
KW_INT | KW_BIGINT | KW_FLOAT | KW_DOUBLE | KW_DATE | KW_DATETIME | 
KW_TIMESTAMP | KW_DECIMAL | KW_STRING | KW_ARRAY | KW_STRUCT | KW_UNIONTYPE | 
KW_PARTITIONED | KW_CLUSTERED | KW_SORTED | KW_INTO | KW_BUCKETS | KW_ROW | 
KW_ROWS | KW_FORMAT | KW_DELIMITED | KW_FIELDS | KW_TERMINATED | KW_ESCAPED | 
KW_COLLECTION | 
 KW_ITEMS | KW_KEYS | KW_KEY_TYPE | KW_LINES | KW_STORED | KW_FILEFORMAT | 
KW_SEQUENCEFILE | KW_TEXTFILE | KW_RCFILE | KW_ORCFILE | KW_PARQUETFILE | 
KW_INPUTFORMAT | KW_OUTPUTFORMAT | KW_INPUTDRIVER | KW_OUTPUTDRIVER | 
KW_OFFLINE | KW_ENABLE | KW_DISABLE | KW_READONLY | KW_NO_DROP | KW_LOCATION | 
KW_BUCKET | KW_OUT | KW_OF | KW_PERCENT | KW_ADD | KW_REPLACE | KW_RLIKE | 
KW_REGEXP | KW_TEMPORARY | KW_EXPLAIN | KW_FORMATTED | KW_PRETTY | 
KW_DEPENDENCY | KW_LOGICAL | KW_SERDE | KW_WITH | KW_DEFERRED | 
KW_SERDEPROPERTIES | KW_DBPROPERTIES | KW_LIMIT | KW_SET | KW_UNSET | 
KW_TBLPROPERTIES | KW_IDXPROPERTIES | KW_VALUE_TYPE | KW_ELEM_TYPE | KW_MAPJOIN 
| KW_STREAMTABLE | KW_HOLD_DDLTIME | KW_CLUSTERSTATUS | KW_UTC | 
KW_UTCTIMESTAMP | KW_LONG | KW_DELETE | KW_PLUS | KW_MINUS | KW_FETCH | 
KW_INTERSECT | KW_VIEW | KW_IN | KW_DATABASES | KW_MATERIALIZED | KW_SCHEMA | 
KW_SCHEMAS | KW_GRANT | KW_REVOKE | KW_SSL | KW_UNDO | KW_LOCK | KW_LOCKS | 
KW_UNLOCK | KW_SHARED | KW_EXCLUSIVE | KW_PROCEDURE |
  KW_UNSIGNED | KW_WHILE | KW_READ | KW_READS | KW_PURGE | KW_RANGE | 
KW_ANALYZE | KW_BEFORE | KW_BETWEEN | KW_BOTH | KW_BINARY | KW_CONTINUE | 
KW_CURSOR | KW_TRIGGER | KW_RECORDREADER | KW_RECORDWRITER | KW_SEMI | 
KW_LATERAL | KW_TOUCH | KW_ARCHIVE | KW_UNARCHIVE | KW_COMPUTE | KW_STATISTICS 
| KW_USE | KW_OPTION | KW_CONCATENATE | KW_SHOW_DATABASE | KW_UPDATE | 
KW_RESTRICT | KW_CASCADE | KW_SKEWED | KW_ROLLUP | KW_CUBE | KW_DIRECTORIES | 
KW_FOR | KW_GROUPING | KW_SETS | KW_TRUNCATE | KW_NOSCAN | KW_USER | KW_ROLE | 
KW_ROLES | KW_INNER | KW_DEFINED | KW_ADMIN | KW_JAR | KW_FILE
     ;

Modified: 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateFunctionDesc.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateFunctionDesc.java?rev=1570760&r1=1570759&r2=1570760&view=diff
==============================================================================
--- 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateFunctionDesc.java 
(original)
+++ 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateFunctionDesc.java 
Sat Feb 22 00:20:49 2014
@@ -19,6 +19,9 @@
 package org.apache.hadoop.hive.ql.plan;
 
 import java.io.Serializable;
+import java.util.List;
+
+import org.apache.hadoop.hive.metastore.api.ResourceUri;
 
 /**
  * CreateFunctionDesc.
@@ -31,6 +34,7 @@ public class CreateFunctionDesc implemen
   private String functionName;
   private String className;
   private boolean isTemp;
+  private List<ResourceUri> resources;
 
   /**
    * For serialization only.
@@ -38,10 +42,12 @@ public class CreateFunctionDesc implemen
   public CreateFunctionDesc() {
   }
   
-  public CreateFunctionDesc(String functionName, boolean isTemp, String 
className) {
+  public CreateFunctionDesc(String functionName, boolean isTemp, String 
className,
+      List<ResourceUri> resources) {
     this.functionName = functionName;
     this.isTemp = isTemp;
     this.className = className;
+    this.resources = resources;
   }
 
   @Explain(displayName = "name")
@@ -70,4 +76,12 @@ public class CreateFunctionDesc implemen
     this.isTemp = isTemp;
   }
 
+  public List<ResourceUri> getResources() {
+    return resources;
+  }
+
+  public void setResources(List<ResourceUri> resources) {
+    this.resources = resources;
+  }
+
 }

Added: hive/trunk/ql/src/test/queries/clientnegative/udf_local_resource.q
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/udf_local_resource.q?rev=1570760&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/udf_local_resource.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/udf_local_resource.q Sat Feb 
22 00:20:49 2014
@@ -0,0 +1 @@
+create function lookup as 'org.apache.hadoop.hive.ql.udf.UDFFileLookup' using 
file '../../data/files/sales.txt';

Added: hive/trunk/ql/src/test/queries/clientnegative/udf_nonexistent_resource.q
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/udf_nonexistent_resource.q?rev=1570760&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/udf_nonexistent_resource.q 
(added)
+++ hive/trunk/ql/src/test/queries/clientnegative/udf_nonexistent_resource.q 
Sat Feb 22 00:20:49 2014
@@ -0,0 +1 @@
+create function lookup as 'org.apache.hadoop.hive.ql.udf.UDFFileLookup' using 
file 'nonexistent_file.txt';

Added: hive/trunk/ql/src/test/queries/clientpositive/udf_using.q
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/udf_using.q?rev=1570760&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/udf_using.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/udf_using.q Sat Feb 22 
00:20:49 2014
@@ -0,0 +1,15 @@
+dfs ${system:test.dfs.mkdir} hdfs:///tmp/udf_using;
+
+dfs -copyFromLocal ../../data/files/sales.txt hdfs:///tmp/udf_using/sales.txt;
+
+create function lookup as 'org.apache.hadoop.hive.ql.udf.UDFFileLookup' using 
file 'hdfs:///tmp/udf_using/sales.txt';
+
+create table udf_using (c1 string);
+insert overwrite table udf_using select 'Joe' from src limit 2;
+
+select c1, lookup(c1) from udf_using;
+
+drop table udf_using;
+drop function lookup;
+
+dfs -rmr hdfs:///tmp/udf_using;

Added: hive/trunk/ql/src/test/results/clientnegative/udf_local_resource.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/udf_local_resource.q.out?rev=1570760&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/udf_local_resource.q.out 
(added)
+++ hive/trunk/ql/src/test/results/clientnegative/udf_local_resource.q.out Sat 
Feb 22 00:20:49 2014
@@ -0,0 +1,3 @@
+PREHOOK: query: create function lookup as 
'org.apache.hadoop.hive.ql.udf.UDFFileLookup' using file 
'../../data/files/sales.txt'
+PREHOOK: type: CREATEFUNCTION
+FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.FunctionTask. Hive warehouse is non-local, but 
../../data/files/sales.txt specifies file on local filesystem. Resources on 
non-local warehouse should specify a non-local scheme/path

Added: 
hive/trunk/ql/src/test/results/clientnegative/udf_nonexistent_resource.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/udf_nonexistent_resource.q.out?rev=1570760&view=auto
==============================================================================
--- 
hive/trunk/ql/src/test/results/clientnegative/udf_nonexistent_resource.q.out 
(added)
+++ 
hive/trunk/ql/src/test/results/clientnegative/udf_nonexistent_resource.q.out 
Sat Feb 22 00:20:49 2014
@@ -0,0 +1,4 @@
+PREHOOK: query: create function lookup as 
'org.apache.hadoop.hive.ql.udf.UDFFileLookup' using file 'nonexistent_file.txt'
+PREHOOK: type: CREATEFUNCTION
+nonexistent_file.txt does not exist
+FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.FunctionTask. Unable to load FILE 
nonexistent_file.txt

Added: hive/trunk/ql/src/test/results/clientpositive/udf_using.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/udf_using.q.out?rev=1570760&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/udf_using.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/udf_using.q.out Sat Feb 22 
00:20:49 2014
@@ -0,0 +1,44 @@
+#### A masked pattern was here ####
+PREHOOK: type: CREATEFUNCTION
+#### A masked pattern was here ####
+POSTHOOK: type: CREATEFUNCTION
+PREHOOK: query: create table udf_using (c1 string)
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: create table udf_using (c1 string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@udf_using
+PREHOOK: query: insert overwrite table udf_using select 'Joe' from src limit 2
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@udf_using
+POSTHOOK: query: insert overwrite table udf_using select 'Joe' from src limit 2
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@udf_using
+POSTHOOK: Lineage: udf_using.c1 SIMPLE []
+PREHOOK: query: select c1, lookup(c1) from udf_using
+PREHOOK: type: QUERY
+PREHOOK: Input: default@udf_using
+#### A masked pattern was here ####
+POSTHOOK: query: select c1, lookup(c1) from udf_using
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@udf_using
+#### A masked pattern was here ####
+POSTHOOK: Lineage: udf_using.c1 SIMPLE []
+Joe    2
+Joe    2
+PREHOOK: query: drop table udf_using
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@udf_using
+PREHOOK: Output: default@udf_using
+POSTHOOK: query: drop table udf_using
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@udf_using
+POSTHOOK: Output: default@udf_using
+POSTHOOK: Lineage: udf_using.c1 SIMPLE []
+PREHOOK: query: drop function lookup
+PREHOOK: type: DROPFUNCTION
+POSTHOOK: query: drop function lookup
+POSTHOOK: type: DROPFUNCTION
+POSTHOOK: Lineage: udf_using.c1 SIMPLE []
+#### A masked pattern was here ####


Reply via email to