You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/06/03 16:48:28 UTC

svn commit: r1489013 - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/metadata/Table.java test/queries/clientnegative/invalid_columns.q test/results/clientnegative/invalid_columns.q.out

Author: hashutosh
Date: Mon Jun  3 14:48:27 2013
New Revision: 1489013

URL: http://svn.apache.org/r1489013
Log:
HIVE-4615 : Invalid column names allowed when created dynamically by a SerDe (Gabriel Reid via Ashutosh Chauhan)

Added:
    hive/trunk/ql/src/test/queries/clientnegative/invalid_columns.q
    hive/trunk/ql/src/test/results/clientnegative/invalid_columns.q.out
Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java?rev=1489013&r1=1489012&r2=1489013&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java Mon Jun  3 14:48:27 2013
@@ -196,6 +196,10 @@ public class Table implements Serializab
     List<String> colNames = new ArrayList<String>();
     while (iterCols.hasNext()) {
       String colName = iterCols.next().getName();
+      if (!MetaStoreUtils.validateName(colName)) {
+        throw new HiveException("Invalid column name '" + colName
+            + "' in the table definition");
+      }
       Iterator<String> iter = colNames.iterator();
       while (iter.hasNext()) {
         String oldColName = iter.next();

Added: hive/trunk/ql/src/test/queries/clientnegative/invalid_columns.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/invalid_columns.q?rev=1489013&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/invalid_columns.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/invalid_columns.q Mon Jun  3 14:48:27 2013
@@ -0,0 +1,4 @@
+ADD JAR ../data/files/TestSerDe.jar;
+CREATE TABLE DELETEJAR(KEY STRING, VALUE STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.TestSerDe' 
+STORED AS TEXTFILE
+TBLPROPERTIES('columns'='valid_colname,invalid.colname');

Added: hive/trunk/ql/src/test/results/clientnegative/invalid_columns.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/invalid_columns.q.out?rev=1489013&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/invalid_columns.q.out (added)
+++ hive/trunk/ql/src/test/results/clientnegative/invalid_columns.q.out Mon Jun  3 14:48:27 2013
@@ -0,0 +1,6 @@
+PREHOOK: query: CREATE TABLE DELETEJAR(KEY STRING, VALUE STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.TestSerDe' 
+STORED AS TEXTFILE
+TBLPROPERTIES('columns'='valid_colname,invalid.colname')
+PREHOOK: type: CREATETABLE
+FAILED: Error in metadata: org.apache.hadoop.hive.ql.metadata.HiveException: Invalid column name 'invalid.colname' in the table definition
+FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask