From dfc987e03ddfc95438a4917af777304052d9f1d4 Mon Sep 17 00:00:00 2001 From: senmiaoliu Date: Sat, 13 Jan 2024 10:59:29 +0800 Subject: [PATCH] trino engine add default result schema --- .../org/apache/kyuubi/engine/trino/TrinoStatement.scala | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/TrinoStatement.scala b/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/TrinoStatement.scala index 2508f326e3d..65a0a3cde9a 100644 --- a/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/TrinoStatement.scala +++ b/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/TrinoStatement.scala @@ -25,6 +25,7 @@ import scala.concurrent.ExecutionContext import com.google.common.base.Verify import io.trino.client.ClientSession +import io.trino.client.ClientTypeSignature import io.trino.client.Column import io.trino.client.StatementClient import io.trino.client.StatementClientFactory @@ -46,6 +47,9 @@ class TrinoStatement( sql: String, operationLog: Option[OperationLog]) extends Logging { + private val defaultSchema: List[Column] = + List(new Column("Result", "VARCHAR", new ClientTypeSignature("VARCHAR"))) + private lazy val trino = StatementClientFactory .newStatementClient(trinoContext.httpClient, trinoContext.clientSession.get, sql) @@ -68,6 +72,9 @@ class TrinoStatement( val columns = results.getColumns() if (columns != null) { info(s"Execute with Trino query id: ${results.getId}") + if (columns.isEmpty) { + return defaultSchema + } return columns.asScala.toList } trino.advance()