Repository: spark
Updated Branches:
  refs/heads/master d4a5e6f71 -> 5889880fb


[SPARK-11592][SQL] flush spark-sql command line history to history file

Currently, `spark-sql` would not flush command history when exiting.

Author: Daoyuan Wang <daoyuan.w...@intel.com>

Closes #9563 from adrian-wang/jline.


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

Branch: refs/heads/master
Commit: 5889880fbe9628681042036892ef7ebd4f0857b4
Parents: d4a5e6f
Author: Daoyuan Wang <daoyuan.w...@intel.com>
Authored: Tue Nov 24 23:32:05 2015 +0800
Committer: Cheng Lian <l...@databricks.com>
Committed: Tue Nov 24 23:32:05 2015 +0800

----------------------------------------------------------------------
 .../sql/hive/thriftserver/SparkSQLCLIDriver.scala   | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/5889880f/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkSQLCLIDriver.scala
----------------------------------------------------------------------
diff --git 
a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkSQLCLIDriver.scala
 
b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkSQLCLIDriver.scala
index 6419002..4b928e6 100644
--- 
a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkSQLCLIDriver.scala
+++ 
b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkSQLCLIDriver.scala
@@ -194,6 +194,22 @@ private[hive] object SparkSQLCLIDriver extends Logging {
         logWarning(e.getMessage)
     }
 
+    // add shutdown hook to flush the history to history file
+    Runtime.getRuntime.addShutdownHook(new Thread(new Runnable() {
+      override def run() = {
+        reader.getHistory match {
+          case h: FileHistory =>
+            try {
+              h.flush()
+            } catch {
+              case e: IOException =>
+                logWarning("WARNING: Failed to write command history file: " + 
e.getMessage)
+            }
+          case _ =>
+        }
+      }
+    }))
+
     // TODO: missing
 /*
     val clientTransportTSocketField = 
classOf[CliSessionState].getDeclaredField("transport")


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to