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
commit fce353ddaae31b2d3cb41bcdc021b87084614fd5 Author: AlexYue <yj976240...@gmail.com> AuthorDate: Fri Jan 13 18:34:09 2023 +0800 [Bug](predicate) add double predicate creator (#15762) Add one double predicator the same as integer predicate creator. --- be/src/olap/predicate_creator.h | 15 ++++++++++++++- regression-test/data/query_p0/limit/sql/withOrderBy.out | 13 +++++++++++++ regression-test/suites/query_p0/limit/sql/withOrderBy.sql | 4 ++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/be/src/olap/predicate_creator.h b/be/src/olap/predicate_creator.h index 12d10e109f..95fd13f8a2 100644 --- a/be/src/olap/predicate_creator.h +++ b/be/src/olap/predicate_creator.h @@ -58,7 +58,14 @@ public: private: static CppType convert(const std::string& condition) { CppType value = 0; - std::from_chars(condition.data(), condition.data() + condition.size(), value); + // because std::from_chars can't compile on macOS + if constexpr (std::is_same_v<CppType, double>) { + value = std::stod(condition, nullptr); + } else if constexpr (std::is_same_v<CppType, float>) { + value = std::stof(condition, nullptr); + } else { + std::from_chars(condition.data(), condition.data() + condition.size(), value); + } return value; } }; @@ -157,6 +164,12 @@ inline std::unique_ptr<PredicateCreator<ConditionType>> get_creator(const FieldT case OLAP_FIELD_TYPE_LARGEINT: { return std::make_unique<IntegerPredicateCreator<TYPE_LARGEINT, PT, ConditionType>>(); } + case OLAP_FIELD_TYPE_FLOAT: { + return std::make_unique<IntegerPredicateCreator<TYPE_FLOAT, PT, ConditionType>>(); + } + case OLAP_FIELD_TYPE_DOUBLE: { + return std::make_unique<IntegerPredicateCreator<TYPE_DOUBLE, PT, ConditionType>>(); + } case OLAP_FIELD_TYPE_DECIMAL: { return std::make_unique<CustomPredicateCreator<TYPE_DECIMALV2, PT, ConditionType>>( [](const std::string& condition) { diff --git a/regression-test/data/query_p0/limit/sql/withOrderBy.out b/regression-test/data/query_p0/limit/sql/withOrderBy.out new file mode 100644 index 0000000000..70772b5fd7 --- /dev/null +++ b/regression-test/data/query_p0/limit/sql/withOrderBy.out @@ -0,0 +1,13 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !withOrderBy -- +1.05 +1.2 +1.27 +1.43 +1.48 +1.63 +1.69 +1.87 +2.02 +2.04 + diff --git a/regression-test/suites/query_p0/limit/sql/withOrderBy.sql b/regression-test/suites/query_p0/limit/sql/withOrderBy.sql new file mode 100644 index 0000000000..96ba0d81dd --- /dev/null +++ b/regression-test/suites/query_p0/limit/sql/withOrderBy.sql @@ -0,0 +1,4 @@ +SELECT ref_0.`supplycost` +FROM regression_test_query_p0_limit.tpch_tiny_partsupp AS ref_0 +ORDER BY ref_0.`supplycost` +LIMIT 10; \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org