This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.1 by this push:
new c2a16b8635b branch-3.1: [fix](test) fix unstable export external table
#58799 (#58890)
c2a16b8635b is described below
commit c2a16b8635bff3a457a36fefcd1c8927e0948afe
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Dec 15 11:16:31 2025 +0800
branch-3.1: [fix](test) fix unstable export external table #58799 (#58890)
Cherry-picked from #58799
Co-authored-by: Mingyu Chen (Rayner) <[email protected]>
---
.../export/test_export_external_table.groovy | 183 +++++++++++++--------
1 file changed, 112 insertions(+), 71 deletions(-)
diff --git
a/regression-test/suites/external_table_p0/export/test_export_external_table.groovy
b/regression-test/suites/external_table_p0/export/test_export_external_table.groovy
index 6910a983faf..b9f18e83ebe 100644
---
a/regression-test/suites/external_table_p0/export/test_export_external_table.groovy
+++
b/regression-test/suites/external_table_p0/export/test_export_external_table.groovy
@@ -217,6 +217,11 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
waiting_export.call(catalog_name, ex_db_name, label)
+ def export_res = sql """show export from
${catalog_name}.${ex_db_name} where label='${label}'"""
+ logger.info("get external export res ${export_res}")
+ def outfileinfo = export_res[0][11];
+ logger.info("get external export outfile info ${outfileinfo}")
+
// check data correctness
create_load_table(table_load_name)
@@ -225,18 +230,20 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
def portList = [:]
getBackendIpHeartbeatPort(ipList, portList)
ipList.each { beid, ip ->
- logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
- sql """
- insert into
internal.${internal_db_name}.${table_load_name}
- select * from local(
- "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
- "backend_id" = "${beid}",
- "format" = "csv",
- "column_separator" = ","
- );
- """
- def insert_res = sql "show last insert;"
- logger.info("insert from local(), BE id = ${beid}, result: " +
insert_res.toString())
+ if (outfileinfo.contains(ip)) {
+ logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
+ sql """
+ insert into
internal.${internal_db_name}.${table_load_name}
+ select * from local(
+ "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
+ "backend_id" = "${beid}",
+ "format" = "csv",
+ "column_separator" = ","
+ );
+ """
+ def insert_res = sql "show last insert;"
+ logger.info("insert from local(), BE id = ${beid}, result:
" + insert_res.toString())
+ }
}
order_qt_select_load2 """ SELECT * FROM
internal.${internal_db_name}.${table_load_name} order by k8; """
@@ -266,6 +273,11 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
"""
waiting_export.call(catalog_name, ex_db_name, label)
+ def export_res = sql """show export where label='${label}'"""
+ logger.info("get csv_with_names export res ${export_res}")
+ def outfileinfo = export_res[0][11];
+ logger.info("get csv_with_names export outfile info
${outfileinfo}")
+
// check data correctness
create_load_table(table_load_name)
@@ -274,18 +286,20 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
def portList = [:]
getBackendIpHeartbeatPort(ipList, portList)
ipList.each { beid, ip ->
- logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
- sql """
- insert into
internal.${internal_db_name}.${table_load_name}
- select * from local(
- "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
- "backend_id" = "${beid}",
- "column_separator" = ",",
- "format" = "csv_with_names"
- );
- """
- def insert_res = sql "show last insert;"
- logger.info("insert from local(), BE id = ${beid}, result: " +
insert_res.toString())
+ if (outfileinfo.contains(ip)) {
+ logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
+ sql """
+ insert into
internal.${internal_db_name}.${table_load_name}
+ select * from local(
+ "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
+ "backend_id" = "${beid}",
+ "column_separator" = ",",
+ "format" = "csv_with_names"
+ );
+ """
+ def insert_res = sql "show last insert;"
+ logger.info("insert from local(), BE id = ${beid}, result:
" + insert_res.toString())
+ }
}
order_qt_select_load3 """ SELECT * FROM
internal.${internal_db_name}.${table_load_name} order by k8; """
@@ -315,6 +329,11 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
"""
waiting_export.call(catalog_name, ex_db_name, label)
+ def export_res = sql """show export where label='${label}'"""
+ logger.info("get csv_with_names_and_types export res
${export_res}")
+ def outfileinfo = export_res[0][11];
+ logger.info("get csv_with_names_and_types export outfile info
${outfileinfo}")
+
// check data correctness
create_load_table(table_load_name)
@@ -323,18 +342,20 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
def portList = [:]
getBackendIpHeartbeatPort(ipList, portList)
ipList.each { beid, ip ->
- logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
- sql """
- insert into
internal.${internal_db_name}.${table_load_name}
- select * from local(
- "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
- "backend_id" = "${beid}",
- "column_separator" = ",",
- "format" = "csv_with_names_and_types"
- );
- """
- def insert_res = sql "show last insert;"
- logger.info("insert from local(), BE id = ${beid}, result: " +
insert_res.toString())
+ if (outfileinfo.contains(ip)) {
+ logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
+ sql """
+ insert into
internal.${internal_db_name}.${table_load_name}
+ select * from local(
+ "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
+ "backend_id" = "${beid}",
+ "column_separator" = ",",
+ "format" = "csv_with_names_and_types"
+ );
+ """
+ def insert_res = sql "show last insert;"
+ logger.info("insert from local(), BE id = ${beid}, result:
" + insert_res.toString())
+ }
}
order_qt_select_load4 """ SELECT * FROM
internal.${internal_db_name}.${table_load_name} order by k8; """
@@ -363,6 +384,11 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
"""
waiting_export.call(catalog_name, ex_db_name, label)
+ def export_res = sql """show export where label='${label}'"""
+ logger.info("get orc export res ${export_res}")
+ def outfileinfo = export_res[0][11];
+ logger.info("get orc export outfile info ${outfileinfo}")
+
// check data correctness
create_load_table(table_load_name)
@@ -371,17 +397,19 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
def portList = [:]
getBackendIpHeartbeatPort(ipList, portList)
ipList.each { beid, ip ->
- logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
- sql """
- insert into
internal.${internal_db_name}.${table_load_name}
- select * from local(
- "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
- "backend_id" = "${beid}",
- "format" = "orc"
- );
- """
- def insert_res = sql "show last insert;"
- logger.info("insert from local(), BE id = ${beid}, result: " +
insert_res.toString())
+ if (outfileinfo.contains(ip)) {
+ logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
+ sql """
+ insert into
internal.${internal_db_name}.${table_load_name}
+ select * from local(
+ "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
+ "backend_id" = "${beid}",
+ "format" = "orc"
+ );
+ """
+ def insert_res = sql "show last insert;"
+ logger.info("insert from local(), BE id = ${beid}, result:
" + insert_res.toString())
+ }
}
order_qt_select_load5 """ SELECT * FROM
internal.${internal_db_name}.${table_load_name} order by k8; """
@@ -409,6 +437,11 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
"""
waiting_export.call(catalog_name, ex_db_name, label)
+ def export_res = sql """show export where label='${label}'"""
+ logger.info("get parquet export res ${export_res}")
+ def outfileinfo = export_res[0][11];
+ logger.info("get parquet export outfile info ${outfileinfo}")
+
// check data correctness
create_load_table(table_load_name)
@@ -417,17 +450,19 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
def portList = [:]
getBackendIpHeartbeatPort(ipList, portList)
ipList.each { beid, ip ->
- logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
- sql """
- insert into internal.${internal_db_name}.${table_load_name}
- select * from local(
- "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
- "backend_id" = "${beid}",
- "format" = "parquet"
- );
- """
- def insert_res = sql "show last insert;"
- logger.info("insert from local(), BE id = ${beid}, result: " +
insert_res.toString())
+ if (outfileinfo.contains(ip)) {
+ logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
+ sql """
+ insert into
internal.${internal_db_name}.${table_load_name}
+ select * from local(
+ "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
+ "backend_id" = "${beid}",
+ "format" = "parquet"
+ );
+ """
+ def insert_res = sql "show last insert;"
+ logger.info("insert from local(), BE id = ${beid}, result:
" + insert_res.toString())
+ }
}
order_qt_select_load6 """ SELECT * FROM
internal.${internal_db_name}.${table_load_name} order by k8; """
@@ -436,7 +471,6 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
delete_files.call("${outFilePath}")
}
-
// 7. test columns property
uuid = UUID.randomUUID().toString()
outFilePath = "${outfile_path_prefix}" +
"/${table_export_name}_${uuid}"
@@ -458,6 +492,11 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
"""
waiting_export.call(catalog_name, ex_db_name, label)
+ def export_res = sql """show export where label='${label}'"""
+ logger.info("get columns property export res ${export_res}")
+ def outfileinfo = export_res[0][11];
+ logger.info("get columns property export outfile info
${outfileinfo}")
+
// check data correctness
create_load_table(table_load_name)
@@ -466,18 +505,20 @@ suite("test_export_external_table",
"p0,external,mysql,external_docker,external_
def portList = [:]
getBackendIpHeartbeatPort(ipList, portList)
ipList.each { beid, ip ->
- logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
- sql """
- insert into
internal.${internal_db_name}.${table_load_name} (k8, k1, k5, k3, k7)
- select * from local(
- "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
- "backend_id" = "${beid}",
- "format" = "csv_with_names",
- "column_separator" = ","
- );
- """
- def insert_res = sql "show last insert;"
- logger.info("insert from local(), BE id = ${beid}, result: " +
insert_res.toString())
+ if (outfileinfo.contains(ip)) {
+ logger.info("Begin to insert into
internal.${internal_db_name}.${table_load_name} from local()")
+ sql """
+ insert into
internal.${internal_db_name}.${table_load_name} (k8, k1, k5, k3, k7)
+ select * from local(
+ "file_path" =
"${local_tvf_prefix}/${table_export_name}_${uuid}/*",
+ "backend_id" = "${beid}",
+ "format" = "csv_with_names",
+ "column_separator" = ","
+ );
+ """
+ def insert_res = sql "show last insert;"
+ logger.info("insert from local(), BE id = ${beid}, result:
" + insert_res.toString())
+ }
}
order_qt_select_load7 """ SELECT * FROM
internal.${internal_db_name}.${table_load_name} order by k8; """
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]