aboutsummaryrefslogtreecommitdiff
path: root/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala
diff options
context:
space:
mode:
Diffstat (limited to 'sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala')
-rw-r--r--sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala19
1 files changed, 13 insertions, 6 deletions
diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala
index e555ebd623..aeabd6a158 100644
--- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala
+++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala
@@ -56,14 +56,11 @@ private[hive] class SparkExecuteStatementOperation(
private var statementId: String = _
private lazy val resultSchema: TableSchema = {
- if (result == null || result.queryExecution.analyzed.output.size == 0) {
+ if (result == null || result.schema.isEmpty) {
new TableSchema(Arrays.asList(new FieldSchema("Result", "string", "")))
} else {
- logInfo(s"Result Schema: ${result.queryExecution.analyzed.output}")
- val schema = result.queryExecution.analyzed.output.map { attr =>
- new FieldSchema(attr.name, attr.dataType.catalogString, "")
- }
- new TableSchema(schema.asJava)
+ logInfo(s"Result Schema: ${result.schema}")
+ SparkExecuteStatementOperation.getTableSchema(result.schema)
}
}
@@ -282,3 +279,13 @@ private[hive] class SparkExecuteStatementOperation(
}
}
}
+
+object SparkExecuteStatementOperation {
+ def getTableSchema(structType: StructType): TableSchema = {
+ val schema = structType.map { field =>
+ val attrTypeString = if (field.dataType == NullType) "void" else field.dataType.catalogString
+ new FieldSchema(field.name, attrTypeString, "")
+ }
+ new TableSchema(schema.asJava)
+ }
+}