Repository: carbondata
Updated Branches:
  refs/heads/master 5f3264799 -> 668bfdd50


[CARBONDATA-2378][CarbonSearch] Support enable/disable search mode in 
ThriftServer

This closes #2208


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

Branch: refs/heads/master
Commit: 668bfdd5028c87ad36eea48e2babc10134d17dc0
Parents: 5f32647
Author: Jacky Li <jacky.li...@qq.com>
Authored: Sun Apr 22 22:32:57 2018 +0800
Committer: QiangCai <qiang...@qq.com>
Committed: Mon Apr 23 16:25:54 2018 +0800

----------------------------------------------------------------------
 .../spark/testsuite/detailquery/SearchModeTestCase.scala |  9 ++++++++-
 .../main/scala/org/apache/spark/sql/CarbonSession.scala  |  2 +-
 .../sql/hive/execution/command/CarbonHiveCommands.scala  | 11 ++++++++++-
 3 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/668bfdd5/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/detailquery/SearchModeTestCase.scala
----------------------------------------------------------------------
diff --git 
a/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/detailquery/SearchModeTestCase.scala
 
b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/detailquery/SearchModeTestCase.scala
index b55fa75..0e0628e 100644
--- 
a/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/detailquery/SearchModeTestCase.scala
+++ 
b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/detailquery/SearchModeTestCase.scala
@@ -99,4 +99,11 @@ class SearchModeTestCase extends QueryTest with 
BeforeAndAfterAll {
     checkSearchAnswer("select city, count(*) from main group by city")
   }
 
-}
\ No newline at end of file
+  test("set search mode") {
+    sql("set carbon.search.enabled = true")
+    
assert(sqlContext.sparkSession.asInstanceOf[CarbonSession].isSearchModeEnabled)
+    checkSearchAnswer("select id from main where id = '3' limit 10")
+    sql("set carbon.search.enabled = false")
+    
assert(!sqlContext.sparkSession.asInstanceOf[CarbonSession].isSearchModeEnabled)
+  }
+}

http://git-wip-us.apache.org/repos/asf/carbondata/blob/668bfdd5/integration/spark2/src/main/scala/org/apache/spark/sql/CarbonSession.scala
----------------------------------------------------------------------
diff --git 
a/integration/spark2/src/main/scala/org/apache/spark/sql/CarbonSession.scala 
b/integration/spark2/src/main/scala/org/apache/spark/sql/CarbonSession.scala
index c484a55..7da231a 100644
--- a/integration/spark2/src/main/scala/org/apache/spark/sql/CarbonSession.scala
+++ b/integration/spark2/src/main/scala/org/apache/spark/sql/CarbonSession.scala
@@ -110,7 +110,7 @@ class CarbonSession(@transient val sc: SparkContext,
     )
   }
 
-  private def isSearchModeEnabled = carbonStore != null
+  def isSearchModeEnabled: Boolean = carbonStore != null
 
   /**
    * Run SparkSQL directly

http://git-wip-us.apache.org/repos/asf/carbondata/blob/668bfdd5/integration/spark2/src/main/scala/org/apache/spark/sql/hive/execution/command/CarbonHiveCommands.scala
----------------------------------------------------------------------
diff --git 
a/integration/spark2/src/main/scala/org/apache/spark/sql/hive/execution/command/CarbonHiveCommands.scala
 
b/integration/spark2/src/main/scala/org/apache/spark/sql/hive/execution/command/CarbonHiveCommands.scala
index 80bcac2..10230a3 100644
--- 
a/integration/spark2/src/main/scala/org/apache/spark/sql/hive/execution/command/CarbonHiveCommands.scala
+++ 
b/integration/spark2/src/main/scala/org/apache/spark/sql/hive/execution/command/CarbonHiveCommands.scala
@@ -17,7 +17,7 @@
 
 package org.apache.spark.sql.hive.execution.command
 
-import org.apache.spark.sql.{CarbonEnv, Row, SparkSession}
+import org.apache.spark.sql.{CarbonEnv, CarbonSession, Row, SparkSession}
 import org.apache.spark.sql.catalyst.TableIdentifier
 import org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException
 import org.apache.spark.sql.catalyst.expressions.Attribute
@@ -72,6 +72,15 @@ case class CarbonSetCommand(command: SetCommand)
     command.kv match {
       case Some((key, Some(value))) =>
         CarbonSetCommand.validateAndSetValue(sessionParms, key, value)
+
+        // handle search mode start/stop for ThriftServer usage
+        if 
(key.equalsIgnoreCase(CarbonCommonConstants.CARBON_SEARCH_MODE_ENABLE)) {
+          if (value.equalsIgnoreCase("true")) {
+            sparkSession.asInstanceOf[CarbonSession].startSearchMode()
+          } else {
+            sparkSession.asInstanceOf[CarbonSession].stopSearchMode()
+          }
+        }
       case _ =>
 
     }

Reply via email to