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);