-
-
Notifications
You must be signed in to change notification settings - Fork 141
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(core): rm incorrect boundary check on rough check with between #1344 #1357
fix(core): rm incorrect boundary check on rough check with between #1344 #1357
Conversation
…oneatom#1344 [summary] 1. change file(tianmu_attr_exeq_rs.cpp) format from dos 2 unix 2. rm incorrect between check, actually the v1 or v2 equal to boundary is illegal and it will cause empty result when condition like `where col = PLUS_INF_64`, `where col = PLUS_INF_DBL`, `where col = MINUS_INF_DBL`: ``` common::RoughSetValue TianmuAttr::RoughCheckBetween(int pack, int64_t v1, int64_ // and then consider negation bool is_float = Type().IsFloat(); auto const &dpn(get_dpn(pack)); - if (!is_float && (v1 == common::PLUS_INF_64 || v2 == common::MINUS_INF_64)) { - res = common::RoughSetValue::RS_NONE; - } else if (is_float && (v1 == *(int64_t *)&common::PLUS_INF_DBL || v2 == *(int64_t *)&common::MINUS_INF_DBL)) { - res = common::RoughSetValue::RS_NONE; - } else if (!is_float && (v1 > dpn.max_i || v2 < dpn.min_i)) { + if (!is_float && (v1 > dpn.max_i || v2 < dpn.min_i)) { ```
Thanks for the contribution! Please review the labels and make any necessary changes. |
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## stonedb-5.7-dev #1357 +/- ##
================================================
Coverage 43.15% 43.16%
================================================
Files 1830 1830
Lines 396431 396429 -2
================================================
+ Hits 171066 171102 +36
+ Misses 225365 225327 -38
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
else | ||
span = (span / (npack - trivial_packs)) / double(GetMaxInt64() - GetMinInt64()); | ||
} | ||
if (auto sp = GetFilter_Hist(); sp && GetPackType() == common::PackType::INT) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the diff tool doesn't work, it's not clear what code changes are made?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
talked with @hustjieke , the code looks good.
Summary about this PR
change file(tianmu_attr_exeq_rs.cpp) format from dos 2 unix
rm incorrect between check, actually the v1 or v2 equal to boundary is illegal and it will cause empty result when condition like
where col = PLUS_INF_64
,where col = PLUS_INF_DBL
,where col = MINUS_INF_DBL
:Issue Number: close #1344
Tests Check List
Changelog
Documentation