You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2023/03/07 09:50:08 UTC

[linkis] branch dev-1.3.2 updated: code optimization (#4239)

This is an automated email from the ASF dual-hosted git repository.

peacewong pushed a commit to branch dev-1.3.2
in repository https://gitbox.apache.org/repos/asf/linkis.git


The following commit(s) were added to refs/heads/dev-1.3.2 by this push:
     new 0599dda8c code optimization (#4239)
0599dda8c is described below

commit 0599dda8c18f90f0bb1a270e5a550405fc8abbda
Author: huangKai-2323 <62...@users.noreply.github.com>
AuthorDate: Tue Mar 7 17:50:01 2023 +0800

    code optimization (#4239)
    
    * code optimization
---
 .../linkis/storage/excel/StorageExcelWriter.scala  | 26 +++++++++++++++++++---
 .../computation/client/SeatunnelOnceJobTest.java   |  4 ++--
 .../jobhistory/restful/api/QueryRestfulApi.java    |  2 +-
 3 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/excel/StorageExcelWriter.scala b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/excel/StorageExcelWriter.scala
index 2aff4af61..8d0f0bdde 100644
--- a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/excel/StorageExcelWriter.scala
+++ b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/excel/StorageExcelWriter.scala
@@ -27,6 +27,7 @@ import org.apache.poi.ss.usermodel._
 import org.apache.poi.xssf.streaming.{SXSSFCell, SXSSFSheet, SXSSFWorkbook}
 
 import java.io._
+import java.math.BigDecimal
 import java.util
 import java.util.Date
 
@@ -163,13 +164,19 @@ class StorageExcelWriter(
         case LongType => cell.setCellValue(elem.toString.toLong)
         case BigIntType => cell.setCellValue(elem.toString.toLong)
         case FloatType => cell.setCellValue(elem.toString.toFloat)
-        case DoubleType => cell.setCellValue(elem.toString.toDouble)
+        case DoubleType =>
+          doubleCheck(elem.toString)
+          cell.setCellValue(elem.toString.toDouble)
         case CharType => cell.setCellValue(DataType.valueToString(elem))
         case VarcharType => cell.setCellValue(DataType.valueToString(elem))
         case DateType => cell.setCellValue(getDate(elem))
         case TimestampType => cell.setCellValue(getDate(elem))
-        case DecimalType => cell.setCellValue(DataType.valueToString(elem).toDouble)
-        case BigDecimalType => cell.setCellValue(DataType.valueToString(elem).toDouble)
+        case DecimalType =>
+          doubleCheck(DataType.valueToString(elem))
+          cell.setCellValue(DataType.valueToString(elem).toDouble)
+        case BigDecimalType =>
+          doubleCheck(DataType.valueToString(elem))
+          cell.setCellValue(DataType.valueToString(elem).toDouble)
         case _ =>
           val value = DataType.valueToString(elem)
           cell.setCellValue(value)
@@ -189,6 +196,19 @@ class StorageExcelWriter(
     }
   }
 
+  /**
+   * Check whether the double exceeds the number of digits, which will affect the data accuracy
+   * @param elemValue
+   */
+  private def doubleCheck(elemValue: String): Unit = {
+    val value = new BigDecimal(elemValue).stripTrailingZeros
+    if ((value.precision - value.scale) > 15) {
+      throw new NumberFormatException(
+        s"Value ${elemValue} error : This data exceeds 15 significant digits."
+      );
+    }
+  }
+
   override def flush(): Unit = {
     getWorkBook.write(os)
     val content: Array[Byte] = os.toByteArray
diff --git a/linkis-computation-governance/linkis-client/linkis-computation-client/src/test/java/org/apache/linkis/computation/client/SeatunnelOnceJobTest.java b/linkis-computation-governance/linkis-client/linkis-computation-client/src/test/java/org/apache/linkis/computation/client/SeatunnelOnceJobTest.java
index d48120f57..fea472708 100644
--- a/linkis-computation-governance/linkis-client/linkis-computation-client/src/test/java/org/apache/linkis/computation/client/SeatunnelOnceJobTest.java
+++ b/linkis-computation-governance/linkis-client/linkis-computation-client/src/test/java/org/apache/linkis/computation/client/SeatunnelOnceJobTest.java
@@ -23,7 +23,7 @@ import org.apache.linkis.computation.client.utils.LabelKeyUtils;
 
 public class SeatunnelOnceJobTest {
   public static void main(String[] args) {
-    LinkisJobClient.config().setDefaultServerUrl("http://ip:9001");
+    LinkisJobClient.config().setDefaultServerUrl("http://127.0.0.1:9001");
     String code =
         "\n"
             + "env {\n"
@@ -57,7 +57,7 @@ public class SeatunnelOnceJobTest {
             .addLabel(LabelKeyUtils.ENGINE_CONN_MODE_LABEL_KEY(), "once")
             .addStartupParam(Configuration.IS_TEST_MODE().key(), true)
             .addExecuteUser("hadoop")
-            .addJobContent("runType", "sspark")
+            .addJobContent("runType", "spark")
             .addJobContent("code", code)
             .addJobContent("master", "local[4]")
             .addJobContent("deploy-mode", "client")
diff --git a/linkis-public-enhancements/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java b/linkis-public-enhancements/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
index a1c0d20e9..f627fb6b1 100644
--- a/linkis-public-enhancements/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
+++ b/linkis-public-enhancements/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
@@ -190,7 +190,7 @@ public class QueryRestfulApi {
     if (StringUtils.isEmpty(instance)) {
       instance = null;
     } else {
-      if (!QueryUtils.checkNameValid(instance)) {
+      if (!QueryUtils.checkInstanceNameValid(instance)) {
         return Message.error("Invalid instances : " + instance);
       }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org