Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-27754

Query Filter with OR condition updates every record in the table

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

       

      UPDATE customers_man SET customer_id=22 WHERE last_name='Pierce' OR 'Taylor' ;

       After the above statement, all the records are updated. The condition 'Taylor' is a constant string, and it will always evaluate to true because it's a non-empty string. So, effectively,  UPDATE statement is updating all rows in the customers_man.
      {{}}
      {{Repro: }}

      create  table customers_man (customer_id bigint, first_name string) PARTITIONED BY (last_name string) STORED AS orc TBLPROPERTIES ('transactional'='true');
      
       insert into customers_man values(1, "Joanna", "Pierce"),(1, "Sharon", "Taylor"), (2, "Joanna", "Silver"), (2, "Bob", "Silver"), (2, "Susan", "Morrison") ,(2, "Jake", "Donnel") , (3, "Blake", "Burr"), (3, "Trudy", "Johnson"), (3, "Trudy", "Henderson");
       select * from customers_man;
       +----------------------------+---------------------------+--------------------------+
       | customers_man.customer_id  | customers_man.first_name  | customers_man.last_name  |
       +----------------------------+---------------------------+--------------------------+
       | 3                          | Blake                     | Burr                     |
       | 2                          | Jake                      | Donnel                   |
       | 3                          | Trudy                     | Henderson                |
       | 3                          | Trudy                     | Johnson                  |
       | 2                          | Susan                     | Morrison                 |
       | 1                          | Joanna                    | Pierce                   |
       | 2                          | Joanna                    | Silver                   |
       | 2                          | Bob                       | Silver                   |
       | 1                          | Sharon                    | Taylor                   |
       +----------------------------+---------------------------+--------------------------+
      
      
       UPDATE customers_man SET customer_id=22 WHERE last_name='Pierce' OR last_name='Taylor' ;
       select * from customers_man;
       +----------------------------+---------------------------+--------------------------+
       | customers_man.customer_id  | customers_man.first_name  | customers_man.last_name  |
       +----------------------------+---------------------------+--------------------------+
       | 3                          | Blake                     | Burr                     |
       | 2                          | Jake                      | Donnel                   |
       | 3                          | Trudy                     | Henderson                |
       | 3                          | Trudy                     | Johnson                  |
       | 2                          | Susan                     | Morrison                 |
       | 22                         | Joanna                    | Pierce                   |
       | 2                          | Joanna                    | Silver                   |
       | 2                          | Bob                       | Silver                   |
       | 22                         | Sharon                    | Taylor                   |
       +----------------------------+---------------------------+--------------------------+
      
      
        UPDATE customers_man SET customer_id=22 WHERE last_name='Pierce' OR 'Taylor' ;
        select * from customers_man;
        +----------------------------+---------------------------+--------------------------+
        | customers_man.customer_id  | customers_man.first_name  | customers_man.last_name  |
        +----------------------------+---------------------------+--------------------------+
        | 22                         | Blake                     | Burr                     |
        | 22                         | Jake                      | Donnel                   |
        | 22                         | Trudy                     | Henderson                |
        | 22                         | Trudy                     | Johnson                  |
        | 22                         | Susan                     | Morrison                 |
        | 22                         | Joanna                    | Pierce                   |
        | 22                         | Joanna                    | Silver                   |
        | 22                         | Bob                       | Silver                   |
        | 22                         | Sharon                    | Taylor                   |
        +----------------------------+---------------------------+--------------------------+
      
      --- simpler repro
      UPDATE customers_man SET customer_id=23 WHERE true;
      select * from customers_man; 
      
      +----------------------------+---------------------------+--------------------------+
      | customers_man.customer_id  | customers_man.first_name  | customers_man.last_name  |
      +----------------------------+---------------------------+--------------------------+
      | 23                         | Blake                     | Burr                     |
      | 23                         | Jake                      | Donnel                   |
      | 23                         | Trudy                     | Henderson                |
      | 23                         | Trudy                     | Johnson                  |
      | 23                         | Susan                     | Morrison                 |
      | 23                         | Joanna                    | Pierce                   |
      | 23                         | Joanna                    | Silver                   |
      | 23                         | Bob                       | Silver                   |
      | 23                         | Sharon                    | Taylor                   |
      +----------------------------+---------------------------+--------------------------+

      Attachments

        Issue Links

          Activity

            People

              simhadri-g Simhadri Govindappa
              simhadri-g Simhadri Govindappa
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: