You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2017/09/23 23:36:08 UTC
[16/20] kylin git commit: Fix the bug of alias not right matched if
there is no blank between alias name and right parenthesis
Fix the bug of alias not right matched if there is no blank between alias name and right parenthesis
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/28d1e352
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/28d1e352
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/28d1e352
Branch: refs/heads/master
Commit: 28d1e352e59f741b7efbce7a2cb78d293916d072
Parents: 56bb972
Author: nichunen <ch...@kyligence.io>
Authored: Fri Sep 22 21:06:03 2017 +0800
Committer: liyang-gmt8 <li...@apache.org>
Committed: Fri Sep 22 22:11:37 2017 +0800
----------------------------------------------------------------------
.../kylin/source/adhocquery/HivePushDownConverter.java | 2 +-
.../source/adhocquery/HivePushDownConverterTest.java | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/28d1e352/core-metadata/src/main/java/org/apache/kylin/source/adhocquery/HivePushDownConverter.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/source/adhocquery/HivePushDownConverter.java b/core-metadata/src/main/java/org/apache/kylin/source/adhocquery/HivePushDownConverter.java
index eef4594..e7f6e96 100644
--- a/core-metadata/src/main/java/org/apache/kylin/source/adhocquery/HivePushDownConverter.java
+++ b/core-metadata/src/main/java/org/apache/kylin/source/adhocquery/HivePushDownConverter.java
@@ -38,7 +38,7 @@ public class HivePushDownConverter implements IPushDownConverter {
Pattern.CASE_INSENSITIVE);
private static final Pattern FROM_PATTERN = Pattern.compile("\\s+from\\s+(\\()\\s*select\\s",
Pattern.CASE_INSENSITIVE);
- private static final Pattern ALIAS_PATTERN = Pattern.compile("\\s+([`'_a-z0-9A-Z]+)", Pattern.CASE_INSENSITIVE);
+ private static final Pattern ALIAS_PATTERN = Pattern.compile("\\s*([`'_a-z0-9A-Z]+)", Pattern.CASE_INSENSITIVE);
private static final Pattern CAST_PATTERN = Pattern.compile("CAST\\((.*?) (?i)AS\\s*(.*?)\\s*\\)",
Pattern.CASE_INSENSITIVE);
private static final Pattern CONCAT_PATTERN = Pattern.compile("(['_a-z0-9A-Z]+)\\|\\|(['_a-z0-9A-Z]+)",
http://git-wip-us.apache.org/repos/asf/kylin/blob/28d1e352/core-metadata/src/test/java/org/apache/kylin/source/adhocquery/HivePushDownConverterTest.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/test/java/org/apache/kylin/source/adhocquery/HivePushDownConverterTest.java b/core-metadata/src/test/java/org/apache/kylin/source/adhocquery/HivePushDownConverterTest.java
index 42c628a..2af3e07 100644
--- a/core-metadata/src/test/java/org/apache/kylin/source/adhocquery/HivePushDownConverterTest.java
+++ b/core-metadata/src/test/java/org/apache/kylin/source/adhocquery/HivePushDownConverterTest.java
@@ -68,6 +68,17 @@ public class HivePushDownConverterTest extends TestCase {
}
@Test
+ public void testSubqueryReplace4() {
+ String originString = "select t.TRANS_ID from (\n" +
+ " select * from test_kylin_fact s inner join TEST_ACCOUNT a \n" +
+ " on s.BUYER_ID = a.ACCOUNT_ID inner join TEST_COUNTRY c on c.COUNTRY = a.ACCOUNT_COUNTRY\n" +
+ " )t\n" +
+ "LIMIT 50000";
+ String replacedString = HivePushDownConverter.subqueryReplace(originString);
+ assertEquals(originString, replacedString);
+ }
+
+ @Test
public void testConcatReplace() {
String originString = "select count(*) as cnt from test_kylin_fact where lstg_format_name||'a'='ABINa'";
String replacedString = HivePushDownConverter.concatReplace(originString);