@Override
public List<Task<? extends Serializable>> handle(Context context) throws SemanticException {
AlterTableMessage msg = deserializer.getAlterTableMessage(context.dmd.getPayload());
String actualDbName = context.isDbNameEmpty() ? msg.getDB() : context.dbName;
String actualTblName = context.isTableNameEmpty() ? msg.getTable() : context.tableName;
TruncateTableDesc truncateTableDesc = new TruncateTableDesc(
actualDbName + "." + actualTblName,
null, context.eventOnlyReplicationSpec());
truncateTableDesc.setWriteId(msg.getWriteId());
Task<DDLWork> truncateTableTask = TaskFactory.get(
new DDLWork(readEntitySet, writeEntitySet, truncateTableDesc), context.hiveConf);
context.log.debug("Added truncate tbl task : {}:{}:{}", truncateTableTask.getId(),
truncateTableDesc.getTableName(), truncateTableDesc.getWriteId());
updatedMetadata.set(context.dmd.getEventTo().toString(), actualDbName, actualTblName, null);
try {
return ReplUtils.addOpenTxnTaskForMigration(actualDbName, actualTblName,
context.hiveConf, updatedMetadata, truncateTableTask, msg.getTableObjBefore());
} catch (Exception e) {
throw new SemanticException(e.getMessage());
}
}
}