This is an automated email from the ASF dual-hosted git repository. shaofengshi pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/kylin.git
commit 01df768ac5f38cbeaff1f3a6245c26a8863d5709 Author: imsong <hkss...@gmail.com> AuthorDate: Thu Apr 26 17:26:08 2018 +0900 general PTN_HAVING_FUNCTION removed and then add CURRENT_TIMESTAMP in PTN_HAVING_ESCAPE_FUNCTION --- .../org/apache/kylin/query/util/DefaultQueryTransformer.java | 11 +---------- .../apache/kylin/query/util/DefaultQueryTransformerTest.java | 2 +- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/query/src/main/java/org/apache/kylin/query/util/DefaultQueryTransformer.java b/query/src/main/java/org/apache/kylin/query/util/DefaultQueryTransformer.java index 2fcb74e..f8ab8f2 100644 --- a/query/src/main/java/org/apache/kylin/query/util/DefaultQueryTransformer.java +++ b/query/src/main/java/org/apache/kylin/query/util/DefaultQueryTransformer.java @@ -43,15 +43,13 @@ public class DefaultQueryTransformer implements IQueryTransformer { private static final Pattern PTN_INTERVAL = Pattern.compile( "interval" + SM + "(floor\\()([\\d\\.]+)(\\))" + SM + "(second|minute|hour|day|month|year)", Pattern.CASE_INSENSITIVE); - private static final Pattern PTN_HAVING_ESCAPE_FUNCTION = Pattern.compile("\\{fn" + SM + "(EXTRACT\\(.*?\\))" + "\\}", + private static final Pattern PTN_HAVING_ESCAPE_FUNCTION = Pattern.compile("\\{fn" + SM + "(EXTRACT\\(.*?\\)||CURRENT_TIMESTAMP\\(.*?\\))" + "\\}", Pattern.CASE_INSENSITIVE); private static final Pattern PIN_SUM_OF_CAST = Pattern.compile(S0 + "SUM" + S0 + "\\(" + S0 + "CAST" + S0 + "\\(" + S0 + "([^\\s,]+)" + S0 + "AS" + SM + "DOUBLE" + S0 + "\\)" + S0 + "\\)", Pattern.CASE_INSENSITIVE); private static final Pattern PIN_SUM_OF_FN_CONVERT = Pattern .compile(S0 + "SUM" + S0 + "\\(" + S0 + "\\{\\s*fn" + SM + "convert" + S0 + "\\(" + S0 + "([^\\s,]+)" + S0 + "," + S0 + "SQL_DOUBLE" + S0 + "\\)" + S0 + "\\}" + S0 + "\\)", Pattern.CASE_INSENSITIVE); - private static final Pattern PTN_HAVING_FUNCTION = Pattern.compile("\\{fn" + "(.*?)" + "\\}", - Pattern.CASE_INSENSITIVE); @Override public String transform(String sql, String project, String defaultSchema) { @@ -139,13 +137,6 @@ public class DefaultQueryTransformer implements IQueryTransformer { int value = (int) Math.floor(Double.valueOf(m.group(2))); sql = sql.substring(0, m.start(1)) + "'" + value + "'" + sql.substring(m.end(3)); } - - while (true) { - m = PTN_HAVING_FUNCTION.matcher(sql); - if (!m.find()) - break; - sql = sql.substring(0, m.start()) + m.group(1) + sql.substring(m.end()); - } return sql; } diff --git a/query/src/test/java/org/apache/kylin/query/util/DefaultQueryTransformerTest.java b/query/src/test/java/org/apache/kylin/query/util/DefaultQueryTransformerTest.java index e95db85..b6265b3 100644 --- a/query/src/test/java/org/apache/kylin/query/util/DefaultQueryTransformerTest.java +++ b/query/src/test/java/org/apache/kylin/query/util/DefaultQueryTransformerTest.java @@ -103,7 +103,7 @@ public class DefaultQueryTransformerTest { fnConvertSumSql = "SELECT {fn CURRENT_TIMESTAMP(0)}"; correctSql = transformer.transform(fnConvertSumSql, "", ""); - assertTrue("SELECT CURRENT_TIMESTAMP".equalsIgnoreCase(correctSql)); + assertTrue("SELECT CURRENT_TIMESTAMP(0)".equalsIgnoreCase(correctSql)); } } \ No newline at end of file