Github user manishgupta88 commented on a diff in the pull request: https://github.com/apache/carbondata/pull/1643#discussion_r156416528 --- Diff: integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/CarbonAlterTableCompactionCommand.scala --- @@ -199,22 +199,34 @@ case class CarbonAlterTableCompactionCommand( carbonTable.getAbsoluteTableIdentifier).asScala, carbonLoadModel.getTablePath, carbonTable, true) - lock.unlock() - return + + // trigger event for merge index + val operationContext = new OperationContext + val alterTableCompactionPreEvent: AlterTableCompactionPreEvent = + AlterTableCompactionPreEvent(sqlContext.sparkSession, + carbonTable, + null, + "") + OperationListenerBus.getInstance + .fireEvent(alterTableCompactionPreEvent, operationContext) + + } else { + CarbonDataRDDFactory.startCompactionThreads( + sqlContext, + carbonLoadModel, + storeLocation, + compactionModel, + lock, + operationContext + ) } - CarbonDataRDDFactory.startCompactionThreads( - sqlContext, - carbonLoadModel, - storeLocation, - compactionModel, - lock, - operationContext - ) } catch { case e: Exception => LOGGER.error(s"Exception in start compaction thread. ${ e.getMessage }") lock.unlock() --- End diff -- Remove lock.unlock() from catch block
---