This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.2-lts by this push:
new f4409d3c87 [bugfix](thirdparty) patch simdjson to avoid conflict with
odbc macro BOOL (#15223)
f4409d3c87 is described below
commit f4409d3c873400e9d90902fee5c6597961e49782
Author: Kang <[email protected]>
AuthorDate: Thu Dec 22 09:40:04 2022 +0800
[bugfix](thirdparty) patch simdjson to avoid conflict with odbc macro BOOL
(#15223)
fix conflit name BOOL in odbc sqltypes.h and simdjson element.h. Change
BOOL to BOOLEAN in simdjson.
- thirdparty/installed/include/sqltypes.h
> #define BOOL int
- thirdparty/src/simdjson-1.0.2/include/simdjson/dom/element.h
> enum class element_type {
> ARRAY = '[', ///< dom::array
> OBJECT = '{', ///< dom::object
> INT64 = 'l', ///< int64_t
> UINT64 = 'u', ///< uint64_t: any integer that fits in uint64_t but
*not* int64_t
> DOUBLE = 'd', ///< double: Any number with a "." or "e" that fits in
double.
> STRING = '"', ///< std::string_view
> BOOL = 't', ///< bool
> NULL_VALUE = 'n' ///< null
> };
>
---
thirdparty/download-thirdparty.sh | 11 ++++
thirdparty/patches/simdjson-1.0.2.patch | 99 +++++++++++++++++++++++++++++++++
2 files changed, 110 insertions(+)
diff --git a/thirdparty/download-thirdparty.sh
b/thirdparty/download-thirdparty.sh
index c267e748c8..f0bd2130b5 100755
--- a/thirdparty/download-thirdparty.sh
+++ b/thirdparty/download-thirdparty.sh
@@ -395,3 +395,14 @@ if [[ ! -f "${PATCHED_MARK}" ]]; then
fi
cd -
echo "Finished patching ${BRPC_SOURCE}"
+
+# patch jemalloc, change simdjson::dom::element_type::BOOL to BOOLEAN to avoid
conflict with odbc macro BOOL
+if [[ "${SIMDJSON_SOURCE}" = "simdjson-1.0.2" ]]; then
+ cd "${TP_SOURCE_DIR}/${SIMDJSON_SOURCE}"
+ if [[ ! -f "${PATCHED_MARK}" ]]; then
+ patch -p1 <"${TP_PATCH_DIR}/simdjson-1.0.2.patch"
+ touch "${PATCHED_MARK}"
+ fi
+ cd -
+fi
+echo "Finished patching ${SIMDJSON_SOURCE}"
diff --git a/thirdparty/patches/simdjson-1.0.2.patch
b/thirdparty/patches/simdjson-1.0.2.patch
new file mode 100644
index 0000000000..c2d1be717e
--- /dev/null
+++ b/thirdparty/patches/simdjson-1.0.2.patch
@@ -0,0 +1,99 @@
+diff -ur a/fuzz/fuzz_dump.cpp b/fuzz/fuzz_dump.cpp
+--- a/fuzz/fuzz_dump.cpp 2021-10-28 07:29:42.000000000 +0800
++++ b/fuzz/fuzz_dump.cpp 2022-12-20 21:20:13.068613831 +0800
+@@ -48,7 +48,7 @@
+ case simdjson::dom::element_type::STRING:
+ os << element.get_string().value_unsafe() << endl;
+ break;
+- case simdjson::dom::element_type::BOOL:
++ case simdjson::dom::element_type::BOOLEAN:
+ os << element.get_bool().value_unsafe() << endl;
+ break;
+ case simdjson::dom::element_type::NULL_VALUE:
+diff -ur a/include/simdjson/dom/element.h b/include/simdjson/dom/element.h
+--- a/include/simdjson/dom/element.h 2021-10-28 07:29:42.000000000 +0800
++++ b/include/simdjson/dom/element.h 2022-12-20 21:19:28.213840603 +0800
+@@ -27,7 +27,7 @@
+ UINT64 = 'u', ///< uint64_t: any integer that fits in uint64_t but *not*
int64_t
+ DOUBLE = 'd', ///< double: Any number with a "." or "e" that fits in
double.
+ STRING = '"', ///< std::string_view
+- BOOL = 't', ///< bool
++ BOOLEAN = 't', ///< bool
+ NULL_VALUE = 'n' ///< null
+ };
+
+diff -ur a/include/simdjson/dom/element-inl.h
b/include/simdjson/dom/element-inl.h
+--- a/include/simdjson/dom/element-inl.h 2021-10-28 07:29:42.000000000
+0800
++++ b/include/simdjson/dom/element-inl.h 2022-12-20 21:23:03.064754395
+0800
+@@ -187,7 +187,7 @@
+
+ inline element_type element::type() const noexcept {
+ auto tape_type = tape.tape_ref_type();
+- return tape_type == internal::tape_type::FALSE_VALUE ? element_type::BOOL :
static_cast<element_type>(tape_type);
++ return tape_type == internal::tape_type::FALSE_VALUE ?
element_type::BOOLEAN : static_cast<element_type>(tape_type);
+ }
+
+ inline simdjson_result<bool> element::get_bool() const noexcept {
+@@ -413,7 +413,7 @@
+ return out << "double";
+ case element_type::STRING:
+ return out << "string";
+- case element_type::BOOL:
++ case element_type::BOOLEAN:
+ return out << "bool";
+ case element_type::NULL_VALUE:
+ return out << "null";
+diff -ur a/singleheader/simdjson.h b/singleheader/simdjson.h
+--- a/singleheader/simdjson.h 2021-10-28 07:29:42.000000000 +0800
++++ b/singleheader/simdjson.h 2022-12-20 21:19:55.295703686 +0800
+@@ -5167,7 +5167,7 @@
+ UINT64 = 'u', ///< uint64_t: any integer that fits in uint64_t but *not*
int64_t
+ DOUBLE = 'd', ///< double: Any number with a "." or "e" that fits in
double.
+ STRING = '"', ///< std::string_view
+- BOOL = 't', ///< bool
++ BOOLEAN = 't', ///< bool
+ NULL_VALUE = 'n' ///< null
+ };
+
+@@ -7008,7 +7008,7 @@
+
+ inline element_type element::type() const noexcept {
+ auto tape_type = tape.tape_ref_type();
+- return tape_type == internal::tape_type::FALSE_VALUE ? element_type::BOOL :
static_cast<element_type>(tape_type);
++ return tape_type == internal::tape_type::FALSE_VALUE ?
element_type::BOOLEAN : static_cast<element_type>(tape_type);
+ }
+
+ inline simdjson_result<bool> element::get_bool() const noexcept {
+@@ -7234,7 +7234,7 @@
+ return out << "double";
+ case element_type::STRING:
+ return out << "string";
+- case element_type::BOOL:
++ case element_type::BOOLEAN:
+ return out << "bool";
+ case element_type::NULL_VALUE:
+ return out << "null";
+diff -ur a/tests/dom/basictests.cpp b/tests/dom/basictests.cpp
+--- a/tests/dom/basictests.cpp 2021-10-28 07:29:42.000000000 +0800
++++ b/tests/dom/basictests.cpp 2022-12-20 21:18:54.684010105 +0800
+@@ -1499,7 +1499,7 @@
+ simdjson_result<dom::element> result = parser.parse(ALL_TYPES_JSON)[key];
+
+ return true
+- && test_type(result, dom::element_type::BOOL)
++ && test_type(result, dom::element_type::BOOLEAN)
+ && test_cast_error<dom::array>(result, INCORRECT_TYPE)
+ && test_cast_error<dom::object>(result, INCORRECT_TYPE)
+ && test_cast_error<std::string_view>(result, INCORRECT_TYPE)
+diff -ur a/tests/dom/readme_examples.cpp b/tests/dom/readme_examples.cpp
+--- a/tests/dom/readme_examples.cpp 2021-10-28 07:29:42.000000000 +0800
++++ b/tests/dom/readme_examples.cpp 2022-12-20 21:19:06.757949077 +0800
+@@ -204,7 +204,7 @@
+ case dom::element_type::STRING:
+ cout << std::string_view(element) << endl;
+ break;
+- case dom::element_type::BOOL:
++ case dom::element_type::BOOLEAN:
+ cout << bool(element) << endl;
+ break;
+ case dom::element_type::NULL_VALUE:
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]