Repository: carbondata Updated Branches: refs/heads/master 84267dc7a -> f2bb9f4eb
[HOTFIX] Avoid adding status if there is no datamaps on table. This closes #2222 Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/f2bb9f4e Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/f2bb9f4e Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/f2bb9f4e Branch: refs/heads/master Commit: f2bb9f4eb39f0306cd83ecdad3e3dff34ec151e6 Parents: 84267dc Author: ravipesala <[email protected]> Authored: Tue Apr 24 17:02:21 2018 +0530 Committer: Jacky Li <[email protected]> Committed: Wed Apr 25 00:14:42 2018 +0800 ---------------------------------------------------------------------- .../core/datamap/status/DataMapStatusManager.java | 12 ++++++------ .../datamap/status/DiskBasedDataMapStatusProvider.java | 4 ++++ 2 files changed, 10 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/carbondata/blob/f2bb9f4e/core/src/main/java/org/apache/carbondata/core/datamap/status/DataMapStatusManager.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/carbondata/core/datamap/status/DataMapStatusManager.java b/core/src/main/java/org/apache/carbondata/core/datamap/status/DataMapStatusManager.java index 10ed80c..31ab4e4 100644 --- a/core/src/main/java/org/apache/carbondata/core/datamap/status/DataMapStatusManager.java +++ b/core/src/main/java/org/apache/carbondata/core/datamap/status/DataMapStatusManager.java @@ -53,11 +53,11 @@ public class DataMapStatusManager { public static void disableDataMap(String dataMapName) throws Exception { DataMapSchema dataMapSchema = getDataMapSchema(dataMapName); - List<DataMapSchema> list = new ArrayList<>(); if (dataMapSchema != null) { + List<DataMapSchema> list = new ArrayList<>(); list.add(dataMapSchema); + storageProvider.updateDataMapStatus(list, DataMapStatus.DISABLED); } - storageProvider.updateDataMapStatus(list, DataMapStatus.DISABLED); } public static void disableDataMapsOfTable(CarbonTable table) throws IOException { @@ -68,11 +68,11 @@ public class DataMapStatusManager { public static void enableDataMap(String dataMapName) throws IOException, NoSuchDataMapException { DataMapSchema dataMapSchema = getDataMapSchema(dataMapName); - List<DataMapSchema> list = new ArrayList<>(); if (dataMapSchema != null) { + List<DataMapSchema> list = new ArrayList<>(); list.add(dataMapSchema); + storageProvider.updateDataMapStatus(list, DataMapStatus.ENABLED); } - storageProvider.updateDataMapStatus(list, DataMapStatus.ENABLED); } public static void enableDataMapsOfTable(CarbonTable table) throws IOException { @@ -83,11 +83,11 @@ public class DataMapStatusManager { public static void dropDataMap(String dataMapName) throws IOException, NoSuchDataMapException { DataMapSchema dataMapSchema = getDataMapSchema(dataMapName); - List<DataMapSchema> list = new ArrayList<>(); if (dataMapSchema != null) { + List<DataMapSchema> list = new ArrayList<>(); list.add(dataMapSchema); + storageProvider.updateDataMapStatus(list, DataMapStatus.DROPPED); } - storageProvider.updateDataMapStatus(list, DataMapStatus.DROPPED); } private static DataMapSchema getDataMapSchema(String dataMapName) http://git-wip-us.apache.org/repos/asf/carbondata/blob/f2bb9f4e/core/src/main/java/org/apache/carbondata/core/datamap/status/DiskBasedDataMapStatusProvider.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/carbondata/core/datamap/status/DiskBasedDataMapStatusProvider.java b/core/src/main/java/org/apache/carbondata/core/datamap/status/DiskBasedDataMapStatusProvider.java index 001af2d..83e141d 100644 --- a/core/src/main/java/org/apache/carbondata/core/datamap/status/DiskBasedDataMapStatusProvider.java +++ b/core/src/main/java/org/apache/carbondata/core/datamap/status/DiskBasedDataMapStatusProvider.java @@ -98,6 +98,10 @@ public class DiskBasedDataMapStatusProvider implements DataMapStatusStorageProvi @Override public void updateDataMapStatus(List<DataMapSchema> dataMapSchemas, DataMapStatus dataMapStatus) throws IOException { + if (dataMapSchemas == null || dataMapSchemas.size() == 0) { + // There is nothing to update + return; + } ICarbonLock carbonTableStatusLock = getDataMapStatusLock(); boolean locked = false; try {
