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

Constant propagation corrupts coalesce/case/when expressions during folding

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 4.0.0-alpha-1
    • None
    • None

    Description

      set hive.fetch.task.conversion=none;
      set hive.optimize.ppd=false;
      
      create table t (s1 string,s2 string);
      
      insert into t values (null,null);
      
      explain
      select
              coalesce(s1, 'null_value' ), coalesce(s2, 'null_value' ),
              coalesce(s1, 'null_value' )=coalesce(s2, 'null_value' ),
              case when coalesce(s1, 'null_value' )=coalesce(s2, 'null_value' ) then 'eq' else 'noteq' end
      from t;
      
      select
              coalesce(s1, 'null_value' ), coalesce(s2, 'null_value' ),
              coalesce(s1, 'null_value' )=coalesce(s2, 'null_value' ),
              case when coalesce(s1, 'null_value' )=coalesce(s2, 'null_value' ) then 'eq' else 'noteq' end
      from t;
      

      incorrect result is:

      null_value      null_value      NULL    noteq
      

      expected result:

      null_value     null_value      true    eq
      

      Attachments

        1. HIVE-21544.01.patch
          6 kB
          Zoltan Haindrich

        Activity

          People

            kgyrtkirk Zoltan Haindrich
            kgyrtkirk Zoltan Haindrich
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: