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

morningman 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 984d387945 [Regression](load) Add broker load regression test. (#13062)
984d387945 is described below

commit 984d387945b7b546892e42730216f7a8c3ddc61b
Author: Jibing-Li <[email protected]>
AuthorDate: Tue Oct 4 21:29:05 2022 +0800

    [Regression](load) Add broker load regression test. (#13062)
    
    Add basic broker load regression test. It has been tested. But default
---
 be/src/common/config.h                             |   4 +-
 regression-test/conf/regression-conf.groovy        |   3 +
 .../org/apache/doris/regression/suite/Suite.groovy |   7 +-
 .../load_p0/broker_load/ddl/filter_create.sql      |  17 +++
 .../suites/load_p0/broker_load/ddl/filter_drop.sql |   1 +
 .../broker_load/ddl/null_default_create.sql        |  21 ++++
 .../load_p0/broker_load/ddl/null_default_drop.sql  |   1 +
 .../suites/load_p0/broker_load/ddl/part_create.sql |  15 +++
 .../suites/load_p0/broker_load/ddl/part_drop.sql   |   1 +
 .../load_p0/broker_load/ddl/path_column_create.sql |  18 +++
 .../load_p0/broker_load/ddl/path_column_drop.sql   |   1 +
 .../load_p0/broker_load/ddl/reverse_create.sql     |  15 +++
 .../load_p0/broker_load/ddl/reverse_drop.sql       |   1 +
 .../suites/load_p0/broker_load/ddl/set1_create.sql |  10 ++
 .../suites/load_p0/broker_load/ddl/set1_drop.sql   |   1 +
 .../suites/load_p0/broker_load/ddl/set2_create.sql |   7 ++
 .../suites/load_p0/broker_load/ddl/set2_drop.sql   |   1 +
 .../suites/load_p0/broker_load/ddl/set3_create.sql |   7 ++
 .../suites/load_p0/broker_load/ddl/set3_drop.sql   |   1 +
 .../suites/load_p0/broker_load/ddl/set4_create.sql |   7 ++
 .../suites/load_p0/broker_load/ddl/set4_drop.sql   |   1 +
 .../suites/load_p0/broker_load/ddl/set5_create.sql |   7 ++
 .../suites/load_p0/broker_load/ddl/set5_drop.sql   |   1 +
 .../suites/load_p0/broker_load/ddl/set6_create.sql |   8 ++
 .../suites/load_p0/broker_load/ddl/set6_drop.sql   |   1 +
 .../suites/load_p0/broker_load/ddl/set7_create.sql |   8 ++
 .../suites/load_p0/broker_load/ddl/set7_drop.sql   |   1 +
 .../load_p0/broker_load/ddl/upper_case_create.sql  |  15 +++
 .../load_p0/broker_load/ddl/upper_case_drop.sql    |   1 +
 .../load_p0/broker_load/test_broker_load.groovy    | 139 ++++++++++++++++++++-
 30 files changed, 315 insertions(+), 6 deletions(-)

diff --git a/be/src/common/config.h b/be/src/common/config.h
index 29985ae31e..8ee1649378 100644
--- a/be/src/common/config.h
+++ b/be/src/common/config.h
@@ -883,10 +883,10 @@ CONF_mInt64(nodechannel_pending_queue_max_bytes, 
"67108864");
 CONF_mInt32(max_fragment_start_wait_time_seconds, "30");
 
 // Temp config. True to use new file scan node to do load job. Will remove 
after fully test.
-CONF_Bool(enable_new_load_scan_node, "false");
+CONF_mBool(enable_new_load_scan_node, "false");
 
 // Temp config. True to use new file scanner. Will remove after fully test.
-CONF_Bool(enable_new_file_scanner, "false");
+CONF_mBool(enable_new_file_scanner, "false");
 
 #ifdef BE_TEST
 // test s3
diff --git a/regression-test/conf/regression-conf.groovy 
b/regression-test/conf/regression-conf.groovy
index db5ac4e937..170ae8cca5 100644
--- a/regression-test/conf/regression-conf.groovy
+++ b/regression-test/conf/regression-conf.groovy
@@ -60,3 +60,6 @@ hdfsFs = "hdfs://127.0.0.1:9000"
 hdfsUser = "doris-test"
 hdfsPasswd = ""
 brokerName = "broker_name"
+
+// broker load test config
+enableBrokerLoad=false
diff --git 
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
 
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
index ff9a66fd34..3bf93105df 100644
--- 
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
+++ 
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
@@ -286,7 +286,7 @@ class Suite implements GroovyInterceptable {
     }
 
     boolean enableHdfs() {
-        String enableHdfs =  context.config.otherConfigs.get("enableHdfs");
+        String enableHdfs = context.config.otherConfigs.get("enableHdfs");
         return enableHdfs.equals("true");
     }
 
@@ -300,6 +300,11 @@ class Suite implements GroovyInterceptable {
         return remotePath;
     }
 
+    boolean enableBrokerLoad() {
+        String enableBrokerLoad = 
context.config.otherConfigs.get("enableBrokerLoad");
+        return (enableBrokerLoad != null && enableBrokerLoad.equals("true"));
+    }
+
     String getS3Region() {
         String s3Region = context.config.otherConfigs.get("s3Region");
         return s3Region
diff --git a/regression-test/suites/load_p0/broker_load/ddl/filter_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/filter_create.sql
new file mode 100644
index 0000000000..3e3f1ec39e
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/filter_create.sql
@@ -0,0 +1,17 @@
+CREATE TABLE IF NOT EXISTS filter (
+    p_partkey          int NOT NULL,
+    p_name        VARCHAR(55) NOT NULL,
+    p_mfgr        VARCHAR(25) NOT NULL,
+    p_brand       VARCHAR(10) NOT NULL,
+    p_type        VARCHAR(25) NOT NULL,
+    p_size        int NOT NULL,
+    p_container   VARCHAR(10) NOT NULL,
+    p_retailprice decimal(15, 2) NOT NULL,
+    p_comment     VARCHAR(23) NOT NULL
+)ENGINE=OLAP
+DUPLICATE KEY(`p_partkey`)
+COMMENT "OLAP"
+DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/filter_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/filter_drop.sql
new file mode 100644
index 0000000000..6583355507
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/filter_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS filter;
diff --git 
a/regression-test/suites/load_p0/broker_load/ddl/null_default_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/null_default_create.sql
new file mode 100644
index 0000000000..96c0b4303f
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/null_default_create.sql
@@ -0,0 +1,21 @@
+CREATE TABLE IF NOT EXISTS null_default (
+    p_partkey          int NOT NULL,
+    p_name        VARCHAR(55) NOT NULL,
+    p_mfgr        VARCHAR(25) NOT NULL,
+    p_brand       VARCHAR(10) NOT NULL,
+    p_type        VARCHAR(25) NOT NULL,
+    p_size        int NOT NULL,
+    p_container   VARCHAR(10) NOT NULL,
+    p_retailprice decimal(15, 2) NOT NULL,
+    p_comment     VARCHAR(23) NOT NULL,
+    p_add_col1    varchar(5) null,
+    p_add_col2    int null,
+    p_add_col3    int null default '100',
+    p_add_col4    varchar(5) null default 'abc'
+)ENGINE=OLAP
+DUPLICATE KEY(`p_partkey`)
+COMMENT "OLAP"
+DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git 
a/regression-test/suites/load_p0/broker_load/ddl/null_default_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/null_default_drop.sql
new file mode 100644
index 0000000000..158562ba01
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/null_default_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS null_default;
diff --git a/regression-test/suites/load_p0/broker_load/ddl/part_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/part_create.sql
new file mode 100644
index 0000000000..51e699ed81
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/part_create.sql
@@ -0,0 +1,15 @@
+CREATE TABLE IF NOT EXISTS part (
+  `p_partkey` integer NOT NULL,
+  `p_name` varchar(55) NOT NULL,
+  `p_mfgr` char(25) NOT NULL,
+  `p_brand` char(10) NOT NULL,
+  `p_type` varchar(25) NOT NULL,
+  `p_size` integer NOT NULL,
+  `p_container` char(10) NOT NULL,
+  `p_retailprice` decimal(12, 2) NOT NULL,
+  `p_comment` varchar(23) NOT NULL
+)ENGINE=OLAP
+DISTRIBUTED BY HASH(p_partkey) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/part_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/part_drop.sql
new file mode 100644
index 0000000000..ffd55b2078
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/part_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS part;
diff --git 
a/regression-test/suites/load_p0/broker_load/ddl/path_column_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/path_column_create.sql
new file mode 100644
index 0000000000..6de4deff4f
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/path_column_create.sql
@@ -0,0 +1,18 @@
+CREATE TABLE IF NOT EXISTS path_column (
+    p_partkey          int NOT NULL,
+    p_name        VARCHAR(55) NOT NULL,
+    p_mfgr        VARCHAR(25) NOT NULL,
+    p_brand       VARCHAR(10) NOT NULL,
+    p_type        VARCHAR(25) NOT NULL,
+    p_size        int NOT NULL,
+    p_container   VARCHAR(10) NOT NULL,
+    p_retailprice decimal(15, 2) NOT NULL,
+    p_comment     VARCHAR(23) NOT NULL,
+    city varchar(10) NOT NULL
+)ENGINE=OLAP
+DUPLICATE KEY(`p_partkey`)
+COMMENT "OLAP"
+DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git 
a/regression-test/suites/load_p0/broker_load/ddl/path_column_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/path_column_drop.sql
new file mode 100644
index 0000000000..a2e23b1eed
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/path_column_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS path_column;
diff --git a/regression-test/suites/load_p0/broker_load/ddl/reverse_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/reverse_create.sql
new file mode 100644
index 0000000000..d68b73a448
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/reverse_create.sql
@@ -0,0 +1,15 @@
+CREATE TABLE IF NOT EXISTS reverse (
+  `comment` varchar(23) NOT NULL,
+  `retailprice` decimal(12, 2) NOT NULL,
+  `container` char(10) NOT NULL,
+  `size` integer NOT NULL,
+  `type` varchar(25) NOT NULL,
+  `brand` char(10) NOT NULL,
+  `mfgr` char(25) NOT NULL,
+  `name` varchar(55) NOT NULL,
+  `partkey` integer NOT NULL
+)ENGINE=OLAP
+DISTRIBUTED BY HASH(partkey) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/reverse_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/reverse_drop.sql
new file mode 100644
index 0000000000..80e1c0997f
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/reverse_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS reverse;
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set1_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set1_create.sql
new file mode 100644
index 0000000000..4e44de6a0f
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set1_create.sql
@@ -0,0 +1,10 @@
+CREATE TABLE IF NOT EXISTS set1 (
+  `p_partkey` integer NOT NULL default '0',
+  `p_name` varchar(55) NOT NULL default 'aaa',
+  `p_size` integer NOT NULL default '0',
+  `p_greatest` integer NOT NULL
+)ENGINE=OLAP
+DISTRIBUTED BY HASH(p_partkey) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set1_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set1_drop.sql
new file mode 100644
index 0000000000..be82c99e46
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set1_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS set1;
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set2_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set2_create.sql
new file mode 100644
index 0000000000..ff3b7af1d0
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set2_create.sql
@@ -0,0 +1,7 @@
+CREATE TABLE IF NOT EXISTS set2 (
+  `p_partkey` integer NOT NULL default '0'
+)ENGINE=OLAP
+DISTRIBUTED BY HASH(p_partkey) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set2_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set2_drop.sql
new file mode 100644
index 0000000000..d0f144a2a4
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set2_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS set2;
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set3_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set3_create.sql
new file mode 100644
index 0000000000..361b1e0de2
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set3_create.sql
@@ -0,0 +1,7 @@
+CREATE TABLE IF NOT EXISTS set3 (
+  `partkey` integer NOT NULL default '0'
+)ENGINE=OLAP
+DISTRIBUTED BY HASH(partkey) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set3_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set3_drop.sql
new file mode 100644
index 0000000000..50c812fc70
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set3_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS set3;
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set4_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set4_create.sql
new file mode 100644
index 0000000000..15c9897304
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set4_create.sql
@@ -0,0 +1,7 @@
+CREATE TABLE IF NOT EXISTS set4 (
+  `partkey` integer NOT NULL default '0'
+)ENGINE=OLAP
+DISTRIBUTED BY HASH(partkey) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set4_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set4_drop.sql
new file mode 100644
index 0000000000..f47d6eb4f6
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set4_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS set4;
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set5_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set5_create.sql
new file mode 100644
index 0000000000..e6c17c8374
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set5_create.sql
@@ -0,0 +1,7 @@
+CREATE TABLE IF NOT EXISTS set5 (
+  `partkey` integer NOT NULL default '0'
+)ENGINE=OLAP
+DISTRIBUTED BY HASH(partkey) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set5_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set5_drop.sql
new file mode 100644
index 0000000000..1585ffeef6
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set5_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS set5;
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set6_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set6_create.sql
new file mode 100644
index 0000000000..828347d40d
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set6_create.sql
@@ -0,0 +1,8 @@
+CREATE TABLE IF NOT EXISTS set6 (
+  `partkey` integer NOT NULL default '0',
+  `partsize` integer NOT NULL default '0'
+)ENGINE=OLAP
+DISTRIBUTED BY HASH(partkey) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set6_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set6_drop.sql
new file mode 100644
index 0000000000..912b5bd78f
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set6_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS set6;
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set7_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set7_create.sql
new file mode 100644
index 0000000000..5ae82d598f
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set7_create.sql
@@ -0,0 +1,8 @@
+CREATE TABLE IF NOT EXISTS set7 (
+  `p_partkey` integer NOT NULL default '0',
+  `partsize` integer NOT NULL default '0'
+)ENGINE=OLAP
+DISTRIBUTED BY HASH(p_partkey) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/set7_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/set7_drop.sql
new file mode 100644
index 0000000000..b1169625a1
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/set7_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS set7;
diff --git 
a/regression-test/suites/load_p0/broker_load/ddl/upper_case_create.sql 
b/regression-test/suites/load_p0/broker_load/ddl/upper_case_create.sql
new file mode 100644
index 0000000000..dcfa3ce2f7
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/upper_case_create.sql
@@ -0,0 +1,15 @@
+CREATE TABLE IF NOT EXISTS upper_case (
+  `P_PARTKEY` integer NOT NULL,
+  `P_NAME` varchar(55) NOT NULL,
+  `P_MFGR` char(25) NOT NULL,
+  `P_BRAND` char(10) NOT NULL,
+  `P_TYPE` varchar(25) NOT NULL,
+  `P_SIZE` integer NOT NULL,
+  `P_CONTAINER` char(10) NOT NULL,
+  `P_RETAILPRICE` decimal(12, 2) NOT NULL,
+  `P_COMMENT` varchar(23) NOT NULL
+)ENGINE=OLAP
+DISTRIBUTED BY HASH(p_partkey) BUCKETS 24
+PROPERTIES (
+    "replication_num" = "1"
+);
diff --git a/regression-test/suites/load_p0/broker_load/ddl/upper_case_drop.sql 
b/regression-test/suites/load_p0/broker_load/ddl/upper_case_drop.sql
new file mode 100644
index 0000000000..6e1a793776
--- /dev/null
+++ b/regression-test/suites/load_p0/broker_load/ddl/upper_case_drop.sql
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS upper_case;
diff --git a/regression-test/suites/load_p0/broker_load/test_broker_load.groovy 
b/regression-test/suites/load_p0/broker_load/test_broker_load.groovy
index a03d4ad1ec..8cfc912a40 100644
--- a/regression-test/suites/load_p0/broker_load/test_broker_load.groovy
+++ b/regression-test/suites/load_p0/broker_load/test_broker_load.groovy
@@ -15,7 +15,140 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_broker_load") {
-    // todo: test broker load/cancel, need broker & hdfs or others
-    sql "show load"
+suite("test_broker_load", "p0") {
+
+    def tables = ["part", "upper_case", "reverse", "set1", "set2", "set3", 
"set4", "set5", "set6",
+                  "set7", "null_default", "filter", "path_column"]
+    def paths = ["s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/part*",
+                 "s3://doris-community-test-1308700295/load/data/path/*/part*"
+    ]
+    def columns_list = ["""p_partkey, p_name, p_mfgr, p_brand, p_type, p_size, 
p_container, p_retailprice, p_comment""",
+                   """p_partkey, p_name, p_mfgr, p_brand, p_type, p_size, 
p_container, p_retailprice, p_comment""",
+                   """p_partkey, p_name, p_mfgr, p_brand, p_type, p_size, 
p_container, p_retailprice, p_comment""",
+                   """p_partkey, p_name, p_size""",
+                   """p_partkey""",
+                   """p_partkey""",
+                   """p_partkey,  p_size""",
+                   """p_partkey""",
+                   """p_partkey,  p_size""",
+                   """p_partkey,  p_size""",
+                   """p_partkey, p_name, p_mfgr, p_brand, p_type, p_size, 
p_container, p_retailprice, p_comment""",
+                   """p_partkey, p_name, p_mfgr, p_brand, p_type, p_size, 
p_container, p_retailprice, p_comment""",
+                   """p_partkey, p_name, p_mfgr, p_brand, p_type, p_size, 
p_container, p_retailprice, p_comment"""]
+    def column_in_paths = ["", "", "", "", "", "", "", "", "", "", "", "", 
"COLUMNS FROM PATH AS (city)"]
+    def preceding_filters = ["", "", "", "", "", "", "", "", "", "", "", 
"preceding filter p_size < 10", ""]
+    def set_values = ["", "",
+                      "SET(comment=p_comment, retailprice=p_retailprice, 
container=p_container, size=p_size, type=p_type, brand=p_brand, mfgr=p_mfgr, 
name=p_name, partkey=p_partkey)",
+                      
"set(p_name=upper(p_name),p_greatest=greatest(cast(p_partkey as int), 
cast(p_size as int)))",
+                      "set(p_partkey = p_partkey + 100)",
+                      "set(partkey = p_partkey + 100)",
+                      "set(partkey = p_partkey + p_size)",
+                      "set(tmpk = p_partkey + 1, partkey = tmpk*2)",
+                      "set(partkey = p_partkey + 1, partsize = p_size*2)",
+                      "set(partsize = p_partkey + p_size)", "", "", ""
+    ]
+    def where_exprs = ["", "", "", "", "", "", "", "", "", "", "", "where 
p_partkey>10", ""]
+
+    String ak = getS3AK()
+    String sk = getS3SK()
+    String enabled = context.config.otherConfigs.get("enableBrokerLoad")
+
+    def do_load_job = {uuid, path, table, columns, column_in_path, 
preceding_filter,
+                          set_value, where_expr ->
+        sql """
+            LOAD LABEL $uuid (
+                DATA INFILE("$path")
+                INTO TABLE $table
+                FORMAT AS "PARQUET"
+                ($columns)
+                $column_in_path
+                $preceding_filter
+                $set_value
+                $where_expr
+            )
+            WITH S3 (
+                "AWS_ACCESS_KEY" = "$ak",
+                "AWS_SECRET_KEY" = "$sk",
+                "AWS_ENDPOINT" = "cos.ap-hongkong.myqcloud.com",
+                "AWS_REGION" = "ap-hongkong"
+            );
+            """
+    }
+
+    def set_be_config = { ->
+        String[][] backends = sql """ show backends; """
+        assertTrue(backends.size() > 0)
+        for (String[] backend in backends) {
+            StringBuilder setConfigCommand = new StringBuilder();
+            setConfigCommand.append("curl -X POST http://";)
+            setConfigCommand.append(backend[2])
+            setConfigCommand.append(":")
+            setConfigCommand.append(backend[5])
+            setConfigCommand.append("/api/update_config?")
+            String command1 = setConfigCommand.toString() + 
"enable_new_load_scan_node=true"
+            logger.info(command1)
+            String command2 = setConfigCommand.toString() + 
"enable_new_file_scanner=true"
+            logger.info(command2)
+            def process1 = command1.execute()
+            int code = process1.waitFor()
+            assertEquals(code, 0)
+            def process2 = command2.execute()
+            code = process1.waitFor()
+            assertEquals(code, 0)
+        }
+    }
+
+    if (enabled != null && enabled.equalsIgnoreCase("true")) {
+        def uuids = []
+        sql """ADMIN SET FRONTEND CONFIG ("enable_new_load_scan_node" = 
"true");"""
+        set_be_config.call()
+        try {
+            i = 0
+            for (String table in tables) {
+                sql new 
File("""${context.file.parent}/ddl/${table}_drop.sql""").text
+                sql new 
File("""${context.file.parent}/ddl/${table}_create.sql""").text
+
+                def uuid = UUID.randomUUID().toString().replace("-", "0")
+                uuids.add(uuid)
+                do_load_job.call(uuid, paths[i], table, columns_list[i], 
column_in_paths[i], preceding_filters[i],
+                        set_values[i], where_exprs[i])
+                i++
+            }
+
+            for (String label in uuids) {
+                max_try_milli_secs = 600000
+                while (max_try_milli_secs > 0) {
+                    String[][] result = sql """ show load where 
label="$label"; """
+                    if (result[0][2].equals("FINISHED")) {
+                        logger.info("Load FINISHED " + label)
+                        break;
+                    }
+                    if (result[0][2].equals("CANCELLED")) {
+                        assertTrue(1 == 2, "Load failed.")
+                    }
+                    Thread.sleep(1000)
+                    max_try_milli_secs -= 1000
+                    if(max_try_milli_secs <= 0) {
+                        assertTrue(1 == 2, "Load Timeout.")
+                    }
+                }
+            }
+        } finally {
+            for (String table in tables) {
+                sql new 
File("""${context.file.parent}/ddl/${table}_drop.sql""").text
+            }
+        }
+    }
 }
+


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to