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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 0ae1b9c70a1 [chore](remove code) Remove dragonbox related (#34528)
0ae1b9c70a1 is described below

commit 0ae1b9c70a11669562f187569470eccdb09b1a8d
Author: zhiqiang <seuhezhiqi...@163.com>
AuthorDate: Fri May 10 11:41:43 2024 +0800

    [chore](remove code) Remove dragonbox related (#34528)
    
    * Revert "[refactor](mysql result format) use new serde framework to tuple 
convert (#25006)"
    
    This reverts commit e5ef0aa6d439c3f9b1f1fe5bc89c9ea6a71d4019.
    
    * run buildall
    
    * MORE
    
    * FIX
---
 be/cmake/thirdparty.cmake                          |  2 -
 be/src/gutil/CMakeLists.txt                        |  2 -
 be/src/gutil/strings/numbers.cc                    | 16 ++----
 be/src/gutil/strings/numbers.h                     |  4 +-
 be/src/runtime/runtime_state.h                     |  5 --
 be/src/util/mysql_row_buffer.cpp                   | 10 ++--
 be/src/util/mysql_row_buffer.h                     |  4 --
 be/src/vec/sink/vmysql_result_writer.cpp           |  3 --
 be/src/vec/sink/vmysql_result_writer.h             |  2 -
 be/test/util/mysql_row_buffer_test.cpp             | 58 ----------------------
 .../java/org/apache/doris/qe/SessionVariable.java  |  8 ---
 gensrc/thrift/PaloInternalService.thrift           |  2 +-
 .../mysql_tupleconvert_p0/mysql_tupleconvert.out   | 10 ----
 .../mysql_tupleconvert.groovy                      | 40 ---------------
 thirdparty/build-thirdparty.sh                     | 16 ------
 thirdparty/vars.sh                                 |  7 ---
 16 files changed, 12 insertions(+), 177 deletions(-)

diff --git a/be/cmake/thirdparty.cmake b/be/cmake/thirdparty.cmake
index e9fbdabee8b..78f28fe72dc 100644
--- a/be/cmake/thirdparty.cmake
+++ b/be/cmake/thirdparty.cmake
@@ -150,9 +150,7 @@ add_thirdparty(krb5)
 add_thirdparty(com_err)
 add_thirdparty(k5crypto)
 add_thirdparty(gssapi_krb5)
-add_thirdparty(dragonbox_to_chars LIB64)
 add_thirdparty(streamvbyte LIB64)
-target_include_directories(dragonbox_to_chars INTERFACE 
"${THIRDPARTY_DIR}/include/dragonbox-1.1.3")
 
 if (OS_MACOSX)
     add_thirdparty(bfd)
diff --git a/be/src/gutil/CMakeLists.txt b/be/src/gutil/CMakeLists.txt
index 12c2330884f..bac9aec3037 100644
--- a/be/src/gutil/CMakeLists.txt
+++ b/be/src/gutil/CMakeLists.txt
@@ -57,8 +57,6 @@ add_library(Gutil STATIC ${SOURCE_FILES})
 
 set_target_properties(Gutil PROPERTIES COMPILE_FLAGS "-funsigned-char 
-Wno-deprecated")
 target_compile_options(Gutil PRIVATE -Wno-char-subscripts 
-Wno-implicit-fallthrough)
-target_link_libraries(Gutil PRIVATE dragonbox_to_chars)
-
 # target_link_libraries(Gutil glog protobuf rt)
 
 #set(GUTIL_LIBS
diff --git a/be/src/gutil/strings/numbers.cc b/be/src/gutil/strings/numbers.cc
index 2f0d5082396..d6b7295f413 100644
--- a/be/src/gutil/strings/numbers.cc
+++ b/be/src/gutil/strings/numbers.cc
@@ -28,7 +28,7 @@ using std::string;
 #include <fmt/format.h>
 
 #include "common/logging.h"
-#include "dragonbox/dragonbox_to_chars.h"
+
 #include "gutil/gscoped_ptr.h"
 #include "gutil/int128.h"
 #include "gutil/integral_types.h"
@@ -1276,21 +1276,13 @@ int FloatToBuffer(float value, int width, char* buffer) 
{
     return snprintf_result;
 }
 
-int FastDoubleToBuffer(double value, char* buffer, bool faster_float_convert) {
-    if (faster_float_convert) {
-        return jkj::dragonbox::to_chars_n(value, buffer) - buffer;
-    }
-
-    auto* end = fmt::format_to(buffer, FMT_COMPILE("{}"), value);
+int FastDoubleToBuffer(double value, char* buffer) {
+    auto end = fmt::format_to(buffer, FMT_COMPILE("{}"), value);
     *end = '\0';
     return end - buffer;
 }
 
-int FastFloatToBuffer(float value, char* buffer, bool faster_float_convert) {
-    if (faster_float_convert) {
-        return jkj::dragonbox::to_chars_n(value, buffer) - buffer;
-    }
-
+int FastFloatToBuffer(float value, char* buffer) {
     auto* end = fmt::format_to(buffer, FMT_COMPILE("{}"), value);
     *end = '\0';
     return end - buffer;
diff --git a/be/src/gutil/strings/numbers.h b/be/src/gutil/strings/numbers.h
index f47982d75e5..291634133c4 100644
--- a/be/src/gutil/strings/numbers.h
+++ b/be/src/gutil/strings/numbers.h
@@ -443,8 +443,8 @@ int FloatToBuffer(float i, int width, char* buffer);
 char* DoubleToBuffer(double i, char* buffer);
 char* FloatToBuffer(float i, char* buffer);
 
-int FastDoubleToBuffer(double i, char* buffer, bool faster_float_convert = 
false);
-int FastFloatToBuffer(float i, char* buffer, bool faster_float_convert = 
false);
+int FastDoubleToBuffer(double i, char* buffer);
+int FastFloatToBuffer(float i, char* buffer);
 // In practice, doubles should never need more than 24 bytes and floats
 // should never need more than 14 (including null terminators), but we
 // overestimate to be safe.
diff --git a/be/src/runtime/runtime_state.h b/be/src/runtime/runtime_state.h
index 30402630463..abef8615b1e 100644
--- a/be/src/runtime/runtime_state.h
+++ b/be/src/runtime/runtime_state.h
@@ -182,11 +182,6 @@ public:
         return _query_options.__isset.mysql_row_binary_format &&
                _query_options.mysql_row_binary_format;
     }
-
-    bool enable_faster_float_convert() const {
-        return _query_options.__isset.faster_float_convert && 
_query_options.faster_float_convert;
-    }
-
     Status query_status();
 
     // Appends error to the _error_log if there is space
diff --git a/be/src/util/mysql_row_buffer.cpp b/be/src/util/mysql_row_buffer.cpp
index b7b4a774a35..a15fa37a0f3 100644
--- a/be/src/util/mysql_row_buffer.cpp
+++ b/be/src/util/mysql_row_buffer.cpp
@@ -170,12 +170,12 @@ static char* add_largeint(int128_t data, char* pos, bool 
dynamic_mode) {
 }
 
 template <typename T>
-char* add_float(T data, char* pos, bool dynamic_mode, bool 
faster_float_convert = false) {
+char* add_float(T data, char* pos, bool dynamic_mode) {
     int length = 0;
     if constexpr (std::is_same_v<T, float>) {
-        length = FastFloatToBuffer(data, pos + !dynamic_mode, 
faster_float_convert);
+        length = FastFloatToBuffer(data, pos + !dynamic_mode);
     } else if constexpr (std::is_same_v<T, double>) {
-        length = FastDoubleToBuffer(data, pos + !dynamic_mode, 
faster_float_convert);
+        length = FastDoubleToBuffer(data, pos + !dynamic_mode);
     }
     if (!dynamic_mode) {
         int1store(pos++, length);
@@ -335,7 +335,7 @@ int MysqlRowBuffer<is_binary_format>::push_float(float 
data) {
     // 1 for string trail, 1 for length, 1 for sign, other for digits
     reserve(3 + MAX_FLOAT_STR_LENGTH);
 
-    _pos = add_float(data, _pos, _dynamic_mode, _faster_float_convert);
+    _pos = add_float(data, _pos, _dynamic_mode);
     return 0;
 }
 
@@ -349,7 +349,7 @@ int MysqlRowBuffer<is_binary_format>::push_double(double 
data) {
     }
     // 1 for string trail, 1 for length, 1 for sign, other for digits
     reserve(3 + MAX_DOUBLE_STR_LENGTH);
-    _pos = add_float(data, _pos, _dynamic_mode, _faster_float_convert);
+    _pos = add_float(data, _pos, _dynamic_mode);
     return 0;
 }
 
diff --git a/be/src/util/mysql_row_buffer.h b/be/src/util/mysql_row_buffer.h
index 69f84782df9..6f12fda1ecb 100644
--- a/be/src/util/mysql_row_buffer.h
+++ b/be/src/util/mysql_row_buffer.h
@@ -128,8 +128,6 @@ public:
      */
     void close_dynamic_mode();
 
-    void set_faster_float_convert(bool faster) { _faster_float_convert = 
faster; }
-
 private:
     int reserve(int64_t size);
 
@@ -148,8 +146,6 @@ private:
     uint64_t _len_pos;
     uint32_t _field_pos = 0;
     uint32_t _field_count = 0;
-
-    bool _faster_float_convert = false;
 };
 
 } // namespace doris
diff --git a/be/src/vec/sink/vmysql_result_writer.cpp 
b/be/src/vec/sink/vmysql_result_writer.cpp
index 41f0682b1c3..68c777ab38b 100644
--- a/be/src/vec/sink/vmysql_result_writer.cpp
+++ b/be/src/vec/sink/vmysql_result_writer.cpp
@@ -89,8 +89,6 @@ Status 
VMysqlResultWriter<is_binary_format>::init(RuntimeState* state) {
     }
     set_output_object_data(state->return_object_data_as_binary());
     _is_dry_run = state->query_options().dry_run_query;
-    _enable_faster_float_convert = state->enable_faster_float_convert();
-
     return Status::OK();
 }
 
@@ -127,7 +125,6 @@ Status VMysqlResultWriter<is_binary_format>::write(Block& 
input_block) {
     {
         SCOPED_TIMER(_convert_tuple_timer);
         MysqlRowBuffer<is_binary_format> row_buffer;
-        row_buffer.set_faster_float_convert(_enable_faster_float_convert);
         if constexpr (is_binary_format) {
             row_buffer.start_binary_row(_output_vexpr_ctxs.size());
         }
diff --git a/be/src/vec/sink/vmysql_result_writer.h 
b/be/src/vec/sink/vmysql_result_writer.h
index 8227d09dcc1..0c63a41dd3d 100644
--- a/be/src/vec/sink/vmysql_result_writer.h
+++ b/be/src/vec/sink/vmysql_result_writer.h
@@ -89,8 +89,6 @@ private:
     bool _is_dry_run = false;
 
     uint64_t _bytes_sent = 0;
-
-    bool _enable_faster_float_convert = false;
 };
 } // namespace vectorized
 } // namespace doris
diff --git a/be/test/util/mysql_row_buffer_test.cpp 
b/be/test/util/mysql_row_buffer_test.cpp
index 3e2380b6c11..cfe012fdcd5 100644
--- a/be/test/util/mysql_row_buffer_test.cpp
+++ b/be/test/util/mysql_row_buffer_test.cpp
@@ -118,62 +118,4 @@ TEST(MysqlRowBufferTest, dynamic_mode) {
     EXPECT_EQ(0, strncmp(buf + 43, "test", 4));
 }
 
-TEST(MysqlRowBufferTest /*unused*/, faster_float_convert /*unused*/) {
-    MysqlRowBuffer mrb;
-    mrb.set_faster_float_convert(true);
-
-    mrb.push_float(0);
-    mrb.push_float(1.0);
-    mrb.push_float(-1.0);
-    mrb.push_float(56.45);
-    mrb.push_double(10.12);
-
-    const char* buf = mrb.buf();
-
-    // mem: size-data-size-data
-    // 3-'0E0'-3-'1E0'-4-'-1E0'-7-'5.645E1'-7-'1.012E1'
-    // 1b-3b---1b-3b---1b-4b----1b-7b-------1b-7b------
-    // 0  1    4  5    8  9     13 14       21 22
-
-    EXPECT_EQ(29, mrb.length());
-
-    EXPECT_EQ(3, *((int8_t*)(buf + 0)));
-    EXPECT_EQ(0, strncmp(buf + 1, "0E0", 3));
-
-    EXPECT_EQ(3, *((int8_t*)(buf + 4)));
-    EXPECT_EQ(0, strncmp(buf + 5, "1E0", 3));
-
-    EXPECT_EQ(4, *((int8_t*)(buf + 8)));
-    EXPECT_EQ(0, strncmp(buf + 9, "-1E0", 4));
-
-    EXPECT_EQ(7, *((int8_t*)(buf + 13)));
-    EXPECT_EQ(0, strncmp(buf + 14, "5.645E1", 7));
-
-    EXPECT_EQ(7, *((int8_t*)(buf + 21)));
-    EXPECT_EQ(0, strncmp(buf + 22, "1.012E1", 7));
-}
-
-TEST(MysqlRowBufferTest /*unused*/, faster_float_convert_dynamic /*unused*/) {
-    MysqlRowBuffer mrb;
-    mrb.set_faster_float_convert(true);
-    mrb.open_dynamic_mode();
-
-    mrb.push_float(0);
-    mrb.push_float(1.0);
-    mrb.push_float(-1.0);
-    mrb.push_float(56.45);
-    mrb.push_double(10.12);
-
-    const char* buf = mrb.buf();
-
-    EXPECT_EQ(33, mrb.length());
-    EXPECT_EQ(254, *((uint8_t*)(buf)));
-
-    EXPECT_EQ(0, strncmp(buf + 9, "0E0", 3));
-    EXPECT_EQ(0, strncmp(buf + 12, "1E0", 3));
-    EXPECT_EQ(0, strncmp(buf + 15, "-1E0", 4));
-    EXPECT_EQ(0, strncmp(buf + 19, "5.645E1", 7));
-    EXPECT_EQ(0, strncmp(buf + 26, "1.012E1", 7));
-}
-
 } // namespace doris
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
index eab4c0f7608..cfa39932491 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
@@ -477,8 +477,6 @@ public class SessionVariable implements Serializable, 
Writable {
 
     public static final String AUTO_ANALYZE_TABLE_WIDTH_THRESHOLD = 
"auto_analyze_table_width_threshold";
 
-    public static final String FASTER_FLOAT_CONVERT = "faster_float_convert";
-
     public static final String ENABLE_DECIMAL256 = "enable_decimal256";
 
     public static final String STATS_INSERT_MERGE_ITEM_COUNT = 
"stats_insert_merge_item_count";
@@ -1560,10 +1558,6 @@ public class SessionVariable implements Serializable, 
Writable {
             flag = VariableMgr.GLOBAL)
     public String autoAnalyzeEndTime = "23:59:59";
 
-    @VariableMgr.VarAttr(name = FASTER_FLOAT_CONVERT,
-            description = {"是否启用更快的浮点数转换算法,注意会影响输出格式", "Set true to enable 
faster float pointer number convert"})
-    public boolean fasterFloatConvert = false;
-
     @VariableMgr.VarAttr(name = IGNORE_RUNTIME_FILTER_IDS,
             description = {"在IGNORE_RUNTIME_FILTER_IDS列表中的runtime 
filter将不会被生成",
                     "the runtime filter id in IGNORE_RUNTIME_FILTER_IDS list 
will not be generated"})
@@ -3181,8 +3175,6 @@ public class SessionVariable implements Serializable, 
Writable {
         
tResult.setInvertedIndexConjunctionOptThreshold(invertedIndexConjunctionOptThreshold);
         tResult.setInvertedIndexMaxExpansions(invertedIndexMaxExpansions);
 
-        tResult.setFasterFloatConvert(fasterFloatConvert);
-
         tResult.setEnableDecimal256(enableNereidsPlanner && enableDecimal256);
 
         tResult.setSkipMissingVersion(skipMissingVersion);
diff --git a/gensrc/thrift/PaloInternalService.thrift 
b/gensrc/thrift/PaloInternalService.thrift
index 2f7886e10c2..97a50dae06c 100644
--- a/gensrc/thrift/PaloInternalService.thrift
+++ b/gensrc/thrift/PaloInternalService.thrift
@@ -248,7 +248,7 @@ struct TQueryOptions {
   85: optional bool enable_page_cache = false;
   86: optional i32 analyze_timeout = 43200;
 
-  87: optional bool faster_float_convert = false;
+  87: optional bool faster_float_convert = false; // deprecated
 
   88: optional bool enable_decimal256 = false;
 
diff --git a/regression-test/data/mysql_tupleconvert_p0/mysql_tupleconvert.out 
b/regression-test/data/mysql_tupleconvert_p0/mysql_tupleconvert.out
deleted file mode 100644
index c27a9d00b53..00000000000
--- a/regression-test/data/mysql_tupleconvert_p0/mysql_tupleconvert.out
+++ /dev/null
@@ -1,10 +0,0 @@
--- This file is automatically generated. You should know what you did if you 
want to edit this
--- !select --
-1      0.33    3.1415925       [0.33, 0.67]    [3.1415926, 0.878787878]
-
--- !select --
-1      0.33    3.1415925       [3.3E-1, 6.7E-1]        [3.1415926E0, 
8.78787878E-1]
-
--- !select --
-1      0.33    3.1415925       [0.33, 0.67]    [3.1415926, 0.878787878]
-2      0.33    3.1415925       [0.33, 0.67]    [3.1415926, 0.878787878]
diff --git 
a/regression-test/suites/mysql_tupleconvert_p0/mysql_tupleconvert.groovy 
b/regression-test/suites/mysql_tupleconvert_p0/mysql_tupleconvert.groovy
deleted file mode 100644
index 51e47cfd243..00000000000
--- a/regression-test/suites/mysql_tupleconvert_p0/mysql_tupleconvert.groovy
+++ /dev/null
@@ -1,40 +0,0 @@
-// 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.
-
-suite("mysql_tuple_convert_test") {
-    
-    testTable = "doule_faster_convert_test"
-    sql "DROP TABLE IF EXISTS ${testTable}"
-    sql """
-        CREATE TABLE IF NOT EXISTS ${testTable} (
-            `col_0` INT,
-            `col_1` DOUBLE,
-            `col_2` FLOAT,
-            `col_3` ARRAY<FLOAT>,
-            `col_4` ARRAY<DOUBLE>)
-        ENGINE=OLAP DUPLICATE KEY(`col_0`) DISTRIBUTED BY HASH(`col_0`) 
BUCKETS 1
-        PROPERTIES("replication_num" = "1");
-    """
-    sql """INSERT INTO ${testTable} VALUES (1, 0.33, 3.1415926, [0.33, 0.67], 
[3.1415926, 0.878787878]);"""
-    qt_select """SELECT /*+SET_VAR(faster_float_convert=false)*/ * FROM 
${testTable};"""
-    qt_select """SELECT /*+SET_VAR(faster_float_convert=true)*/ * FROM 
${testTable};"""
-    // make sure we can convert number from string to value
-    sql """INSERT INTO ${testTable} SELECT 2, col_1, col_2, col_3, col_4 from 
${testTable} where col_0 = 1;"""
-    qt_select """SELECT * FROM ${testTable} ORDER BY col_0;"""
-    sql """SET faster_float_convert=false;"""
-    sql "DROP TABLE IF EXISTS ${testTable}"
-}
\ No newline at end of file
diff --git a/thirdparty/build-thirdparty.sh b/thirdparty/build-thirdparty.sh
index ad8dbc28e93..f17af7571bb 100755
--- a/thirdparty/build-thirdparty.sh
+++ b/thirdparty/build-thirdparty.sh
@@ -1682,21 +1682,6 @@ build_hadoop_libs() {
     find ./hadoop-dist/target/hadoop-3.3.6/lib/native/ -type l -exec cp -P {} 
"${TP_INSTALL_DIR}/lib/hadoop_hdfs/native/" \;
 }
 
-# dragonbox
-build_dragonbox() {
-    check_if_source_exist "${DRAGONBOX_SOURCE}"
-    cd "${TP_SOURCE_DIR}/${DRAGONBOX_SOURCE}"
-
-    rm -rf "${BUILD_DIR}"
-    mkdir -p "${BUILD_DIR}"
-    cd "${BUILD_DIR}"
-
-    "${CMAKE_CMD}" -G "${GENERATOR}" 
-DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DDRAGONBOX_INSTALL_TO_CHARS=ON ..
-
-    "${BUILD_SYSTEM}" -j "${PARALLEL}"
-    "${BUILD_SYSTEM}" install
-}
-
 # AvxToNeon
 build_avx2neon() {
     check_if_source_exist "${AVX2NEON_SOURCE}"
@@ -1854,7 +1839,6 @@ if [[ "${#packages[@]}" -eq 0 ]]; then
         concurrentqueue
         fast_float
         libunwind
-        dragonbox
         avx2neon
         libdeflate
         streamvbyte
diff --git a/thirdparty/vars.sh b/thirdparty/vars.sh
index ffbfe1e384d..ff8092dba66 100644
--- a/thirdparty/vars.sh
+++ b/thirdparty/vars.sh
@@ -466,12 +466,6 @@ HADOOP_LIBS_NAME="hadoop-3.3.6.1-for-doris.tar.gz"
 HADOOP_LIBS_SOURCE="doris-thirdparty-hadoop-3.3.6.1-for-doris"
 HADOOP_LIBS_MD5SUM="8a4455b07f5df2bb10a2718c957972b8"
 
-# libdragonbox for faster double/float to string
-DRAGONBOX_DOWNLOAD="https://github.com/jk-jeon/dragonbox/archive/refs/tags/1.1.3.tar.gz";
-DRAGONBOX_NAME=dragonbox-1.1.3.tar.gz
-DRAGONBOX_SOURCE=dragonbox-1.1.3
-DRAGONBOX_MD5SUM="889dc00db9612c6949a4ccf8115e0e6a"
-
 # AvxToNeon
 
AVX2NEON_DOWNLOAD="https://github.com/kunpengcompute/AvxToNeon/archive/refs/tags/v1.0.0.tar.gz";
 AVX2NEON_NAME=v1.0.0.tar.gz
@@ -582,7 +576,6 @@ export TP_ARCHIVES=(
     'CONCURRENTQUEUE'
     'FAST_FLOAT'
     'HADOOP_LIBS'
-    'DRAGONBOX'
     'AVX2NEON'
     'LIBDEFLATE'
     'STREAMVBYTE'


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

Reply via email to