You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by kg...@apache.org on 2018/03/07 08:19:22 UTC
[05/22] hive git commit: HIVE-18715: Remove index support from
metastore (Zoltan Haindrich reviewed by Ashutosh Chauhan)
http://git-wip-us.apache.org/repos/asf/hive/blob/7c22d74c/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestMetaStoreEventListenerWithOldConf.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestMetaStoreEventListenerWithOldConf.java b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestMetaStoreEventListenerWithOldConf.java
index a9d9e78..508b2c6 100644
--- a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestMetaStoreEventListenerWithOldConf.java
+++ b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestMetaStoreEventListenerWithOldConf.java
@@ -18,69 +18,19 @@
package org.apache.hadoop.hive.metastore;
-import com.google.common.collect.Lists;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotSame;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.metastore.annotation.MetastoreUnitTest;
-import org.apache.hadoop.hive.metastore.api.Database;
-import org.apache.hadoop.hive.metastore.api.FieldSchema;
-import org.apache.hadoop.hive.metastore.api.Index;
-import org.apache.hadoop.hive.metastore.api.Partition;
-import org.apache.hadoop.hive.metastore.api.PartitionEventType;
-import org.apache.hadoop.hive.metastore.api.Table;
-import org.apache.hadoop.hive.metastore.client.builder.DatabaseBuilder;
-import org.apache.hadoop.hive.metastore.client.builder.IndexBuilder;
-import org.apache.hadoop.hive.metastore.client.builder.PartitionBuilder;
-import org.apache.hadoop.hive.metastore.client.builder.TableBuilder;
import org.apache.hadoop.hive.metastore.conf.MetastoreConf;
import org.apache.hadoop.hive.metastore.conf.MetastoreConf.ConfVars;
-import org.apache.hadoop.hive.metastore.events.AddIndexEvent;
-import org.apache.hadoop.hive.metastore.events.AddPartitionEvent;
-import org.apache.hadoop.hive.metastore.events.AlterIndexEvent;
-import org.apache.hadoop.hive.metastore.events.AlterPartitionEvent;
-import org.apache.hadoop.hive.metastore.events.AlterTableEvent;
import org.apache.hadoop.hive.metastore.events.ConfigChangeEvent;
-import org.apache.hadoop.hive.metastore.events.CreateDatabaseEvent;
-import org.apache.hadoop.hive.metastore.events.CreateTableEvent;
-import org.apache.hadoop.hive.metastore.events.DropDatabaseEvent;
-import org.apache.hadoop.hive.metastore.events.DropIndexEvent;
-import org.apache.hadoop.hive.metastore.events.DropPartitionEvent;
-import org.apache.hadoop.hive.metastore.events.DropTableEvent;
-import org.apache.hadoop.hive.metastore.events.ListenerEvent;
-import org.apache.hadoop.hive.metastore.events.LoadPartitionDoneEvent;
-import org.apache.hadoop.hive.metastore.events.PreAddIndexEvent;
-import org.apache.hadoop.hive.metastore.events.PreAddPartitionEvent;
-import org.apache.hadoop.hive.metastore.events.PreAlterIndexEvent;
-import org.apache.hadoop.hive.metastore.events.PreAlterPartitionEvent;
-import org.apache.hadoop.hive.metastore.events.PreAlterTableEvent;
-import org.apache.hadoop.hive.metastore.events.PreCreateDatabaseEvent;
-import org.apache.hadoop.hive.metastore.events.PreCreateTableEvent;
-import org.apache.hadoop.hive.metastore.events.PreDropDatabaseEvent;
-import org.apache.hadoop.hive.metastore.events.PreDropIndexEvent;
-import org.apache.hadoop.hive.metastore.events.PreDropPartitionEvent;
-import org.apache.hadoop.hive.metastore.events.PreDropTableEvent;
-import org.apache.hadoop.hive.metastore.events.PreEventContext;
-import org.apache.hadoop.hive.metastore.events.PreLoadPartitionDoneEvent;
import org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge;
-import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
/**
* Mostly same tests as TestMetaStoreEventListener, but using old hive conf values instead of new
* metastore conf values.
http://git-wip-us.apache.org/repos/asf/hive/blob/7c22d74c/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java
index f9bd495..b7f7be92 100644
--- a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java
+++ b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java
@@ -29,7 +29,6 @@ import org.apache.hadoop.hive.metastore.api.Database;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.FileMetadataExprType;
import org.apache.hadoop.hive.metastore.api.Function;
-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.MetaException;
@@ -398,12 +397,6 @@ public class TestObjectStore {
for (String db : dbs) {
List<String> tbls = store.getAllTables(db);
for (String tbl : tbls) {
- List<Index> indexes = store.getIndexes(db, tbl, 100);
- for (Index index : indexes) {
- store.dropIndex(db, tbl, index.getIndexName());
- }
- }
- for (String tbl : tbls) {
Deadline.startTimer("getPartition");
List<Partition> parts = store.getPartitions(db, tbl, 100);
for (Partition part : parts) {
http://git-wip-us.apache.org/repos/asf/hive/blob/7c22d74c/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestAddAlterDropIndexes.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestAddAlterDropIndexes.java b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestAddAlterDropIndexes.java
deleted file mode 100644
index 2b8f297..0000000
--- a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestAddAlterDropIndexes.java
+++ /dev/null
@@ -1,845 +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.client;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.metastore.IMetaStoreClient;
-import org.apache.hadoop.hive.metastore.TableType;
-import org.apache.hadoop.hive.metastore.annotation.MetastoreCheckinTest;
-import org.apache.hadoop.hive.metastore.api.AlreadyExistsException;
-import org.apache.hadoop.hive.metastore.api.Database;
-import org.apache.hadoop.hive.metastore.api.FieldSchema;
-import org.apache.hadoop.hive.metastore.api.Index;
-import org.apache.hadoop.hive.metastore.api.InvalidObjectException;
-import org.apache.hadoop.hive.metastore.api.InvalidOperationException;
-import org.apache.hadoop.hive.metastore.api.MetaException;
-import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
-import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
-import org.apache.hadoop.hive.metastore.api.Table;
-import org.apache.hadoop.hive.metastore.api.UnknownTableException;
-import org.apache.hadoop.hive.metastore.client.builder.DatabaseBuilder;
-import org.apache.hadoop.hive.metastore.client.builder.IndexBuilder;
-import org.apache.hadoop.hive.metastore.client.builder.TableBuilder;
-import org.apache.hadoop.hive.metastore.minihms.AbstractMetaStoreService;
-import org.apache.thrift.TException;
-import org.apache.thrift.transport.TTransportException;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-/**
- * Tests for creating, altering and dropping indexes.
- */
-@RunWith(Parameterized.class)
-@Category(MetastoreCheckinTest.class)
-public class TestAddAlterDropIndexes extends MetaStoreClientTest {
- private AbstractMetaStoreService metaStore;
- private IMetaStoreClient client;
-
- private static final String DB_NAME = "testindexdb";
- private static final String TABLE_NAME = "testindextable";
- private static final String INDEX_NAME = "testcreateindex";
- private static final String INDEX_TABLE_NAME = TABLE_NAME + "__" + INDEX_NAME + "__";
- private static final short MAX = -1;
-
- public TestAddAlterDropIndexes(String name, AbstractMetaStoreService metaStore) {
- this.metaStore = metaStore;
- }
-
- @Before
- public void setUp() throws Exception {
- // Get new client
- client = metaStore.getClient();
-
- // Clean up the database
- client.dropDatabase(DB_NAME, true, true, true);
- metaStore.cleanWarehouseDirs();
- createDB(DB_NAME);
- }
-
- @After
- public void tearDown() throws Exception {
- try {
- if (client != null) {
- client.close();
- }
- } finally {
- client = null;
- }
- }
-
- @Test
- public void testCreateGetAndDropIndex() throws Exception {
-
- String indexHandlerName = "TestIndexHandlerClass";
- String inputFormatName = "TestInputFormat";
- String outputFormatName = "TestOutputFormat";
- String indexParamKey = "indexParamKey";
- String indexParamValue = "indexParamValue";
- String sdParamKey = "indexSdParamKey";
- String sdParamValue = "indexSdParamValue";
- int createTime = (int) (System.currentTimeMillis() / 1000);
- Map<String, String> params = new HashMap<String, String>();
- params.put(indexParamKey, indexParamValue);
-
- createTable(DB_NAME, TABLE_NAME);
-
- Index index = new IndexBuilder()
- .setDbName(DB_NAME)
- .setTableName(TABLE_NAME)
- .setIndexName(INDEX_NAME)
- .setIndexTableName(INDEX_TABLE_NAME)
- .setCreateTime(createTime)
- .setLastAccessTime(createTime)
- .addCol("id", "int", "test col id")
- .addCol("value", "string", "test col value")
- .setDeferredRebuild(false)
- .setIndexParams(params)
- .setHandlerClass(indexHandlerName)
- .setInputFormat(inputFormatName)
- .setOutputFormat(outputFormatName)
- .setSerdeName(INDEX_TABLE_NAME)
- .addStorageDescriptorParam(sdParamKey, sdParamValue)
- .build();
- client.createIndex(index, buildIndexTable(DB_NAME, INDEX_TABLE_NAME));
-
- Index resultIndex = client.getIndex(DB_NAME, TABLE_NAME, INDEX_NAME);
- Assert.assertNotNull(resultIndex);
- Assert.assertEquals(DB_NAME, resultIndex.getDbName());
- Assert.assertEquals(TABLE_NAME, resultIndex.getOrigTableName());
- Assert.assertEquals(INDEX_NAME, resultIndex.getIndexName());
- Assert.assertEquals(INDEX_TABLE_NAME, resultIndex.getIndexTableName());
- Assert.assertEquals(createTime, resultIndex.getLastAccessTime());
- Assert.assertNotNull(resultIndex.getParameters());
- Assert.assertEquals(indexParamValue, resultIndex.getParameters().get(indexParamKey));
- Assert.assertEquals(indexHandlerName, resultIndex.getIndexHandlerClass());
- StorageDescriptor sd = resultIndex.getSd();
- Assert.assertNotNull(sd);
- Map<String, FieldSchema> cols = new HashMap<>();
- for (FieldSchema col : sd.getCols()) {
- cols.put(col.getName(), col);
- }
- Assert.assertEquals(2, cols.size());
- Assert.assertNotNull(cols.get("id"));
- Assert.assertNotNull(cols.get("value"));
- Assert.assertEquals("int", cols.get("id").getType());
- Assert.assertEquals("string", cols.get("value").getType());
- Assert.assertEquals(inputFormatName, sd.getInputFormat());
- Assert.assertEquals(outputFormatName, sd.getOutputFormat());
- Assert.assertEquals(INDEX_TABLE_NAME, sd.getSerdeInfo().getName());
- Assert.assertNotNull(sd.getParameters());
- Assert.assertEquals(sdParamValue, sd.getParameters().get(sdParamKey));
-
- Table indexTable = client.getTable(DB_NAME, INDEX_TABLE_NAME);
- Assert.assertNotNull(indexTable);
- Assert.assertTrue(metaStore.isPathExists(new Path(indexTable.getSd().getLocation())));
-
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- List<String> indexNames = client.listIndexNames(DB_NAME, TABLE_NAME, MAX);
- Assert.assertNotNull(indexNames);
- Assert.assertEquals(0, indexNames.size());
- List<String> tableNames = client.listTableNamesByFilter(DB_NAME, "", MAX);
- Assert.assertNotNull(tableNames);
- Assert.assertFalse(tableNames.contains(INDEX_TABLE_NAME));
- Assert.assertFalse(metaStore.isPathExists(new Path(indexTable.getSd().getLocation())));
- }
-
- // Create index tests
-
- @Test
- public void testCreateIndexesSameNameDifferentOrigAndIndexTables() throws Exception {
-
- String origTableName1 = TABLE_NAME + "1";
- String origTableName2 = TABLE_NAME + "2";
- String indexNameTableName1 = origTableName1 + "__" + INDEX_NAME;
- String indexNameTableName2 = origTableName2 + "__" + INDEX_NAME;
- Table origTable1 = createTable(DB_NAME, origTableName1);
- Table origTable2 = createTable(DB_NAME, origTableName2);
-
- createIndex(DB_NAME, origTable1, INDEX_NAME, buildIndexTable(DB_NAME, indexNameTableName1));
- createIndex(DB_NAME, origTable2, INDEX_NAME, buildIndexTable(DB_NAME, indexNameTableName2));
-
- verifyIndex(DB_NAME, origTableName1, INDEX_NAME, indexNameTableName1);
- verifyIndex(DB_NAME, origTableName2, INDEX_NAME, indexNameTableName2);
-
- client.dropIndex(DB_NAME, origTableName1, INDEX_NAME, true);
- client.dropIndex(DB_NAME, origTableName2, INDEX_NAME, true);
- }
-
- @Test
- public void testCreateIndexStrangeCharsInName() throws Exception {
-
- // TODO: Special character should not be allowed in index name.
- Table origTable = createTable(DB_NAME, TABLE_NAME);
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- String indexName = "§±!;@#$%^&*()_+}{|-=[]\':|?><";
- createIndex(DB_NAME, origTable, indexName, indexTable);
- verifyIndex(DB_NAME, TABLE_NAME, indexName, INDEX_TABLE_NAME);
- client.dropIndex(DB_NAME, TABLE_NAME, indexName, true);
- }
-
- @Test
- public void testCreateIndexWithUpperCaseName() throws Exception {
-
- Table origTable = createTable(DB_NAME, TABLE_NAME);
- String indexName = "UPPERCASE_INDEX_NAME";
- String indexTableName = "UPPERCASE_INDEX_TABLE_NAME";
- Table indexTable = buildIndexTable(DB_NAME, indexTableName);
- createIndex(DB_NAME, origTable, indexName, indexTable);
- verifyIndex(DB_NAME, TABLE_NAME, indexName.toLowerCase(), indexTableName.toLowerCase());
- client.dropIndex(DB_NAME, TABLE_NAME, indexName, true);
- }
-
- @Test(expected = AlreadyExistsException.class)
- public void testCreateIndexesWithSameOrigAndIndexTable() throws Exception {
-
- Table origTable = createTable(DB_NAME, TABLE_NAME);
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- createIndex(DB_NAME, origTable, INDEX_NAME, indexTable);
- createIndex(DB_NAME, origTable, INDEX_NAME, indexTable);
- checkIfIndexExists(DB_NAME, TABLE_NAME, INDEX_NAME);
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- }
-
- @Test(expected = AlreadyExistsException.class)
- public void testCreateIndexesWithSameNameAndOrigTableDifferentIndexTable() throws Exception {
-
- Table origTable = createTable(DB_NAME, TABLE_NAME);
- String indexTableName1 = origTable.getTableName() + "__" + INDEX_NAME + "_1";
- String indexTableName2 = origTable.getTableName() + "__" + INDEX_NAME + "_2";
- createIndex(DB_NAME, origTable, INDEX_NAME, buildIndexTable(DB_NAME, indexTableName1));
- createIndex(DB_NAME, origTable, INDEX_NAME, buildIndexTable(DB_NAME, indexTableName2));
- checkIfIndexExists(DB_NAME, TABLE_NAME, INDEX_NAME);
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- }
-
- @Test(expected = InvalidObjectException.class)
- public void testCreateIndexWithExistingIndexTable() throws Exception {
-
- Table origTable = createTable(DB_NAME, TABLE_NAME);
- Table indexTable = createTable(DB_NAME, INDEX_TABLE_NAME);
- createIndex(DB_NAME, origTable, INDEX_NAME, indexTable);
- checkIfIndexListEmpty(DB_NAME, TABLE_NAME);
- }
-
- @Test(expected = MetaException.class)
- public void testCreateIndexNullIndexTableName() throws Exception {
-
- Table origTable = createTable(DB_NAME, TABLE_NAME);
- Table indexTable = buildIndexTable(DB_NAME, null);
- createIndex(DB_NAME, origTable, INDEX_NAME, indexTable);
- checkIfIndexExists(DB_NAME, TABLE_NAME, INDEX_NAME);
- }
-
- @Test(expected = InvalidObjectException.class)
- public void testCreateIndexEmptyIndexTableName() throws Exception {
-
- Table origTable = createTable(DB_NAME, TABLE_NAME);
- Table indexTable = buildIndexTable(DB_NAME, "");
- createIndex(DB_NAME, origTable, INDEX_NAME, indexTable);
- checkIfIndexListEmpty(DB_NAME, TABLE_NAME);
- }
-
- @Test(expected = InvalidObjectException.class)
- public void testCreateIndexesWithSameIndexTable() throws Exception {
-
- String origTableName1 = "testindextable1";
- String origTableName2 = "testindextable2";
- String indexName1 = "testindex1";
- String indexName2 = "testindex2";
- String indexTableName = origTableName1 + "__" + indexName1;
- Table origTable1 = createTable(DB_NAME, origTableName1);
- Table origTable2 = createTable(DB_NAME, origTableName2);
- Table indexTable = buildIndexTable(DB_NAME, indexTableName);
-
- createIndex(DB_NAME, origTable1, indexName1, indexTable);
- createIndex(DB_NAME, origTable2, indexName2, indexTable);
-
- checkIfIndexExists(DB_NAME, origTableName1, indexName1);
- checkIfIndexListEmpty(DB_NAME, origTableName2);
- client.dropIndex(DB_NAME, origTableName1, indexName1, true);
- }
-
- @Test(expected = InvalidObjectException.class)
- public void testCreateIndexWithNonExistingDB() throws Exception {
-
- Table origTable = createTable(DB_NAME, TABLE_NAME);
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- createIndex("nonexistingdb", origTable, INDEX_NAME, indexTable);
- checkIfIndexListEmpty(DB_NAME, TABLE_NAME);
- }
-
- @Test(expected = MetaException.class)
- public void testCreateIndexWithNullDBName() throws Exception {
-
- Table origTable = createTable(DB_NAME, TABLE_NAME);
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- createIndex(null, origTable, INDEX_NAME, indexTable);
- }
-
- @Test(expected = InvalidObjectException.class)
- public void testCreateIndexNonExistingOrigTable() throws Exception {
-
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- Index index = buildIndexWithDefaultValues();
- index.setOrigTableName("nonexistingtable");
- client.createIndex(index, indexTable);
- }
-
- @Test(expected = MetaException.class)
- public void testCreateIndexNullOrigTable() throws Exception {
-
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- Index index = buildIndexWithDefaultValues();
- index.setOrigTableName(null);
- client.createIndex(index, indexTable);
- }
-
- @Test
- public void testCreateIndexNullIndex() throws Exception {
- // TODO: NPE should not be thrown.
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- try {
- client.createIndex(null, indexTable);
- Assert.fail("TTransportException or NullPointerException should have happened");
- } catch (TTransportException | NullPointerException e) {
- // Expected exception
- }
- }
-
- @Test
- public void testCreateIndexNullIndexTable() throws Exception {
-
- createTable(DB_NAME, TABLE_NAME);
- Index index = new IndexBuilder()
- .setDbName(DB_NAME)
- .setTableName(TABLE_NAME)
- .setIndexName(INDEX_NAME)
- .setIndexTableName(null)
- .addCol("id", "int", "test col id")
- .addCol("value", "string", "test col value")
- .setDeferredRebuild(false)
- .build();
- client.createIndex(index, null);
- }
-
- @Test(expected = InvalidObjectException.class)
- public void testCreateIndexWithEmptyOrigTable() throws Exception {
-
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- Index index = buildIndexWithDefaultValues();
- index.setOrigTableName("");
- client.createIndex(index, indexTable);
- }
-
- @Test(expected = InvalidObjectException.class)
- public void testCreateIndexWithEmptyDBName() throws Exception {
-
- createTable(DB_NAME, TABLE_NAME);
- Index index = buildIndexWithDefaultValues();
- index.setDbName("");
- client.createIndex(index, buildIndexTable(DB_NAME, INDEX_TABLE_NAME));
- }
-
- @Test(expected = MetaException.class)
- public void testCreateIndexNullIndexName() throws Exception {
-
- createTable(DB_NAME, TABLE_NAME);
- Index index = buildIndexWithDefaultValues();
- index.setIndexTableName(null);
- client.createIndex(index, buildIndexTable(DB_NAME, INDEX_TABLE_NAME));
- }
-
- @Test
- public void testCreateIndexEmptyIndexName() throws Exception {
-
- Table origTable = createTable(DB_NAME, TABLE_NAME);
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- createIndex(DB_NAME, origTable, "", indexTable);
- checkIfIndexExists(DB_NAME, TABLE_NAME, "");
- client.dropIndex(DB_NAME, TABLE_NAME, "", true);
- }
-
- @Test
- public void testCreateIndexWithDifferentIndexTableName() throws Exception {
-
- createTable(DB_NAME, TABLE_NAME);
- Index index = buildIndexWithDefaultValues();
- index.setIndexTableName("differentindextablename");
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- client.createIndex(index, indexTable);
- checkIfIndexListEmpty(DB_NAME, TABLE_NAME);
- List<String> tableNames = client.listTableNamesByFilter(DB_NAME, "", MAX);
- Assert.assertNotNull(tableNames);
- Assert.assertEquals(1, tableNames.size());
- Assert.assertEquals(TABLE_NAME, tableNames.get(0));
- Assert.assertTrue(metaStore.isPathExists(new Path(indexTable.getSd().getLocation())));
- }
-
- @Test
- public void testCreateIndexWithDifferentDBInIndexTableAndIndex() throws Exception {
-
- createTable(DB_NAME, TABLE_NAME);
- String dbName = "second_index_db";
- createDB(dbName);
- Index index = buildIndexWithDefaultValues();
- Table indexTable = buildIndexTable(dbName, INDEX_TABLE_NAME);
- Assert.assertFalse(metaStore.isPathExists(new Path(indexTable.getSd().getLocation())));
- client.createIndex(index, indexTable);
- checkIfIndexListEmpty(DB_NAME, TABLE_NAME);
- checkIfIndexListEmpty(dbName, TABLE_NAME);
- List<String> tableNames = client.listTableNamesByFilter(DB_NAME, "", MAX);
- Assert.assertFalse(tableNames.contains(INDEX_TABLE_NAME));
- tableNames = client.listTableNamesByFilter(dbName, "", MAX);
- Assert.assertFalse(tableNames.contains(INDEX_TABLE_NAME));
- Assert.assertTrue(metaStore.isPathExists(new Path(indexTable.getSd().getLocation())));
- client.dropDatabase(dbName);
- }
-
- @Test
- public void testCreateIndexDifferentColsInIndexAndIndexTable() throws Exception {
-
- createTable(DB_NAME, TABLE_NAME);
- Table indexTable = buildIndexTable(DB_NAME, INDEX_TABLE_NAME);
- Index index = new IndexBuilder()
- .setDbName(DB_NAME)
- .setTableName(TABLE_NAME)
- .setIndexName(INDEX_NAME)
- .setIndexTableName(INDEX_TABLE_NAME)
- .addCol("test_name", "string", "test col name")
- .setDeferredRebuild(false)
- .build();
- client.createIndex(index, indexTable);
-
- Index resultIndex = client.getIndex(DB_NAME, TABLE_NAME, INDEX_NAME);
- Assert.assertNotNull(resultIndex);
- Assert.assertEquals(INDEX_NAME, resultIndex.getIndexName());
- Assert.assertEquals(TABLE_NAME, resultIndex.getOrigTableName());
- Assert.assertEquals(INDEX_TABLE_NAME, resultIndex.getIndexTableName());
- List<FieldSchema> colsInIndex = resultIndex.getSd().getCols();
- Assert.assertEquals(1, colsInIndex.size());
- Assert.assertEquals("test_name", colsInIndex.get(0).getName());
-
- Table indexTableResult = client.getTable(DB_NAME, INDEX_TABLE_NAME);
- Assert.assertNotNull(indexTableResult);
- List<FieldSchema> colsInIndexTable = indexTableResult.getSd().getCols();
- Assert.assertNotNull(colsInIndexTable);
- Assert.assertEquals(2, colsInIndexTable.size());
- Assert.assertEquals("id", colsInIndexTable.get(0).getName());
- Assert.assertEquals("value", colsInIndexTable.get(1).getName());
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- }
-
- @Test
- public void testCreateIndexWithNullSd() throws Exception {
-
- createTable(DB_NAME, TABLE_NAME);
- Index index = buildIndexWithDefaultValues();
- index.setSd(null);
- client.createIndex(index, buildIndexTable(DB_NAME, INDEX_TABLE_NAME));
- checkIfIndexListEmpty(DB_NAME, TABLE_NAME);
- }
-
- // Drop index tests
- @Test(expected = NoSuchObjectException.class)
- public void testDropIndexInvalidDB() throws Exception {
-
- createIndex(INDEX_NAME, TABLE_NAME);
- client.dropIndex("nonexistingdb", TABLE_NAME, INDEX_NAME, true);
- verifyIndex(DB_NAME, TABLE_NAME, INDEX_NAME, INDEX_TABLE_NAME);
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testDropIndexInvalidTable() throws Exception {
-
- createIndex(INDEX_NAME, TABLE_NAME);
- client.dropIndex(DB_NAME, "wrongtablename", INDEX_NAME, true);
- verifyIndex(DB_NAME, TABLE_NAME, INDEX_NAME, INDEX_TABLE_NAME);
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testDropIndexInvalidIndex() throws Exception {
-
- createIndex(INDEX_NAME, TABLE_NAME);
- client.dropIndex(DB_NAME, TABLE_NAME, "invalidindexname", true);
- verifyIndex(DB_NAME, TABLE_NAME, INDEX_NAME, INDEX_TABLE_NAME);
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- }
-
- @Test(expected = MetaException.class)
- public void testDropIndexNullDBName() throws Exception {
-
- client.dropIndex(null, TABLE_NAME, INDEX_NAME, true);
- }
-
- @Test(expected = MetaException.class)
- public void testDropIndexNullTableName() throws Exception {
-
- client.dropIndex(DB_NAME, null, INDEX_NAME, true);
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testDropIndexNullIndexName() throws Exception {
-
- client.dropIndex(DB_NAME, TABLE_NAME, null, true);
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testDropIndexEmptyDBName() throws Exception {
-
- client.dropIndex("", TABLE_NAME, INDEX_NAME, true);
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testDropIndexEmptyTableName() throws Exception {
-
- client.dropIndex(DB_NAME, "", INDEX_NAME, true);
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testDropIndexEmptyIndexName() throws Exception {
-
- client.dropIndex(DB_NAME, TABLE_NAME, "", true);
- }
-
- // Alter index tests
-
- @Test
- public void testAlterIndex() throws Exception {
-
- // Only index parameters are allowed to be altered
- String indexTableName = TABLE_NAME + "__" + INDEX_NAME + "__";
- int oldCreateTime = (int) (System.currentTimeMillis() / 1000);
- String oldHandlerClassName = "TestHandlerClass1";
- String oldLocation = "/index/test/path1";
- String oldInputFormat = "org.apache.hadoop.hive.ql.io.HiveInputFormat";
- String oldOutputFormat = "org.apache.hadoop.hive.ql.io.HiveOutputFormat";
- String oldIndexParamKey = "indexParamKey1";
- String oldIndexParamValue = "indexParamValue1";
- String oldIndexSdParamKey = "sdparamkey1";
- String oldIndexSdParamValue = "sdparamvalue1";
- Map<String, String> indexParams = new HashMap<String, String>();
- indexParams.put(oldIndexParamKey, oldIndexParamValue);
-
- createTable(DB_NAME, TABLE_NAME);
-
- Index index = new IndexBuilder()
- .setDbName(DB_NAME)
- .setTableName(TABLE_NAME)
- .setIndexName(INDEX_NAME)
- .setIndexTableName(indexTableName)
- .setCreateTime(oldCreateTime)
- .setLastAccessTime(oldCreateTime)
- .addCol("id", "int", "test col id")
- .addCol("value", "string", "test col value")
- .setDeferredRebuild(false)
- .setIndexParams(indexParams)
- .setHandlerClass(oldHandlerClassName)
- .setLocation(oldLocation)
- .setInputFormat(oldInputFormat)
- .setOutputFormat(oldOutputFormat)
- .addStorageDescriptorParam(oldIndexSdParamKey, oldIndexSdParamValue)
- .build();
- client.createIndex(index, buildIndexTable(DB_NAME, indexTableName));
- Index oldIndex = client.getIndex(DB_NAME, TABLE_NAME, INDEX_NAME);
-
- int newCreateTime = (int) (System.currentTimeMillis() / 1000);
- String newHandlerClassName = "TestHandlerClass2";
- String newLocation = "/index/test/path2";
- String newInputFormat = "NewInputFormat";
- String newOutputFormat = "NewOutputFormat";
- String newIndexParamValue = "indexParamValue2";
- String newIndexSdParamKey = "sdparamkey2";
- String newIndexSdParamValue = "sdparamvalue2";
- Map<String, String> newIndexParams = new HashMap<String, String>();
- newIndexParams.put(oldIndexParamKey, newIndexParamValue);
-
- Index newIndex = new IndexBuilder()
- .setDbName(DB_NAME)
- .setTableName(TABLE_NAME)
- .setIndexName(INDEX_NAME)
- .setIndexTableName(indexTableName)
- .setCreateTime(newCreateTime)
- .setLastAccessTime(newCreateTime)
- .addCol("id", "int", "test col id")
- .setDeferredRebuild(true)
- .setIndexParams(newIndexParams)
- .setHandlerClass(newHandlerClassName)
- .setLocation(newLocation)
- .setInputFormat(newInputFormat)
- .setOutputFormat(newOutputFormat)
- .addStorageDescriptorParam(newIndexSdParamKey, newIndexSdParamValue)
- .build();
- client.alter_index(DB_NAME, TABLE_NAME, INDEX_NAME, newIndex);
-
- Index createdNewIndex = client.getIndex(DB_NAME, TABLE_NAME, INDEX_NAME);
- // Check if the index parameters are changed
- Map<String, String> params = createdNewIndex.getParameters();
- Assert.assertEquals(newIndexParamValue, params.get(oldIndexParamKey));
- // Reset the index parameters and compare the old and new indexes to
- // check that the other attributes remained the same.
- createdNewIndex.setParameters(oldIndex.getParameters());
- Assert.assertEquals(oldIndex, createdNewIndex);
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- }
-
- @Test(expected = MetaException.class)
- public void testAlterIndexNonExistingIndex() throws Exception {
-
- createTable(DB_NAME, TABLE_NAME);
- Index index = buildIndexWithDefaultValues();
- client.alter_index(DB_NAME, TABLE_NAME, INDEX_NAME, index);
- }
-
- @Test(expected = MetaException.class)
- public void testAlterIndexNonExistingDb() throws Exception {
-
- Index index = buildIndexWithDefaultValues();
- client.alter_index("nonexistingdb", TABLE_NAME, INDEX_NAME, index);
- }
-
- @Test(expected = MetaException.class)
- public void testAlterIndexNonExistingTable() throws Exception {
-
- Index index = buildIndexWithDefaultValues();
- client.alter_index(DB_NAME, TABLE_NAME, INDEX_NAME, index);
- }
-
- @Test(expected = MetaException.class)
- public void testAlterIndexNullIndexName() throws Exception {
-
- Index index = buildIndexWithDefaultValues();
- client.alter_index(DB_NAME, TABLE_NAME, null, index);
- }
-
- @Test(expected = MetaException.class)
- public void testAlterIndexNullDbName() throws Exception {
-
- Index index = buildIndexWithDefaultValues();
- client.alter_index(null, TABLE_NAME, INDEX_NAME, index);
- }
-
- @Test(expected = MetaException.class)
- public void testAlterIndexNullTableName() throws Exception {
-
- Index index = buildIndexWithDefaultValues();
- client.alter_index(DB_NAME, null, INDEX_NAME, index);
- }
-
- @Test
- public void testAlterIndexNullIndex() throws Exception {
-
- try {
- client.alter_index(DB_NAME, TABLE_NAME, INDEX_NAME, null);
- Assert.fail("Exception should have happened");
- } catch (TTransportException | NullPointerException e) {
- // TODO: NPE should not be thrown.
- }
- }
-
- @Test(expected = MetaException.class)
- public void testAlterIndexEmptyIndexName() throws Exception {
-
- Index index = buildIndexWithDefaultValues();
- client.alter_index(DB_NAME, TABLE_NAME, "", index);
- }
-
- @Test(expected = MetaException.class)
- public void testAlterIndexEmptyDbName() throws Exception {
-
- Index index = buildIndexWithDefaultValues();
- client.alter_index("", TABLE_NAME, INDEX_NAME, index);
- }
-
- @Test(expected = MetaException.class)
- public void testAlterIndexEmptyTableName() throws Exception {
-
- Index index = buildIndexWithDefaultValues();
- client.alter_index(DB_NAME, "", INDEX_NAME, index);
- }
-
- @Test(expected = InvalidOperationException.class)
- public void testAlterIndexNullSd() throws Exception {
-
- createIndex(INDEX_NAME, TABLE_NAME);
- Index index = buildIndexWithDefaultValues();
- index.setSd(null);
- client.alter_index(DB_NAME, TABLE_NAME, INDEX_NAME, index);
- }
-
- @Test(expected = InvalidOperationException.class)
- public void testAlterIndexDifferentIndexTable() throws Exception {
-
- createIndex(INDEX_NAME, TABLE_NAME);
- Index index = buildIndexWithDefaultValues();
- index.setIndexTableName("newindextable");
- client.alter_index(DB_NAME, TABLE_NAME, INDEX_NAME, index);
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- }
-
- public void testAlterIndexNullIndexNameInNewIndex() throws Exception {
-
- createIndex(INDEX_NAME, TABLE_NAME);
- Index index = new IndexBuilder()
- .setDbName(null)
- .setTableName(null)
- .setIndexName(null)
- .setIndexTableName(null)
- .addCol("id", "int", "test col id")
- .addCol("value", "string", "test col value")
- .setDeferredRebuild(false)
- .build();
- client.alter_index(DB_NAME, TABLE_NAME, INDEX_NAME, index);
-
- Index resultIndex = client.getIndex(DB_NAME, TABLE_NAME, INDEX_NAME);
- Assert.assertNotNull(resultIndex);
- Assert.assertEquals(DB_NAME, resultIndex.getDbName());
- Assert.assertEquals(TABLE_NAME, resultIndex.getOrigTableName());
- Assert.assertEquals(INDEX_NAME, resultIndex.getIndexName());
- Assert.assertEquals(INDEX_TABLE_NAME, resultIndex.getIndexTableName());
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- }
-
- @Test(expected=MetaException.class)
- public void testAlterIndexNullCols() throws Exception {
-
- createIndex(INDEX_NAME, TABLE_NAME);
- Index index = new IndexBuilder()
- .setDbName(DB_NAME)
- .setTableName(TABLE_NAME)
- .setIndexName(INDEX_NAME)
- .setIndexTableName(INDEX_TABLE_NAME)
- .setCols(null)
- .build();
- client.alter_index(DB_NAME, TABLE_NAME, INDEX_NAME, index);
- client.dropIndex(DB_NAME, TABLE_NAME, INDEX_NAME, true);
- }
-
- // Helper methods
-
- private Table createTable(String dbName, String tableName) throws Exception {
- Table table = buildTable(dbName, tableName, null);
- client.createTable(table);
- return table;
- }
-
- private Table buildIndexTable(String dbName, String tableName) throws Exception {
- return buildTable(dbName, tableName, TableType.INDEX_TABLE);
- }
-
- private Table buildTable(String dbName, String tableName, TableType tableType) throws Exception {
- TableBuilder tableBuilder = new TableBuilder()
- .setDbName(dbName)
- .setTableName(tableName)
- .addCol("id", "int", "test col id")
- .addCol("value", "string", "test col value")
- .addStorageDescriptorParam("testSDParamKey", "testSDParamValue")
- .setSerdeName(tableName)
- .setStoredAsSubDirectories(false)
- .addSerdeParam("testSerdeParamKey", "testSerdeParamValue")
- .setLocation(metaStore.getWarehouseRoot() + "/" + tableName);
-
- if (tableType != null) {
- tableBuilder.setType(tableType.name());
- }
-
- return tableBuilder.build();
- }
-
- private void createIndex(String indexName, String origTableName) throws Exception {
- Table origTable = createTable(DB_NAME, origTableName);
- String indexTableName = origTableName + "__" + indexName + "__";
- createIndex(DB_NAME, origTable, indexName, buildTable(DB_NAME, indexTableName,
- TableType.INDEX_TABLE));
- }
-
- private void createIndex(String dbName, Table origTable, String indexName, Table indexTable)
- throws Exception {
- int createTime = (int) (System.currentTimeMillis() / 1000);
- Map<String, String> params = new HashMap<String, String>();
- params.put("indexParamKey", "indexParamValue");
-
- Index index =
- buildIndex(dbName, origTable.getTableName(), indexName, indexTable.getTableName());
- index.setCreateTime(createTime);
- index.setLastAccessTime(createTime);
- index.setParameters(params);
- client.createIndex(index, indexTable);
- }
-
- private Index buildIndexWithDefaultValues() throws MetaException {
- return buildIndex(DB_NAME, TABLE_NAME, INDEX_NAME, INDEX_TABLE_NAME);
- }
-
- private Index buildIndex(String dbName, String origTableName, String indexName,
- String indexTableName) throws MetaException {
- Index index = new IndexBuilder()
- .setDbName(dbName)
- .setTableName(origTableName)
- .setIndexName(indexName)
- .setIndexTableName(indexTableName)
- .addCol("id", "int", "test col id")
- .addCol("value", "string", "test col value")
- .setDeferredRebuild(false)
- .build();
- return index;
- }
-
- private void createDB(String dbName) throws TException {
- Database db = new DatabaseBuilder().
- setName(dbName).
- build();
- client.createDatabase(db);
- }
-
- private void checkIfIndexListEmpty(String dbName, String origTableName)
- throws MetaException, TException {
- List<String> indexes = client.listIndexNames(dbName, origTableName, MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- private void checkIfIndexExists(String dbName, String origTableName, String indexName)
- throws MetaException, TException {
- List<String> indexes = client.listIndexNames(dbName, origTableName, MAX);
- Assert.assertNotNull(indexes);
- Assert.assertEquals(1, indexes.size());
- Assert.assertEquals(indexName, indexes.get(0));
- }
-
- private void verifyIndex(String dbName, String origTableName, String indexName,
- String indexTableName)
- throws MetaException, UnknownTableException, NoSuchObjectException, TException {
- Index index = client.getIndex(dbName, origTableName, indexName);
- Assert.assertNotNull(index);
- Assert.assertEquals(dbName, index.getDbName());
- Assert.assertEquals(origTableName, index.getOrigTableName());
- Assert.assertEquals(indexName, index.getIndexName());
- Assert.assertEquals(indexTableName, index.getIndexTableName());
- }
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/7c22d74c/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestDatabases.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestDatabases.java b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestDatabases.java
index 8f97b19..f2d745e 100644
--- a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestDatabases.java
+++ b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestDatabases.java
@@ -20,12 +20,10 @@ package org.apache.hadoop.hive.metastore.client;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.metastore.IMetaStoreClient;
-import org.apache.hadoop.hive.metastore.TableType;
import org.apache.hadoop.hive.metastore.annotation.MetastoreCheckinTest;
import org.apache.hadoop.hive.metastore.api.AlreadyExistsException;
import org.apache.hadoop.hive.metastore.api.Database;
import org.apache.hadoop.hive.metastore.api.Function;
-import org.apache.hadoop.hive.metastore.api.Index;
import org.apache.hadoop.hive.metastore.api.InvalidObjectException;
import org.apache.hadoop.hive.metastore.api.InvalidOperationException;
import org.apache.hadoop.hive.metastore.api.MetaException;
@@ -34,10 +32,8 @@ import org.apache.hadoop.hive.metastore.api.PrincipalType;
import org.apache.hadoop.hive.metastore.api.Table;
import org.apache.hadoop.hive.metastore.client.builder.DatabaseBuilder;
import org.apache.hadoop.hive.metastore.client.builder.FunctionBuilder;
-import org.apache.hadoop.hive.metastore.client.builder.IndexBuilder;
import org.apache.hadoop.hive.metastore.client.builder.TableBuilder;
import org.apache.hadoop.hive.metastore.minihms.AbstractMetaStoreService;
-import org.apache.thrift.TException;
import org.apache.thrift.transport.TTransportException;
import org.junit.After;
import org.junit.Assert;
@@ -378,72 +374,6 @@ public class TestDatabases extends MetaStoreClientTest {
metaStore.isPathExists(new Path(database.getLocationUri())));
}
- /**
- * Creates an index in the given database for testing purposes.
- * @param databaseName The database name in which the index should be creatd
- * @throws TException If there is an error during the index creation
- */
- private void createIndex(String databaseName) throws TException {
- Table testTable =
- new TableBuilder()
- .setDbName(databaseName)
- .setTableName("test_table")
- .addCol("test_col", "int")
- .build();
-
- Index testIndex =
- new IndexBuilder()
- .setIndexName("test_index")
- .setIndexTableName("test_index_table")
- .setDbAndTableName(testTable)
- .addCol("test_col", "int")
- .build();
- Table testIndexTable =
- new TableBuilder()
- .setDbName(databaseName)
- .setType(TableType.INDEX_TABLE.name())
- .setTableName("test_index_table")
- .addCol("test_col", "int")
- .build();
-
- // Drop database with index
- client.createTable(testTable);
- client.createIndex(testIndex, testIndexTable);
- }
-
- @Test
- public void testDropDatabaseWithIndex() throws Exception {
- Database database = testDatabases[0];
- createIndex(database.getName());
-
- // TODO: Known error, should be fixed
- // client.dropDatabase(database.getName(), true, true, true);
- // Need to drop index to clean up the mess
- try {
- // Without cascade
- client.dropDatabase(database.getName(), true, true, false);
- Assert.fail("Expected an InvalidOperationException to be thrown");
- } catch (InvalidOperationException exception) {
- // Expected exception
- }
- client.dropIndex(database.getName(), "test_table", "test_index", true);
- // TODO: End index hack
- }
-
- @Test
- public void testDropDatabaseWithIndexCascade() throws Exception {
- Database database = testDatabases[0];
- createIndex(database.getName());
-
- // With cascade
- // TODO: Known error, should be fixed
- // client.dropDatabase(database.getName(), true, true, true);
- // Need to drop index to clean up the mess
- client.dropIndex(database.getName(), "test_table", "test_index", true);
- client.dropDatabase(database.getName(), true, true, true);
- Assert.assertFalse("The directory should be removed",
- metaStore.isPathExists(new Path(database.getLocationUri())));
- }
@Test
public void testGetAllDatabases() throws Exception {
http://git-wip-us.apache.org/repos/asf/hive/blob/7c22d74c/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestGetListIndexes.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestGetListIndexes.java b/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestGetListIndexes.java
deleted file mode 100644
index 5d226a8..0000000
--- a/standalone-metastore/src/test/java/org/apache/hadoop/hive/metastore/client/TestGetListIndexes.java
+++ /dev/null
@@ -1,442 +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.client;
-
-import java.util.List;
-
-import org.apache.hadoop.hive.metastore.IMetaStoreClient;
-import org.apache.hadoop.hive.metastore.TableType;
-import org.apache.hadoop.hive.metastore.annotation.MetastoreCheckinTest;
-import org.apache.hadoop.hive.metastore.api.Database;
-import org.apache.hadoop.hive.metastore.api.Index;
-import org.apache.hadoop.hive.metastore.api.MetaException;
-import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
-import org.apache.hadoop.hive.metastore.api.Table;
-import org.apache.hadoop.hive.metastore.client.builder.DatabaseBuilder;
-import org.apache.hadoop.hive.metastore.client.builder.IndexBuilder;
-import org.apache.hadoop.hive.metastore.client.builder.TableBuilder;
-import org.apache.hadoop.hive.metastore.minihms.AbstractMetaStoreService;
-import org.apache.thrift.TException;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import com.google.common.collect.Lists;
-
-/**
- * Tests for getting and listing indexes.
- */
-@RunWith(Parameterized.class)
-@Category(MetastoreCheckinTest.class)
-public class TestGetListIndexes extends MetaStoreClientTest {
- private AbstractMetaStoreService metaStore;
- private IMetaStoreClient client;
-
- private static final String DB_NAME_1 = "testindexdb_1";
- private static final String DB_NAME_2 = "testindexdb_2";
- private static final String ORIG_TABLE_NAME_1 = "testindextable_1";
- private static final String ORIG_TABLE_NAME_2 = "testindextable_2";
- private static final String ORIG_TABLE_NAME_3 = "testindextable_3";
- private static final String INDEX_NAME_1 = "testindexname_1";
- private static final String INDEX_NAME_2 = "testindexname_2";
- private static final String INDEX_NAME_3 = "testindexname_3";
- private static final String INDEX_NAME_4 = "testindexname_4";
- private static final String INDEX_NAME_5 = "testindexname_4";
- private static final Index[] INDEXES = new Index[5];
- private static final short MAX = -1;
-
- public TestGetListIndexes(String name, AbstractMetaStoreService metaStore) {
- this.metaStore = metaStore;
- }
-
- @Before
- public void setUp() throws Exception {
- // Get new client
- client = metaStore.getClient();
-
- // Clean up the database
- client.dropDatabase(DB_NAME_1, true, true, true);
- client.dropDatabase(DB_NAME_2, true, true, true);
- metaStore.cleanWarehouseDirs();
-
- createDB(DB_NAME_1);
- createDB(DB_NAME_2);
-
- Table origTable1 = createTable(DB_NAME_1, ORIG_TABLE_NAME_1);
- Table origTable2 = createTable(DB_NAME_1, ORIG_TABLE_NAME_2);
- Table origTable3 = createTable(DB_NAME_2, ORIG_TABLE_NAME_1);
- createTable(DB_NAME_1, ORIG_TABLE_NAME_3);
-
- INDEXES[0] = createIndex(origTable1, INDEX_NAME_1);
- INDEXES[1] = createIndex(origTable1, INDEX_NAME_2);
- INDEXES[2] = createIndex(origTable1, INDEX_NAME_3);
- INDEXES[3] = createIndex(origTable2, INDEX_NAME_4);
- INDEXES[4] = createIndex(origTable3, INDEX_NAME_5);
- }
-
- @After
- public void tearDown() throws Exception {
- try {
- for (Index index : INDEXES) {
- client.dropIndex(index.getDbName(), index.getOrigTableName(), index.getIndexName(), true);
- }
-
- if (client != null) {
- client.close();
- }
- } finally {
- client = null;
- }
- }
-
- // Get index tests
-
- public void testGetIndex() throws Exception {
-
- Index indexToGet = INDEXES[0];
- Index index = client.getIndex(indexToGet.getDbName(), indexToGet.getOrigTableName(),
- indexToGet.getIndexName());
- Assert.assertNotNull(index);
- Assert.assertEquals(indexToGet, index);
-
- indexToGet = INDEXES[4];
- index = client.getIndex(indexToGet.getDbName(), indexToGet.getOrigTableName(),
- indexToGet.getIndexName());
- Assert.assertNotNull(index);
- Assert.assertEquals(indexToGet, index);
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testGetNonExistingIndex() throws Exception {
-
- Index index = INDEXES[0];
- client.getIndex(index.getDbName(), index.getOrigTableName(), "nonexisingindex");
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testGetIndexNonExistingTable() throws Exception {
-
- Index index = INDEXES[0];
- client.getIndex(index.getDbName(), "nonexistingtable", index.getIndexName());
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testGetIndexNonExistingDatabase() throws Exception {
-
- Index index = INDEXES[0];
- client.getIndex("nonexistingdb", index.getOrigTableName(), index.getIndexName());
- }
-
- @Test(expected = MetaException.class)
- public void testGetIndexNullName() throws Exception {
-
- Index index = INDEXES[0];
- client.getIndex(index.getDbName(), index.getOrigTableName(), null);
- }
-
- @Test(expected = MetaException.class)
- public void testGetIndexNullTableName() throws Exception {
-
- Index index = INDEXES[0];
- client.getIndex(index.getDbName(), null, index.getIndexName());
- }
-
- @Test(expected = MetaException.class)
- public void testGetIndexNullDBName() throws Exception {
-
- Index index = INDEXES[0];
- client.getIndex(null, index.getOrigTableName(), index.getIndexName());
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testGetIndexEmptyName() throws Exception {
- Index index = INDEXES[0];
- client.getIndex(index.getDbName(), index.getOrigTableName(), "");
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testGetIndexEmptyTableName() throws Exception {
- Index index = INDEXES[0];
- client.getIndex(index.getDbName(), "", index.getIndexName());
- }
-
- @Test(expected = NoSuchObjectException.class)
- public void testGetIndexEmptyDBName() throws Exception {
- Index index = INDEXES[0];
- client.getIndex("", index.getOrigTableName(), index.getIndexName());
- }
-
- // List index tests
-
- @Test
- public void testListIndexes() throws Exception {
-
- List<Index> indexes = client.listIndexes(DB_NAME_1, ORIG_TABLE_NAME_1, MAX);
- Assert.assertNotNull(indexes);
- Assert.assertEquals(3, indexes.size());
- for (Index index : indexes) {
- if (INDEX_NAME_1.equals(index.getIndexName())) {
- Assert.assertEquals(INDEXES[0], index);
- } else if (INDEX_NAME_2.equals(index.getIndexName())) {
- Assert.assertEquals(INDEXES[1], index);
- } else {
- Assert.assertEquals(INDEXES[2], index);
- }
- }
-
- indexes = client.listIndexes(DB_NAME_1, ORIG_TABLE_NAME_2, MAX);
- Assert.assertNotNull(indexes);
- Assert.assertEquals(1, indexes.size());
- Assert.assertEquals(INDEXES[3], indexes.get(0));
-
- indexes = client.listIndexes(DB_NAME_2, ORIG_TABLE_NAME_1, MAX);
- Assert.assertNotNull(indexes);
- Assert.assertEquals(1, indexes.size());
- Assert.assertEquals(INDEXES[4], indexes.get(0));
- }
-
- @Test
- public void testListIndexesEmptyList() throws Exception {
-
- List<Index> indexes = client.listIndexes(DB_NAME_1, ORIG_TABLE_NAME_3, MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- @Test
- public void testListIndexesInvalidDb() throws Exception {
-
- List<Index> indexes = client.listIndexes("nonexistingdb", INDEXES[0].getOrigTableName(), MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- @Test
- public void testListIndexesInvalidTable() throws Exception {
-
- List<Index> indexes = client.listIndexes(INDEXES[0].getDbName(), "nonexsitingtable", MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- @Test(expected = MetaException.class)
- public void testListIndexesNullDb() throws Exception {
-
- client.listIndexes(null, INDEXES[0].getOrigTableName(), MAX);
- }
-
- @Test(expected = MetaException.class)
- public void testListIndexesNullTable() throws Exception {
-
- client.listIndexes(INDEXES[0].getDbName(), null, MAX);
- }
-
- @Test
- public void testListIndexesEmptyDb() throws Exception {
-
- List<Index> indexes = client.listIndexes("", INDEXES[0].getOrigTableName(), MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- @Test
- public void testListIndexesEmptyTable() throws Exception {
-
- List<Index> indexes = client.listIndexes(INDEXES[0].getDbName(), "", MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- @Test
- public void testListIndexesWithDifferentNums() throws Exception {
-
- Index index = INDEXES[0];
- checkListIndexes(index.getDbName(), index.getOrigTableName(), (short) 2);
- checkListIndexes(index.getDbName(), index.getOrigTableName(), (short) 1);
- checkListIndexes(index.getDbName(), index.getOrigTableName(), (short) 0);
- checkListIndexes(index.getDbName(), index.getOrigTableName(), (short) -1);
- }
-
- // List index names tests
-
- @Test
- public void testListIndexNames() throws Exception {
-
- List<String> indexNames = client.listIndexNames(DB_NAME_1, ORIG_TABLE_NAME_1, MAX);
- Assert.assertNotNull(indexNames);
- Assert.assertEquals(3, indexNames.size());
- List<String> expectedIndexNames = Lists.newArrayList(INDEXES[0].getIndexName(),
- INDEXES[1].getIndexName(), INDEXES[2].getIndexName());
- Assert.assertEquals(expectedIndexNames, indexNames);
-
- indexNames = client.listIndexNames(DB_NAME_1, ORIG_TABLE_NAME_2, MAX);
- Assert.assertNotNull(indexNames);
- Assert.assertEquals(1, indexNames.size());
- Assert.assertEquals(INDEXES[3].getIndexName(), indexNames.get(0));
-
- indexNames = client.listIndexNames(DB_NAME_2, ORIG_TABLE_NAME_1, MAX);
- Assert.assertNotNull(indexNames);
- Assert.assertEquals(1, indexNames.size());
- Assert.assertEquals(INDEXES[4].getIndexName(), indexNames.get(0));
- }
-
- @Test
- public void testListIndexNamesEmptyList() throws Exception {
-
- List<String> indexes = client.listIndexNames(DB_NAME_1, ORIG_TABLE_NAME_3, MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- @Test
- public void testListIndexNamesInvalidDb() throws Exception {
-
- List<String> indexes =
- client.listIndexNames("nonexistingdb", INDEXES[0].getOrigTableName(), MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- @Test
- public void testListIndexNamesInvalidTable() throws Exception {
-
- List<String> indexes = client.listIndexNames(INDEXES[0].getDbName(), "nonexsitingtable", MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- @Test(expected = MetaException.class)
- public void testListIndexNamesNullDb() throws Exception {
-
- client.listIndexNames(null, INDEXES[0].getOrigTableName(), MAX);
- }
-
- @Test(expected = MetaException.class)
- public void testListIndexNamesNullTable() throws Exception {
-
- client.listIndexNames(INDEXES[0].getDbName(), null, MAX);
- }
-
- @Test
- public void testListIndexNamesEmptyDb() throws Exception {
-
- List<String> indexes = client.listIndexNames("", INDEXES[0].getOrigTableName(), MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- @Test
- public void testListIndexNamesEmptyTable() throws Exception {
-
- List<String> indexes = client.listIndexNames(INDEXES[0].getDbName(), "", MAX);
- Assert.assertNotNull(indexes);
- Assert.assertTrue(indexes.isEmpty());
- }
-
- @Test
- public void testListIndexNamesWithDifferentNums() throws Exception {
-
- Index index = INDEXES[0];
- checkListIndexNames(index.getDbName(), index.getOrigTableName(), (short) 2);
- checkListIndexNames(index.getDbName(), index.getOrigTableName(), (short) 1);
- checkListIndexNames(index.getDbName(), index.getOrigTableName(), (short) 0);
- checkListIndexNames(index.getDbName(), index.getOrigTableName(), (short) -1);
- }
-
- // Helper methods
-
- private Table createTable(String dbName, String tableName) throws Exception {
- Table table = buildTable(dbName, tableName, null);
- client.createTable(table);
- return table;
- }
-
- private Table buildIndexTable(String dbName, String tableName) throws Exception {
- return buildTable(dbName, tableName, TableType.INDEX_TABLE);
- }
-
- private Table buildTable(String dbName, String tableName, TableType tableType) throws Exception {
- TableBuilder tableBuilder = new TableBuilder()
- .setDbName(dbName)
- .setTableName(tableName)
- .addCol("id", "int", "test col id")
- .addCol("value", "string", "test col value")
- .addStorageDescriptorParam("testSDParamKey", "testSDParamValue")
- .setSerdeName(tableName)
- .setStoredAsSubDirectories(false)
- .addSerdeParam("testSerdeParamKey", "testSerdeParamValue")
- .setLocation(metaStore.getWarehouseRoot() + "/" + tableName);
-
- if (tableType != null){
- tableBuilder.setType(tableType.name());
- }
-
- return tableBuilder.build();
- }
-
- private Index createIndex(Table origTable, String indexName) throws Exception {
-
- String dbName = origTable.getDbName();
- String origTableName = origTable.getTableName();
- String indexTableName = origTableName + "__" + indexName + "__";
- Index index = buildIndex(dbName, origTableName, indexName, indexTableName);
- client.createIndex(index, buildTable(dbName, indexTableName, TableType.INDEX_TABLE));
- return client.getIndex(dbName, origTableName, indexName);
- }
-
- private Index buildIndex(String dbName, String origTableName, String indexName,
- String indexTableName) throws MetaException {
- Index index = new IndexBuilder()
- .setDbName(dbName)
- .setTableName(origTableName)
- .setIndexName(indexName)
- .setIndexTableName(indexTableName)
- .addCol("id", "int", "test col id")
- .addCol("value", "string", "test col value")
- .addIndexParam("test_get_index_param_key", "test_get_index_param_value")
- .setDeferredRebuild(false)
- .build();
- return index;
- }
-
- private void createDB(String dbName) throws TException {
- Database db = new DatabaseBuilder()
- .setName(dbName)
- .build();
- client.createDatabase(db);
- }
-
- private void checkListIndexNames(String dbName, String origTableName, short num)
- throws Exception {
- List<String> indexNames = client.listIndexNames(dbName, origTableName, num);
- Assert.assertNotNull(indexNames);
- // TODO: The num parameter doesn't have any effect
- Assert.assertEquals(3, indexNames.size());
- }
-
- private void checkListIndexes(String dbName, String origTableName, short num) throws Exception {
- List<Index> indexes = client.listIndexes(dbName, origTableName, num);
- Assert.assertNotNull(indexes);
- // TODO: The num parameter doesn't have any effect
- Assert.assertEquals(3, indexes.size());
- }
-}