You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ja...@apache.org on 2017/11/20 02:10:10 UTC
carbondata git commit: [CARBONDATA-1769] Change alterTableCompaction
to support transfer tabeInfo
Repository: carbondata
Updated Branches:
refs/heads/master e7f9422b9 -> 1693e0c58
[CARBONDATA-1769] Change alterTableCompaction to support transfer tabeInfo
Change alterTableCompaction to support transfer tabeInfo
This closes #1533
Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/1693e0c5
Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/1693e0c5
Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/1693e0c5
Branch: refs/heads/master
Commit: 1693e0c587f0505baeb52c5f845654a1336cf9b0
Parents: e7f9422
Author: xubo245 <60...@qq.com>
Authored: Sun Nov 19 20:06:00 2017 +0800
Committer: Jacky Li <ja...@qq.com>
Committed: Mon Nov 20 10:10:00 2017 +0800
----------------------------------------------------------------------
.../AlterTableCompactionCommand.scala | 47 ++++++++++++--------
.../sql/execution/strategy/DDLStrategy.scala | 2 +-
2 files changed, 29 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/carbondata/blob/1693e0c5/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/AlterTableCompactionCommand.scala
----------------------------------------------------------------------
diff --git a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/AlterTableCompactionCommand.scala b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/AlterTableCompactionCommand.scala
index 51275aa..9ff575b 100644
--- a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/AlterTableCompactionCommand.scala
+++ b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/AlterTableCompactionCommand.scala
@@ -26,6 +26,7 @@ import org.apache.spark.sql.hive.CarbonRelation
import org.apache.carbondata.common.logging.{LogService, LogServiceFactory}
import org.apache.carbondata.core.constants.CarbonCommonConstants
import org.apache.carbondata.core.locks.{CarbonLockFactory, LockUsage}
+import org.apache.carbondata.core.metadata.schema.table.{CarbonTable, TableInfo}
import org.apache.carbondata.core.mutate.CarbonUpdateUtil
import org.apache.carbondata.core.util.CarbonProperties
import org.apache.carbondata.processing.loading.model.{CarbonDataLoadSchema, CarbonLoadModel}
@@ -37,41 +38,47 @@ import org.apache.carbondata.spark.util.CommonUtil
* Command for the compaction in alter table command
*/
case class AlterTableCompactionCommand(
- alterTableModel: AlterTableModel)
+ alterTableModel: AlterTableModel,
+ tableInfoOp: Option[TableInfo] = None)
extends RunnableCommand with DataProcessCommand {
- private val LOGGER: LogService = LogServiceFactory.getLogService(this.getClass.getName)
-
override def run(sparkSession: SparkSession): Seq[Row] = {
processData(sparkSession)
}
override def processData(sparkSession: SparkSession): Seq[Row] = {
-
+ val LOGGER: LogService =
+ LogServiceFactory.getLogService(this.getClass.getName)
val tableName = alterTableModel.tableName.toLowerCase
val databaseName = alterTableModel.dbName.getOrElse(sparkSession.catalog.currentDatabase)
- val relation =
- CarbonEnv.getInstance(sparkSession).carbonMetastore
- .lookupRelation(Option(databaseName), tableName)(sparkSession)
- .asInstanceOf[CarbonRelation]
- if (relation == null) {
- sys.error(s"Table $databaseName.$tableName does not exist")
- }
- if (null == relation.carbonTable) {
- LOGGER.error(s"alter table failed. table not found: $databaseName.$tableName")
- sys.error(s"alter table failed. table not found: $databaseName.$tableName")
+
+ val table = if (tableInfoOp.isDefined) {
+ val tableInfo = tableInfoOp.get
+ // To DO: CarbonEnv.updateStorePath
+ CarbonTable.buildFromTableInfo(tableInfo)
+ } else {
+ val relation =
+ CarbonEnv.getInstance(sparkSession).carbonMetastore
+ .lookupRelation(Option(databaseName), tableName)(sparkSession)
+ .asInstanceOf[CarbonRelation]
+ if (relation == null) {
+ sys.error(s"Table $databaseName.$tableName does not exist")
+ }
+ if (null == relation.carbonTable) {
+ LOGGER.error(s"alter table failed. table not found: $databaseName.$tableName")
+ sys.error(s"alter table failed. table not found: $databaseName.$tableName")
+ }
+ relation.carbonTable
}
val carbonLoadModel = new CarbonLoadModel()
-
- val table = relation.carbonTable
carbonLoadModel.setTableName(table.getTableName)
val dataLoadSchema = new CarbonDataLoadSchema(table)
// Need to fill dimension relation
carbonLoadModel.setCarbonDataLoadSchema(dataLoadSchema)
- carbonLoadModel.setTableName(relation.carbonTable.getTableName)
- carbonLoadModel.setDatabaseName(relation.carbonTable.getDatabaseName)
- carbonLoadModel.setTablePath(relation.carbonTable.getTablePath)
+ carbonLoadModel.setTableName(table.getTableName)
+ carbonLoadModel.setDatabaseName(table.getDatabaseName)
+ carbonLoadModel.setTablePath(table.getTablePath)
var storeLocation = CarbonProperties.getInstance
.getProperty(CarbonCommonConstants.STORE_LOCATION_TEMP_PATH,
@@ -99,6 +106,8 @@ case class AlterTableCompactionCommand(
alterTableModel: AlterTableModel,
carbonLoadModel: CarbonLoadModel,
storeLocation: String): Unit = {
+ val LOGGER: LogService =
+ LogServiceFactory.getLogService(this.getClass.getName)
var compactionSize: Long = 0
var compactionType: CompactionType = CompactionType.MINOR_COMPACTION
if (alterTableModel.compactionType.equalsIgnoreCase("major")) {
http://git-wip-us.apache.org/repos/asf/carbondata/blob/1693e0c5/integration/spark2/src/main/scala/org/apache/spark/sql/execution/strategy/DDLStrategy.scala
----------------------------------------------------------------------
diff --git a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/strategy/DDLStrategy.scala b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/strategy/DDLStrategy.scala
index 4e75547..d0dca68 100644
--- a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/strategy/DDLStrategy.scala
+++ b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/strategy/DDLStrategy.scala
@@ -78,7 +78,7 @@ class DDLStrategy(sparkSession: SparkSession) extends SparkStrategy {
ExecutedCommandExec(createDb) :: Nil
case drop@DropDatabaseCommand(dbName, ifExists, isCascade) =>
ExecutedCommandExec(CarbonDropDatabaseCommand(drop)) :: Nil
- case alterTable@AlterTableCompactionCommand(altertablemodel) =>
+ case alterTable@AlterTableCompactionCommand(altertablemodel, _) =>
val isCarbonTable = CarbonEnv.getInstance(sparkSession).carbonMetastore
.tableExists(TableIdentifier(altertablemodel.tableName,
altertablemodel.dbName))(sparkSession)