Repository: carbondata Updated Branches: refs/heads/master e580d64ef -> 3816e90e7
[CARBONDATA-2781] Added fix for Null Pointer Excpetion when create datamap killed from UI What was the issue? In undo meta, datamap was not being dropped. In case of Pre-aggregate table or timeseries table, the datamap was not being dropped from schema as undo meta method was not handling the same. What is the solution? Datamap gets dropped when create command is killed from UI during undo meta. This closes #2552 Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/3816e90e Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/3816e90e Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/3816e90e Branch: refs/heads/master Commit: 3816e90e758dde86c778b88af3d47d5b63f0f4db Parents: e580d64 Author: praveenmeenakshi56 <[email protected]> Authored: Wed Jul 25 21:52:54 2018 +0530 Committer: ravipesala <[email protected]> Committed: Wed Aug 1 19:01:36 2018 +0530 ---------------------------------------------------------------------- .../carbondata/datamap/PreAggregateDataMapProvider.java | 9 ++++++--- .../command/datamap/CarbonCreateDataMapCommand.scala | 6 +++++- 2 files changed, 11 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/carbondata/blob/3816e90e/integration/spark2/src/main/java/org/apache/carbondata/datamap/PreAggregateDataMapProvider.java ---------------------------------------------------------------------- diff --git a/integration/spark2/src/main/java/org/apache/carbondata/datamap/PreAggregateDataMapProvider.java b/integration/spark2/src/main/java/org/apache/carbondata/datamap/PreAggregateDataMapProvider.java index a1f80b1..099d65d 100644 --- a/integration/spark2/src/main/java/org/apache/carbondata/datamap/PreAggregateDataMapProvider.java +++ b/integration/spark2/src/main/java/org/apache/carbondata/datamap/PreAggregateDataMapProvider.java @@ -39,11 +39,15 @@ public class PreAggregateDataMapProvider extends DataMapProvider { protected PreAggregateTableHelper helper; protected CarbonDropTableCommand dropTableCommand; protected SparkSession sparkSession; + private String dbName; + private String tableName; PreAggregateDataMapProvider(CarbonTable table, DataMapSchema schema, SparkSession sparkSession) { super(table, schema); this.sparkSession = sparkSession; + this.dbName = table.getDatabaseName(); + this.tableName = table.getTableName() + '_' + schema.getDataMapName(); } @Override @@ -74,11 +78,10 @@ public class PreAggregateDataMapProvider extends DataMapProvider { @Override public void cleanMeta() { - DataMapSchema dataMapSchema = getDataMapSchema(); dropTableCommand = new CarbonDropTableCommand( true, - new Some<>(dataMapSchema.getRelationIdentifier().getDatabaseName()), - dataMapSchema.getRelationIdentifier().getTableName(), + new Some<>(dbName), + tableName, true); dropTableCommand.processMetadata(sparkSession); } http://git-wip-us.apache.org/repos/asf/carbondata/blob/3816e90e/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/datamap/CarbonCreateDataMapCommand.scala ---------------------------------------------------------------------- diff --git a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/datamap/CarbonCreateDataMapCommand.scala b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/datamap/CarbonCreateDataMapCommand.scala index c40dcb0..1e4c2c3 100644 --- a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/datamap/CarbonCreateDataMapCommand.scala +++ b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/datamap/CarbonCreateDataMapCommand.scala @@ -181,7 +181,11 @@ case class CarbonCreateDataMapCommand( override def undoMetadata(sparkSession: SparkSession, exception: Exception): Seq[Row] = { if (dataMapProvider != null) { - dataMapProvider.cleanMeta() + CarbonDropDataMapCommand( + dataMapName, + true, + Some(TableIdentifier(mainTable.getTableName, Some(mainTable.getDatabaseName))), + forceDrop = false).run(sparkSession) } Seq.empty }
