[ASTERIXDB-2329][MTD] Remove Invalid Find Dataset
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Remove invalid findDataset from MetadataManager.
- Add test case for dropping and recreating a dataverse
with indexes and data.
Change-Id: I59b084c85279d926aa60fb7bfcd1a9f6e5935f2a
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2482
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Luo Chen <cluo8@uci.edu>
Reviewed-by: Michael Blow <mblow@apache.org>
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
new file mode 100644
index 0000000..9045680
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
@@ -0,0 +1,64 @@
+/*
+ * 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.asterix.test.metadata;
+
+import org.apache.asterix.api.common.AsterixHyracksIntegrationUtil;
+import org.apache.asterix.common.config.GlobalConfig;
+import org.apache.asterix.test.common.TestExecutor;
+import org.apache.asterix.testframework.context.TestCaseContext;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class MetadataManagerTest {
+
+ protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
+ private static final TestExecutor testExecutor = new TestExecutor();
+ private static final AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();
+
+ @Before
+ public void setUp() throws Exception {
+ System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, TEST_CONFIG_FILE_NAME);
+ integrationUtil.init(true, TEST_CONFIG_FILE_NAME);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ integrationUtil.deinit(true);
+ }
+
+ @Test
+ public void dropDataverseWithIndexesAfterRestart() throws Exception {
+ final TestCaseContext.OutputFormat cleanJson = TestCaseContext.OutputFormat.CLEAN_JSON;
+ StringBuilder sql = new StringBuilder();
+ sql.append("create dataverse test;");
+ sql.append("use test;");
+ sql.append("create type testType as{id:int};");
+ sql.append("create dataset testDS(testType) primary key id;");
+ sql.append("create primary index primaryIdx on testDS;");
+ sql.append("insert into testDS{\"id\":1};");
+ testExecutor.executeSqlppUpdateOrDdl(sql.toString(), cleanJson);
+ // restart
+ integrationUtil.deinit(false);
+ integrationUtil.init(false, TEST_CONFIG_FILE_NAME);
+ // drop then recreate dataverse
+ testExecutor.executeSqlppUpdateOrDdl("drop dataverse test;", cleanJson);
+ testExecutor.executeSqlppUpdateOrDdl(sql.toString(), cleanJson);
+ }
+}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
index 8e06dd7..a6a708f 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
@@ -287,7 +287,7 @@
public List<Index> getDatasetIndexes(MetadataTransactionContext ctx, String dataverseName, String datasetName)
throws AlgebricksException {
List<Index> datasetIndexes = new ArrayList<>();
- Dataset dataset = findDataset(ctx, dataverseName, datasetName);
+ Dataset dataset = getDataset(ctx, dataverseName, datasetName);
if (dataset == null) {
return datasetIndexes;
}
@@ -951,14 +951,6 @@
ctx.addDataset(dataset);
}
- public Dataset findDataset(MetadataTransactionContext ctx, String dataverseName, String datasetName) {
- Dataset dataset = ctx.getDataset(dataverseName, datasetName);
- if (dataset == null) {
- dataset = cache.getDataset(dataverseName, datasetName);
- }
- return dataset;
- }
-
@Override
public <T extends IExtensionMetadataEntity> void addEntity(MetadataTransactionContext mdTxnCtx, T entity)
throws AlgebricksException {