fixes #3 handle parse exception
This commit is contained in:
parent
8d3f1c7803
commit
b44faa86fa
@ -34,6 +34,7 @@ import org.apache.hive.service.cli._
|
|||||||
import org.apache.hive.service.cli.thrift.TProtocolVersion
|
import org.apache.hive.service.cli.thrift.TProtocolVersion
|
||||||
import org.apache.spark.SparkUtils
|
import org.apache.spark.SparkUtils
|
||||||
import org.apache.spark.sql.{AnalysisException, DataFrame, Row, SparkSQLUtils}
|
import org.apache.spark.sql.{AnalysisException, DataFrame, Row, SparkSQLUtils}
|
||||||
|
import org.apache.spark.sql.catalyst.parser.ParseException
|
||||||
import org.apache.spark.sql.types._
|
import org.apache.spark.sql.types._
|
||||||
|
|
||||||
import yaooqinn.kyuubi.Logging
|
import yaooqinn.kyuubi.Logging
|
||||||
@ -381,20 +382,21 @@ class KyuubiOperation(session: KyuubiSession, statement: String) extends Logging
|
|||||||
} catch {
|
} catch {
|
||||||
case e: HiveSQLException =>
|
case e: HiveSQLException =>
|
||||||
if (!isClosedOrCanceled) {
|
if (!isClosedOrCanceled) {
|
||||||
setState(OperationState.ERROR)
|
|
||||||
onStatementError(statementId, e.getMessage, SparkUtils.exceptionString(e))
|
onStatementError(statementId, e.getMessage, SparkUtils.exceptionString(e))
|
||||||
throw e
|
throw e
|
||||||
}
|
}
|
||||||
case e: AnalysisException =>
|
case e: ParseException =>
|
||||||
error(s"Error executing query, currentState ${getStatus.getState}, ", e)
|
if (!isClosedOrCanceled) {
|
||||||
|
onStatementError(statementId, e.getMessage, SparkUtils.exceptionString(e))
|
||||||
|
throw new HiveSQLException(e.getMessage(), "ParseException", e)
|
||||||
|
}
|
||||||
|
case e: AnalysisException =>
|
||||||
if (!isClosedOrCanceled) {
|
if (!isClosedOrCanceled) {
|
||||||
setState(OperationState.ERROR)
|
|
||||||
onStatementError(statementId, e.getMessage, SparkUtils.exceptionString(e))
|
onStatementError(statementId, e.getMessage, SparkUtils.exceptionString(e))
|
||||||
throw new HiveSQLException(e.getMessage(), "AnalysisException", e)
|
throw new HiveSQLException(e.getMessage(), "AnalysisException", e)
|
||||||
}
|
}
|
||||||
|
|
||||||
case e: Throwable =>
|
case e: Throwable =>
|
||||||
error(s"Error executing query, currentState ${getStatus.getState}, ", e)
|
|
||||||
if (!isClosedOrCanceled) {
|
if (!isClosedOrCanceled) {
|
||||||
onStatementError(statementId, e.getMessage, SparkUtils.exceptionString(e))
|
onStatementError(statementId, e.getMessage, SparkUtils.exceptionString(e))
|
||||||
throw new HiveSQLException(e.toString)
|
throw new HiveSQLException(e.toString)
|
||||||
@ -408,6 +410,7 @@ class KyuubiOperation(session: KyuubiSession, statement: String) extends Logging
|
|||||||
|
|
||||||
private[this] def onStatementError(
|
private[this] def onStatementError(
|
||||||
id: String, errorMessage: String, errorTrace: String): Unit = {
|
id: String, errorMessage: String, errorTrace: String): Unit = {
|
||||||
|
error(s"Error executing query, currentState ${getStatus.getState}, $errorMessage")
|
||||||
setState(OperationState.ERROR)
|
setState(OperationState.ERROR)
|
||||||
KyuubiServerMonitor.getListener(session.getUserName)
|
KyuubiServerMonitor.getListener(session.getUserName)
|
||||||
.onStatementError(id, errorMessage, errorTrace)
|
.onStatementError(id, errorMessage, errorTrace)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user