This is an automated email from the ASF dual-hosted git repository. dataroaring pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new 93cb80c9cb [test] use suffix of directory as group name and use directory as dbname (#11142) 93cb80c9cb is described below commit 93cb80c9cb5ba8cde0a1220bcca5d445b3ac7be1 Author: Yongqiang YANG <98214048+dataroar...@users.noreply.github.com> AuthorDate: Mon Jul 25 12:10:31 2022 +0800 [test] use suffix of directory as group name and use directory as dbname (#11142) * use suffix of directory as group name and use directory as dbname We can rename tpcds_sf1 to tpcds_sf1_p1, then tpcds_sf1 will be in group p1. We will group cases to p0, p1, p2, p3 in the future. p0: function cases running in seconds. p1: cases with expected out running in minutes, like tpcds_sf1 p2: cases with expected out running in hours, like tpcds_sf10 tpcds_sf100 p3: cases without without expected out to test core dump. --- .../conditional_functions/datetype.csv | 16 +++++++ .../org/apache/doris/regression/Config.groovy | 27 +++++++---- .../regression/action/StreamLoadAction.groovy | 3 +- .../doris/regression/suite/SuiteContext.groovy | 5 +- .../doris/regression/suite/SuiteScript.groovy | 13 ++--- .../conditional_functions/test_nullif.groovy | 55 ++++++++++++++++++++++ regression-test/suites/ssb_sf1/nereids/q1.1.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q1.2.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q1.3.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q2.1.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q2.2.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q2.3.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q3.1.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q3.2.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q3.3.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q3.4.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q4.1.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q4.2.groovy | 2 +- regression-test/suites/ssb_sf1/nereids/q4.3.groovy | 2 +- 19 files changed, 115 insertions(+), 30 deletions(-) diff --git a/regression-test/data/query/sql_functions/conditional_functions/datetype.csv b/regression-test/data/query/sql_functions/conditional_functions/datetype.csv new file mode 100644 index 0000000000..a57e5ca7d1 --- /dev/null +++ b/regression-test/data/query/sql_functions/conditional_functions/datetype.csv @@ -0,0 +1,16 @@ +12|12.25|String1|1999-01-08|1999-01-08 02:05:06|TRUE|123.22|12345678901234567890.0123456789 +25|55.52|test|1952-01-05|1989-01-08 04:05:06|FALSE|321.21|-12345678901234567890.0123456789 +964|0.245|Again|1936-02-08|2005-01-09 04:05:06|FALSE|333.82|98765432109876543210.9876543210 +100|12.25|testing|1949-07-08|2002-01-07 01:05:06|TRUE|-393.22|-98765432109876543210.9876543210 +100|99.8777|AGAIN|1987-04-09|2010-01-02 04:03:06|TRUE|000.00|00000000000000000000.0000000000 +5252|12.25|sample|1987-04-09|2010-01-02 04:03:06|TRUE|123.00|00000000000000000001.0000000000 +100|9.8777|STRING1|1923-04-08|2010-01-02 05:09:06|TRUE|010.01|00000000000000000002.0000000000 +8996|98.8777|again|1987-04-09|2010-01-02 04:03:06|FALSE|-000.01|99999999999999999999.9999999999 +100|12.8788|string1|1922-04-02|2010-01-02 02:05:06|TRUE|999.99|-99999999999999999999.9999999999 +5748|67.87|sample|1987-04-06|2010-01-02 04:03:06|TRUE|-999.99|00000000000000000000.0000000001 +5748|67.87|Sample|1987-04-06|2010-01-02 04:03:06|TRUE|181.18|-00000000000000000000.0000000001 +5748|67.87|sample|1987-04-06|2010-01-02 04:03:06|TRUE|181.18|12345678901234567890.0123456789 +5748|67.87|sample|1987-04-06|2010-01-02 04:03:06|TRUE|181.18|12345678901234567890.0123456789 +5000|67.87|testing|\N|2010-01-02 04:03:06|\N|\N|\N +6000|\N|\N|1987-04-06|\N|TRUE|\N|\N +\N|98.52|\N|\N|\N|TRUE|181.18|\N diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy index c8ddee08bd..8d6e18e1ba 100644 --- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy +++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy @@ -371,18 +371,29 @@ class Config { return DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword) } - Connection getConnectionByLastGroup(String group) { - String realDb = getDbByLastGroup(group) - String dbUrl = buildUrl(realDb) - tryCreateDbIfNotExist(realDb) + Connection getConnectionByDbName(String dbName) { + String dbUrl = buildUrl(dbName) + tryCreateDbIfNotExist(dbName) log.info("connect to ${dbUrl}".toString()) return DriverManager.getConnection(dbUrl, jdbcUser, jdbcPassword) } - String getDbByLastGroup(String group) { - def groupList = group.split(',') - String lastGroup = groupList[groupList.length - 1].replace(File.separator, '_') - return defaultDb + '_' + lastGroup + String getDbNameByFile(File suiteFile) { + String dir = new File(suitePath).relativePath(suiteFile.parentFile) + // We put sql files under sql dir, so dbs and tables used by cases + // under sql directory should be prepared by load.groovy unbder the + // parent. + // + // e.g. + // suites/tpcds_sf1/load.groovy + // suites/tpcds_sf1/sql/q01.sql + if (dir.indexOf(File.separator + "sql") > 0 && dir.endsWith("sql")) { + dir = dir.substring(0, dir.indexOf(File.separator + "sql")) + } + + dir = dir.replace('-', '_') + + return defaultDb + '_' + dir.replace(File.separator, '_') } Predicate<String> getDirectoryFilter() { diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/action/StreamLoadAction.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/action/StreamLoadAction.groovy index 4aee6e4fb7..a101fb20f7 100644 --- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/action/StreamLoadAction.groovy +++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/action/StreamLoadAction.groovy @@ -59,8 +59,7 @@ class StreamLoadAction implements SuiteAction { this.password = context.config.feHttpPassword def groupList = context.group.split(',') - def topGroup = groupList[groupList.length - 1].replace(File.separator, '_') - this.db = context.config.defaultDb + "_" + topGroup + this.db = context.config.getDbNameByFile(context.file) this.context = context this.headers = new LinkedHashMap<>() diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy index f463f72e4c..bee345b74b 100644 --- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy +++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy @@ -34,6 +34,7 @@ class SuiteContext implements Closeable { public final File file public final String suiteName public final String group + public final String dbName public final ThreadLocal<Connection> threadLocalConn = new ThreadLocal<>() public final Config config public final File dataPath @@ -74,6 +75,8 @@ class SuiteContext implements Closeable { this.outputFile = new File(new File(config.dataPath), outputRelativePath) this.realOutputFile = new File(new File(config.realDataPath), realOutputRelativePath) this.dataPath = this.outputFile.getParentFile().getCanonicalFile() + + this.dbName = config.getDbNameByFile(file) // - flowName: tpcds_sf1.sql.q47.q47, flowId: tpcds_sf1/sql/q47.sql#q47 log.info("flowName: ${flowName}, flowId: ${flowId}".toString()) } @@ -108,7 +111,7 @@ class SuiteContext implements Closeable { Connection getConnection() { def threadConn = threadLocalConn.get() if (threadConn == null) { - threadConn = config.getConnectionByLastGroup(group) + threadConn = config.getConnectionByDbName(dbName) threadLocalConn.set(threadConn) } return threadConn diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteScript.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteScript.groovy index fd593077c2..a1b4d4e14f 100644 --- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteScript.groovy +++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteScript.groovy @@ -53,15 +53,16 @@ abstract class SuiteScript extends Script { log.info("path: ${path}, groupPath: ${groupPath}".toString()) List<String> groups = ["default"] - String parentGroup = "" - groupPath.split(File.separator) .collect {it.trim()} .findAll {it != "." && it != ".." && !it.isEmpty()} - .each { - String currentGroup = parentGroup + it - groups.add(currentGroup) - parentGroup = currentGroup + "/" + .reverse() + .any { + def candidateGroups = it.split('_') + if (candidateGroups.length > 1) { + groups.add(candidateGroups[candidateGroups.length - 1]) + return true + } } return groups.join(",") } diff --git a/regression-test/suites/query/sql_functions/conditional_functions/test_nullif.groovy b/regression-test/suites/query/sql_functions/conditional_functions/test_nullif.groovy index 368f194552..0ec424ea17 100644 --- a/regression-test/suites/query/sql_functions/conditional_functions/test_nullif.groovy +++ b/regression-test/suites/query/sql_functions/conditional_functions/test_nullif.groovy @@ -16,6 +16,61 @@ // under the License. suite("test_nullif", "query") { + def tableName = "datetype" + + sql """ DROP TABLE IF EXISTS ${tableName} """ + sql """ + CREATE TABLE IF NOT EXISTS ${tableName} ( + c_bigint bigint, + c_double double, + c_string string, + c_date date, + c_timestamp datetime, + c_boolean boolean, + c_short_decimal decimal(5,2), + c_long_decimal decimal(27,9) + ) + DUPLICATE KEY(c_bigint) + DISTRIBUTED BY HASH(c_bigint) BUCKETS 1 + PROPERTIES ( + "replication_num" = "1" + ) + """ + + streamLoad { + // you can skip declare db, because a default db already specify in ${DORIS_HOME}/conf/regression-conf.groovy + // db 'regression_test' + table tableName + + // default label is UUID: + // set 'label' UUID.randomUUID().toString() + + // default column_separator is specify in doris fe config, usually is '\t'. + // this line change to ',' + set 'column_separator', '|' + + // relate to ${DORIS_HOME}/regression-test/data/demo/streamload_input.csv. + // also, you can stream load a http stream, e.g. http://xxx/some.csv + file 'datetype.csv' + + time 10000 // limit inflight 10s + + // stream load action will check result, include Success status, and NumberTotalRows == NumberLoadedRows + + // if declared a check callback, the default check condition will ignore. + // So you must check all condition + check { result, exception, startTime, endTime -> + if (exception != null) { + throw exception + } + log.info("Stream load result: ${result}".toString()) + def json = parseJson(result) + assertEquals("success", json.Status.toLowerCase()) + assertEquals(json.NumberTotalRows, json.NumberLoadedRows) + assertTrue(json.NumberLoadedRows > 0 && json.LoadBytes > 0) + } + } + qt_select "select nullif(k6, \"false\") k from test_query_db.test order by k1" qt_select "select if(c_date is null,c_timestamp,c_date) from datetype where c_date is null and c_timestamp is not null" } diff --git a/regression-test/suites/ssb_sf1/nereids/q1.1.groovy b/regression-test/suites/ssb_sf1/nereids/q1.1.groovy index 2383510c06..2b63a68d5d 100644 --- a/regression-test/suites/ssb_sf1/nereids/q1.1.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q1.1.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q1_1_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q1.2.groovy b/regression-test/suites/ssb_sf1/nereids/q1.2.groovy index cb6a7f742f..813480375a 100644 --- a/regression-test/suites/ssb_sf1/nereids/q1.2.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q1.2.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q1_2_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q1.3.groovy b/regression-test/suites/ssb_sf1/nereids/q1.3.groovy index 068897e1bd..3196c56cc7 100644 --- a/regression-test/suites/ssb_sf1/nereids/q1.3.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q1.3.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q1_3_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q2.1.groovy b/regression-test/suites/ssb_sf1/nereids/q2.1.groovy index 1a8103559c..7068176bcc 100644 --- a/regression-test/suites/ssb_sf1/nereids/q2.1.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q2.1.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q2_1_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q2.2.groovy b/regression-test/suites/ssb_sf1/nereids/q2.2.groovy index 290f9de260..368f439dc2 100644 --- a/regression-test/suites/ssb_sf1/nereids/q2.2.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q2.2.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q2_2_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q2.3.groovy b/regression-test/suites/ssb_sf1/nereids/q2.3.groovy index bb71a1d214..78a5999d87 100644 --- a/regression-test/suites/ssb_sf1/nereids/q2.3.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q2.3.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q2_3_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q3.1.groovy b/regression-test/suites/ssb_sf1/nereids/q3.1.groovy index cc0486bc77..daef73d69f 100644 --- a/regression-test/suites/ssb_sf1/nereids/q3.1.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q3.1.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q3_1_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q3.2.groovy b/regression-test/suites/ssb_sf1/nereids/q3.2.groovy index c25454d604..1470b2f5b1 100644 --- a/regression-test/suites/ssb_sf1/nereids/q3.2.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q3.2.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q3_2_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q3.3.groovy b/regression-test/suites/ssb_sf1/nereids/q3.3.groovy index c4e4dbd5e6..5312f59d7f 100644 --- a/regression-test/suites/ssb_sf1/nereids/q3.3.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q3.3.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q3_3_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q3.4.groovy b/regression-test/suites/ssb_sf1/nereids/q3.4.groovy index 47b3faa314..bd3f4f5a4e 100644 --- a/regression-test/suites/ssb_sf1/nereids/q3.4.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q3.4.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q3_4_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q4.1.groovy b/regression-test/suites/ssb_sf1/nereids/q4.1.groovy index 2d93598782..26aa503b15 100644 --- a/regression-test/suites/ssb_sf1/nereids/q4.1.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q4.1.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q4_1_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q4.2.groovy b/regression-test/suites/ssb_sf1/nereids/q4.2.groovy index 34e485c53c..68dfab276f 100644 --- a/regression-test/suites/ssb_sf1/nereids/q4.2.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q4.2.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q4_2_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) diff --git a/regression-test/suites/ssb_sf1/nereids/q4.3.groovy b/regression-test/suites/ssb_sf1/nereids/q4.3.groovy index 90c844cb53..bed16331ba 100644 --- a/regression-test/suites/ssb_sf1/nereids/q4.3.groovy +++ b/regression-test/suites/ssb_sf1/nereids/q4.3.groovy @@ -16,7 +16,7 @@ // under the License. suite("ssb_sf1_q4_3_nereids") { - String realDb = context.config.getDbByLastGroup(context.group) + String realDb = context.config.getDbNameByFile(context.file) // get parent directory's group realDb = realDb.substring(0, realDb.lastIndexOf("_")) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org