AcKing-Sam opened a new pull request, #32515:
URL: https://github.com/apache/doris/pull/32515

   ## Proposed changes
   
   Issue Number: [#32354](https://github.com/apache/doris/issues/32354)
   **Executing WHERE value_col REGEXP '.*' statement returns incorrect result**
   
   <!--Describe your changes.-->
   In the changed file, to match regular expression `.*`, the `ALLPASS_RE` 
should be changed to:
   ```cpp
   // A regex to match .*
   static const RE2 ALLPASS_RE(R"((\.\*)+)");
   ```
   After fix:
   ```mysql
   CREATE TABLE regtest (
   id int,
   value_col string,
   pattern_col string
   ) 
   ENGINE=OLAP
   DISTRIBUTED BY HASH(id) BUCKETS 4
   PROPERTIES (
   "replication_allocation" = "tag.location.default: 1"
   );
   
   INSERT INTO regtest VALUES
   (0, 'prefix0_infix0_suffix0', 'prefix0'),
   (1, '%prefix1_infix1_suffix1', 'prefix1'),
   (2, 'prefix2_$infix2$suffix2', 'infix2'),
   (3, 'prefix3^infix3_suffix3', 'infix3'),
   (4, '$$$prefix4_$$$infix4%%%^^suffix4', 'suffix4'),
   (5, 'prefix5%%$$$__infix5$^^^%%$$suffix5', 'suffix5'),
   (6, 'prefix6__^^%%%infix6%^suffix6%', 'prefix6_^^%%%infix6%^suffix6%'),
   (7, '%%%^^^$$$prefix7_infix7_suffix7%%%^^^$$$', 'prefix7_infix7_suffix7'),
   (8, 'prefix8^^%%%infix8%%$$^^___suffix8', ''),
   (9, 'prefix9$$%%%^^infix9&&%%$$suffix9', NULL);
   
   mysql> SELECT * FROM regtest WHERE value_col REGEXP '.*' ORDER BY id;
   
+------+------------------------------------------+-------------------------------+
   | id   | value_col                                | pattern_col              
     |
   
+------+------------------------------------------+-------------------------------+
   |    0 | prefix0_infix0_suffix0                   | prefix0                  
     |
   |    1 | %prefix1_infix1_suffix1                  | prefix1                  
     |
   |    2 | prefix2_$infix2$suffix2                  | infix2                   
     |
   |    3 | prefix3^infix3_suffix3                   | infix3                   
     |
   |    4 | $$$prefix4_$$$infix4%%%^^suffix4         | suffix4                  
     |
   |    5 | prefix5%%$$$__infix5$^^^%%$$suffix5      | suffix5                  
     |
   |    6 | prefix6__^^%%%infix6%^suffix6%           | 
prefix6_^^%%%infix6%^suffix6% |
   |    7 | %%%^^^$$$prefix7_infix7_suffix7%%%^^^$$$ | prefix7_infix7_suffix7   
     |
   |    8 | prefix8^^%%%infix8%%$$^^___suffix8       |                          
     |
   |    9 | prefix9$$%%%^^infix9&&%%$$suffix9        | NULL                     
     |
   
+------+------------------------------------------+-------------------------------+
   10 rows in set (0.05 sec)
   
   mysql> SELECT * FROM regtest WHERE value_col REGEXP '.' ORDER BY id;
   
+------+------------------------------------------+-------------------------------+
   | id   | value_col                                | pattern_col              
     |
   
+------+------------------------------------------+-------------------------------+
   |    0 | prefix0_infix0_suffix0                   | prefix0                  
     |
   |    1 | %prefix1_infix1_suffix1                  | prefix1                  
     |
   |    2 | prefix2_$infix2$suffix2                  | infix2                   
     |
   |    3 | prefix3^infix3_suffix3                   | infix3                   
     |
   |    4 | $$$prefix4_$$$infix4%%%^^suffix4         | suffix4                  
     |
   |    5 | prefix5%%$$$__infix5$^^^%%$$suffix5      | suffix5                  
     |
   |    6 | prefix6__^^%%%infix6%^suffix6%           | 
prefix6_^^%%%infix6%^suffix6% |
   |    7 | %%%^^^$$$prefix7_infix7_suffix7%%%^^^$$$ | prefix7_infix7_suffix7   
     |
   |    8 | prefix8^^%%%infix8%%$$^^___suffix8       |                          
     |
   |    9 | prefix9$$%%%^^infix9&&%%$$suffix9        | NULL                     
     |
   
+------+------------------------------------------+-------------------------------+
   10 rows in set (0.03 sec)
   
   mysql> SELECT * FROM regtest WHERE value_col REGEXP '.*.*' ORDER BY id;
   
+------+------------------------------------------+-------------------------------+
   | id   | value_col                                | pattern_col              
     |
   
+------+------------------------------------------+-------------------------------+
   |    0 | prefix0_infix0_suffix0                   | prefix0                  
     |
   |    1 | %prefix1_infix1_suffix1                  | prefix1                  
     |
   |    2 | prefix2_$infix2$suffix2                  | infix2                   
     |
   |    3 | prefix3^infix3_suffix3                   | infix3                   
     |
   |    4 | $$$prefix4_$$$infix4%%%^^suffix4         | suffix4                  
     |
   |    5 | prefix5%%$$$__infix5$^^^%%$$suffix5      | suffix5                  
     |
   |    6 | prefix6__^^%%%infix6%^suffix6%           | 
prefix6_^^%%%infix6%^suffix6% |
   |    7 | %%%^^^$$$prefix7_infix7_suffix7%%%^^^$$$ | prefix7_infix7_suffix7   
     |
   |    8 | prefix8^^%%%infix8%%$$^^___suffix8       |                          
     |
   |    9 | prefix9$$%%%^^infix9&&%%$$suffix9        | NULL                     
     |
   
+------+------------------------------------------+-------------------------------+
   10 rows in set (0.03 sec)
   
   ```
   The results are the same with mysql's output.
   
   


-- 
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.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

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


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

Reply via email to