Hive users: It took me a while to create a standalone use case, but here we go:
In Oracle, this SQL returns false for both cases: SELECT CASE WHEN '?&icid=mainmoiz%dl' LIKE ('%?icid=main%') THEN 'T' ELSE 'F' END AS case1, CASE WHEN '?&icid=mainmoiz%dl' LIKE ('%?icid=main%dl%') THEN 'T' ELSE 'F' END AS case2 FROM DUAL case1 case2 F F But in Hive 0.80, I get one False and one True: SELECT CASE WHEN '?&icid=mainmoiz%dl' LIKE ('%?icid=main%') THEN 'T' ELSE 'F' END AS case1, CASE WHEN '?&icid=mainmoiz%dl' LIKE ('%?icid=main%dl%') THEN 'T' ELSE 'F' END AS case2 FROM DUAL - A dummy single row, single column table we installed case1 case2 F T --- Mark E. Sunderlin Solutions Architect |AOL NETWORKS BDM P: 703-265-6935 |C: 540-327-6222 | AIM: MESunderlin 22000 AOL Way | Dulles, VA | 20166 From: Stephen Sprague [mailto:sprag...@gmail.com] Sent: Wednesday, June 12, 2013 2:22 PM To: user@hive.apache.org Subject: Re: Issues with Hive 'Like" and multiple '%' wildcard in a pattern Hi Mark, i'm running v0.80 too and multiple '%'s work as expected for me. so. we're gonna need a see a definitive test case from you. show your full string and show where the like clause fails to match. thanks, Stephen. PS here's my test: hisql>select city from junk; +------------------+ | city | +------------------+ | West Haven | | West Haven | | West Haven | | West Haven | | West Jordan | | West Chester | | Westminster | | West Chester | | West Chester | | Westlake | | West Chester | | West Chester | | West Chester | | Weston | | West Covina | | West Chester | | West Chester | | West Hollywood | | West Des Moines | | West Covina | | Westland | | West Valley City | | West Valley City | | West Valley City | | West Valley City | | Westminster | | West Memphis | | West Memphis | +------------------+ 28 affected hisql>select city from junk where city like '%West%v%'; +-------------+ | city | +-------------+ | West Haven | | West Haven | | West Haven | | West Haven | | West Covina | | West Covina | +-------------+ 6 affected hisql>select city from junk where city like '%West%v%a%'; +-------------+ | city | +-------------+ | West Covina | | West Covina | +-------------+ 2 affected On Wed, Jun 12, 2013 at 10:26 AM, Sunderlin, Mark <mark.sunder...@teamaol.com> wrote: We are using Hive 0.80. --- Mark E. Sunderlin Solutions Architect |AOL NETWORKS BDM P: 703-265-6935 |C: 540-327-6222 | AIM: MESunderlin 22000 AOL Way | Dulles, VA | 20166 From: Stephen Sprague [mailto:sprag...@gmail.com] Sent: Wednesday, June 12, 2013 1:00 PM To: user@hive.apache.org Subject: Re: Issues with Hive 'Like" and multiple '%' wildcard in a pattern that seems pretty hard to believe. what version of hive are you using? On Wed, Jun 12, 2013 at 6:27 AM, Sunderlin, Mark <mark.sunder...@teamaol.com> wrote: This seems to work just fine in other SQLs, but doesn't seem work in hive. I need to have several wild card characters in my 'like' clause as follows. In other SQLs, I want: .... where page_url_query like '%?icid=main%dl%' But in Hive that doesn't match. I have several work arounds. I can write it as: where (page_url_query like '%?icid=main%') and (page_url_query like '%dl%') or, I can just use something like where length(regexp_extract(page__url_query, '.*\?cdid-main.*dl.*',0) <> 0 But more important is two or more '%' wild cards in a Hive like expression a known issue? --- Mark E. Sunderlin Solutions Architect |AOL NETWORKS BDM P: 703-265-6935 |C: 540-327-6222 | AIM: MESunderlin 22000 AOL Way, Dulles, VA 20166