From 5c87184dee7639e692cd65ac5c4104f3cfcdd3e2 Mon Sep 17 00:00:00 2001 From: obdev Date: Wed, 30 Aug 2023 02:10:51 +0000 Subject: [PATCH] Check oracle mode negative zero when double_cell_str with binary type --- deps/oblib/src/rpc/obmysql/ob_mysql_util.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deps/oblib/src/rpc/obmysql/ob_mysql_util.cpp b/deps/oblib/src/rpc/obmysql/ob_mysql_util.cpp index 0f4b921e98..7d0fc35186 100644 --- a/deps/oblib/src/rpc/obmysql/ob_mysql_util.cpp +++ b/deps/oblib/src/rpc/obmysql/ob_mysql_util.cpp @@ -898,7 +898,8 @@ int ObMySQLUtil::double_cell_str(char *buf, const int64_t len, double val, LOG_WARN("invalid input", KP(buf), K(ret)); } else { if (BINARY == type) { - if (std::fpclassify(val) == FP_ZERO && std::signbit(val)) { + if (lib::is_oracle_mode() && // only oracle mode need convert + std::fpclassify(val) == FP_ZERO && std::signbit(val)) { val = val * -1; // if -0.0, change to 0.0 } if (len - pos > DBL_SIZE) {