carbondata-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pawanmalwal <...@git.apache.org>
Subject [GitHub] carbondata pull request #1472: [CARBONDATA-1618]Table comment support for al...
Date Wed, 08 Nov 2017 07:41:56 GMT
Github user pawanmalwal commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/1472#discussion_r149593267
  
    --- Diff: integration/spark2/src/main/scala/org/apache/spark/util/AlterTableUtil.scala
---
    @@ -317,4 +321,84 @@ object AlterTableUtil {
         }
       }
     
    +  /**
    +   * This method add/modify the table comments.
    +   *
    +   * @param tableIdentifier
    +   * @param properties
    +   * @param propKeys
    +   * @param set
    +   * @param sparkSession
    +   * @param sessionState
    +   */
    +  def modifyTableComment(tableIdentifier: TableIdentifier, properties: Map[String, String],
    +                         propKeys: Seq[String], set: Boolean)
    +                        (sparkSession: SparkSession, sessionState: CarbonSessionState):
Unit = {
    +    val tableName = tableIdentifier.table
    +    val dbName = tableIdentifier.database.getOrElse(sparkSession.catalog.currentDatabase)
    +    LOGGER.audit(s"Alter table comment request has been received for $dbName.$tableName")
    +    val locksToBeAcquired = List(LockUsage.METADATA_LOCK, LockUsage.COMPACTION_LOCK)
    +    var locks = List.empty[ICarbonLock]
    +    var timeStamp = 0L
    +    var newCols = Seq[org.apache.carbondata.core.metadata.schema.table.column.ColumnSchema]()
    +    var carbonTable: CarbonTable = null
    +    try {
    +      locks = AlterTableUtil
    +        .validateTableAndAcquireLock(dbName, tableName, locksToBeAcquired)(sparkSession)
    +      val metastore = CarbonEnv.getInstance(sparkSession).carbonMetastore
    +      carbonTable = metastore
    +        .lookupRelation(Some(dbName), tableName)(sparkSession).asInstanceOf[CarbonRelation]
    +        .tableMeta.carbonTable
    +      // get the latest carbon table
    +      // read the latest schema file
    +      val carbonTablePath = CarbonStorePath.getCarbonTablePath(carbonTable.getStorePath,
    +        carbonTable.getCarbonTableIdentifier)
    +      val thriftTableInfo: TableInfo = metastore.getThriftTableInfo(carbonTablePath)(sparkSession)
    +      val schemaConverter = new ThriftWrapperSchemaConverterImpl()
    +      val wrapperTableInfo = schemaConverter
    +        .fromExternalToWrapperTableInfo(thriftTableInfo,
    +          dbName,
    +          tableName,
    +          carbonTable.getStorePath)
    +      val schemaEvolutionEntry = new org.apache.carbondata.core.metadata.schema.SchemaEvolutionEntry
    +      schemaEvolutionEntry.setTimeStamp(timeStamp)
    +      val thriftTable = schemaConverter
    +        .fromWrapperToExternalTableInfo(wrapperTableInfo, dbName, tableName)
    +      val tblPropertiesMap: mutable.Map[String, String] =
    +        thriftTable.fact_table.getTableProperties.asScala
    +      if (set) {
    +        //       This overrides old properties and update the comment parameter of thriftTable
    +        //       with the newly added/modified comment since thriftTable also holds comment
as its
    +        //       direct property.
    +
    +        properties.foreach {
    +          x =>
    +            if (x._1.equalsIgnoreCase(CarbonCommonConstants.TABLE_COMMENT)) {
    +              tblPropertiesMap.put(x._1, x._2)
    +            }
    +        }
    +      } else {
    +        // This removes the comment parameter from thriftTable
    +        // since thriftTable also holds comment as its property.
    +        propKeys.foreach {
    +          x =>
    --- End diff --
    
    Done.


---

Mime
View raw message