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

w41ter pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 1cb2fd50e9b [fix](column) Math default value showed incorrectly 
(#47655)
1cb2fd50e9b is described below

commit 1cb2fd50e9b0d9210709c9727f346dc9ca066afe
Author: Uniqueyou <wangyix...@selectdb.com>
AuthorDate: Wed Feb 12 14:13:07 2025 +0800

    [fix](column) Math default value showed incorrectly (#47655)
    
    before
    ```
    mysql> CREATE TABLE IF NOT EXISTS t
        -> (
        ->     k TINYINT,
        ->     v1 DOUBLE NOT NULL DEFAULT E,
        ->     v2 INT
        -> )
        -> UNIQUE KEY(K)
        -> DISTRIBUTED BY HASH(k)
        -> PROPERTIES("replication_num" = "1");
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> show create table t\G
    *************************** 1. row ***************************
           Table: t
    Create Table: CREATE TABLE `t` (
      `k` tinyint NULL,
      `v1` double NOT NULL DEFAULT 2.718281828459045,
      `v2` int NULL
    ) ENGINE=OLAP
    UNIQUE KEY(`k`)
    DISTRIBUTED BY HASH(`k`) BUCKETS 10
    PROPERTIES (
    "replication_allocation" = "tag.location.default: 1"
    );
    1 row in set (0.00 sec)
    ```
    now
    ```
    mysql> show create table t\G
    *************************** 1. row ***************************
           Table: t
    Create Table: CREATE TABLE `t` (
      `k` tinyint NULL,
      `v1` double NOT NULL DEFAULT E,
      `v2` int NULL
    ) ENGINE=OLAP
    UNIQUE KEY(`k`)
    DISTRIBUTED BY HASH(`k`) BUCKETS 10
    PROPERTIES (
    "replication_allocation" = "tag.location.default: 1"
    );
    1 row in set (0.00 sec)
    ```
---
 .../main/java/org/apache/doris/catalog/Column.java |  5 +-
 .../plans/commands/ShowCreateTableCommandTest.java | 60 ++++++++++++++++++++++
 2 files changed, 63 insertions(+), 2 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
index fa7c7feb7f0..b2678558dff 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
@@ -997,14 +997,15 @@ public class Column implements GsonPostProcessable {
         if (isAutoInc) {
             sb.append(" AUTO_INCREMENT(").append(autoIncInitValue).append(")");
         }
-        if (defaultValue != null && getDataType() != PrimitiveType.HLL && 
getDataType() != PrimitiveType.BITMAP) {
+        if (defaultValue != null && getDataType() != PrimitiveType.HLL && 
getDataType() != PrimitiveType.BITMAP
+                && getDataType() != PrimitiveType.DOUBLE) {
             if (defaultValueExprDef != null) {
                 sb.append(" DEFAULT ").append(defaultValue).append("");
             } else {
                 sb.append(" DEFAULT \"").append(defaultValue).append("\"");
             }
         }
-        if (getDataType() == PrimitiveType.BITMAP && defaultValue != null) {
+        if ((getDataType() == PrimitiveType.BITMAP || getDataType() == 
PrimitiveType.DOUBLE) && defaultValue != null) {
             if (defaultValueExprDef != null) {
                 sb.append(" DEFAULT 
").append(defaultValueExprDef.getExprName()).append("");
             }
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/ShowCreateTableCommandTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/ShowCreateTableCommandTest.java
new file mode 100644
index 00000000000..c966cc24361
--- /dev/null
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/ShowCreateTableCommandTest.java
@@ -0,0 +1,60 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.nereids.trees.plans.commands;
+
+import org.apache.doris.nereids.parser.NereidsParser;
+import org.apache.doris.nereids.trees.plans.commands.info.TableNameInfo;
+import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
+import org.apache.doris.qe.ShowResultSet;
+import org.apache.doris.utframe.TestWithFeService;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class ShowCreateTableCommandTest extends TestWithFeService {
+    @Override
+    protected void runBeforeAll() throws Exception {
+        createDatabase("test");
+        connectContext.setDatabase("test");
+    }
+
+    @Override
+    public void createTable(String sql) throws Exception {
+        LogicalPlan plan = new NereidsParser().parseSingle(sql);
+        Assertions.assertTrue(plan instanceof CreateTableCommand);
+        ((CreateTableCommand) plan).run(connectContext, null);
+    }
+
+    @Test
+    public void testCreateTableDefaultValueMath() throws Exception {
+        // test
+        String sql = "create table if not exists test.tbl\n" + "(k1 int, k2 
double default E, k3 double default PI)\n"
+                + "distributed by hash(k1) buckets 1\n"
+                + "properties('replication_num' = '1'); ";
+        createTable(sql);
+        ShowCreateTableCommand showCreateTableCommand = new 
ShowCreateTableCommand(new TableNameInfo("test", "tbl"),
+                false);
+        ShowResultSet result = showCreateTableCommand.doRun(connectContext, 
null);
+        String resultStr = 
result.getResultRows().stream().flatMap(List::stream).collect(Collectors.joining("
 "));
+        Assertions.assertTrue(resultStr.contains("`k2` double NULL DEFAULT 
E"));
+        Assertions.assertTrue(resultStr.contains("`k3` double NULL DEFAULT 
PI"));
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to