You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by th...@apache.org on 2014/02/17 06:31:05 UTC

svn commit: r1568880 [4/4] - in /hive/trunk: itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/ metastore/if/ metastore/scripts/upgrade/derby/ metastore/scripts/upgrade/mysql/ metastore/scripts/upgrade/oracle/ metastore/scripts/upgrade/po...

Modified: hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (original)
+++ hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java Mon Feb 17 05:31:04 2014
@@ -184,6 +184,7 @@ public class ObjectStore implements RawS
   public ObjectStore() {
   }
 
+  @Override
   public Configuration getConf() {
     return hiveConf;
   }
@@ -193,6 +194,7 @@ public class ObjectStore implements RawS
    * on connection retries. In cases of connection retries, conf will usually
    * contain modified values.
    */
+  @Override
   @SuppressWarnings("nls")
   public void setConf(Configuration conf) {
     // Although an instance of ObjectStore is accessed by one thread, there may
@@ -267,7 +269,7 @@ public class ObjectStore implements RawS
       @SuppressWarnings("unchecked")
       Class<? extends PartitionExpressionProxy> clazz =
           (Class<? extends PartitionExpressionProxy>)MetaStoreUtils.getClass(className);
-      return (PartitionExpressionProxy)MetaStoreUtils.newInstance(
+      return MetaStoreUtils.newInstance(
           clazz, new Class<?>[0], new Object[0]);
     } catch (MetaException e) {
       LOG.error("Error loading PartitionExpressionProxy", e);
@@ -340,6 +342,7 @@ public class ObjectStore implements RawS
     return getPMF().getPersistenceManager();
   }
 
+  @Override
   public void shutdown() {
     if (pm != null) {
       pm.close();
@@ -353,6 +356,7 @@ public class ObjectStore implements RawS
    * @return an active transaction
    */
 
+  @Override
   public boolean openTransaction() {
     openTrasactionCalls++;
     if (openTrasactionCalls == 1) {
@@ -376,6 +380,7 @@ public class ObjectStore implements RawS
    *
    * @return Always returns true
    */
+  @Override
   @SuppressWarnings("nls")
   public boolean commitTransaction() {
     if (TXN_STATUS.ROLLBACK == transactionStatus) {
@@ -421,6 +426,7 @@ public class ObjectStore implements RawS
   /**
    * Rolls back the current transaction if it is active
    */
+  @Override
   public void rollbackTransaction() {
     if (openTrasactionCalls < 1) {
       debugLog("rolling back transaction: no open transactions: " + openTrasactionCalls);
@@ -440,6 +446,7 @@ public class ObjectStore implements RawS
     }
   }
 
+  @Override
   public void createDatabase(Database db) throws InvalidObjectException, MetaException {
     boolean commited = false;
     MDatabase mdb = new MDatabase();
@@ -447,6 +454,9 @@ public class ObjectStore implements RawS
     mdb.setLocationUri(db.getLocationUri());
     mdb.setDescription(db.getDescription());
     mdb.setParameters(db.getParameters());
+    mdb.setOwnerName(db.getOwnerName());
+    PrincipalType ownerType = db.getOwnerType();
+    mdb.setOwnerType((null == ownerType ? PrincipalType.USER.name() : ownerType.name()));
     try {
       openTransaction();
       pm.makePersistent(mdb);
@@ -482,6 +492,7 @@ public class ObjectStore implements RawS
     return mdb;
   }
 
+  @Override
   public Database getDatabase(String name) throws NoSuchObjectException {
     MDatabase mdb = null;
     boolean commited = false;
@@ -499,6 +510,9 @@ public class ObjectStore implements RawS
     db.setDescription(mdb.getDescription());
     db.setLocationUri(mdb.getLocationUri());
     db.setParameters(mdb.getParameters());
+    db.setOwnerName(mdb.getOwnerName());
+    String type = mdb.getOwnerType();
+    db.setOwnerType((null == type || type.trim().isEmpty()) ? null : PrincipalType.valueOf(type));
     return db;
   }
 
@@ -510,6 +524,7 @@ public class ObjectStore implements RawS
    * @throws MetaException
    * @throws NoSuchObjectException
    */
+  @Override
   public boolean alterDatabase(String dbName, Database db)
     throws MetaException, NoSuchObjectException {
 
@@ -531,6 +546,7 @@ public class ObjectStore implements RawS
     return true;
   }
 
+  @Override
   public boolean dropDatabase(String dbname) throws NoSuchObjectException, MetaException {
     boolean success = false;
     LOG.info("Dropping database " + dbname + " along with all tables");
@@ -558,6 +574,7 @@ public class ObjectStore implements RawS
   }
 
 
+  @Override
   public List<String> getDatabases(String pattern) throws MetaException {
     boolean commited = false;
     List<String> databases = null;
@@ -595,6 +612,7 @@ public class ObjectStore implements RawS
     return databases;
   }
 
+  @Override
   public List<String> getAllDatabases() throws MetaException {
     return getDatabases(".*");
   }
@@ -626,6 +644,7 @@ public class ObjectStore implements RawS
     return ret;
   }
 
+  @Override
   public boolean createType(Type type) {
     boolean success = false;
     MType mtype = getMType(type);
@@ -643,6 +662,7 @@ public class ObjectStore implements RawS
     return success;
   }
 
+  @Override
   public Type getType(String typeName) {
     Type type = null;
     boolean commited = false;
@@ -665,6 +685,7 @@ public class ObjectStore implements RawS
     return type;
   }
 
+  @Override
   public boolean dropType(String typeName) {
     boolean success = false;
     try {
@@ -689,6 +710,7 @@ public class ObjectStore implements RawS
     return success;
   }
 
+  @Override
   public void createTable(Table tbl) throws InvalidObjectException, MetaException {
     boolean commited = false;
     try {
@@ -751,6 +773,7 @@ public class ObjectStore implements RawS
     }
   }
 
+  @Override
   public boolean dropTable(String dbName, String tableName) throws MetaException,
     NoSuchObjectException, InvalidObjectException, InvalidInputException {
     boolean success = false;
@@ -801,6 +824,7 @@ public class ObjectStore implements RawS
     return success;
   }
 
+  @Override
   public Table getTable(String dbName, String tableName) throws MetaException {
     boolean commited = false;
     Table tbl = null;
@@ -816,6 +840,7 @@ public class ObjectStore implements RawS
     return tbl;
   }
 
+  @Override
   public List<String> getTables(String dbName, String pattern)
       throws MetaException {
     boolean commited = false;
@@ -858,6 +883,7 @@ public class ObjectStore implements RawS
     return tbls;
   }
 
+  @Override
   public List<String> getAllTables(String dbName) throws MetaException {
     return getTables(dbName, ".*");
   }
@@ -883,6 +909,7 @@ public class ObjectStore implements RawS
     return mtbl;
   }
 
+  @Override
   public List<Table> getTableObjectsByName(String db, List<String> tbl_names)
       throws MetaException, UnknownDBException {
     List<Table> tables = new ArrayList<Table>();
@@ -1296,6 +1323,7 @@ public class ObjectStore implements RawS
     return success;
   }
 
+  @Override
   public Partition getPartition(String dbName, String tableName,
       List<String> part_vals) throws NoSuchObjectException, MetaException {
     openTransaction();
@@ -1511,6 +1539,7 @@ public class ObjectStore implements RawS
     return success;
   }
 
+  @Override
   public List<Partition> getPartitions(
       String dbName, String tableName, int maxParts) throws MetaException, NoSuchObjectException {
     return getPartitionsInternal(dbName, tableName, maxParts, true, true);
@@ -1520,10 +1549,12 @@ public class ObjectStore implements RawS
       String dbName, String tblName, final int maxParts, boolean allowSql, boolean allowJdo)
           throws MetaException, NoSuchObjectException {
     return new GetListHelper<Partition>(dbName, tblName, allowSql, allowJdo) {
+      @Override
       protected List<Partition> getSqlResult(GetHelper<List<Partition>> ctx) throws MetaException {
         Integer max = (maxParts < 0) ? null : maxParts;
         return directSql.getPartitions(dbName, tblName, max);
       }
+      @Override
       protected List<Partition> getJdoResult(
           GetHelper<List<Partition>> ctx) throws MetaException, NoSuchObjectException {
         return convertToParts(listMPartitions(dbName, tblName, maxParts));
@@ -1626,6 +1657,7 @@ public class ObjectStore implements RawS
   }
 
   // TODO:pc implement max
+  @Override
   public List<String> listPartitionNames(String dbName, String tableName,
       short max) throws MetaException {
     List<String> pns = null;
@@ -1824,9 +1856,11 @@ public class ObjectStore implements RawS
       final List<String> partNames, boolean allowSql, boolean allowJdo)
           throws MetaException, NoSuchObjectException {
     return new GetListHelper<Partition>(dbName, tblName, allowSql, allowJdo) {
+      @Override
       protected List<Partition> getSqlResult(GetHelper<List<Partition>> ctx) throws MetaException {
         return directSql.getPartitionsViaSqlFilter(dbName, tblName, partNames, null);
       }
+      @Override
       protected List<Partition> getJdoResult(
           GetHelper<List<Partition>> ctx) throws MetaException, NoSuchObjectException {
         return getPartitionsViaOrmFilter(dbName, tblName, partNames);
@@ -1865,6 +1899,7 @@ public class ObjectStore implements RawS
 
     final AtomicBoolean hasUnknownPartitions = new AtomicBoolean(false);
     result.addAll(new GetListHelper<Partition>(dbName, tblName, allowSql, allowJdo) {
+      @Override
       protected List<Partition> getSqlResult(GetHelper<List<Partition>> ctx) throws MetaException {
         // If we have some sort of expression tree, try SQL filter pushdown.
         List<Partition> result = null;
@@ -1880,6 +1915,7 @@ public class ObjectStore implements RawS
         }
         return result;
       }
+      @Override
       protected List<Partition> getJdoResult(
           GetHelper<List<Partition>> ctx) throws MetaException, NoSuchObjectException {
         // If we have some sort of expression tree, try JDOQL filter pushdown.
@@ -2271,6 +2307,7 @@ public class ObjectStore implements RawS
         ? getFilterParser(filter).tree : ExpressionTree.EMPTY_TREE;
 
     return new GetListHelper<Partition>(dbName, tblName, allowSql, allowJdo) {
+      @Override
       protected List<Partition> getSqlResult(GetHelper<List<Partition>> ctx) throws MetaException {
         List<Partition> parts = directSql.getPartitionsViaSqlFilter(
             ctx.getTable(), tree, (maxParts < 0) ? null : (int)maxParts);
@@ -2281,6 +2318,7 @@ public class ObjectStore implements RawS
         }
         return parts;
       }
+      @Override
       protected List<Partition> getJdoResult(
           GetHelper<List<Partition>> ctx) throws MetaException, NoSuchObjectException {
         return getPartitionsViaOrmFilter(ctx.getTable(), tree, maxParts, true);
@@ -2499,6 +2537,7 @@ public class ObjectStore implements RawS
     return partNames;
   }
 
+  @Override
   public void alterTable(String dbname, String name, Table newTable)
       throws InvalidObjectException, MetaException {
     boolean success = false;
@@ -2540,6 +2579,7 @@ public class ObjectStore implements RawS
     }
   }
 
+  @Override
   public void alterIndex(String dbname, String baseTblName, String name, Index newIndex)
       throws InvalidObjectException, MetaException {
     boolean success = false;
@@ -2593,6 +2633,7 @@ public class ObjectStore implements RawS
     }
   }
 
+  @Override
   public void alterPartition(String dbname, String name, List<String> part_vals, Partition newPart)
       throws InvalidObjectException, MetaException {
     boolean success = false;
@@ -2617,6 +2658,7 @@ public class ObjectStore implements RawS
     }
   }
 
+  @Override
   public void alterPartitions(String dbname, String name, List<List<String>> part_vals,
       List<Partition> newParts) throws InvalidObjectException, MetaException {
     boolean success = false;
@@ -3187,6 +3229,7 @@ public class ObjectStore implements RawS
     return mRoleMemebership;
   }
 
+  @Override
   public Role getRole(String roleName) throws NoSuchObjectException {
     MRole mRole = this.getMRole(roleName);
     if (mRole == null) {
@@ -3216,6 +3259,7 @@ public class ObjectStore implements RawS
     return mrole;
   }
 
+  @Override
   public List<String> listRoleNames() {
     boolean success = false;
     try {
@@ -4388,6 +4432,7 @@ public class ObjectStore implements RawS
     return new ObjectPair<Query, Object[]>(query, params);
   }
 
+  @Override
   @SuppressWarnings("unchecked")
   public List<MTablePrivilege> listAllTableGrants(
       String principalName, PrincipalType principalType, String dbName,
@@ -4489,6 +4534,7 @@ public class ObjectStore implements RawS
     return mSecurityColList;
   }
 
+  @Override
   @SuppressWarnings("unchecked")
   public List<MPartitionColumnPrivilege> listPrincipalPartitionColumnGrants(
       String principalName, PrincipalType principalType, String dbName,
@@ -5493,6 +5539,7 @@ public class ObjectStore implements RawS
     }
   }
 
+  @Override
   public boolean updateTableColumnStatistics(ColumnStatistics colStats)
     throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException {
     boolean committed = false;
@@ -5520,6 +5567,7 @@ public class ObjectStore implements RawS
     }
   }
 
+  @Override
   public boolean updatePartitionColumnStatistics(ColumnStatistics colStats, List<String> partVals)
     throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException {
     boolean committed = false;
@@ -5611,6 +5659,7 @@ public class ObjectStore implements RawS
     }
   }
 
+  @Override
   public ColumnStatistics getTableColumnStatistics(String dbName, String tableName,
       List<String> colNames) throws MetaException, NoSuchObjectException {
     return getTableColumnStatisticsInternal(dbName, tableName, colNames, true, true);
@@ -5620,9 +5669,11 @@ public class ObjectStore implements RawS
       String dbName, String tableName, final List<String> colNames, boolean allowSql,
       boolean allowJdo) throws MetaException, NoSuchObjectException {
     return new GetStatHelper(dbName.toLowerCase(), tableName.toLowerCase(), allowSql, allowJdo) {
+      @Override
       protected ColumnStatistics getSqlResult(GetHelper<ColumnStatistics> ctx) throws MetaException {
         return directSql.getTableStats(dbName, tblName, colNames);
       }
+      @Override
       protected ColumnStatistics getJdoResult(
           GetHelper<ColumnStatistics> ctx) throws MetaException, NoSuchObjectException {
         List<MTableColumnStatistics> mStats = getMTableColumnStatistics(getTable(), colNames);
@@ -5642,6 +5693,7 @@ public class ObjectStore implements RawS
     }.run(true);
   }
 
+  @Override
   public List<ColumnStatistics> getPartitionColumnStatistics(String dbName, String tableName,
       List<String> partNames, List<String> colNames) throws MetaException, NoSuchObjectException {
     return getPartitionColumnStatisticsInternal(
@@ -5652,10 +5704,12 @@ public class ObjectStore implements RawS
       String dbName, String tableName, final List<String> partNames, final List<String> colNames,
       boolean allowSql, boolean allowJdo) throws MetaException, NoSuchObjectException {
     return new GetListHelper<ColumnStatistics>(dbName, tableName, allowSql, allowJdo) {
+      @Override
       protected List<ColumnStatistics> getSqlResult(
           GetHelper<List<ColumnStatistics>> ctx) throws MetaException {
         return directSql.getPartitionStats(dbName, tblName, partNames, colNames);
       }
+      @Override
       protected List<ColumnStatistics> getJdoResult(
           GetHelper<List<ColumnStatistics>> ctx) throws MetaException, NoSuchObjectException {
         List<MPartitionColumnStatistics> mStats =
@@ -5749,6 +5803,7 @@ public class ObjectStore implements RawS
     queryWithParams.getFirst().deletePersistentAll(queryWithParams.getSecond());
   }
 
+  @Override
   public boolean deletePartitionColumnStatistics(String dbName, String tableName,
     String partName, List<String> partVals, String colName)
     throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException {
@@ -5837,6 +5892,7 @@ public class ObjectStore implements RawS
     return ret;
   }
 
+  @Override
   public boolean deleteTableColumnStatistics(String dbName, String tableName, String colName)
     throws NoSuchObjectException, MetaException, InvalidObjectException, InvalidInputException
   {

Modified: hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MDatabase.java
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MDatabase.java?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MDatabase.java (original)
+++ hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MDatabase.java Mon Feb 17 05:31:04 2014
@@ -32,6 +32,8 @@ public class MDatabase {
   private String locationUri;
   private String description;
   private Map<String, String> parameters;
+  private String ownerName;
+  private String ownerType;
 
   /**
    * Default construction to keep jpox/jdo happy
@@ -107,4 +109,20 @@ public class MDatabase {
   public void setParameters(Map<String, String> parameters) {
     this.parameters = parameters;
   }
+
+  public String getOwnerName() {
+    return ownerName;
+  }
+
+  public void setOwnerName(String ownerName) {
+    this.ownerName = ownerName;
+  }
+
+  public String getOwnerType() {
+    return ownerType;
+  }
+
+  public void setOwnerType(String ownerType) {
+    this.ownerType = ownerType;
+  }
 }

Modified: hive/trunk/metastore/src/model/package.jdo
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/model/package.jdo?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/metastore/src/model/package.jdo (original)
+++ hive/trunk/metastore/src/model/package.jdo Mon Feb 17 05:31:04 2014
@@ -53,6 +53,12 @@
            <column name="PARAM_VALUE" length="4000" jdbc-type="VARCHAR"/>
         </value>
       </field>
+      <field name="ownerName">	
+        <column name="OWNER_NAME" length="128" jdbc-type="VARCHAR" allows-null="true"/>
+      </field>
+       <field name="ownerType">
+        <column name="OWNER_TYPE" length="10" jdbc-type="VARCHAR" allows-null="true"/>
+      </field>
     </class>
 
     <class name="MFieldSchema" embedded-only="true" table="TYPE_FIELDS" detachable="true">

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java Mon Feb 17 05:31:04 2014
@@ -2834,12 +2834,10 @@ public class DDLTask extends Task<DDLWor
           if(descDatabase.isExt()) {
             params = database.getParameters();
           }
-
-          formatter.showDatabaseDescription(outStream,
-                                            database.getName(),
-                                            database.getDescription(),
-                                            database.getLocationUri(),
-                                            params);
+          PrincipalType ownerType = database.getOwnerType();
+          formatter.showDatabaseDescription(outStream, database.getName(),
+            database.getDescription(), database.getLocationUri(),
+            database.getOwnerName(), (null == ownerType) ? null : ownerType.name(), params);
       }
       outStream.close();
       outStream = null;
@@ -3666,6 +3664,8 @@ public class DDLTask extends Task<DDLWor
     database.setDescription(crtDb.getComment());
     database.setLocationUri(crtDb.getLocationUri());
     database.setParameters(crtDb.getDatabaseProperties());
+    database.setOwnerName(SessionState.getUserFromAuthenticator());
+    database.setOwnerType(PrincipalType.USER);
     try {
       db.createDatabase(database, crtDb.getIfNotExists());
     }

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java Mon Feb 17 05:31:04 2014
@@ -398,28 +398,20 @@ public class JsonMetaDataFormatter imple
      * Show the description of a database
      */
     @Override
-    public void showDatabaseDescription(DataOutputStream out,
-                                        String database,
-                                        String comment,
-                                        String location,
-                                        Map<String, String> params)
-        throws HiveException
-    {
-        if (params == null || params.isEmpty()) {
-            asJson(out, MapBuilder
-               .create()
-               .put("database", database)
-               .put("comment", comment)
-               .put("location", location)
-               .build());
-        } else {
-            asJson(out, MapBuilder
-               .create()
-               .put("database", database)
-               .put("comment", comment)
-               .put("location", location)
-               .put("params", params)
-               .build());
-        }
+    public void showDatabaseDescription(DataOutputStream out, String database, String comment,
+      String location, String ownerName, String ownerType, Map<String, String> params)
+      throws HiveException {
+      MapBuilder builder = MapBuilder.create().put("database", database).put("comment", comment)
+        .put("location", location);
+      if (null != ownerName) {
+        builder.put("owner", ownerName);
+      }
+      if (null != ownerType) {
+        builder.put("ownerType", ownerType);
+      }
+      if (null != params && !params.isEmpty()) {
+        builder.put("params", params);
+      }
+      asJson(out, builder.build());
     }
 }

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatter.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatter.java?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatter.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatter.java Mon Feb 17 05:31:04 2014
@@ -93,11 +93,8 @@ public interface MetaDataFormatter {
     /**
      * Describe a database.
      */
-    public void showDatabaseDescription(DataOutputStream out,
-                                        String database,
-                                        String comment,
-                                        String location,
-                                        Map<String, String> params)
-        throws HiveException;
+    public void showDatabaseDescription (DataOutputStream out, String database, String comment,
+      String location, String ownerName, String ownerType, Map<String, String> params)
+     throws HiveException;
 }
 

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/TextMetaDataFormatter.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/TextMetaDataFormatter.java?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/TextMetaDataFormatter.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/TextMetaDataFormatter.java Mon Feb 17 05:31:04 2014
@@ -430,13 +430,9 @@ class TextMetaDataFormatter implements M
      * Describe a database
      */
     @Override
-    public void showDatabaseDescription(DataOutputStream outStream,
-                                        String database,
-                                        String comment,
-                                        String location,
-                                        Map<String, String> params)
-        throws HiveException
-    {
+    public void showDatabaseDescription(DataOutputStream outStream, String database, String comment,
+      String location, String ownerName, String ownerType, Map<String, String> params)
+      throws HiveException {
         try {
             outStream.writeBytes(database);
             outStream.write(separator);
@@ -448,6 +444,14 @@ class TextMetaDataFormatter implements M
               outStream.writeBytes(location);
             }
             outStream.write(separator);
+            if (ownerName != null) {
+              outStream.writeBytes(ownerName);
+            }
+            outStream.write(separator);
+            if (ownerType != null) {
+              outStream.writeBytes(ownerType);
+            }
+            outStream.write(separator);
             if (params != null && !params.isEmpty()) {
                 outStream.writeBytes(params.toString());
             }

Modified: hive/trunk/serde/src/gen/thrift/gen-cpp/serde_constants.cpp
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/gen/thrift/gen-cpp/serde_constants.cpp?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/serde/src/gen/thrift/gen-cpp/serde_constants.cpp (original)
+++ hive/trunk/serde/src/gen/thrift/gen-cpp/serde_constants.cpp Mon Feb 17 05:31:04 2014
@@ -39,6 +39,10 @@ serdeConstants::serdeConstants() {
 
   ESCAPE_CHAR = "escape.delim";
 
+  HEADER_COUNT = "skip.header.line.count";
+
+  FOOTER_COUNT = "skip.footer.line.count";
+
   VOID_TYPE_NAME = "void";
 
   BOOLEAN_TYPE_NAME = "boolean";

Modified: hive/trunk/serde/src/gen/thrift/gen-cpp/serde_constants.h
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/gen/thrift/gen-cpp/serde_constants.h?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/serde/src/gen/thrift/gen-cpp/serde_constants.h (original)
+++ hive/trunk/serde/src/gen/thrift/gen-cpp/serde_constants.h Mon Feb 17 05:31:04 2014
@@ -29,6 +29,8 @@ class serdeConstants {
   std::string MAPKEY_DELIM;
   std::string QUOTE_CHAR;
   std::string ESCAPE_CHAR;
+  std::string HEADER_COUNT;
+  std::string FOOTER_COUNT;
   std::string VOID_TYPE_NAME;
   std::string BOOLEAN_TYPE_NAME;
   std::string TINYINT_TYPE_NAME;

Modified: hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde/test/ThriftTestObj.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde/test/ThriftTestObj.java?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde/test/ThriftTestObj.java (original)
+++ hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde/test/ThriftTestObj.java Mon Feb 17 05:31:04 2014
@@ -528,7 +528,7 @@ public class ThriftTestObj implements or
                 struct.field3 = new ArrayList<InnerStruct>(_list0.size);
                 for (int _i1 = 0; _i1 < _list0.size; ++_i1)
                 {
-                  InnerStruct _elem2; // optional
+                  InnerStruct _elem2; // required
                   _elem2 = new InnerStruct();
                   _elem2.read(iprot);
                   struct.field3.add(_elem2);
@@ -636,7 +636,7 @@ public class ThriftTestObj implements or
           struct.field3 = new ArrayList<InnerStruct>(_list5.size);
           for (int _i6 = 0; _i6 < _list5.size; ++_i6)
           {
-            InnerStruct _elem7; // optional
+            InnerStruct _elem7; // required
             _elem7 = new InnerStruct();
             _elem7.read(iprot);
             struct.field3.add(_elem7);

Modified: hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde2/thrift/test/Complex.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde2/thrift/test/Complex.java?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde2/thrift/test/Complex.java (original)
+++ hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde2/thrift/test/Complex.java Mon Feb 17 05:31:04 2014
@@ -836,7 +836,7 @@ public class Complex implements org.apac
                 struct.lint = new ArrayList<Integer>(_list0.size);
                 for (int _i1 = 0; _i1 < _list0.size; ++_i1)
                 {
-                  int _elem2; // optional
+                  int _elem2; // required
                   _elem2 = iprot.readI32();
                   struct.lint.add(_elem2);
                 }
@@ -854,7 +854,7 @@ public class Complex implements org.apac
                 struct.lString = new ArrayList<String>(_list3.size);
                 for (int _i4 = 0; _i4 < _list3.size; ++_i4)
                 {
-                  String _elem5; // optional
+                  String _elem5; // required
                   _elem5 = iprot.readString();
                   struct.lString.add(_elem5);
                 }
@@ -872,7 +872,7 @@ public class Complex implements org.apac
                 struct.lintString = new ArrayList<IntString>(_list6.size);
                 for (int _i7 = 0; _i7 < _list6.size; ++_i7)
                 {
-                  IntString _elem8; // optional
+                  IntString _elem8; // required
                   _elem8 = new IntString();
                   _elem8.read(iprot);
                   struct.lintString.add(_elem8);
@@ -1074,7 +1074,7 @@ public class Complex implements org.apac
           struct.lint = new ArrayList<Integer>(_list21.size);
           for (int _i22 = 0; _i22 < _list21.size; ++_i22)
           {
-            int _elem23; // optional
+            int _elem23; // required
             _elem23 = iprot.readI32();
             struct.lint.add(_elem23);
           }
@@ -1087,7 +1087,7 @@ public class Complex implements org.apac
           struct.lString = new ArrayList<String>(_list24.size);
           for (int _i25 = 0; _i25 < _list24.size; ++_i25)
           {
-            String _elem26; // optional
+            String _elem26; // required
             _elem26 = iprot.readString();
             struct.lString.add(_elem26);
           }
@@ -1100,7 +1100,7 @@ public class Complex implements org.apac
           struct.lintString = new ArrayList<IntString>(_list27.size);
           for (int _i28 = 0; _i28 < _list27.size; ++_i28)
           {
-            IntString _elem29; // optional
+            IntString _elem29; // required
             _elem29 = new IntString();
             _elem29.read(iprot);
             struct.lintString.add(_elem29);

Modified: hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde2/thrift/test/MegaStruct.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde2/thrift/test/MegaStruct.java?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde2/thrift/test/MegaStruct.java (original)
+++ hive/trunk/serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde2/thrift/test/MegaStruct.java Mon Feb 17 05:31:04 2014
@@ -2280,7 +2280,7 @@ public class MegaStruct implements org.a
                     _val19 = new ArrayList<String>(_list20.size);
                     for (int _i21 = 0; _i21 < _list20.size; ++_i21)
                     {
-                      String _elem22; // optional
+                      String _elem22; // required
                       _elem22 = iprot.readString();
                       _val19.add(_elem22);
                     }
@@ -2310,7 +2310,7 @@ public class MegaStruct implements org.a
                     _val26 = new ArrayList<MiniStruct>(_list27.size);
                     for (int _i28 = 0; _i28 < _list27.size; ++_i28)
                     {
-                      MiniStruct _elem29; // optional
+                      MiniStruct _elem29; // required
                       _elem29 = new MiniStruct();
                       _elem29.read(iprot);
                       _val26.add(_elem29);
@@ -2333,7 +2333,7 @@ public class MegaStruct implements org.a
                 struct.my_stringlist = new ArrayList<String>(_list30.size);
                 for (int _i31 = 0; _i31 < _list30.size; ++_i31)
                 {
-                  String _elem32; // optional
+                  String _elem32; // required
                   _elem32 = iprot.readString();
                   struct.my_stringlist.add(_elem32);
                 }
@@ -2351,7 +2351,7 @@ public class MegaStruct implements org.a
                 struct.my_structlist = new ArrayList<MiniStruct>(_list33.size);
                 for (int _i34 = 0; _i34 < _list33.size; ++_i34)
                 {
-                  MiniStruct _elem35; // optional
+                  MiniStruct _elem35; // required
                   _elem35 = new MiniStruct();
                   _elem35.read(iprot);
                   struct.my_structlist.add(_elem35);
@@ -2370,7 +2370,7 @@ public class MegaStruct implements org.a
                 struct.my_enumlist = new ArrayList<MyEnum>(_list36.size);
                 for (int _i37 = 0; _i37 < _list36.size; ++_i37)
                 {
-                  MyEnum _elem38; // optional
+                  MyEnum _elem38; // required
                   _elem38 = MyEnum.findByValue(iprot.readI32());
                   struct.my_enumlist.add(_elem38);
                 }
@@ -2388,7 +2388,7 @@ public class MegaStruct implements org.a
                 struct.my_stringset = new HashSet<String>(2*_set39.size);
                 for (int _i40 = 0; _i40 < _set39.size; ++_i40)
                 {
-                  String _elem41; // optional
+                  String _elem41; // required
                   _elem41 = iprot.readString();
                   struct.my_stringset.add(_elem41);
                 }
@@ -2406,7 +2406,7 @@ public class MegaStruct implements org.a
                 struct.my_enumset = new HashSet<MyEnum>(2*_set42.size);
                 for (int _i43 = 0; _i43 < _set42.size; ++_i43)
                 {
-                  MyEnum _elem44; // optional
+                  MyEnum _elem44; // required
                   _elem44 = MyEnum.findByValue(iprot.readI32());
                   struct.my_enumset.add(_elem44);
                 }
@@ -2424,7 +2424,7 @@ public class MegaStruct implements org.a
                 struct.my_structset = new HashSet<MiniStruct>(2*_set45.size);
                 for (int _i46 = 0; _i46 < _set45.size; ++_i46)
                 {
-                  MiniStruct _elem47; // optional
+                  MiniStruct _elem47; // required
                   _elem47 = new MiniStruct();
                   _elem47.read(iprot);
                   struct.my_structset.add(_elem47);
@@ -3023,7 +3023,7 @@ public class MegaStruct implements org.a
               _val95 = new ArrayList<String>(_list96.size);
               for (int _i97 = 0; _i97 < _list96.size; ++_i97)
               {
-                String _elem98; // optional
+                String _elem98; // required
                 _elem98 = iprot.readString();
                 _val95.add(_elem98);
               }
@@ -3047,7 +3047,7 @@ public class MegaStruct implements org.a
               _val102 = new ArrayList<MiniStruct>(_list103.size);
               for (int _i104 = 0; _i104 < _list103.size; ++_i104)
               {
-                MiniStruct _elem105; // optional
+                MiniStruct _elem105; // required
                 _elem105 = new MiniStruct();
                 _elem105.read(iprot);
                 _val102.add(_elem105);
@@ -3064,7 +3064,7 @@ public class MegaStruct implements org.a
           struct.my_stringlist = new ArrayList<String>(_list106.size);
           for (int _i107 = 0; _i107 < _list106.size; ++_i107)
           {
-            String _elem108; // optional
+            String _elem108; // required
             _elem108 = iprot.readString();
             struct.my_stringlist.add(_elem108);
           }
@@ -3077,7 +3077,7 @@ public class MegaStruct implements org.a
           struct.my_structlist = new ArrayList<MiniStruct>(_list109.size);
           for (int _i110 = 0; _i110 < _list109.size; ++_i110)
           {
-            MiniStruct _elem111; // optional
+            MiniStruct _elem111; // required
             _elem111 = new MiniStruct();
             _elem111.read(iprot);
             struct.my_structlist.add(_elem111);
@@ -3091,7 +3091,7 @@ public class MegaStruct implements org.a
           struct.my_enumlist = new ArrayList<MyEnum>(_list112.size);
           for (int _i113 = 0; _i113 < _list112.size; ++_i113)
           {
-            MyEnum _elem114; // optional
+            MyEnum _elem114; // required
             _elem114 = MyEnum.findByValue(iprot.readI32());
             struct.my_enumlist.add(_elem114);
           }
@@ -3104,7 +3104,7 @@ public class MegaStruct implements org.a
           struct.my_stringset = new HashSet<String>(2*_set115.size);
           for (int _i116 = 0; _i116 < _set115.size; ++_i116)
           {
-            String _elem117; // optional
+            String _elem117; // required
             _elem117 = iprot.readString();
             struct.my_stringset.add(_elem117);
           }
@@ -3117,7 +3117,7 @@ public class MegaStruct implements org.a
           struct.my_enumset = new HashSet<MyEnum>(2*_set118.size);
           for (int _i119 = 0; _i119 < _set118.size; ++_i119)
           {
-            MyEnum _elem120; // optional
+            MyEnum _elem120; // required
             _elem120 = MyEnum.findByValue(iprot.readI32());
             struct.my_enumset.add(_elem120);
           }
@@ -3130,7 +3130,7 @@ public class MegaStruct implements org.a
           struct.my_structset = new HashSet<MiniStruct>(2*_set121.size);
           for (int _i122 = 0; _i122 < _set121.size; ++_i122)
           {
-            MiniStruct _elem123; // optional
+            MiniStruct _elem123; // required
             _elem123 = new MiniStruct();
             _elem123.read(iprot);
             struct.my_structset.add(_elem123);

Modified: hive/trunk/serde/src/gen/thrift/gen-php/org/apache/hadoop/hive/serde/Types.php
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/gen/thrift/gen-php/org/apache/hadoop/hive/serde/Types.php?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/serde/src/gen/thrift/gen-php/org/apache/hadoop/hive/serde/Types.php (original)
+++ hive/trunk/serde/src/gen/thrift/gen-php/org/apache/hadoop/hive/serde/Types.php Mon Feb 17 05:31:04 2014
@@ -44,6 +44,10 @@ $GLOBALS['serde_CONSTANTS']['QUOTE_CHAR'
 
 $GLOBALS['serde_CONSTANTS']['ESCAPE_CHAR'] = "escape.delim";
 
+$GLOBALS['serde_CONSTANTS']['HEADER_COUNT'] = "skip.header.line.count";
+
+$GLOBALS['serde_CONSTANTS']['FOOTER_COUNT'] = "skip.footer.line.count";
+
 $GLOBALS['serde_CONSTANTS']['VOID_TYPE_NAME'] = "void";
 
 $GLOBALS['serde_CONSTANTS']['BOOLEAN_TYPE_NAME'] = "boolean";

Modified: hive/trunk/serde/src/gen/thrift/gen-py/org_apache_hadoop_hive_serde/constants.py
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/gen/thrift/gen-py/org_apache_hadoop_hive_serde/constants.py?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/serde/src/gen/thrift/gen-py/org_apache_hadoop_hive_serde/constants.py (original)
+++ hive/trunk/serde/src/gen/thrift/gen-py/org_apache_hadoop_hive_serde/constants.py Mon Feb 17 05:31:04 2014
@@ -23,6 +23,8 @@ LINE_DELIM = "line.delim"
 MAPKEY_DELIM = "mapkey.delim"
 QUOTE_CHAR = "quote.delim"
 ESCAPE_CHAR = "escape.delim"
+HEADER_COUNT = "skip.header.line.count"
+FOOTER_COUNT = "skip.footer.line.count"
 VOID_TYPE_NAME = "void"
 BOOLEAN_TYPE_NAME = "boolean"
 TINYINT_TYPE_NAME = "tinyint"

Modified: hive/trunk/serde/src/gen/thrift/gen-rb/serde_constants.rb
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/gen/thrift/gen-rb/serde_constants.rb?rev=1568880&r1=1568879&r2=1568880&view=diff
==============================================================================
--- hive/trunk/serde/src/gen/thrift/gen-rb/serde_constants.rb (original)
+++ hive/trunk/serde/src/gen/thrift/gen-rb/serde_constants.rb Mon Feb 17 05:31:04 2014
@@ -35,6 +35,10 @@ QUOTE_CHAR = %q"quote.delim"
 
 ESCAPE_CHAR = %q"escape.delim"
 
+HEADER_COUNT = %q"skip.header.line.count"
+
+FOOTER_COUNT = %q"skip.footer.line.count"
+
 VOID_TYPE_NAME = %q"void"
 
 BOOLEAN_TYPE_NAME = %q"boolean"