fix ci
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/86032971 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/86032971 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/86032971 Branch: refs/heads/KYLIN-2606 Commit: 86032971f766a893a28fce9017227999f5defe2d Parents: 56a0fa5 Author: Hongbin Ma <mahong...@apache.org> Authored: Thu Jun 29 11:46:04 2017 +0800 Committer: Hongbin Ma <m...@kyligence.io> Committed: Thu Jun 29 13:51:45 2017 +0800 ---------------------------------------------------------------------- .../query/sql_computedcolumn/query03.sql | 21 ++++++++++++++++++++ .../sql_computedcolumn/query03.sql.compare | 21 ++++++++++++++++++++ .../org/apache/kylin/rest/util/AdHocUtil.java | 19 ++++-------------- 3 files changed, 46 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/86032971/kylin-it/src/test/resources/query/sql_computedcolumn/query03.sql ---------------------------------------------------------------------- diff --git a/kylin-it/src/test/resources/query/sql_computedcolumn/query03.sql b/kylin-it/src/test/resources/query/sql_computedcolumn/query03.sql new file mode 100644 index 0000000..ff8a570 --- /dev/null +++ b/kylin-it/src/test/resources/query/sql_computedcolumn/query03.sql @@ -0,0 +1,21 @@ +SELECT + +count(*) as cnt, sum(price) as sum_price, sum(DEAL_AMOUNT) as deal_amount, SELLER_COUNTRY.NAME, DEAL_YEAR as deal_year + +FROM TEST_KYLIN_FACT as TEST_KYLIN_FACT +INNER JOIN TEST_ORDER as TEST_ORDER +ON TEST_KYLIN_FACT.ORDER_ID = TEST_ORDER.ORDER_ID +INNER JOIN TEST_ACCOUNT as BUYER_ACCOUNT +ON TEST_ORDER.BUYER_ID = BUYER_ACCOUNT.ACCOUNT_ID +INNER JOIN TEST_ACCOUNT as SELLER_ACCOUNT +ON TEST_KYLIN_FACT.SELLER_ID = SELLER_ACCOUNT.ACCOUNT_ID +INNER JOIN TEST_CATEGORY_GROUPINGS as TEST_CATEGORY_GROUPINGS +ON TEST_KYLIN_FACT.LEAF_CATEG_ID = TEST_CATEGORY_GROUPINGS.LEAF_CATEG_ID AND TEST_KYLIN_FACT.LSTG_SITE_ID = TEST_CATEGORY_GROUPINGS.SITE_ID +INNER JOIN TEST_COUNTRY as BUYER_COUNTRY +ON BUYER_ACCOUNT.ACCOUNT_COUNTRY = BUYER_COUNTRY.COUNTRY +INNER JOIN TEST_COUNTRY as SELLER_COUNTRY +ON SELLER_ACCOUNT.ACCOUNT_COUNTRY = SELLER_COUNTRY.COUNTRY + + +where SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL=1 and "SELLER_ACCOUNT"."COUNTRY_ABBR" in ('T', 'R') and BUYER_ACCOUNT.COUNTRY_ABBR in ('T', 'R') +group by SELLER_COUNTRY.NAME, DEAL_YEAR http://git-wip-us.apache.org/repos/asf/kylin/blob/86032971/kylin-it/src/test/resources/query/sql_computedcolumn/query03.sql.compare ---------------------------------------------------------------------- diff --git a/kylin-it/src/test/resources/query/sql_computedcolumn/query03.sql.compare b/kylin-it/src/test/resources/query/sql_computedcolumn/query03.sql.compare new file mode 100644 index 0000000..160375c --- /dev/null +++ b/kylin-it/src/test/resources/query/sql_computedcolumn/query03.sql.compare @@ -0,0 +1,21 @@ +SELECT + +count(*) as cnt, sum(price) as sum_price, sum(TEST_KYLIN_FACT.PRICE * TEST_KYLIN_FACT.ITEM_COUNT) as deal_amount, SELLER_COUNTRY.NAME, year(TEST_KYLIN_FACT.CAL_DT) as deal_year + +FROM TEST_KYLIN_FACT as TEST_KYLIN_FACT +INNER JOIN TEST_ORDER as TEST_ORDER +ON TEST_KYLIN_FACT.ORDER_ID = TEST_ORDER.ORDER_ID +INNER JOIN TEST_ACCOUNT as BUYER_ACCOUNT +ON TEST_ORDER.BUYER_ID = BUYER_ACCOUNT.ACCOUNT_ID +INNER JOIN TEST_ACCOUNT as SELLER_ACCOUNT +ON TEST_KYLIN_FACT.SELLER_ID = SELLER_ACCOUNT.ACCOUNT_ID +INNER JOIN TEST_CATEGORY_GROUPINGS as TEST_CATEGORY_GROUPINGS +ON TEST_KYLIN_FACT.LEAF_CATEG_ID = TEST_CATEGORY_GROUPINGS.LEAF_CATEG_ID AND TEST_KYLIN_FACT.LSTG_SITE_ID = TEST_CATEGORY_GROUPINGS.SITE_ID +INNER JOIN TEST_COUNTRY as BUYER_COUNTRY +ON BUYER_ACCOUNT.ACCOUNT_COUNTRY = BUYER_COUNTRY.COUNTRY +INNER JOIN TEST_COUNTRY as SELLER_COUNTRY +ON SELLER_ACCOUNT.ACCOUNT_COUNTRY = SELLER_COUNTRY.COUNTRY + + +where SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL=1 and SUBSTR("SELLER_ACCOUNT"."ACCOUNT_COUNTRY",1,1) in ('T', 'R') and SUBSTR(BUYER_ACCOUNT.ACCOUNT_COUNTRY,1,1) in ('T', 'R') +group by SELLER_COUNTRY.NAME, year(TEST_KYLIN_FACT.CAL_DT) http://git-wip-us.apache.org/repos/asf/kylin/blob/86032971/server-base/src/main/java/org/apache/kylin/rest/util/AdHocUtil.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/util/AdHocUtil.java b/server-base/src/main/java/org/apache/kylin/rest/util/AdHocUtil.java index 9eecdc1..9694a21 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/util/AdHocUtil.java +++ b/server-base/src/main/java/org/apache/kylin/rest/util/AdHocUtil.java @@ -35,6 +35,7 @@ import org.apache.kylin.common.util.ClassUtil; import org.apache.kylin.metadata.MetadataManager; import org.apache.kylin.metadata.MetadataManager.CCInfo; import org.apache.kylin.metadata.model.DataModelDesc; +import org.apache.kylin.metadata.model.tool.CalciteParser; import org.apache.kylin.metadata.project.ProjectInstance; import org.apache.kylin.metadata.project.ProjectManager; import org.apache.kylin.metadata.querymeta.SelectedColumnMeta; @@ -185,23 +186,11 @@ public class AdHocUtil { return sql; } - // identifier in expr must be DB.TABLE.COLUMN, all TABLE in expr should be guaranteed to be same static String replaceIdentifierInExpr(String expr, String tableAlias, boolean quoted) { - List<Triple<Integer, Integer, String>> replacements = Lists.newArrayList(); - Matcher matcher = identifierInExprPattern.matcher(expr); - while (matcher.find()) { - - String t = tableAlias == null ? StringUtils.strip(matcher.group(3), ".") : tableAlias; - String c = matcher.group(4); - - String replacement = quoted ? "\"" + t.toUpperCase() + "\".\"" + c.toUpperCase() + "\"" : t + "." + c; - replacements.add(Triple.of(matcher.start(1), matcher.end(1), replacement)); + if (tableAlias == null) { + return expr; } - Collections.reverse(replacements); - for (Triple<Integer, Integer, String> triple : replacements) { - expr = expr.substring(0, triple.getLeft()) + triple.getRight() + expr.substring(triple.getMiddle()); - } - return expr; + return CalciteParser.insertAliasInExpr(expr, tableAlias); } }