[ https://issues.apache.org/jira/browse/KYLIN-1954?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
hongbin ma resolved KYLIN-1954. ------------------------------- Resolution: Fixed Fix Version/s: v1.5.4 > BuildInFunctionTransformer should be executed per CubeSegmentScanner > -------------------------------------------------------------------- > > Key: KYLIN-1954 > URL: https://issues.apache.org/jira/browse/KYLIN-1954 > Project: Kylin > Issue Type: Improvement > Affects Versions: v1.5.3 > Reporter: hongbin ma > Assignee: hongbin ma > Fix For: v1.5.4 > > > reported from dev mail list "Question abount BuildInFunctionTransformer" > Sorry for the wrong description and thanks for the explaination. > I have another question on this. > Case1 > select merchant_name,dt_day,count(*) > from session_view_shop_0 > where merchant_name like '%深海新创手机%' > and dt_year='2016' > and dt_month='07' > and dt_day >='25' > and dt_day <='28' > group by merchant_name,dt_day > 2016-08-05 09:25:06,263 INFO [http-bio-7070-exec-10] > dict.BuildInFunctionTransformer:66 : Translated {LIKE(KYLIN_REPORT_DB.SESSION_ > VIEW_SHOP_0.MERCHANT_NAME,%深海新创手机%)} to IN clause: > {KYLIN_REPORT_DB.SESSION_VIEW_SHOP_0.MERCHANT_NAME IN []} > Result1 > 深海新创手机专营店80002972 28 6360 > 深海新创手机专营店80002972 27 5501 > 深海新创手机专营店80002972 26 4830 > Case 2 > select merchant_name,dt_day,count(*) > from session_view_shop_0 > where merchant_name like '%深海新创%' > and dt_year='2016' > and dt_month='07' > and dt_day >='25' > and dt_day <='28' > group by merchant_name,dt_day > 2016-08-05 09:37:55,469 INFO [http-bio-7070-exec-15] > dict.BuildInFunctionTransformer:66 : Translated {LIKE(KYLIN_REPORT_DB.SESSION_ > VIEW_SHOP_0.MERCHANT_NAME,%深海新创%)} to IN clause: > {KYLIN_REPORT_DB.SESSION_VIEW_SHOP_0.MERCHANT_NAME IN [深海新创专营店80002972]} > Result2 > 深海新创专营店80002972 25 5283 > ’深海新创手机专营店80002972’ is expected in result2 , as it exists which case1 shows. > CubeStorageQuery.search/ CubeSegmentScanner > when filter is translated for the first segment, filter is changed to > CompareTupleFilter(IN clause) > translate will not triger for the next segments. > this is not right because dictionary is not same for every segments. > assume data like this: > merchant_name cube segment > 深海新创专营 20160725 > 深海新创手机 20160726 > when search with like '%深海新创%' > CubeSegmentScanner scan segment '20160725' , and filter is changed to in > clause( IN '深海新创专营') > result is right for this segment ,but not for the next segments because > filter now has been changed. -- This message was sent by Atlassian JIRA (v6.3.4#6332)