You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ch...@apache.org on 2017/09/02 02:53:01 UTC

carbondata git commit: [CARBONDATA-1441]resolved the bug for schema not reflect back in hive

Repository: carbondata
Updated Branches:
  refs/heads/master baca6f925 -> e2e6076e9


[CARBONDATA-1441]resolved the bug for schema not reflect back in hive

when you alter table in carbondata that schema is not reflect back in hive

This closes #1312


Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/e2e6076e
Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/e2e6076e
Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/e2e6076e

Branch: refs/heads/master
Commit: e2e6076e9eeeaceb5a5106f4db0dc5d575d18c6c
Parents: baca6f9
Author: anubhav100 <an...@knoldus.in>
Authored: Thu Aug 31 18:30:08 2017 +0530
Committer: chenliang613 <ch...@apache.org>
Committed: Sat Sep 2 10:52:50 2017 +0800

----------------------------------------------------------------------
 .../hive/CarbonHiveMetastoreListener.scala      | 22 +++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/e2e6076e/integration/hive/src/main/scala/org/apache/carbondata/hive/CarbonHiveMetastoreListener.scala
----------------------------------------------------------------------
diff --git a/integration/hive/src/main/scala/org/apache/carbondata/hive/CarbonHiveMetastoreListener.scala b/integration/hive/src/main/scala/org/apache/carbondata/hive/CarbonHiveMetastoreListener.scala
index fd686ae..f7ee0ee 100644
--- a/integration/hive/src/main/scala/org/apache/carbondata/hive/CarbonHiveMetastoreListener.scala
+++ b/integration/hive/src/main/scala/org/apache/carbondata/hive/CarbonHiveMetastoreListener.scala
@@ -58,8 +58,28 @@ class CarbonHiveMetastoreListener(conf: Configuration) extends MetaStorePreEvent
             }
           }
         }
+      case ALTER_TABLE =>
+        val table = preEventContext.asInstanceOf[PreAlterTableEvent].getNewTable
+        val tableProps = table.getParameters
+        if (tableProps != null &&
+            tableProps.get("spark.sql.sources.provider") == "org.apache.spark.sql.CarbonSource") {
+          val numSchemaParts = tableProps.get("spark.sql.sources.schema.numParts")
+          if (numSchemaParts != null && !numSchemaParts.isEmpty) {
+            val schemaParts = (0 until numSchemaParts.toInt).map { index =>
+              val schemaPart = tableProps.get(s"spark.sql.sources.schema.part.$index")
+              if (schemaPart == null) {
+                throw new MetaException(s"spark.sql.sources.schema.part.$index is missing!")
+              }
+              schemaPart
+            }
+            // Stick all schemaParts back to a single schema string.
+            val schema = DataType.fromJson(schemaParts.mkString).asInstanceOf[StructType]
+            val hiveSchema = schema.map(toHiveColumn).asJava
+            table.getSd.setCols(hiveSchema)
+          }
+        }
       case _ =>
-        // do nothing
+      // do nothing
     }
   }