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

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

commit e4642ae8f2bb54e396182d1f71c34b393cc8b817
Author: Hang Jia <[email protected]>
AuthorDate: Fri Mar 17 10:03:03 2023 +0800

    KYLIN-5568 Enhance the ability to identify customer metadata case 
sensitivity
---
 .../org/apache/kylin/common/KylinConfigBase.java   |  4 ++++
 .../org/apache/kylin/source/SourceFactory.java     |  1 +
 .../apache/kylin/source/jdbc/JdbcSourceTest.java   | 28 ++++++++++++++++++++--
 3 files changed, 31 insertions(+), 2 deletions(-)

diff --git 
a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java 
b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index 098b1803d8..dd98c34d40 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -1414,6 +1414,10 @@ public abstract class KylinConfigBase implements 
Serializable {
                 "org.apache.kylin.source.jdbc.DefaultSourceConnector");
     }
 
+    public String getJdbcConvertToLowerCase() {
+        return getOptional("kylin.source.jdbc.convert-to-lowercase", FALSE);
+    }
+
     // 
============================================================================
     // STORAGE.PARQUET
     // 
============================================================================
diff --git 
a/src/core-metadata/src/main/java/org/apache/kylin/source/SourceFactory.java 
b/src/core-metadata/src/main/java/org/apache/kylin/source/SourceFactory.java
index 6da5e7906c..f1493b2bcc 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/source/SourceFactory.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/source/SourceFactory.java
@@ -116,6 +116,7 @@ public class SourceFactory {
         builder.append(config.getJdbcDriver()).append('|');
         builder.append(config.getJdbcDialect()).append('|');
         builder.append(config.getJdbcAdaptorClass()).append('|');
+        builder.append(config.getJdbcConvertToLowerCase()).append('|');
         return builder.toString();
     }
 
diff --git 
a/src/spark-project/source-jdbc/src/test/java/org/apache/kylin/source/jdbc/JdbcSourceTest.java
 
b/src/spark-project/source-jdbc/src/test/java/org/apache/kylin/source/jdbc/JdbcSourceTest.java
index 26aa083510..d9b34341b8 100644
--- 
a/src/spark-project/source-jdbc/src/test/java/org/apache/kylin/source/jdbc/JdbcSourceTest.java
+++ 
b/src/spark-project/source-jdbc/src/test/java/org/apache/kylin/source/jdbc/JdbcSourceTest.java
@@ -20,7 +20,9 @@ package org.apache.kylin.source.jdbc;
 import java.io.IOException;
 
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.engine.spark.NSparkCubingEngine;
 import org.apache.kylin.metadata.model.ISourceAware;
+import org.apache.kylin.metadata.model.NTableMetadataManager;
 import org.apache.kylin.metadata.model.SegmentRange;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.source.IReadableTable;
@@ -28,8 +30,6 @@ import org.apache.kylin.source.ISampleDataDeployer;
 import org.apache.kylin.source.ISource;
 import org.apache.kylin.source.ISourceMetadataExplorer;
 import org.apache.kylin.source.SourceFactory;
-import org.apache.kylin.engine.spark.NSparkCubingEngine;
-import org.apache.kylin.metadata.model.NTableMetadataManager;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -81,4 +81,28 @@ public class JdbcSourceTest extends JdbcTestBase {
         assert !source.supportBuildSnapShotByPartition();
         source.close();
     }
+
+    @Test
+    public void testNeedToLowerCase() {
+        ISourceAware aware = new ISourceAware() {
+            @Override
+            public int getSourceType() {
+                return ISourceAware.ID_JDBC;
+            }
+
+            @Override
+            public KylinConfig getConfig() {
+                return getTestConfig();
+            }
+        };
+        ISource source = SourceFactory.getSource(aware);
+        
aware.getConfig().setProperty("kylin.source.jdbc.convert-to-lowercase", 
"false");
+        ISource defaultSource = SourceFactory.getSource(aware);
+
+        Assert.assertEquals(source, defaultSource);
+
+        
aware.getConfig().setProperty("kylin.source.jdbc.convert-to-lowercase", "true");
+        ISource lowerCaseSource = SourceFactory.getSource(aware);
+        Assert.assertNotEquals(source, lowerCaseSource);
+    }
 }

Reply via email to