This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/master by this push:
     new 77cbfc4  KYLIN-3832 Disable all convert and quote behavior for 
postgresql
77cbfc4 is described below

commit 77cbfc47afb55ac2776c4e38b552a04385704899
Author: XiaoxiangYu <hit_la...@126.com>
AuthorDate: Wed Jun 17 22:22:37 2020 +0800

    KYLIN-3832 Disable all convert and quote behavior for postgresql
    
    From the documentation, we know that when quoted, identifier is case 
sensitive, which is not easy to fix. So we cannot support reserved word as 
identifier, which is rare.
---
 .../org/apache/kylin/sdk/datasource/framework/def/DataSourceDef.java  | 4 ++++
 datasource-sdk/src/main/resources/datasource/postgresql.xml           | 4 ++--
 .../sdk/datasource/framework/conv/PostgresqlSqlConverterTest.java     | 2 ++
 .../org/apache/kylin/source/jdbc/extensible/JdbcHiveInputBase.java    | 4 +++-
 4 files changed, 11 insertions(+), 3 deletions(-)

diff --git 
a/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDef.java
 
b/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDef.java
index ea4c02b..bf474fb 100644
--- 
a/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDef.java
+++ 
b/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDef.java
@@ -169,6 +169,10 @@ public class DataSourceDef {
                 }
             }
         }
+
+        for (String k : propertyDefMap.keySet()) {
+            logger.debug("Check {}, {} : {}", k, 
propertyDefMap.get(k).getName(), propertyDefMap.get(k).getValue());
+        }
     }
 
     // ===================================================================
diff --git a/datasource-sdk/src/main/resources/datasource/postgresql.xml 
b/datasource-sdk/src/main/resources/datasource/postgresql.xml
index 45141a9..65dd7a6 100644
--- a/datasource-sdk/src/main/resources/datasource/postgresql.xml
+++ b/datasource-sdk/src/main/resources/datasource/postgresql.xml
@@ -17,7 +17,7 @@
  limitations under the License.
 -->
 <DATASOURCE_DEF NAME="kylin" ID="postgresql">
-    <PROPERTY NAME="sql.default-converted-enabled" VALUE="true"/>
+    <PROPERTY NAME="sql.default-converted-enabled" VALUE="false"/>
     <PROPERTY NAME="sql.allow-no-offset" VALUE="true"/>
     <PROPERTY NAME="sql.allow-fetch-no-rows" VALUE="true"/>
     <PROPERTY NAME="sql.allow-no-orderby-with-fetch" VALUE="true"/>
@@ -25,7 +25,7 @@
     <PROPERTY NAME="sql.keyword-default-uppercase" VALUE="false"/>
     <PROPERTY NAME="sql.case-sensitive" VALUE="true"/>
     <PROPERTY NAME="metadata.enable-cache" VALUE="true"/>
-<!--    <PROPERTY NAME="sql.enable-quote-all-identifiers" VALUE="false"/>-->
+    <PROPERTY NAME="sql.enable-quote-all-identifiers" VALUE="false"/>
 
     <!--DayOfYear-->
     <FUNCTION_DEF ID="9" EXPRESSION="EXTRACT(DOY FROM CAST($0 AS DATE))"/>
diff --git 
a/datasource-sdk/src/test/java/org/apache/kylin/sdk/datasource/framework/conv/PostgresqlSqlConverterTest.java
 
b/datasource-sdk/src/test/java/org/apache/kylin/sdk/datasource/framework/conv/PostgresqlSqlConverterTest.java
index c87cc54..ede453e 100644
--- 
a/datasource-sdk/src/test/java/org/apache/kylin/sdk/datasource/framework/conv/PostgresqlSqlConverterTest.java
+++ 
b/datasource-sdk/src/test/java/org/apache/kylin/sdk/datasource/framework/conv/PostgresqlSqlConverterTest.java
@@ -18,6 +18,7 @@
 package org.apache.kylin.sdk.datasource.framework.conv;
 
 import org.junit.Assert;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import java.sql.SQLException;
@@ -26,6 +27,7 @@ import java.util.List;
 
 public class PostgresqlSqlConverterTest {
 
+    @Ignore
     @Test
     public void testConvertSql() throws SQLException {
         GenericSqlConverter sqlConverter = new GenericSqlConverter();
diff --git 
a/source-jdbc/src/main/java/org/apache/kylin/source/jdbc/extensible/JdbcHiveInputBase.java
 
b/source-jdbc/src/main/java/org/apache/kylin/source/jdbc/extensible/JdbcHiveInputBase.java
index 6c9ff90..428a01a 100644
--- 
a/source-jdbc/src/main/java/org/apache/kylin/source/jdbc/extensible/JdbcHiveInputBase.java
+++ 
b/source-jdbc/src/main/java/org/apache/kylin/source/jdbc/extensible/JdbcHiveInputBase.java
@@ -59,6 +59,8 @@ public class JdbcHiveInputBase extends 
org.apache.kylin.source.jdbc.JdbcHiveInpu
             PartitionDesc partitionDesc = 
flatDesc.getDataModel().getPartitionDesc();
             String partCol = null;
             boolean enableQuote = 
dataSource.getSqlConverter().getConfigurer().enableQuote();
+            enableQuote = enableQuote && config.enableHiveDdlQuote();
+            logger.debug("Quote switch is set to {}", enableQuote);
             SqlDialect sqlDialect = enableQuote ? 
dataSource.getSqlConverter().getConfigurer().getSqlDialect() : 
FlatTableSqlQuoteUtils.NON_QUOTE_DIALECT;
             SqlConverter.IConfigurer iconfigurer = 
dataSource.getSqlConverter().getConfigurer();
 
@@ -102,7 +104,7 @@ public class JdbcHiveInputBase extends 
org.apache.kylin.source.jdbc.JdbcHiveInpu
                 if (segRange != null && !segRange.isInfinite()) {
                     if 
(partitionDesc.getPartitionDateColumnRef().getTableAlias().equals(splitTableAlias)
                             && (partitionDesc.getPartitionTimeColumnRef() == 
null || partitionDesc
-                                    
.getPartitionTimeColumnRef().getTableAlias().equals(splitTableAlias))) {
+                            
.getPartitionTimeColumnRef().getTableAlias().equals(splitTableAlias))) {
                         String quotedPartCond = 
FlatTableSqlQuoteUtils.quoteIdentifierInSqlExpr(flatDesc,
                                 
partitionDesc.getPartitionConditionBuilder().buildDateRangeCondition(partitionDesc,
                                         flatDesc.getSegment(), segRange, 
null), sqlDialect);

Reply via email to