This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new 4244287168d [fix](delete) Only apply regex check on delete condition 
str for non-lsc tables (#39357)
4244287168d is described below

commit 4244287168d912a6276097c733b90c1c6894795d
Author: Siyang Tang <82279870+tangsiyang2...@users.noreply.github.com>
AuthorDate: Thu Aug 15 20:21:12 2024 +0800

    [fix](delete) Only apply regex check on delete condition str for non-lsc 
tables (#39357)
    
    ## Proposed changes
    
    Light schema change capable tables will work on delete sub predicate v2
    and doesn't need this check.
---
 be/src/olap/delete_handler.cpp | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/be/src/olap/delete_handler.cpp b/be/src/olap/delete_handler.cpp
index 6819d7d90f3..66859a069cc 100644
--- a/be/src/olap/delete_handler.cpp
+++ b/be/src/olap/delete_handler.cpp
@@ -124,18 +124,20 @@ Status DeleteHandler::generate_delete_predicate(const 
TabletSchema& schema,
         } else {
             // write sub predicate v1 for compactbility
             std::string condition_str = construct_sub_predicate(condition);
-            if (TCondition tmp; !DeleteHandler::parse_condition(condition_str, 
&tmp)) {
-                LOG(WARNING) << "failed to parse condition_str, condtion="
-                             << ThriftDebugString(condition);
-                return Status::Error<ErrorCode::INVALID_ARGUMENT>(
-                        "failed to parse condition_str, condtion={}", 
ThriftDebugString(condition));
-            }
             VLOG_NOTICE << __PRETTY_FUNCTION__ << " condition_str: " << 
condition_str;
             del_pred->add_sub_predicates(condition_str);
             DeleteSubPredicatePB* sub_predicate = 
del_pred->add_sub_predicates_v2();
             if (condition.__isset.column_unique_id) {
+                // only light schema change capable table set this field
                 
sub_predicate->set_column_unique_id(condition.column_unique_id);
+            } else if (TCondition tmp; 
!DeleteHandler::parse_condition(condition_str, &tmp)) {
+                // for non light shema change tables, check regex match for 
condition str
+                LOG(WARNING) << "failed to parse condition_str, condtion="
+                             << ThriftDebugString(condition);
+                return Status::Error<ErrorCode::INVALID_ARGUMENT>(
+                        "failed to parse condition_str, condtion={}", 
ThriftDebugString(condition));
             }
+
             sub_predicate->set_column_name(condition.column_name);
             sub_predicate->set_op(trans_op(condition.condition_op));
             sub_predicate->set_cond_value(condition.condition_values[0]);


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

Reply via email to