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
The following commit(s) were added to refs/heads/master by this push:
new 33edddf KYLIN-3479 add configuration to override xml for RDBMS
33edddf is described below
commit 33edddf29be4c8ed9529b1477da474a090f7811b
Author: woyumen4597 <[email protected]>
AuthorDate: Sun Dec 30 12:46:50 2018 +0800
KYLIN-3479 add configuration to override xml for RDBMS
---
.../framework/def/DataSourceDefProvider.java | 10 +-
.../framework/def/DataSourceDefTest.java | 7 +
.../test/resources/datasource/default.xml.override | 202 +++++++++++++++++++++
3 files changed, 218 insertions(+), 1 deletion(-)
diff --git
a/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDefProvider.java
b/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDefProvider.java
index 9574d66..2aa6851 100644
---
a/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDefProvider.java
+++
b/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDefProvider.java
@@ -47,9 +47,17 @@ public class DataSourceDefProvider {
private DataSourceDef loadDataSourceFromEnv(String id) {
String resourcePath = RESOURCE_DIR + "/" + id + ".xml";
+ String resourcePathOverride = resourcePath + ".override";
InputStream is = null;
try {
- URL url = cl.getResource(resourcePath);
+ URL urlOverride, url;
+ urlOverride = cl.getResource(resourcePathOverride);
+ if (urlOverride == null) {
+ url = cl.getResource(resourcePath);
+ } else {
+ url = urlOverride;
+ logger.debug("Use override xml:{}", resourcePathOverride);
+ }
if (url == null)
return null;
diff --git
a/datasource-sdk/src/test/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDefTest.java
b/datasource-sdk/src/test/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDefTest.java
index b07c251..cb376d6 100644
---
a/datasource-sdk/src/test/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDefTest.java
+++
b/datasource-sdk/src/test/java/org/apache/kylin/sdk/datasource/framework/def/DataSourceDefTest.java
@@ -72,4 +72,11 @@ public class DataSourceDefTest extends
LocalFileMetadataTestCase {
Assert.assertEquals(Types.DOUBLE, (int)
testingDsDef.getDataTypeValue("DOUBLE PRECISION"));
Assert.assertEquals(Types.DOUBLE, (int)
testingDsDef.getDataTypeValue("double precision"));
}
+
+ @Test
+ public void testOverrideXml() {
+ DataSourceDefProvider provider = DataSourceDefProvider.getInstance();
+ DataSourceDef defaultDef = provider.getDefault();
+ Assert.assertEquals("true",
defaultDef.getPropertyValue("metadata.enable-cache", null)); //in default.xml
is false,but in default.xml.override is true
+ }
}
diff --git a/datasource-sdk/src/test/resources/datasource/default.xml.override
b/datasource-sdk/src/test/resources/datasource/default.xml.override
new file mode 100644
index 0000000..62dee8b
--- /dev/null
+++ b/datasource-sdk/src/test/resources/datasource/default.xml.override
@@ -0,0 +1,202 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<DATASOURCE_DEF NAME="kylin" ID="default">
+ <PROPERTY NAME="sql.default-converted-enabled" VALUE="true"/>
+ <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"/>
+ <PROPERTY NAME="sql.keyword-default-escape" VALUE="true"/>
+ <PROPERTY NAME="sql.keyword-default-uppercase" VALUE="true"/>
+ <PROPERTY NAME="sql.case-sensitive" VALUE="false"/>
+ <PROPERTY NAME="metadata.enable-cache" VALUE="true"/>
+ <!--Min-->
+ <FUNCTION_DEF ID="1" EXPRESSION="MIN($0)"/>
+ <!--Max-->
+ <FUNCTION_DEF ID="3" EXPRESSION="MAX($0)"/>
+ <!--CurrentDate-->
+ <FUNCTION_DEF ID="5" EXPRESSION="CURRENT_DATE"/>
+ <!--CurrentDateTime-->
+ <FUNCTION_DEF ID="6" EXPRESSION="CURRENT_TIMESTAMP"/>
+ <!--Date-->
+ <FUNCTION_DEF ID="7" EXPRESSION="CAST($0 AS DATE)"/>
+ <!--DayOfMonth-->
+ <FUNCTION_DEF ID="8" EXPRESSION="EXTRACT(DAY FROM $0)"/>
+ <!--DayOfYear-->
+ <FUNCTION_DEF ID="9" EXPRESSION="DAYOFYEAR($0)"/>
+ <!--Month-->
+ <FUNCTION_DEF ID="10" EXPRESSION="EXTRACT(MONTH FROM $0)"/>
+ <!--Quarter-->
+ <FUNCTION_DEF ID="11" EXPRESSION="EXTRACT(QUARTER FROM $0)"/>
+ <!--Year-->
+ <FUNCTION_DEF ID="12" EXPRESSION="EXTRACT(YEAR FROM $0)"/>
+ <!--IsNotNull-->
+ <FUNCTION_DEF ID="13" EXPRESSION="$0 IS NOT NULL"/>
+ <!--IsNull-->
+ <FUNCTION_DEF ID="14" EXPRESSION="$0 IS NULL"/>
+ <!--NullToZero-->
+ <FUNCTION_DEF ID="15" EXPRESSION="COALESCE($0, 0)"/>
+ <!--ZeroToNull-->
+ <FUNCTION_DEF ID="16" EXPRESSION="NULLIF($0, 0)"/>
+ <!--FirstInRange-->
+ <FUNCTION_DEF ID="17" EXPRESSION="first_value($0) over($1)"/>
+ <!--MovingAvg-->
+ <FUNCTION_DEF ID="18" EXPRESSION="avg($0) over($1)"/>
+ <!--MovingCount-->
+ <FUNCTION_DEF ID="19" EXPRESSION="count($0) over($1)"/>
+ <!--MovingMax-->
+ <FUNCTION_DEF ID="20" EXPRESSION="max($0) over($1)"/>
+ <!--MovingMin-->
+ <FUNCTION_DEF ID="21" EXPRESSION="min($0) over($1)"/>
+ <!--MovingSum-->
+ <FUNCTION_DEF ID="22" EXPRESSION="sum($0) over($1)"/>
+ <!--RunningStdevP-->
+ <FUNCTION_DEF ID="23" EXPRESSION="STDDEV_POP($0) OVER($1)"/>
+ <!--LeftStr-->
+ <FUNCTION_DEF ID="24" EXPRESSION="SUBSTRING($0, 1, $1)"/>
+ <!--Length-->
+ <FUNCTION_DEF ID="25" EXPRESSION="CHAR_LENGTH($0)"/>
+ <!--Lower-->
+ <FUNCTION_DEF ID="26" EXPRESSION="LOWER($0)"/>
+ <!--SubStr-->
+ <FUNCTION_DEF ID="27" EXPRESSION="SUBSTRING($0, $1, $2)"/>
+ <!--initcap-->
+ <FUNCTION_DEF ID="28" EXPRESSION="INITCAP($0)"/>
+ <!--Trim-->
+ <FUNCTION_DEF ID="29" EXPRESSION="TRIM($0)"/>
+ <!--Upper-->
+ <FUNCTION_DEF ID="30" EXPRESSION="UPPER($0)"/>
+ <!--Abs-->
+ <FUNCTION_DEF ID="31" EXPRESSION="ABS($0)"/>
+ <!--Acos-->
+ <FUNCTION_DEF ID="32" EXPRESSION="ACOS($0)"/>
+ <!--Asin-->
+ <FUNCTION_DEF ID="34" EXPRESSION="ASIN($0)"/>
+ <!--Atan-->
+ <FUNCTION_DEF ID="36" EXPRESSION="ATAN($0)"/>
+ <!--Atan2-->
+ <FUNCTION_DEF ID="37" EXPRESSION="ATAN2($1, $0)"/>
+ <!--Ceiling-->
+ <FUNCTION_DEF ID="39" EXPRESSION="CEIL($0)"/>
+ <!--Cos-->
+ <FUNCTION_DEF ID="40" EXPRESSION="COS($0)"/>
+ <!--Degrees-->
+ <FUNCTION_DEF ID="42" EXPRESSION="DEGREES($0)"/>
+ <!--Exp-->
+ <FUNCTION_DEF ID="43" EXPRESSION="EXP($0)"/>
+ <!--Floor-->
+ <FUNCTION_DEF ID="44" EXPRESSION="FLOOR($0)"/>
+ <!--Int-->
+ <FUNCTION_DEF ID="45" EXPRESSION="FLOOR($0)"/>
+ <!--Int2-->
+ <FUNCTION_DEF ID="46" EXPRESSION="FLOOR($0)"/>
+ <!--Ln-->
+ <FUNCTION_DEF ID="47" EXPRESSION="LN($0)"/>
+ <!--Log-->
+ <FUNCTION_DEF ID="48" EXPRESSION="LN($0)/LN($1)"/>
+ <!--Log10-->
+ <FUNCTION_DEF ID="49" EXPRESSION="LOG10($0)"/>
+ <!--Mod-->
+ <FUNCTION_DEF ID="50" EXPRESSION="$0-FLOOR($0/$1)*$1"/>
+ <!--Power-->
+ <FUNCTION_DEF ID="51" EXPRESSION="POWER($0, $1)"/>
+ <!--Radians-->
+ <FUNCTION_DEF ID="53" EXPRESSION="RADIANS($0)"/>
+ <!--Round-->
+ <FUNCTION_DEF ID="55" EXPRESSION="ROUND($0, 0)"/>
+ <!--Sin-->
+ <FUNCTION_DEF ID="56" EXPRESSION="SIN($0)"/>
+ <!--Sqrt-->
+ <FUNCTION_DEF ID="58" EXPRESSION="SQRT($0)"/>
+ <!--Tan-->
+ <FUNCTION_DEF ID="59" EXPRESSION="TAN($0)"/>
+ <!--Trunc-->
+ <FUNCTION_DEF ID="61" EXPRESSION="CAST($0 AS INTEGER)"/>
+ <!--Median-->
+ <FUNCTION_DEF ID="63" EXPRESSION="MEDIAN($0)"/>
+ <!--Daysbetween-->
+ <FUNCTION_DEF ID="64" EXPRESSION="TIMESTAMPDIFF(day, $0, $1)"/>
+ <!--DateAdd-->
+ <FUNCTION_DEF ID="65" EXPRESSION="TIMESTAMPADD(day, $1, $0)"/>
+ <!--AddMonths-->
+ <FUNCTION_DEF ID="66" EXPRESSION="TIMESTAMPADD(month, $1, $0)"/>
+ <!--CurrentTime-->
+ <FUNCTION_DEF ID="67" EXPRESSION="CURRENT_TIME"/>
+ <!--DayofWeek-->
+ <FUNCTION_DEF ID="68" EXPRESSION="DAYOFWEEK($0)"/>
+ <!--Monthsbetween-->
+ <FUNCTION_DEF ID="69" EXPRESSION="TIMESTAMPDIFF(month, $0, $1)"/>
+ <!--Week-->
+ <FUNCTION_DEF ID="70" EXPRESSION="WEEK($0)"/>
+ <!--NulltoEmpty-->
+ <FUNCTION_DEF ID="71" EXPRESSION="COALESCE($0, '')"/>
+ <!--StrBeginsWith-->
+ <FUNCTION_DEF ID="72"
+ EXPRESSION="case when SUBSTRING($0 from 1 for
CHAR_LENGTH('$1') ) =$1 then 1 else 0 end"/>
+ <!--Concat-->
+ <FUNCTION_DEF ID="73" EXPRESSION="concat ($0 , $1)"/>
+ <!--StrEndsWith-->
+ <FUNCTION_DEF ID="74"
+ EXPRESSION="case when SUBSTRING($0 from
(CHAR_LENGTH($0)-CHAR_LENGTH($1)+1) for CHAR_LENGTH($1) ) =$1 then 1 else 0
end"/>
+ <!--LTrim-->
+ <FUNCTION_DEF ID="76" EXPRESSION="TRIM( LEADING ' ' FROM $0)"/>
+ <!--Position-->
+ <FUNCTION_DEF ID="77" EXPRESSION="POSITION($0 IN $1)"/>
+ <!--StrReplace-->
+ <FUNCTION_DEF ID="78" EXPRESSION="REPLACE($0, $1, $2)"/>
+ <!--RightStr-->
+ <FUNCTION_DEF ID="79"
+ EXPRESSION="SUBSTRING($0 FROM (char_length($0) -$1 +1) FOR
$1)"/>
+ <!--RTrim-->
+ <FUNCTION_DEF ID="80" EXPRESSION="TRIM(TRAILING ' ' FROM $0)"/>
+ <!--Round2-->
+ <FUNCTION_DEF ID="81" EXPRESSION="ROUND($0, $1)"/>
+ <!--CORRELATION -->
+ <FUNCTION_DEF ID="82" EXPRESSION="CORR($0, $1)"/>
+ <!--Random number-->
+ <FUNCTION_DEF ID="83" EXPRESSION="RAND()"/>
+ <!--Convert SQL_BIGINT -->
+ <FUNCTION_DEF ID="84" EXPRESSION="{fn CONVERT($0, SQL_BIGINT)}"/>
+
+ <TYPE_DEF ID="Any" EXPRESSION="ANY"/>
+
+ <TYPE_DEF ID="Integer" EXPRESSION="INTEGER"/>
+ <TYPE_DEF ID="Int" EXPRESSION="INT"/>
+ <TYPE_DEF ID="BigInt" EXPRESSION="BIGINT"/>
+ <TYPE_DEF ID="TinyInt" EXPRESSION="TINYINT"/>
+ <TYPE_DEF ID="SmallInt" EXPRESSION="SMALLINT"/>
+ <TYPE_DEF ID="Short" EXPRESSION="SHORT"/>
+ <TYPE_DEF ID="Long" EXPRESSION="LONG"/>
+
+ <TYPE_DEF ID="Numeric" EXPRESSION="NUMERIC($p, $s)"/>
+ <TYPE_DEF ID="Decimal" EXPRESSION="DECIMAL($p, $s)"/>
+ <TYPE_DEF ID="Real" EXPRESSION="REAL"/>
+ <TYPE_DEF ID="Double" EXPRESSION="DOUBLE"/>
+ <TYPE_DEF ID="Float" EXPRESSION="FLOAT"/>
+
+ <TYPE_DEF ID="Char" EXPRESSION="CHAR($p)"/>
+ <TYPE_DEF ID="VarChar" EXPRESSION="VARCHAR($p)"/>
+ <TYPE_DEF ID="String" EXPRESSION="STRING"/>
+
+ <TYPE_DEF ID="Binary" EXPRESSION="BINARY"/>
+ <TYPE_DEF ID="Byte" EXPRESSION="BYTE"/>
+ <TYPE_DEF ID="Boolean" EXPRESSION="BOOLEAN"/>
+
+ <TYPE_DEF ID="Date" EXPRESSION="DATE"/>
+ <TYPE_DEF ID="Time" EXPRESSION="TIME"/>
+ <TYPE_DEF ID="DateTime" EXPRESSION="DATETIME"/>
+ <TYPE_DEF ID="TimeStamp" EXPRESSION="TIMESTAMP"/>
+</DATASOURCE_DEF>
\ No newline at end of file