This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-1.2-lts in repository https://gitbox.apache.org/repos/asf/doris.git
commit 9728a86086c15709261921bede121a86912cf494 Author: morrySnow <101034200+morrys...@users.noreply.github.com> AuthorDate: Fri Mar 31 13:42:24 2023 +0800 [fix](planner) lateral view do not support lower case table name config (#18165) TableFunctionNode lower_case_table_names set to 1 and 2 --- .../org/apache/doris/analysis/LateralViewRef.java | 54 +++++++++++------- .../java/org/apache/doris/analysis/TableName.java | 4 ++ regression-test/conf/regression-conf.groovy | 65 +++++++++++++++------- 3 files changed, 83 insertions(+), 40 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/LateralViewRef.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/LateralViewRef.java index 0b1812a6dd..522b661a62 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/LateralViewRef.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/LateralViewRef.java @@ -132,28 +132,40 @@ public class LateralViewRef extends TableRef { if (tableName == null) { // t1 lateral view explode_split(k1, ",") slotRef.setTblName(relatedTableName.cloneWithoutAnalyze()); - } else if (tableName.getDb() == null && tableName.getTbl() != null) { - if (Config.lower_case_table_names != 0) { - // TODO support case insensitive - throw new AnalysisException("Not support specify table name in table function " - + "when config.lower_case_table_names is not 0"); - } - if (tableName.getTbl().equals(relatedTableName.getTbl())) { - // t1 lateral view explode_split(t1.k1, ",") - tableName.setDb(relatedTableName.getDb()); - } else { - // t1 lateral view explode_split(t2.k1, ",") - throw new AnalysisException("The column " + slotRef.toMySql() - + " in lateral view must come from the origin table " - + relatedTableName.toSql()); - } - } else { - if (!tableName.getDb().equalsIgnoreCase(relatedTableName.getDb())) { - // db2.t1 lateral view explode_split(db1.t1.k1, ",") - throw new AnalysisException("The column " + slotRef.toMySql() - + " in lateral view must come from the origin table " - + relatedTableRef.toSql()); + return; + } + if (tableName.getDb() != null && !tableName.getDb().equalsIgnoreCase(relatedTableName.getDb())) { + // db2.t1 lateral view explode_split(db1.t1.k1, ",") + throw new AnalysisException("The column " + slotRef.toMySql() + + " in lateral view must come from the origin table " + + relatedTableRef.toSql()); + } + + if (tableName.getTbl() != null) { + switch (Config.lower_case_table_names) { + case 0: + if (tableName.getTbl().equals(relatedTableName.getTbl())) { + // t1 lateral view explode_split(t1.k1, ",") + tableName.setDb(relatedTableName.getDb()); + return; + } + break; + case 1: + case 2: + if (tableName.getTbl().equalsIgnoreCase(relatedTableName.getTbl())) { + tableName.setTbl(relatedTableName.getTbl()); + tableName.setDb(relatedTableName.getDb()); + return; + } + break; + default: + throw new AnalysisException("Not support specify table name in table function " + + "when config.lower_case_table_names is not 0, 1 or 2"); } + // t1 lateral view explode_split(t2.k1, ",") + throw new AnalysisException("The column " + slotRef.toMySql() + + " in lateral view must come from the origin table " + + relatedTableName.toSql()); } } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/TableName.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/TableName.java index b5841ea9ae..6ae8132a6d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/TableName.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/TableName.java @@ -122,6 +122,10 @@ public class TableName implements Writable { return tbl; } + public void setTbl(String tbl) { + this.tbl = tbl; + } + public boolean isEmpty() { return tbl.isEmpty(); } diff --git a/regression-test/conf/regression-conf.groovy b/regression-test/conf/regression-conf.groovy index 8f59bed3f7..ebb52dbe28 100644 --- a/regression-test/conf/regression-conf.groovy +++ b/regression-test/conf/regression-conf.groovy @@ -23,11 +23,12 @@ defaultDb = "regression_test" // add useLocalSessionState so that the jdbc will not send // init cmd like: select @@session.tx_read_only // at each time we connect. -jdbcUrl = "jdbc:mysql://127.0.0.1:9033/?useLocalSessionState=true" +// add allowLoadLocalInfile so that the jdbc can execute mysql load data from client. +jdbcUrl = "jdbc:mysql://127.0.0.1:9030/?useLocalSessionState=true&allowLoadLocalInfile=true" jdbcUser = "root" jdbcPassword = "" -feHttpAddress = "127.0.0.1:8033" +feHttpAddress = "127.0.0.1:8030" feHttpUser = "root" feHttpPassword = "" @@ -37,8 +38,6 @@ suitePath = "${DORIS_HOME}/regression-test/suites" dataPath = "${DORIS_HOME}/regression-test/data" pluginPath = "${DORIS_HOME}/regression-test/plugins" realDataPath = "${DORIS_HOME}/regression-test/realdata" -// sf1DataPath can be url like "https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com" or local path like "/data" -sf1DataPath = "https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com" // will test <group>/<suite>.groovy // empty group will test all group @@ -51,9 +50,9 @@ testDirectories = "" // this groups will not be executed excludeGroups = "" // this suites will not be executed -excludeSuites = "test_date_function,create_table_use_partition_policy" +excludeSuites = "test_broker_load" // this directories will not be executed -excludeDirectories = "" +excludeDirectories = "segcompaction_p1" customConf1 = "test_custom_conf_value" @@ -72,27 +71,55 @@ sk="" // jdbc connector test config // To enable jdbc test, you need first start mysql/pg container. // See `docker/thirdparties/start-thirdparties-docker.sh` -enableJdbcTest=true -mysql_57_port=3336 -pg_14_port=5444 -oracle_11_port=1522 -sqlserver_2022_port=1434 +enableJdbcTest=false +mysql_57_port=3316 +pg_14_port=5442 +oracle_11_port=1521 +sqlserver_2022_port=1433 // hive catalog test config // To enable jdbc test, you need first start hive container. // See `docker/thirdparties/start-thirdparties-docker.sh` -enableHiveTest=true -hms_port=9184 -hdfs_port=50088 +enableHiveTest=false +hms_port=9183 +hdfs_port=8120 // elasticsearch catalog test config // See `docker/thirdparties/start-thirdparties-docker.sh` -enableEsTest=true -es_6_port=19222 -es_7_port=29222 -es_8_port=39222 +enableEsTest=false +es_6_port=19200 +es_7_port=29200 +es_8_port=39200 -cacheDataPath = "/mnt/disk2/yunyou/cachedata" + +//hive catalog test config for bigdata +enableExternalHiveTest = false +extHiveHmsHost = "***.**.**.**" +extHiveHmsPort = 7004 +extHdfsPort = 4007 +extHiveHmsUser = "****" +extHiveHmsPassword= "***********" + +//mysql jdbc connector test config for bigdata +enableExternalMysqlTest = false +extMysqlHost = "***.**.**.**" +extMysqlPort = 3306 +extMysqlUser = "****" +extMysqlPassword = "***********" + +//postgresql jdbc connector test config for bigdata +enableExternalPgTest = false +extPgHost = "***.**.**.*" +extPgPort = 5432 +extPgUser = "****" +extPgPassword = "***********" + +// elasticsearch external test config for bigdata +enableExternalEsTest = false +extEsHost = "***********" +extEsPort = 9200 +extEsUser = "*******" +extEsPassword = "***********" s3Endpoint = "cos.ap-hongkong.myqcloud.com" s3BucketName = "doris-build-hk-1308700295" --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org