diff --git a/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/schema/RowSet.scala b/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/schema/RowSet.scala index 5fe4cd43a..7ae080c0b 100644 --- a/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/schema/RowSet.scala +++ b/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/schema/RowSet.scala @@ -114,7 +114,7 @@ object RowSet { case REAL => val values = getOrSetAsNull[java.lang.Float](rows, ordinal, nulls, 0.toFloat) - .asScala.map(n => java.lang.Double.valueOf(n.toDouble)).asJava + .asScala.map(n => java.lang.Double.valueOf(n.toString)).asJava TColumn.doubleVal(new TDoubleColumn(values, nulls)) case DOUBLE => @@ -200,7 +200,10 @@ object RowSet { case REAL => val tDoubleValue = new TDoubleValue - if (row(ordinal) != null) tDoubleValue.setValue(row(ordinal).asInstanceOf[Float]) + if (row(ordinal) != null) { + val doubleValue = java.lang.Double.valueOf(row(ordinal).asInstanceOf[Float].toString) + tDoubleValue.setValue(doubleValue) + } TColumnValue.doubleVal(tDoubleValue) case DOUBLE => diff --git a/externals/kyuubi-trino-engine/src/test/scala/org/apache/kyuubi/engine/trino/schema/RowSetSuite.scala b/externals/kyuubi-trino-engine/src/test/scala/org/apache/kyuubi/engine/trino/schema/RowSetSuite.scala index 99b1f0ca3..d6187bbf8 100644 --- a/externals/kyuubi-trino-engine/src/test/scala/org/apache/kyuubi/engine/trino/schema/RowSetSuite.scala +++ b/externals/kyuubi-trino-engine/src/test/scala/org/apache/kyuubi/engine/trino/schema/RowSetSuite.scala @@ -182,7 +182,7 @@ class RowSetSuite extends KyuubiFunSuite { val floatCol = cols.next().getDoubleVal floatCol.getValues.asScala.zipWithIndex.foreach { case (b, 11) => assert(b === 0) - case (b, i) => assert(b === java.lang.Float.valueOf(s"$i.$i")) + case (b, i) => assert(b.toFloat === java.lang.Float.valueOf(s"$i.$i")) } val doubleCol = cols.next().getDoubleVal