You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2020/12/01 05:00:43 UTC

[GitHub] [incubator-doris] imay commented on a change in pull request #4990: [Doris On ES][Bug-fix] fix boolean predicate pushdown manner

imay commented on a change in pull request #4990:
URL: https://github.com/apache/incubator-doris/pull/4990#discussion_r533073600



##########
File path: be/src/exec/es/es_query_builder.cpp
##########
@@ -53,16 +53,37 @@ TermQueryBuilder::TermQueryBuilder(const std::string& field, const std::string&
         : _field(field), _term(term) {}
 
 TermQueryBuilder::TermQueryBuilder(const ExtBinaryPredicate& binary_predicate)
-        : _field(binary_predicate.col.name), _term(binary_predicate.value.to_string()) {}
+        : _field(binary_predicate.col.name) {
+        _match_none_ = false;
+        if (binary_predicate.col.type.type == PrimitiveType::TYPE_BOOLEAN) {
+            int val = atoi(binary_predicate.value.to_string().c_str());
+            if (val == 1) {
+                _term = std::string("true");
+            } else if (val == 0){
+                _term = std::string("false");
+            } else {
+                // keep semantic consistent with mysql
+                _match_none_ = true;
+            }
+        } else {
+            _term = std::move(binary_predicate.value.to_string());

Review comment:
       std::move is useless

##########
File path: be/src/exec/es/es_query_builder.h
##########
@@ -53,6 +53,7 @@ class TermQueryBuilder : public QueryBuilder {
 private:
     std::string _field;
     std::string _term;
+    bool _match_none_;

Review comment:
       1. _match_none Is preferred.
   2. _match_none is not initialized before use.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



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