You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ga...@apache.org on 2017/12/07 17:53:57 UTC
[15/50] [abbrv] hive git commit: HIVE-17980 Move HiveMetaStoreClient
plus a few remaining classes. This closes #272 (Alan Gates,
reviewed by Daniel Dai)
http://git-wip-us.apache.org/repos/asf/hive/blob/d79c4595/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreUtils.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreUtils.java b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreUtils.java
new file mode 100644
index 0000000..a66c135
--- /dev/null
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreUtils.java
@@ -0,0 +1,213 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hive.metastore.api.FieldSchema;
+import org.apache.hadoop.hive.metastore.api.MetaException;
+import org.apache.hadoop.hive.serde2.Deserializer;
+import org.apache.hadoop.hive.serde2.SerDeException;
+import org.apache.hadoop.hive.serde2.SerDeUtils;
+import org.apache.hadoop.hive.serde2.objectinspector.ListObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.MapObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
+import org.apache.hadoop.hive.serde2.objectinspector.StructField;
+import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
+import org.apache.hive.common.util.ReflectionUtil;
+
+public class HiveMetaStoreUtils {
+
+ protected static final Logger LOG = LoggerFactory.getLogger("hive.log");
+
+ /**
+ * getDeserializer
+ *
+ * Get the Deserializer for a table.
+ *
+ * @param conf
+ * - hadoop config
+ * @param table
+ * the table
+ * @return
+ * Returns instantiated deserializer by looking up class name of deserializer stored in
+ * storage descriptor of passed in table. Also, initializes the deserializer with schema
+ * of table.
+ * @exception MetaException
+ * if any problems instantiating the Deserializer
+ *
+ * todo - this should move somewhere into serde.jar
+ *
+ */
+ static public Deserializer getDeserializer(Configuration conf,
+ org.apache.hadoop.hive.metastore.api.Table table, boolean skipConfError) throws
+ MetaException {
+ String lib = table.getSd().getSerdeInfo().getSerializationLib();
+ if (lib == null) {
+ return null;
+ }
+ return getDeserializer(conf, table, skipConfError, lib);
+ }
+
+ public static Deserializer getDeserializer(Configuration conf,
+ org.apache.hadoop.hive.metastore.api.Table table, boolean skipConfError,
+ String lib) throws MetaException {
+ try {
+ Deserializer deserializer = ReflectionUtil.newInstance(conf.getClassByName(lib).
+ asSubclass(Deserializer.class), conf);
+ if (skipConfError) {
+ SerDeUtils.initializeSerDeWithoutErrorCheck(deserializer, conf,
+ MetaStoreUtils.getTableMetadata(table), null);
+ } else {
+ SerDeUtils.initializeSerDe(deserializer, conf, MetaStoreUtils.getTableMetadata(table), null);
+ }
+ return deserializer;
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Throwable e) {
+ LOG.error("error in initSerDe: " + e.getClass().getName() + " "
+ + e.getMessage(), e);
+ throw new MetaException(e.getClass().getName() + " " + e.getMessage());
+ }
+ }
+
+ public static Class<? extends Deserializer> getDeserializerClass(
+ Configuration conf, org.apache.hadoop.hive.metastore.api.Table table) throws Exception {
+ String lib = table.getSd().getSerdeInfo().getSerializationLib();
+ return lib == null ? null : conf.getClassByName(lib).asSubclass(Deserializer.class);
+ }
+
+ /**
+ * getDeserializer
+ *
+ * Get the Deserializer for a partition.
+ *
+ * @param conf
+ * - hadoop config
+ * @param part
+ * the partition
+ * @param table the table
+ * @return
+ * Returns instantiated deserializer by looking up class name of deserializer stored in
+ * storage descriptor of passed in partition. Also, initializes the deserializer with
+ * schema of partition.
+ * @exception MetaException
+ * if any problems instantiating the Deserializer
+ *
+ */
+ static public Deserializer getDeserializer(Configuration conf,
+ org.apache.hadoop.hive.metastore.api.Partition part,
+ org.apache.hadoop.hive.metastore.api.Table table) throws MetaException {
+ String lib = part.getSd().getSerdeInfo().getSerializationLib();
+ try {
+ Deserializer deserializer = ReflectionUtil.newInstance(conf.getClassByName(lib).
+ asSubclass(Deserializer.class), conf);
+ SerDeUtils.initializeSerDe(deserializer, conf, MetaStoreUtils.getTableMetadata(table),
+ MetaStoreUtils.getPartitionMetadata(part, table));
+ return deserializer;
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Throwable e) {
+ LOG.error("error in initSerDe: " + e.getClass().getName() + " "
+ + e.getMessage(), e);
+ throw new MetaException(e.getClass().getName() + " " + e.getMessage());
+ }
+ }
+
+ /**
+ * @param tableName name of the table
+ * @param deserializer deserializer to use
+ * @return the list of fields
+ * @throws SerDeException if the serde throws an exception
+ * @throws MetaException if one of the fields or types in the table is invalid
+ */
+ public static List<FieldSchema> getFieldsFromDeserializer(String tableName,
+ Deserializer deserializer) throws SerDeException, MetaException {
+ ObjectInspector oi = deserializer.getObjectInspector();
+ String[] names = tableName.split("\\.");
+ String last_name = names[names.length - 1];
+ for (int i = 1; i < names.length; i++) {
+
+ if (oi instanceof StructObjectInspector) {
+ StructObjectInspector soi = (StructObjectInspector) oi;
+ StructField sf = soi.getStructFieldRef(names[i]);
+ if (sf == null) {
+ throw new MetaException("Invalid Field " + names[i]);
+ } else {
+ oi = sf.getFieldObjectInspector();
+ }
+ } else if (oi instanceof ListObjectInspector
+ && names[i].equalsIgnoreCase("$elem$")) {
+ ListObjectInspector loi = (ListObjectInspector) oi;
+ oi = loi.getListElementObjectInspector();
+ } else if (oi instanceof MapObjectInspector
+ && names[i].equalsIgnoreCase("$key$")) {
+ MapObjectInspector moi = (MapObjectInspector) oi;
+ oi = moi.getMapKeyObjectInspector();
+ } else if (oi instanceof MapObjectInspector
+ && names[i].equalsIgnoreCase("$value$")) {
+ MapObjectInspector moi = (MapObjectInspector) oi;
+ oi = moi.getMapValueObjectInspector();
+ } else {
+ throw new MetaException("Unknown type for " + names[i]);
+ }
+ }
+
+ ArrayList<FieldSchema> str_fields = new ArrayList<>();
+ // rules on how to recurse the ObjectInspector based on its type
+ if (oi.getCategory() != Category.STRUCT) {
+ str_fields.add(new FieldSchema(last_name, oi.getTypeName(),
+ FROM_SERIALIZER));
+ } else {
+ List<? extends StructField> fields = ((StructObjectInspector) oi)
+ .getAllStructFieldRefs();
+ for (int i = 0; i < fields.size(); i++) {
+ StructField structField = fields.get(i);
+ String fieldName = structField.getFieldName();
+ String fieldTypeName = structField.getFieldObjectInspector().getTypeName();
+ String fieldComment = determineFieldComment(structField.getFieldComment());
+
+ str_fields.add(new FieldSchema(fieldName, fieldTypeName, fieldComment));
+ }
+ }
+ return str_fields;
+ }
+
+ private static final String FROM_SERIALIZER = "from deserializer";
+ private static String determineFieldComment(String comment) {
+ return (comment == null) ? FROM_SERIALIZER : comment;
+ }
+
+ /**
+ * Convert TypeInfo to FieldSchema.
+ */
+ public static FieldSchema getFieldSchemaFromTypeInfo(String fieldName,
+ TypeInfo typeInfo) {
+ return new FieldSchema(fieldName, typeInfo.getTypeName(),
+ "generated by TypeInfoUtils.getFieldSchemaFromTypeInfo");
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/d79c4595/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java b/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
deleted file mode 100644
index 40e7930..0000000
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
+++ /dev/null
@@ -1,1826 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.metastore;
-
-
-import org.apache.hadoop.hive.metastore.api.WMFullResourcePlan;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.apache.hadoop.hive.common.ObjectPair;
-import org.apache.hadoop.hive.common.ValidTxnList;
-import org.apache.hadoop.hive.common.classification.InterfaceAudience;
-import org.apache.hadoop.hive.common.classification.InterfaceAudience.Public;
-import org.apache.hadoop.hive.common.classification.InterfaceStability.Evolving;
-import org.apache.hadoop.hive.common.classification.RetrySemantics;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.metastore.annotation.NoReconnect;
-import org.apache.hadoop.hive.metastore.api.AggrStats;
-import org.apache.hadoop.hive.metastore.api.AlreadyExistsException;
-import org.apache.hadoop.hive.metastore.api.CmRecycleRequest;
-import org.apache.hadoop.hive.metastore.api.CmRecycleResponse;
-import org.apache.hadoop.hive.metastore.api.ColumnStatistics;
-import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj;
-import org.apache.hadoop.hive.metastore.api.CompactionResponse;
-import org.apache.hadoop.hive.metastore.api.CompactionType;
-import org.apache.hadoop.hive.metastore.api.ConfigValSecurityException;
-import org.apache.hadoop.hive.metastore.api.CurrentNotificationEventId;
-import org.apache.hadoop.hive.metastore.api.DataOperationType;
-import org.apache.hadoop.hive.metastore.api.Database;
-import org.apache.hadoop.hive.metastore.api.EnvironmentContext;
-import org.apache.hadoop.hive.metastore.api.FieldSchema;
-import org.apache.hadoop.hive.metastore.api.FireEventRequest;
-import org.apache.hadoop.hive.metastore.api.FireEventResponse;
-import org.apache.hadoop.hive.metastore.api.ForeignKeysRequest;
-import org.apache.hadoop.hive.metastore.api.Function;
-import org.apache.hadoop.hive.metastore.api.GetAllFunctionsResponse;
-import org.apache.hadoop.hive.metastore.api.GetOpenTxnsInfoResponse;
-import org.apache.hadoop.hive.metastore.api.GetPrincipalsInRoleRequest;
-import org.apache.hadoop.hive.metastore.api.GetPrincipalsInRoleResponse;
-import org.apache.hadoop.hive.metastore.api.GetRoleGrantsForPrincipalRequest;
-import org.apache.hadoop.hive.metastore.api.GetRoleGrantsForPrincipalResponse;
-import org.apache.hadoop.hive.metastore.api.HeartbeatTxnRangeResponse;
-import org.apache.hadoop.hive.metastore.api.HiveObjectPrivilege;
-import org.apache.hadoop.hive.metastore.api.HiveObjectRef;
-import org.apache.hadoop.hive.metastore.api.Index;
-import org.apache.hadoop.hive.metastore.api.InvalidInputException;
-import org.apache.hadoop.hive.metastore.api.InvalidObjectException;
-import org.apache.hadoop.hive.metastore.api.InvalidOperationException;
-import org.apache.hadoop.hive.metastore.api.InvalidPartitionException;
-import org.apache.hadoop.hive.metastore.api.LockRequest;
-import org.apache.hadoop.hive.metastore.api.LockResponse;
-import org.apache.hadoop.hive.metastore.api.MetaException;
-import org.apache.hadoop.hive.metastore.api.MetadataPpdResult;
-import org.apache.hadoop.hive.metastore.api.NoSuchLockException;
-import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
-import org.apache.hadoop.hive.metastore.api.NoSuchTxnException;
-import org.apache.hadoop.hive.metastore.api.NotNullConstraintsRequest;
-import org.apache.hadoop.hive.metastore.api.NotificationEvent;
-import org.apache.hadoop.hive.metastore.api.NotificationEventResponse;
-import org.apache.hadoop.hive.metastore.api.NotificationEventsCountResponse;
-import org.apache.hadoop.hive.metastore.api.NotificationEventsCountRequest;
-import org.apache.hadoop.hive.metastore.api.OpenTxnsResponse;
-import org.apache.hadoop.hive.metastore.api.Partition;
-import org.apache.hadoop.hive.metastore.api.PartitionEventType;
-import org.apache.hadoop.hive.metastore.api.PartitionValuesRequest;
-import org.apache.hadoop.hive.metastore.api.PartitionValuesResponse;
-import org.apache.hadoop.hive.metastore.api.PrimaryKeysRequest;
-import org.apache.hadoop.hive.metastore.api.PrincipalPrivilegeSet;
-import org.apache.hadoop.hive.metastore.api.PrincipalType;
-import org.apache.hadoop.hive.metastore.api.PrivilegeBag;
-import org.apache.hadoop.hive.metastore.api.WMResourcePlan;
-import org.apache.hadoop.hive.metastore.api.WMTrigger;
-import org.apache.hadoop.hive.metastore.api.Role;
-import org.apache.hadoop.hive.metastore.api.SQLForeignKey;
-import org.apache.hadoop.hive.metastore.api.SQLNotNullConstraint;
-import org.apache.hadoop.hive.metastore.api.SQLPrimaryKey;
-import org.apache.hadoop.hive.metastore.api.SQLUniqueConstraint;
-import org.apache.hadoop.hive.metastore.api.SetPartitionsStatsRequest;
-import org.apache.hadoop.hive.metastore.api.ShowCompactResponse;
-import org.apache.hadoop.hive.metastore.api.ShowLocksRequest;
-import org.apache.hadoop.hive.metastore.api.ShowLocksResponse;
-import org.apache.hadoop.hive.metastore.api.Table;
-import org.apache.hadoop.hive.metastore.api.TableMeta;
-import org.apache.hadoop.hive.metastore.api.TxnAbortedException;
-import org.apache.hadoop.hive.metastore.api.TxnOpenException;
-import org.apache.hadoop.hive.metastore.api.UniqueConstraintsRequest;
-import org.apache.hadoop.hive.metastore.api.UnknownDBException;
-import org.apache.hadoop.hive.metastore.api.UnknownPartitionException;
-import org.apache.hadoop.hive.metastore.api.UnknownTableException;
-import org.apache.hadoop.hive.metastore.api.WMMapping;
-import org.apache.hadoop.hive.metastore.api.WMPool;
-import org.apache.hadoop.hive.metastore.partition.spec.PartitionSpecProxy;
-import org.apache.thrift.TException;
-
-/**
- * Wrapper around hive metastore thrift api
- */
-@Public
-@Evolving
-public interface IMetaStoreClient {
-
- /**
- * Returns whether current client is compatible with conf argument or not
- * @return
- */
- boolean isCompatibleWith(HiveConf conf);
-
- /**
- * Set added jars path info to MetaStoreClient.
- * @param addedJars the hive.added.jars.path. It is qualified paths separated by commas.
- */
- void setHiveAddedJars(String addedJars);
-
- /**
- * Returns true if the current client is using an in process metastore (local metastore).
- *
- * @return
- */
- boolean isLocalMetaStore();
-
- /**
- * Tries to reconnect this MetaStoreClient to the MetaStore.
- */
- void reconnect() throws MetaException;
-
- /**
- * close connection to meta store
- */
- @NoReconnect
- void close();
-
- /**
- * set meta variable which is open to end users
- */
- void setMetaConf(String key, String value) throws MetaException, TException;
-
- /**
- * get current meta variable
- */
- String getMetaConf(String key) throws MetaException, TException;
-
- /**
- * Get the names of all databases in the MetaStore that match the given pattern.
- * @param databasePattern
- * @return List of database names.
- * @throws MetaException
- * @throws TException
- */
- List<String> getDatabases(String databasePattern) throws MetaException, TException;
-
- /**
- * Get the names of all databases in the MetaStore.
- * @return List of database names.
- * @throws MetaException
- * @throws TException
- */
- List<String> getAllDatabases() throws MetaException, TException;
-
- /**
- * Get the names of all tables in the specified database that satisfy the supplied
- * table name pattern.
- * @param dbName
- * @param tablePattern
- * @return List of table names.
- * @throws MetaException
- * @throws TException
- * @throws UnknownDBException
- */
- List<String> getTables(String dbName, String tablePattern)
- throws MetaException, TException, UnknownDBException;
-
- /**
- * Get the names of all tables in the specified database that satisfy the supplied
- * table name pattern and table type (MANAGED_TABLE || EXTERNAL_TABLE || VIRTUAL_VIEW)
- * @param dbName Name of the database to fetch tables in.
- * @param tablePattern pattern to match for table names.
- * @param tableType Type of the table in the HMS store. VIRTUAL_VIEW is for views.
- * @return List of table names.
- * @throws MetaException
- * @throws TException
- * @throws UnknownDBException
- */
- List<String> getTables(String dbName, String tablePattern, TableType tableType)
- throws MetaException, TException, UnknownDBException;
-
- /**
- * For quick GetTablesOperation
- */
- List<TableMeta> getTableMeta(String dbPatterns, String tablePatterns, List<String> tableTypes)
- throws MetaException, TException, UnknownDBException;
-
- /**
- * Get the names of all tables in the specified database.
- * @param dbName
- * @return List of table names.
- * @throws MetaException
- * @throws TException
- * @throws UnknownDBException
- */
- List<String> getAllTables(String dbName) throws MetaException, TException, UnknownDBException;
-
- /**
- * Get a list of table names that match a filter.
- * The filter operators are LIKE, <, <=, >, >=, =, <>
- *
- * In the filter statement, values interpreted as strings must be enclosed in quotes,
- * while values interpreted as integers should not be. Strings and integers are the only
- * supported value types.
- *
- * The currently supported key names in the filter are:
- * Constants.HIVE_FILTER_FIELD_OWNER, which filters on the tables' owner's name
- * and supports all filter operators
- * Constants.HIVE_FILTER_FIELD_LAST_ACCESS, which filters on the last access times
- * and supports all filter operators except LIKE
- * Constants.HIVE_FILTER_FIELD_PARAMS, which filters on the tables' parameter keys and values
- * and only supports the filter operators = and <>.
- * Append the parameter key name to HIVE_FILTER_FIELD_PARAMS in the filter statement.
- * For example, to filter on parameter keys called "retention", the key name in the filter
- * statement should be Constants.HIVE_FILTER_FIELD_PARAMS + "retention"
- * Also, = and <> only work for keys that exist in the tables.
- * E.g., filtering on tables where key1 <> value will only
- * return tables that have a value for the parameter key1.
- * Some example filter statements include:
- * filter = Constants.HIVE_FILTER_FIELD_OWNER + " like \".*test.*\" and " +
- * Constants.HIVE_FILTER_FIELD_LAST_ACCESS + " = 0";
- * filter = Constants.HIVE_FILTER_FIELD_OWNER + " = \"test_user\" and (" +
- * Constants.HIVE_FILTER_FIELD_PARAMS + "retention = \"30\" or " +
- * Constants.HIVE_FILTER_FIELD_PARAMS + "retention = \"90\")"
- *
- * @param dbName
- * The name of the database from which you will retrieve the table names
- * @param filter
- * The filter string
- * @param maxTables
- * The maximum number of tables returned
- * @return A list of table names that match the desired filter
- */
- List<String> listTableNamesByFilter(String dbName, String filter, short maxTables)
- throws MetaException, TException, InvalidOperationException, UnknownDBException;
-
-
- /**
- * Drop the table.
- *
- * @param dbname
- * The database for this table
- * @param tableName
- * The table to drop
- * @param deleteData
- * Should we delete the underlying data
- * @param ignoreUnknownTab
- * don't throw if the requested table doesn't exist
- * @throws MetaException
- * Could not drop table properly.
- * @throws NoSuchObjectException
- * The table wasn't found.
- * @throws TException
- * A thrift communication error occurred
- */
- void dropTable(String dbname, String tableName, boolean deleteData,
- boolean ignoreUnknownTab) throws MetaException, TException,
- NoSuchObjectException;
-
- /**
- * @param ifPurge
- * completely purge the table (skipping trash) while removing data from warehouse
- * @see #dropTable(String, String, boolean, boolean)
- */
- public void dropTable(String dbname, String tableName, boolean deleteData,
- boolean ignoreUnknownTab, boolean ifPurge) throws MetaException, TException,
- NoSuchObjectException;
-
- /**
- * Drop the table in the DEFAULT database.
- *
- * @param tableName
- * The table to drop
- * @param deleteData
- * Should we delete the underlying data
- * @throws MetaException
- * Could not drop table properly.
- * @throws UnknownTableException
- * The table wasn't found.
- * @throws TException
- * A thrift communication error occurred
- * @throws NoSuchObjectException
- * The table wasn't found.
- *
- * @deprecated As of release 0.6.0 replaced by {@link #dropTable(String, String, boolean, boolean)}.
- * This method will be removed in release 0.7.0.
- */
- @Deprecated
- void dropTable(String tableName, boolean deleteData)
- throws MetaException, UnknownTableException, TException, NoSuchObjectException;
-
- /**
- * @see #dropTable(String, String, boolean, boolean)
- */
- void dropTable(String dbname, String tableName)
- throws MetaException, TException, NoSuchObjectException;
-
- /**
- * Truncate the table/partitions in the DEFAULT database.
- * @param dbName
- * The db to which the table to be truncate belongs to
- * @param tableName
- * The table to truncate
- * @param partNames
- * List of partitions to truncate. NULL will truncate the whole table/all partitions
- * @throws MetaException
- * @throws TException
- * Could not truncate table properly.
- */
- void truncateTable(String dbName, String tableName, List<String> partNames) throws MetaException, TException;
-
- /**
- * Recycles the files recursively from the input path to the cmroot directory either by copying or moving it.
- *
- * @param request Inputs for path of the data files to be recycled to cmroot and
- * isPurge flag when set to true files which needs to be recycled are not moved to Trash
- * @return Response which is currently void
- */
- CmRecycleResponse recycleDirToCmPath(CmRecycleRequest request) throws MetaException, TException;
-
- boolean tableExists(String databaseName, String tableName) throws MetaException,
- TException, UnknownDBException;
-
- /**
- * Check to see if the specified table exists in the DEFAULT database.
- * @param tableName
- * @return TRUE if DEFAULT.tableName exists, FALSE otherwise.
- * @throws MetaException
- * @throws TException
- * @throws UnknownDBException
- * @deprecated As of release 0.6.0 replaced by {@link #tableExists(String, String)}.
- * This method will be removed in release 0.7.0.
- */
- @Deprecated
- boolean tableExists(String tableName) throws MetaException,
- TException, UnknownDBException;
-
- /**
- * Get a table object from the DEFAULT database.
- *
- * @param tableName
- * Name of the table to fetch.
- * @return An object representing the table.
- * @throws MetaException
- * Could not fetch the table
- * @throws TException
- * A thrift communication error occurred
- * @throws NoSuchObjectException
- * In case the table wasn't found.
- * @deprecated As of release 0.6.0 replaced by {@link #getTable(String, String)}.
- * This method will be removed in release 0.7.0.
- */
- @Deprecated
- Table getTable(String tableName) throws MetaException, TException, NoSuchObjectException;
-
- /**
- * Get a Database Object
- * @param databaseName name of the database to fetch
- * @return the database
- * @throws NoSuchObjectException The database does not exist
- * @throws MetaException Could not fetch the database
- * @throws TException A thrift communication error occurred
- */
- Database getDatabase(String databaseName)
- throws NoSuchObjectException, MetaException, TException;
-
-
- /**
- * Get a table object.
- *
- * @param dbName
- * The database the table is located in.
- * @param tableName
- * Name of the table to fetch.
- * @return An object representing the table.
- * @throws MetaException
- * Could not fetch the table
- * @throws TException
- * A thrift communication error occurred
- * @throws NoSuchObjectException
- * In case the table wasn't found.
- */
- Table getTable(String dbName, String tableName) throws MetaException,
- TException, NoSuchObjectException;
-
- /**
- *
- * @param dbName
- * The database the tables are located in.
- * @param tableNames
- * The names of the tables to fetch
- * @return A list of objects representing the tables.
- * Only the tables that can be retrieved from the database are returned. For example,
- * if none of the requested tables could be retrieved, an empty list is returned.
- * There is no guarantee of ordering of the returned tables.
- * @throws InvalidOperationException
- * The input to this operation is invalid (e.g., the list of tables names is null)
- * @throws UnknownDBException
- * The requested database could not be fetched.
- * @throws TException
- * A thrift communication error occurred
- * @throws MetaException
- * Any other errors
- */
- List<Table> getTableObjectsByName(String dbName, List<String> tableNames)
- throws MetaException, InvalidOperationException, UnknownDBException, TException;
-
- /**
- * @param tableName
- * @param dbName
- * @param partVals
- * @return the partition object
- * @throws InvalidObjectException
- * @throws AlreadyExistsException
- * @throws MetaException
- * @throws TException
- * @see org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Iface#append_partition(java.lang.String,
- * java.lang.String, java.util.List)
- */
- Partition appendPartition(String tableName, String dbName,
- List<String> partVals) throws InvalidObjectException,
- AlreadyExistsException, MetaException, TException;
-
- Partition appendPartition(String tableName, String dbName, String name)
- throws InvalidObjectException, AlreadyExistsException, MetaException, TException;
-
- /**
- * Add a partition to the table.
- *
- * @param partition
- * The partition to add
- * @return The partition added
- * @throws InvalidObjectException
- * Could not find table to add to
- * @throws AlreadyExistsException
- * Partition already exists
- * @throws MetaException
- * Could not add partition
- * @throws TException
- * Thrift exception
- */
- Partition add_partition(Partition partition)
- throws InvalidObjectException, AlreadyExistsException, MetaException, TException;
-
- /**
- * Add partitions to the table.
- *
- * @param partitions
- * The partitions to add
- * @throws InvalidObjectException
- * Could not find table to add to
- * @throws AlreadyExistsException
- * Partition already exists
- * @throws MetaException
- * Could not add partition
- * @throws TException
- * Thrift exception
- */
- int add_partitions(List<Partition> partitions)
- throws InvalidObjectException, AlreadyExistsException, MetaException, TException;
-
- int add_partitions_pspec(PartitionSpecProxy partitionSpec)
- throws InvalidObjectException, AlreadyExistsException, MetaException, TException;
-
- /**
- * Add partitions to the table.
- *
- * @param partitions The partitions to add
- * @param ifNotExists only add partitions if they don't exist
- * @param needResults Whether the results are needed
- * @return the partitions that were added, or null if !needResults
- */
- List<Partition> add_partitions(
- List<Partition> partitions, boolean ifNotExists, boolean needResults)
- throws InvalidObjectException, AlreadyExistsException, MetaException, TException;
-
- /**
- * @param dbName
- * @param tblName
- * @param partVals
- * @return the partition object
- * @throws MetaException
- * @throws TException
- * @see org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Iface#get_partition(java.lang.String,
- * java.lang.String, java.util.List)
- */
- Partition getPartition(String dbName, String tblName,
- List<String> partVals) throws NoSuchObjectException, MetaException, TException;
-
- /**
- * @param partitionSpecs
- * @param sourceDb
- * @param sourceTable
- * @param destdb
- * @param destTableName
- * @return partition object
- */
- Partition exchange_partition(Map<String, String> partitionSpecs,
- String sourceDb, String sourceTable, String destdb,
- String destTableName) throws MetaException, NoSuchObjectException,
- InvalidObjectException, TException;
-
- /**
- * With the one partitionSpecs to exchange, multiple partitions could be exchanged.
- * e.g., year=2015/month/day, exchanging partition year=2015 results to all the partitions
- * belonging to it exchanged. This function returns the list of affected partitions.
- * @param partitionSpecs
- * @param sourceDb
- * @param sourceTable
- * @param destdb
- * @param destTableName
- * @return the list of the new partitions
- */
- List<Partition> exchange_partitions(Map<String, String> partitionSpecs,
- String sourceDb, String sourceTable, String destdb,
- String destTableName) throws MetaException, NoSuchObjectException,
- InvalidObjectException, TException;
-
- /**
- * @param dbName
- * @param tblName
- * @param name - partition name i.e. 'ds=2010-02-03/ts=2010-02-03 18%3A16%3A01'
- * @return the partition object
- * @throws MetaException
- * @throws TException
- * @see org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Iface#get_partition(java.lang.String,
- * java.lang.String, java.util.List)
- */
- Partition getPartition(String dbName, String tblName,
- String name) throws MetaException, UnknownTableException, NoSuchObjectException, TException;
-
-
- /**
- * @param dbName
- * @param tableName
- * @param pvals
- * @param userName
- * @param groupNames
- * @return the partition
- * @throws MetaException
- * @throws UnknownTableException
- * @throws NoSuchObjectException
- * @throws TException
- */
- Partition getPartitionWithAuthInfo(String dbName, String tableName,
- List<String> pvals, String userName, List<String> groupNames)
- throws MetaException, UnknownTableException, NoSuchObjectException, TException;
-
- /**
- * @param tbl_name
- * @param db_name
- * @param max_parts
- * @return the list of partitions
- * @throws NoSuchObjectException
- * @throws MetaException
- * @throws TException
- */
- List<Partition> listPartitions(String db_name, String tbl_name,
- short max_parts) throws NoSuchObjectException, MetaException, TException;
-
- public PartitionSpecProxy listPartitionSpecs(String dbName, String tableName, int maxParts)
- throws TException;
- List<Partition> listPartitions(String db_name, String tbl_name,
- List<String> part_vals, short max_parts) throws NoSuchObjectException, MetaException, TException;
-
- List<String> listPartitionNames(String db_name, String tbl_name,
- short max_parts) throws NoSuchObjectException, MetaException, TException;
-
- List<String> listPartitionNames(String db_name, String tbl_name,
- List<String> part_vals, short max_parts)
- throws MetaException, TException, NoSuchObjectException;
-
- public PartitionValuesResponse listPartitionValues(PartitionValuesRequest request)
- throws MetaException, TException, NoSuchObjectException;
-
- /**
- * Get number of partitions matching specified filter
- * @param dbName the database name
- * @param tableName the table name
- * @param filter the filter string,
- * for example "part1 = \"p1_abc\" and part2 <= "\p2_test\"". Filtering can
- * be done only on string partition keys.
- * @return number of partitions
- * @throws MetaException
- * @throws NoSuchObjectException
- * @throws TException
- */
- public int getNumPartitionsByFilter(String dbName, String tableName,
- String filter) throws MetaException, NoSuchObjectException, TException;
-
-
- /**
- * Get list of partitions matching specified filter
- * @param db_name the database name
- * @param tbl_name the table name
- * @param filter the filter string,
- * for example "part1 = \"p1_abc\" and part2 <= "\p2_test\"". Filtering can
- * be done only on string partition keys.
- * @param max_parts the maximum number of partitions to return,
- * all partitions are returned if -1 is passed
- * @return list of partitions
- * @throws MetaException
- * @throws NoSuchObjectException
- * @throws TException
- */
- List<Partition> listPartitionsByFilter(String db_name, String tbl_name,
- String filter, short max_parts) throws MetaException,
- NoSuchObjectException, TException;
-
- PartitionSpecProxy listPartitionSpecsByFilter(String db_name, String tbl_name,
- String filter, int max_parts) throws MetaException,
- NoSuchObjectException, TException;
-
- /**
- * Get list of partitions matching specified serialized expression
- * @param db_name the database name
- * @param tbl_name the table name
- * @param expr expression, serialized from ExprNodeDesc
- * @param max_parts the maximum number of partitions to return,
- * all partitions are returned if -1 is passed
- * @param default_partition_name Default partition name from configuration. If blank, the
- * metastore server-side configuration is used.
- * @param result the resulting list of partitions
- * @return whether the resulting list contains partitions which may or may not match the expr
- */
- boolean listPartitionsByExpr(String db_name, String tbl_name,
- byte[] expr, String default_partition_name, short max_parts, List<Partition> result)
- throws TException;
-
- /**
- * @param dbName
- * @param tableName
- * @param s
- * @param userName
- * @param groupNames
- * @return the list of partitions
- * @throws NoSuchObjectException
- */
- List<Partition> listPartitionsWithAuthInfo(String dbName,
- String tableName, short s, String userName, List<String> groupNames)
- throws MetaException, TException, NoSuchObjectException;
-
- /**
- * Get partitions by a list of partition names.
- * @param db_name database name
- * @param tbl_name table name
- * @param part_names list of partition names
- * @return list of Partition objects
- * @throws NoSuchObjectException
- * @throws MetaException
- * @throws TException
- */
- List<Partition> getPartitionsByNames(String db_name, String tbl_name,
- List<String> part_names) throws NoSuchObjectException, MetaException, TException;
-
- /**
- * @param dbName
- * @param tableName
- * @param partialPvals
- * @param s
- * @param userName
- * @param groupNames
- * @return the list of paritions
- * @throws NoSuchObjectException
- */
- List<Partition> listPartitionsWithAuthInfo(String dbName,
- String tableName, List<String> partialPvals, short s, String userName,
- List<String> groupNames) throws MetaException, TException, NoSuchObjectException;
-
- /**
- * @param db_name
- * @param tbl_name
- * @param partKVs
- * @param eventType
- * @throws MetaException
- * @throws NoSuchObjectException
- * @throws TException
- * @throws UnknownTableException
- * @throws UnknownDBException
- * @throws UnknownPartitionException
- * @throws InvalidPartitionException
- */
- void markPartitionForEvent(String db_name, String tbl_name, Map<String,String> partKVs,
- PartitionEventType eventType) throws MetaException, NoSuchObjectException, TException,
- UnknownTableException, UnknownDBException, UnknownPartitionException, InvalidPartitionException;
-
- /**
- * @param db_name
- * @param tbl_name
- * @param partKVs
- * @param eventType
- * @throws MetaException
- * @throws NoSuchObjectException
- * @throws TException
- * @throws UnknownTableException
- * @throws UnknownDBException
- * @throws UnknownPartitionException
- * @throws InvalidPartitionException
- */
- boolean isPartitionMarkedForEvent(String db_name, String tbl_name, Map<String,String> partKVs,
- PartitionEventType eventType) throws MetaException, NoSuchObjectException, TException,
- UnknownTableException, UnknownDBException, UnknownPartitionException, InvalidPartitionException;
-
- /**
- * @param partVals
- * @throws TException
- * @throws MetaException
- */
- void validatePartitionNameCharacters(List<String> partVals) throws TException, MetaException;
-
- /**
- * @param tbl
- * @throws AlreadyExistsException
- * @throws InvalidObjectException
- * @throws MetaException
- * @throws NoSuchObjectException
- * @throws TException
- * @see org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Iface#create_table(org.apache.hadoop.hive.metastore.api.Table)
- */
-
- void createTable(Table tbl) throws AlreadyExistsException,
- InvalidObjectException, MetaException, NoSuchObjectException, TException;
-
- void alter_table(String defaultDatabaseName, String tblName,
- Table table) throws InvalidOperationException, MetaException, TException;
-
- /**
- * Use alter_table_with_environmentContext instead of alter_table with cascade option
- * passed in EnvironmentContext using {@code StatsSetupConst.CASCADE}
- */
- @Deprecated
- void alter_table(String defaultDatabaseName, String tblName, Table table,
- boolean cascade) throws InvalidOperationException, MetaException, TException;
-
- //wrapper of alter_table_with_cascade
- void alter_table_with_environmentContext(String defaultDatabaseName, String tblName, Table table,
- EnvironmentContext environmentContext) throws InvalidOperationException, MetaException,
- TException;
-
- void createDatabase(Database db)
- throws InvalidObjectException, AlreadyExistsException, MetaException, TException;
-
- void dropDatabase(String name)
- throws NoSuchObjectException, InvalidOperationException, MetaException, TException;
-
- void dropDatabase(String name, boolean deleteData, boolean ignoreUnknownDb)
- throws NoSuchObjectException, InvalidOperationException, MetaException, TException;
-
- void dropDatabase(String name, boolean deleteData, boolean ignoreUnknownDb, boolean cascade)
- throws NoSuchObjectException, InvalidOperationException, MetaException, TException;
-
- void alterDatabase(String name, Database db)
- throws NoSuchObjectException, MetaException, TException;
-
- /**
- * @param db_name
- * @param tbl_name
- * @param part_vals
- * @param deleteData
- * delete the underlying data or just delete the table in metadata
- * @return true or false
- * @throws NoSuchObjectException
- * @throws MetaException
- * @throws TException
- * @see org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Iface#drop_partition(java.lang.String,
- * java.lang.String, java.util.List, boolean)
- */
- boolean dropPartition(String db_name, String tbl_name,
- List<String> part_vals, boolean deleteData) throws NoSuchObjectException,
- MetaException, TException;
-
- /**
- * Method to dropPartitions() with the option to purge the partition data directly,
- * rather than to move data to trash.
- * @param db_name Name of the database.
- * @param tbl_name Name of the table.
- * @param part_vals Specification of the partitions being dropped.
- * @param options PartitionDropOptions for the operation.
- * @return True (if partitions are dropped), else false.
- * @throws TException
- */
- boolean dropPartition(String db_name, String tbl_name, List<String> part_vals,
- PartitionDropOptions options) throws TException;
-
- List<Partition> dropPartitions(String dbName, String tblName,
- List<ObjectPair<Integer, byte[]>> partExprs, boolean deleteData,
- boolean ifExists) throws NoSuchObjectException, MetaException, TException;
-
- List<Partition> dropPartitions(String dbName, String tblName,
- List<ObjectPair<Integer, byte[]>> partExprs, boolean deleteData,
- boolean ifExists, boolean needResults) throws NoSuchObjectException, MetaException, TException;
-
- /**
- * Generalization of dropPartitions(),
- * @param dbName Name of the database
- * @param tblName Name of the table
- * @param partExprs Partition-specification
- * @param options Boolean options for dropping partitions
- * @return List of Partitions dropped
- * @throws TException On failure
- */
- List<Partition> dropPartitions(String dbName, String tblName,
- List<ObjectPair<Integer, byte[]>> partExprs, PartitionDropOptions options) throws TException;
-
- boolean dropPartition(String db_name, String tbl_name,
- String name, boolean deleteData) throws NoSuchObjectException,
- MetaException, TException;
-
- /**
- * updates a partition to new partition
- *
- * @param dbName
- * database of the old partition
- * @param tblName
- * table name of the old partition
- * @param newPart
- * new partition
- * @throws InvalidOperationException
- * if the old partition does not exist
- * @throws MetaException
- * if error in updating metadata
- * @throws TException
- * if error in communicating with metastore server
- */
- void alter_partition(String dbName, String tblName, Partition newPart)
- throws InvalidOperationException, MetaException, TException;
-
- /**
- * updates a partition to new partition
- *
- * @param dbName
- * database of the old partition
- * @param tblName
- * table name of the old partition
- * @param newPart
- * new partition
- * @throws InvalidOperationException
- * if the old partition does not exist
- * @throws MetaException
- * if error in updating metadata
- * @throws TException
- * if error in communicating with metastore server
- */
- void alter_partition(String dbName, String tblName, Partition newPart, EnvironmentContext environmentContext)
- throws InvalidOperationException, MetaException, TException;
-
- /**
- * updates a list of partitions
- *
- * @param dbName
- * database of the old partition
- * @param tblName
- * table name of the old partition
- * @param newParts
- * list of partitions
- * @throws InvalidOperationException
- * if the old partition does not exist
- * @throws MetaException
- * if error in updating metadata
- * @throws TException
- * if error in communicating with metastore server
- */
- void alter_partitions(String dbName, String tblName, List<Partition> newParts)
- throws InvalidOperationException, MetaException, TException;
-
- /**
- * updates a list of partitions
- *
- * @param dbName
- * database of the old partition
- * @param tblName
- * table name of the old partition
- * @param newParts
- * list of partitions
- * @param environmentContext
- * @throws InvalidOperationException
- * if the old partition does not exist
- * @throws MetaException
- * if error in updating metadata
- * @throws TException
- * if error in communicating with metastore server
- */
- void alter_partitions(String dbName, String tblName, List<Partition> newParts,
- EnvironmentContext environmentContext)
- throws InvalidOperationException, MetaException, TException;
-
- /**
- * rename a partition to a new partition
- *
- * @param dbname
- * database of the old partition
- * @param name
- * table name of the old partition
- * @param part_vals
- * values of the old partition
- * @param newPart
- * new partition
- * @throws InvalidOperationException
- * if srcFs and destFs are different
- * @throws MetaException
- * if error in updating metadata
- * @throws TException
- * if error in communicating with metastore server
- */
- void renamePartition(final String dbname, final String name, final List<String> part_vals, final Partition newPart)
- throws InvalidOperationException, MetaException, TException;
-
- /**
- * @param db
- * @param tableName
- * @throws UnknownTableException
- * @throws UnknownDBException
- * @throws MetaException
- * @throws TException
- * @see org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Iface#get_fields(java.lang.String,
- * java.lang.String)
- */
- List<FieldSchema> getFields(String db, String tableName)
- throws MetaException, TException, UnknownTableException,
- UnknownDBException;
-
- /**
- * @param db
- * @param tableName
- * @throws UnknownTableException
- * @throws UnknownDBException
- * @throws MetaException
- * @throws TException
- * @see org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Iface#get_schema(java.lang.String,
- * java.lang.String)
- */
- List<FieldSchema> getSchema(String db, String tableName)
- throws MetaException, TException, UnknownTableException,
- UnknownDBException;
-
- /**
- * @param name
- * name of the configuration property to get the value of
- * @param defaultValue
- * the value to return if property with the given name doesn't exist
- * @return value of the specified configuration property
- * @throws TException
- * @throws ConfigValSecurityException
- */
- String getConfigValue(String name, String defaultValue)
- throws TException, ConfigValSecurityException;
-
- /**
- *
- * @param name
- * the partition name e.g. ("ds=2010-03-03/hr=12")
- * @return a list containing the partition col values, in the same order as the name
- * @throws MetaException
- * @throws TException
- */
- List<String> partitionNameToVals(String name)
- throws MetaException, TException;
- /**
- *
- * @param name
- * the partition name e.g. ("ds=2010-03-03/hr=12")
- * @return a map from the partition col to the value, as listed in the name
- * @throws MetaException
- * @throws TException
- */
- Map<String, String> partitionNameToSpec(String name)
- throws MetaException, TException;
-
- /**
- * create an index
- * @param index the index object
- * @throws InvalidObjectException
- * @throws MetaException
- * @throws NoSuchObjectException
- * @throws TException
- * @throws AlreadyExistsException
- */
- void createIndex(Index index, Table indexTable) throws InvalidObjectException,
- MetaException, NoSuchObjectException, TException, AlreadyExistsException;
-
- void alter_index(String dbName, String tblName, String indexName,
- Index index) throws InvalidOperationException, MetaException, TException;
-
- /**
- *
- * @param dbName
- * @param tblName
- * @param indexName
- * @return the index
- * @throws MetaException
- * @throws UnknownTableException
- * @throws NoSuchObjectException
- * @throws TException
- */
- Index getIndex(String dbName, String tblName, String indexName)
- throws MetaException, UnknownTableException, NoSuchObjectException,
- TException;
-
-
- /**
- * list indexes of the give base table
- * @param db_name
- * @param tbl_name
- * @param max
- * @return the list of indexes
- * @throws NoSuchObjectException
- * @throws MetaException
- * @throws TException
- */
- List<Index> listIndexes(String db_name, String tbl_name,
- short max) throws NoSuchObjectException, MetaException, TException;
-
- /**
- * list all the index names of the give base table.
- *
- * @param db_name
- * @param tbl_name
- * @param max
- * @return the list of names
- * @throws MetaException
- * @throws TException
- */
- List<String> listIndexNames(String db_name, String tbl_name,
- short max) throws MetaException, TException;
-
- /**
- * @param db_name
- * @param tbl_name
- * @param name index name
- * @param deleteData
- * @return true on success
- * @throws NoSuchObjectException
- * @throws MetaException
- * @throws TException
- */
- boolean dropIndex(String db_name, String tbl_name,
- String name, boolean deleteData) throws NoSuchObjectException,
- MetaException, TException;
-
- /**
- * Write table level column statistics to persistent store
- * @param statsObj
- * @return boolean indicating the status of the operation
- * @throws NoSuchObjectException
- * @throws InvalidObjectException
- * @throws MetaException
- * @throws TException
- * @throws InvalidInputException
- */
-
- boolean updateTableColumnStatistics(ColumnStatistics statsObj)
- throws NoSuchObjectException, InvalidObjectException, MetaException, TException,
- InvalidInputException;
-
- /**
- * Write partition level column statistics to persistent store
- * @param statsObj
- * @return boolean indicating the status of the operation
- * @throws NoSuchObjectException
- * @throws InvalidObjectException
- * @throws MetaException
- * @throws TException
- * @throws InvalidInputException
- */
-
- boolean updatePartitionColumnStatistics(ColumnStatistics statsObj)
- throws NoSuchObjectException, InvalidObjectException, MetaException, TException,
- InvalidInputException;
-
- /**
- * Get table column statistics given dbName, tableName and multiple colName-s
- * @return ColumnStatistics struct for a given db, table and columns
- */
- List<ColumnStatisticsObj> getTableColumnStatistics(String dbName, String tableName,
- List<String> colNames) throws NoSuchObjectException, MetaException, TException;
-
- /**
- * Get partitions column statistics given dbName, tableName, multiple partitions and colName-s
- * @return ColumnStatistics struct for a given db, table and columns
- */
- Map<String, List<ColumnStatisticsObj>> getPartitionColumnStatistics(String dbName,
- String tableName, List<String> partNames, List<String> colNames)
- throws NoSuchObjectException, MetaException, TException;
-
- /**
- * Delete partition level column statistics given dbName, tableName, partName and colName
- * @param dbName
- * @param tableName
- * @param partName
- * @param colName
- * @return boolean indicating outcome of the operation
- * @throws NoSuchObjectException
- * @throws InvalidObjectException
- * @throws MetaException
- * @throws TException
- * @throws InvalidInputException
- */
-
- boolean deletePartitionColumnStatistics(String dbName, String tableName,
- String partName, String colName) throws NoSuchObjectException, MetaException,
- InvalidObjectException, TException, InvalidInputException;
-
- /**
- * Delete table level column statistics given dbName, tableName and colName
- * @param dbName
- * @param tableName
- * @param colName
- * @return boolean indicating the outcome of the operation
- * @throws NoSuchObjectException
- * @throws MetaException
- * @throws InvalidObjectException
- * @throws TException
- * @throws InvalidInputException
- */
- boolean deleteTableColumnStatistics(String dbName, String tableName, String colName) throws
- NoSuchObjectException, MetaException, InvalidObjectException, TException, InvalidInputException;
-
- /**
- * @param role
- * role object
- * @return true on success
- * @throws MetaException
- * @throws TException
- */
- boolean create_role(Role role)
- throws MetaException, TException;
-
- /**
- * @param role_name
- * role name
- *
- * @return true on success
- * @throws MetaException
- * @throws TException
- */
- boolean drop_role(String role_name) throws MetaException, TException;
-
- /**
- * list all role names
- * @return list of names
- * @throws TException
- * @throws MetaException
- */
- List<String> listRoleNames() throws MetaException, TException;
-
- /**
- *
- * @param role_name
- * @param user_name
- * @param principalType
- * @param grantor
- * @param grantorType
- * @param grantOption
- * @return true on success
- * @throws MetaException
- * @throws TException
- */
- boolean grant_role(String role_name, String user_name,
- PrincipalType principalType, String grantor, PrincipalType grantorType,
- boolean grantOption) throws MetaException, TException;
-
- /**
- * @param role_name
- * role name
- * @param user_name
- * user name
- * @param principalType
- *
- * @return true on success
- * @throws MetaException
- * @throws TException
- */
- boolean revoke_role(String role_name, String user_name,
- PrincipalType principalType, boolean grantOption) throws MetaException, TException;
-
- /**
- *
- * @param principalName
- * @param principalType
- * @return list of roles
- * @throws MetaException
- * @throws TException
- */
- List<Role> list_roles(String principalName, PrincipalType principalType)
- throws MetaException, TException;
-
- /**
- * Return the privileges that the user, group have directly and indirectly through roles
- * on the given hiveObject
- * @param hiveObject
- * @param user_name
- * @param group_names
- * @return the privilege set
- * @throws MetaException
- * @throws TException
- */
- PrincipalPrivilegeSet get_privilege_set(HiveObjectRef hiveObject,
- String user_name, List<String> group_names) throws MetaException,
- TException;
-
- /**
- * Return the privileges that this principal has directly over the object (not through roles).
- * @param principal_name
- * @param principal_type
- * @param hiveObject
- * @return list of privileges
- * @throws MetaException
- * @throws TException
- */
- List<HiveObjectPrivilege> list_privileges(String principal_name,
- PrincipalType principal_type, HiveObjectRef hiveObject)
- throws MetaException, TException;
-
- /**
- * @param privileges
- * @return true on success
- * @throws MetaException
- * @throws TException
- */
- boolean grant_privileges(PrivilegeBag privileges)
- throws MetaException, TException;
-
- /**
- * @param privileges
- * @return true on success
- * @throws MetaException
- * @throws TException
- */
- boolean revoke_privileges(PrivilegeBag privileges, boolean grantOption)
- throws MetaException, TException;
-
- /**
- * This is expected to be a no-op when in local mode,
- * which means that the implementation will return null.
- * @param owner the intended owner for the token
- * @param renewerKerberosPrincipalName
- * @return the string of the token
- * @throws MetaException
- * @throws TException
- */
- String getDelegationToken(String owner, String renewerKerberosPrincipalName)
- throws MetaException, TException;
-
- /**
- * @param tokenStrForm
- * @return the new expiration time
- * @throws MetaException
- * @throws TException
- */
- long renewDelegationToken(String tokenStrForm) throws MetaException, TException;
-
- /**
- * @param tokenStrForm
- * @throws MetaException
- * @throws TException
- */
- void cancelDelegationToken(String tokenStrForm) throws MetaException, TException;
-
- String getTokenStrForm() throws IOException;
-
- boolean addToken(String tokenIdentifier, String delegationToken) throws TException;
-
- boolean removeToken(String tokenIdentifier) throws TException;
-
- String getToken(String tokenIdentifier) throws TException;
-
- List<String> getAllTokenIdentifiers() throws TException;
-
- int addMasterKey(String key) throws MetaException, TException;
-
- void updateMasterKey(Integer seqNo, String key)
- throws NoSuchObjectException, MetaException, TException;
-
- boolean removeMasterKey(Integer keySeq) throws TException;
-
- String[] getMasterKeys() throws TException;
-
- void createFunction(Function func)
- throws InvalidObjectException, MetaException, TException;
-
- void alterFunction(String dbName, String funcName, Function newFunction)
- throws InvalidObjectException, MetaException, TException;
-
- void dropFunction(String dbName, String funcName) throws MetaException,
- NoSuchObjectException, InvalidObjectException, InvalidInputException, TException;
-
- Function getFunction(String dbName, String funcName)
- throws MetaException, TException;
-
- List<String> getFunctions(String dbName, String pattern)
- throws MetaException, TException;
-
- GetAllFunctionsResponse getAllFunctions()
- throws MetaException, TException;
-
- /**
- * Get a structure that details valid transactions.
- * @return list of valid transactions
- * @throws TException
- */
- ValidTxnList getValidTxns() throws TException;
-
- /**
- * Get a structure that details valid transactions.
- * @param currentTxn The current transaction of the caller. This will be removed from the
- * exceptions list so that the caller sees records from his own transaction.
- * @return list of valid transactions
- * @throws TException
- */
- ValidTxnList getValidTxns(long currentTxn) throws TException;
-
- /**
- * Initiate a transaction.
- * @param user User who is opening this transaction. This is the Hive user,
- * not necessarily the OS user. It is assumed that this user has already been
- * authenticated and authorized at this point.
- * @return transaction identifier
- * @throws TException
- */
- long openTxn(String user) throws TException;
-
- /**
- * Initiate a batch of transactions. It is not guaranteed that the
- * requested number of transactions will be instantiated. The system has a
- * maximum number instantiated per request, controlled by hive.txn.max
- * .batch.open in hive-site.xml. If the user requests more than this
- * value, only the configured max will be returned.
- *
- * <p>Increasing the number of transactions requested in the batch will
- * allow applications that stream data into Hive to place more commits in a
- * single file, thus reducing load on the namenode and making reads of the
- * data more efficient. However, opening more transactions in a batch will
- * also result in readers needing to keep a larger list of open
- * transactions to ignore, potentially slowing their reads. Users will
- * need to test in their system to understand the optimal number of
- * transactions to request in a batch.
- * </p>
- * @param user User who is opening this transaction. This is the Hive user,
- * not necessarily the OS user. It is assumed that this user has already been
- * authenticated and authorized at this point.
- * @param numTxns number of requested transactions to open
- * @return list of opened txn ids. As noted above, this may be less than
- * requested, so the user should check how many were returned rather than
- * optimistically assuming that the result matches the request.
- * @throws TException
- */
- OpenTxnsResponse openTxns(String user, int numTxns) throws TException;
-
- /**
- * Rollback a transaction. This will also unlock any locks associated with
- * this transaction.
- * @param txnid id of transaction to be rolled back.
- * @throws NoSuchTxnException if the requested transaction does not exist.
- * Note that this can result from the transaction having timed out and been
- * deleted.
- * @throws TException
- */
- void rollbackTxn(long txnid) throws NoSuchTxnException, TException;
-
- /**
- * Commit a transaction. This will also unlock any locks associated with
- * this transaction.
- * @param txnid id of transaction to be committed.
- * @throws NoSuchTxnException if the requested transaction does not exist.
- * This can result fro the transaction having timed out and been deleted by
- * the compactor.
- * @throws TxnAbortedException if the requested transaction has been
- * aborted. This can result from the transaction timing out.
- * @throws TException
- */
- void commitTxn(long txnid)
- throws NoSuchTxnException, TxnAbortedException, TException;
-
- /**
- * Abort a list of transactions. This is for use by "ABORT TRANSACTIONS" in the grammar.
- * @throws TException
- */
- void abortTxns(List<Long> txnids) throws TException;
-
- /**
- * Show the list of currently open transactions. This is for use by "show transactions" in the
- * grammar, not for applications that want to find a list of current transactions to work with.
- * Those wishing the latter should call {@link #getValidTxns()}.
- * @return List of currently opened transactions, included aborted ones.
- * @throws TException
- */
- GetOpenTxnsInfoResponse showTxns() throws TException;
-
- /**
- * Request a set of locks. All locks needed for a particular query, DML,
- * or DDL operation should be batched together and requested in one lock
- * call. This avoids deadlocks. It also avoids blocking other users who
- * only require some of the locks required by this user.
- *
- * <p>If the operation requires a transaction (INSERT, UPDATE,
- * or DELETE) that transaction id must be provided as part this lock
- * request. All locks associated with a transaction will be released when
- * that transaction is committed or rolled back.</p>
- * *
- * <p>Once a lock is acquired, {@link #heartbeat(long, long)} must be called
- * on a regular basis to avoid the lock being timed out by the system.</p>
- * @param request The lock request. {@link LockRequestBuilder} can be used
- * construct this request.
- * @return a lock response, which will provide two things,
- * the id of the lock (to be used in all further calls regarding this lock)
- * as well as a state of the lock. If the state is ACQUIRED then the user
- * can proceed. If it is WAITING the user should wait and call
- * {@link #checkLock(long)} before proceeding. All components of the lock
- * will have the same state.
- * @throws NoSuchTxnException if the requested transaction does not exist.
- * This can result fro the transaction having timed out and been deleted by
- * the compactor.
- * @throws TxnAbortedException if the requested transaction has been
- * aborted. This can result from the transaction timing out.
- * @throws TException
- */
- @RetrySemantics.CannotRetry
- LockResponse lock(LockRequest request)
- throws NoSuchTxnException, TxnAbortedException, TException;
-
- /**
- * Check the status of a set of locks requested via a
- * {@link #lock(org.apache.hadoop.hive.metastore.api.LockRequest)} call.
- * Once a lock is acquired, {@link #heartbeat(long, long)} must be called
- * on a regular basis to avoid the lock being timed out by the system.
- * @param lockid lock id returned by lock().
- * @return a lock response, which will provide two things,
- * the id of the lock (to be used in all further calls regarding this lock)
- * as well as a state of the lock. If the state is ACQUIRED then the user
- * can proceed. If it is WAITING the user should wait and call
- * this method again before proceeding. All components of the lock
- * will have the same state.
- * @throws NoSuchTxnException if the requested transaction does not exist.
- * This can result fro the transaction having timed out and been deleted by
- * the compactor.
- * @throws TxnAbortedException if the requested transaction has been
- * aborted. This can result from the transaction timing out.
- * @throws NoSuchLockException if the requested lockid does not exist.
- * This can result from the lock timing out and being unlocked by the system.
- * @throws TException
- */
- LockResponse checkLock(long lockid)
- throws NoSuchTxnException, TxnAbortedException, NoSuchLockException,
- TException;
-
- /**
- * Unlock a set of locks. This can only be called when the locks are not
- * assocaited with a transaction.
- * @param lockid lock id returned by
- * {@link #lock(org.apache.hadoop.hive.metastore.api.LockRequest)}
- * @throws NoSuchLockException if the requested lockid does not exist.
- * This can result from the lock timing out and being unlocked by the system.
- * @throws TxnOpenException if the locks are are associated with a
- * transaction.
- * @throws TException
- */
- void unlock(long lockid)
- throws NoSuchLockException, TxnOpenException, TException;
-
- /**
- * Show all currently held and waiting locks.
- * @return List of currently held and waiting locks.
- * @throws TException
- */
- @Deprecated
- ShowLocksResponse showLocks() throws TException;
-
- /**
- * Show all currently held and waiting locks.
- * @param showLocksRequest SHOW LOCK request
- * @return List of currently held and waiting locks.
- * @throws TException
- */
- ShowLocksResponse showLocks(ShowLocksRequest showLocksRequest) throws TException;
-
- /**
- * Send a heartbeat to indicate that the client holding these locks (if
- * any) and that opened this transaction (if one exists) is still alive.
- * The default timeout for transactions and locks is 300 seconds,
- * though it is configurable. To determine how often to heartbeat you will
- * need to ask your system administrator how the metastore thrift service
- * has been configured.
- * @param txnid the id of the open transaction. If no transaction is open
- * (it is a DDL or query) then this can be set to 0.
- * @param lockid the id of the locks obtained. If no locks have been
- * obtained then this can be set to 0.
- * @throws NoSuchTxnException if the requested transaction does not exist.
- * This can result fro the transaction having timed out and been deleted by
- * the compactor.
- * @throws TxnAbortedException if the requested transaction has been
- * aborted. This can result from the transaction timing out.
- * @throws NoSuchLockException if the requested lockid does not exist.
- * This can result from the lock timing out and being unlocked by the system.
- * @throws TException
- */
- void heartbeat(long txnid, long lockid)
- throws NoSuchLockException, NoSuchTxnException, TxnAbortedException,
- TException;
-
- /**
- * Send heartbeats for a range of transactions. This is for the streaming ingest client that
- * will have many transactions open at once. Everyone else should use
- * {@link #heartbeat(long, long)}.
- * @param min minimum transaction id to heartbeat, inclusive
- * @param max maximum transaction id to heartbeat, inclusive
- * @return a pair of lists that tell which transactions in the list did not exist (they may
- * have already been closed) and which were aborted.
- * @throws TException
- */
- HeartbeatTxnRangeResponse heartbeatTxnRange(long min, long max) throws TException;
-
- /**
- * Send a request to compact a table or partition. This will not block until the compaction is
- * complete. It will instead put a request on the queue for that table or partition to be
- * compacted. No checking is done on the dbname, tableName, or partitionName to make sure they
- * refer to valid objects. It is assumed this has already been done by the caller.
- * @param dbname Name of the database the table is in. If null, this will be assumed to be
- * 'default'.
- * @param tableName Name of the table to be compacted. This cannot be null. If partitionName
- * is null, this must be a non-partitioned table.
- * @param partitionName Name of the partition to be compacted
- * @param type Whether this is a major or minor compaction.
- * @throws TException
- */
- @Deprecated
- void compact(String dbname, String tableName, String partitionName, CompactionType type)
- throws TException;
- @Deprecated
- void compact(String dbname, String tableName, String partitionName, CompactionType type,
- Map<String, String> tblproperties) throws TException;
- /**
- * Send a request to compact a table or partition. This will not block until the compaction is
- * complete. It will instead put a request on the queue for that table or partition to be
- * compacted. No checking is done on the dbname, tableName, or partitionName to make sure they
- * refer to valid objects. It is assumed this has already been done by the caller. At most one
- * Compaction can be scheduled/running for any given resource at a time.
- * @param dbname Name of the database the table is in. If null, this will be assumed to be
- * 'default'.
- * @param tableName Name of the table to be compacted. This cannot be null. If partitionName
- * is null, this must be a non-partitioned table.
- * @param partitionName Name of the partition to be compacted
- * @param type Whether this is a major or minor compaction.
- * @param tblproperties the list of tblproperties to override for this compact. Can be null.
- * @return id of newly scheduled compaction or id/state of one which is already scheduled/running
- * @throws TException
- */
- CompactionResponse compact2(String dbname, String tableName, String partitionName, CompactionType type,
- Map<String, String> tblproperties) throws TException;
-
- /**
- * Get a list of all compactions.
- * @return List of all current compactions. This includes compactions waiting to happen,
- * in progress, and finished but waiting to clean the existing files.
- * @throws TException
- */
- ShowCompactResponse showCompactions() throws TException;
-
- /**
- * @deprecated in Hive 1.3.0/2.1.0 - will be removed in 2 releases
- */
- @Deprecated
- void addDynamicPartitions(long txnId, String dbName, String tableName, List<String> partNames)
- throws TException;
- /**
- * Send a list of partitions to the metastore to indicate which partitions were loaded
- * dynamically.
- * @param txnId id of the transaction
- * @param dbName database name
- * @param tableName table name
- * @param partNames partition name, as constructed by Warehouse.makePartName
- * @throws TException
- */
- void addDynamicPartitions(long txnId, String dbName, String tableName, List<String> partNames,
- DataOperationType operationType)
- throws TException;
-
- /**
- * Performs the commit/rollback to the metadata storage for insert operator from external storage handler.
- * @param table table name
- * @param overwrite true if the insert is overwrite
- *
- * @throws MetaException
- */
- void insertTable(Table table, boolean overwrite) throws MetaException;
-
- /**
- * A filter provided by the client that determines if a given notification event should be
- * returned.
- */
- @InterfaceAudience.LimitedPrivate({"HCatalog"})
- interface NotificationFilter {
- /**
- * Whether a notification event should be accepted
- * @param event
- * @return if true, event will be added to list, if false it will be ignored
- */
- boolean accept(NotificationEvent event);
- }
-
- /**
- * Get the next set of notifications from the database.
- * @param lastEventId The last event id that was consumed by this reader. The returned
- * notifications will start at the next eventId available after this eventId.
- * @param maxEvents Maximum number of events to return. If < 1, then all available events will
- * be returned.
- * @param filter User provided filter to remove unwanted events. If null, all events will be
- * returned.
- * @return list of notifications, sorted by eventId. It is guaranteed that the events are in
- * the order that the operations were done on the database.
- * @throws TException
- */
- @InterfaceAudience.LimitedPrivate({"HCatalog"})
- NotificationEventResponse getNextNotification(long lastEventId, int maxEvents,
- NotificationFilter filter) throws TException;
-
- /**
- * Get the last used notification event id.
- * @return last used id
- * @throws TException
- */
- @InterfaceAudience.LimitedPrivate({"HCatalog"})
- CurrentNotificationEventId getCurrentNotificationEventId() throws TException;
-
- /**
- * Get the number of events from given eventID for the input database.
- * @return number of events
- * @throws TException
- */
- @InterfaceAudience.LimitedPrivate({"HCatalog"})
- NotificationEventsCountResponse getNotificationEventsCount(NotificationEventsCountRequest rqst)
- throws TException;
-
- /**
- * Request that the metastore fire an event. Currently this is only supported for DML
- * operations, since the metastore knows when DDL operations happen.
- * @param request
- * @return response, type depends on type of request
- * @throws TException
- */
-
- @InterfaceAudience.LimitedPrivate({"Apache Hive, HCatalog"})
- FireEventResponse fireListenerEvent(FireEventRequest request) throws TException;
-
- class IncompatibleMetastoreException extends MetaException {
- IncompatibleMetastoreException(String message) {
- super(message);
- }
- }
-
- /**
- * get all role-grants for users/roles that have been granted the given role
- * Note that in the returned list of RolePrincipalGrants, the roleName is
- * redundant as it would match the role_name argument of this function
- * @param getPrincRoleReq
- * @return
- * @throws MetaException
- * @throws TException
- */
- GetPrincipalsInRoleResponse get_principals_in_role(GetPrincipalsInRoleRequest getPrincRoleReq)
- throws MetaException, TException;
-
- /**
- * get all role-grants for roles that have been granted to given principal
- * Note that in the returned list of RolePrincipalGrants, the principal information
- * redundant as it would match the principal information in request
- * @param getRolePrincReq
- * @return
- * @throws MetaException
- * @throws TException
- */
- GetRoleGrantsForPrincipalResponse get_role_grants_for_principal(
- GetRoleGrantsForPrincipalRequest getRolePrincReq) throws MetaException, TException;
-
- public AggrStats getAggrColStatsFor(String dbName, String tblName,
- List<String> colNames, List<String> partName) throws NoSuchObjectException, MetaException, TException;
-
- boolean setPartitionColumnStatistics(SetPartitionsStatsRequest request) throws NoSuchObjectException, InvalidObjectException, MetaException, TException, InvalidInputException;
-
- /**
- * Flush any catalog objects held by the metastore implementation. Note that this does not
- * flush statistics objects. This should be called at the beginning of each query.
- */
- void flushCache();
-
- /**
- * Gets file metadata, as cached by metastore, for respective file IDs.
- * The metadata that is not cached in metastore may be missing.
- */
- Iterable<Entry<Long, ByteBuffer>> getFileMetadata(List<Long> fileIds) throws TException;
-
- Iterable<Entry<Long, MetadataPpdResult>> getFileMetadataBySarg(
- List<Long> fileIds, ByteBuffer sarg, boolean doGetFooters) throws TException;
-
- /**
- * Cleares the file metadata cache for respective file IDs.
- */
- void clearFileMetadata(List<Long> fileIds) throws TException;
-
- /**
- * Adds file metadata for respective file IDs to metadata cache in metastore.
- */
- void putFileMetadata(List<Long> fileIds, List<ByteBuffer> metadata) throws TException;
-
- boolean isSameConfObj(HiveConf c);
-
- boolean cacheFileMetadata(String dbName, String tableName, String partName,
- boolean allParts) throws TException;
-
- List<SQLPrimaryKey> getPrimaryKeys(PrimaryKeysRequest request)
- throws MetaException, NoSuchObjectException, TException;
-
- List<SQLForeignKey> getForeignKeys(ForeignKeysRequest request) throws MetaException,
- NoSuchObjectException, TException;
-
- List<SQLUniqueConstraint> getUniqueConstraints(UniqueConstraintsRequest request) throws MetaException,
- NoSuchObjectException, TException;
-
- List<SQLNotNullConstraint> getNotNullConstraints(NotNullConstraintsRequest request) throws MetaException,
- NoSuchObjectException, TException;
-
- void createTableWithConstraints(
- org.apache.hadoop.hive.metastore.api.Table tTbl,
- List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys,
- List<SQLUniqueConstraint> uniqueConstraints,
- List<SQLNotNullConstraint> notNullConstraints)
- throws AlreadyExistsException, InvalidObjectException, MetaException, NoSuchObjectException, TException;
-
- void dropConstraint(String dbName, String tableName, String constraintName) throws
- MetaException, NoSuchObjectException, TException;
-
- void addPrimaryKey(List<SQLPrimaryKey> primaryKeyCols) throws
- MetaException, NoSuchObjectException, TException;
-
- void addForeignKey(List<SQLForeignKey> foreignKeyCols) throws
- MetaException, NoSuchObjectException, TException;
-
- void addUniqueConstraint(List<SQLUniqueConstraint> uniqueConstraintCols) throws
- MetaException, NoSuchObjectException, TException;
-
- void addNotNullConstraint(List<SQLNotNullConstraint> notNullConstraintCols) throws
- MetaException, NoSuchObjectException, TException;
-
- /**
- * Gets the unique id of the backing database instance used for storing metadata
- * @return unique id of the backing database instance
- * @throws MetaException if HMS is not able to fetch the UUID or if there are multiple UUIDs found in the database
- * @throws TException in case of Thrift errors
- */
- String getMetastoreDbUuid() throws MetaException, TException;
-
- void createResourcePlan(WMResourcePlan resourcePlan)
- throws InvalidObjectException, MetaException, TException;
-
- WMResourcePlan getResourcePlan(String resourcePlanName)
- throws NoSuchObjectException, MetaException, TException;
-
- List<WMResourcePlan> getAllResourcePlans()
- throws NoSuchObjectException, MetaException, TException;
-
- void dropResourcePlan(String resourcePlanName)
- throws NoSuchObjectException, MetaException, TException;
-
- WMFullResourcePlan alterResourcePlan(String resourcePlanName, WMResourcePlan resourcePlan,
- boolean canActivateDisabled)
- throws NoSuchObjectException, InvalidObjectException, MetaException, TException;
-
- WMFullResourcePlan getActiveResourcePlan() throws MetaException, TException;
-
- List<String> validateResourcePlan(String resourcePlanName)
- throws NoSuchObjectException, InvalidObjectException, MetaException, TException;
-
- void createWMTrigger(WMTrigger trigger)
- throws InvalidObjectException, MetaException, TException;
-
- void alterWMTrigger(WMTrigger trigger)
- throws NoSuchObjectException, InvalidObjectException, MetaException, TException;
-
- void dropWMTrigger(String resourcePlanName, String triggerName)
- throws NoSuchObjectException, MetaException, TException;
-
- List<WMTrigger> getTriggersForResourcePlan(String resourcePlan)
- throws NoSuchObjectException, MetaException, TException;
-
- void createWMPool(WMPool pool)
- throws NoSuchObjectException, InvalidObjectException, MetaException, TException;
-
- void alterWMPool(WMPool pool, String poolPath)
- throws NoSuchObjectException, InvalidObjectException, MetaException, TException;
-
- void dropWMPool(String resourcePlanName, String poolPath)
- throws NoSuchObjectException, MetaException, TException;
-
- void createOrUpdateWMMapping(WMMapping mapping, boolean isUpdate)
- throws NoSuchObjectException, InvalidObjectException, MetaException, TException;
-
- void dropWMMapping(WMMapping mapping)
- throws NoSuchObjectException, MetaException, TException;
-
- void createOrDropTriggerToPoolMapping(String resourcePlanName, String triggerName,
- String poolPath, boolean shouldDrop) throws AlreadyExistsException, NoSuchObjectException,
- InvalidObjectException, MetaException, TException;
-}