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

morningman pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new bf90d918ca6 [fix](regression-test) Make `test_decimal256_outfile_csv` 
export the data to S3 rather than local file system (#36592)(#42211) (#42270)
bf90d918ca6 is described below

commit bf90d918ca634529dcbdb562bc7747af5336dfd5
Author: Rayner Chen <morning...@163.com>
AuthorDate: Tue Oct 22 23:57:30 2024 +0800

    [fix](regression-test) Make `test_decimal256_outfile_csv` export the data 
to S3 rather than local file system (#36592)(#42211) (#42270)
    
    bp  (#36592)(#42211)
    
    ---------
    
    Co-authored-by: TengJianPing <18241664+jackte...@users.noreply.github.com>
    Co-authored-by: Tiewei Fang <43782773+bepppo...@users.noreply.github.com>
---
 .../decimalv3/test_decimal256_outfile_csv.out      | 21 ++++++
 .../decimalv3/test_decimal256_outfile_csv.groovy   | 88 +++++++++-------------
 2 files changed, 55 insertions(+), 54 deletions(-)

diff --git 
a/regression-test/data/datatype_p0/decimalv3/test_decimal256_outfile_csv.out 
b/regression-test/data/datatype_p0/decimalv3/test_decimal256_outfile_csv.out
index 6dd74d5daa5..e30101a08e6 100644
--- a/regression-test/data/datatype_p0/decimalv3/test_decimal256_outfile_csv.out
+++ b/regression-test/data/datatype_p0/decimalv3/test_decimal256_outfile_csv.out
@@ -20,3 +20,24 @@
 4999999999999999999999999999999999999999999999999999999999999999999.999999999  
1.0000000000    1.00000000000
 9999999999999999999999999999999999999999999999999999999999999999999.999999999  
1.0000000000    1.00000000000
 
+-- !select_tvf1 --
+\N     \N      \N
+-9999999999999999999999999999999999999999999999999999999999999999999.999999999 
1.0000000000    1.00000000000
+-4999999999999999999999999999999999999999999999999999999999999999999.999999999 
1.0000000000    1.00000000000
+-99999999999999999999999999999.999999999       1.0000000000    1.00000000000
+0.000000000    0.0000000000    0.00000000000
+1.000000000    
999999999999999999999999999999999999999999999999999999999999999999.9999999999   
99999999999999999999999999999999999999999999999999999999999999999.99999999999
+1.000000000    
999999999999999999999999999999999999999999999999999999999999999999.9999999999   
99999999999999999999999999999999999999999999999999999999999999999.99999999999
+2.000000000    
499999999999999999999999999999999999999999999999999999999999999999.9999999999   
49999999999999999999999999999999999999999999999999999999999999999.99999999999
+3.000000000    
333333333333333333333333333333333333333333333333333333333333333333.3333333333   
33333333333333333333333333333333333333333333333333333333333333333.33333333333
+3.000000000    
333333333333333333333333333333333333333333333333333333333333333333.3333333333   
33333333333333333333333333333333333333333333333333333333333333333.33333333333
+4.000000000    
-999999999999999999999999999999999999999999999999999999999999999999.9999999999  
99999999999999999999999999999999999999999999999999999999999999999.99999999999
+4.000000000    
-999999999999999999999999999999999999999999999999999999999999999999.9999999999  
99999999999999999999999999999999999999999999999999999999999999999.99999999999
+5.000000000    
-333333333333333333333333333333333333333333333333333333333333333333.3333333333  
33333333333333333333333333333333333333333333333333333333333333333.33333333333
+5.000000000    
-333333333333333333333333333333333333333333333333333333333333333333.3333333333  
33333333333333333333333333333333333333333333333333333333333333333.33333333333
+6.000000000    \N      
99999999999999999999999999999999999999999999999999999999999999999.99999999999
+7.000000000    \N      
99999999999999999999999999999999999999999999999999999999999999999.99999999999
+99999999999999999999999999999.999999999        1.0000000000    1.00000000000
+4999999999999999999999999999999999999999999999999999999999999999999.999999999  
1.0000000000    1.00000000000
+9999999999999999999999999999999999999999999999999999999999999999999.999999999  
1.0000000000    1.00000000000
+
diff --git 
a/regression-test/suites/datatype_p0/decimalv3/test_decimal256_outfile_csv.groovy
 
b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_outfile_csv.groovy
index 24054e6408d..736ff970f1c 100644
--- 
a/regression-test/suites/datatype_p0/decimalv3/test_decimal256_outfile_csv.groovy
+++ 
b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_outfile_csv.groovy
@@ -22,36 +22,15 @@ import java.nio.file.Files
 import java.nio.file.Paths
 
 suite("test_decimal256_outfile_csv") {
-    StringBuilder strBuilder = new StringBuilder()
-    strBuilder.append("curl --location-trusted -u " + context.config.jdbcUser 
+ ":" + context.config.jdbcPassword)
-    strBuilder.append(" http://"; + context.config.feHttpAddress + 
"/rest/v1/config/fe")
-
-    String command = strBuilder.toString()
-    def process = command.toString().execute()
-    def code = process.waitFor()
-    def err = IOGroovyMethods.getText(new BufferedReader(new 
InputStreamReader(process.getErrorStream())));
-    def out = process.getText()
-    logger.info("Request FE Config: code=" + code + ", out=" + out + ", err=" 
+ err)
-    assertEquals(code, 0)
-    def response = parseJson(out.trim())
-    assertEquals(response.code, 0)
-    assertEquals(response.msg, "success")
-    def configJson = response.data.rows
-    boolean enableOutfileToLocal = false
-    for (Object conf: configJson) {
-        assert conf instanceof Map
-        if (((Map<String, String>) conf).get("Name").toLowerCase() == 
"enable_outfile_to_local") {
-            enableOutfileToLocal = ((Map<String, String>) 
conf).get("Value").toLowerCase() == "true"
-        }
-    }
-    if (!enableOutfileToLocal) {
-        logger.warn("Please set enable_outfile_to_local to true to run 
test_outfile")
-        return
-    }
-
     sql "set enable_nereids_planner = true;"
     sql "set enable_decimal256 = true;"
 
+    String ak = getS3AK()
+    String sk = getS3SK()
+    String s3_endpoint = getS3Endpoint()
+    String region = getS3Region()
+    String bucket = context.config.otherConfigs.get("s3BucketName");
+
     sql "DROP TABLE IF EXISTS `test_decimal256_outfile_csv`"
     sql """
     CREATE TABLE IF NOT EXISTS `test_decimal256_outfile_csv` (
@@ -105,36 +84,37 @@ suite("test_decimal256_outfile_csv") {
         SELECT * FROM test_decimal256_outfile_csv t order by 1,2,3;
     """
 
-    def uuid = UUID.randomUUID().toString()
-    def outFilePath = """/tmp/test_decimal256_outfile_csv_${uuid}"""
-    List<List<Object>> backends =  sql """ show backends """
-    assertTrue(backends.size() > 0)
-    if (backends.size() > 1) {
-        outFilePath = "/tmp"
+
+    def outFilePath = "${bucket}/outfile/csv/test_decimal256_outfile_csv/exp_"
+
+    def outfile_to_S3 = { export_table_name, foramt ->
+        // select ... into outfile ...
+        def res = sql """
+            SELECT * FROM ${export_table_name} t ORDER BY k1
+            INTO OUTFILE "s3://${outFilePath}"
+            FORMAT AS ${foramt}
+            PROPERTIES (
+                "s3.endpoint" = "${s3_endpoint}",
+                "s3.region" = "${region}",
+                "s3.secret_key"="${sk}",
+                "s3.access_key" = "${ak}"
+            );
+        """
+        return res[0][3]
     }
+
     try {
         logger.info("outfile: " + outFilePath)
-        // check outfile
-        File path = new File(outFilePath)
-        if (!path.exists()) {
-            assert path.mkdirs()
-        } else {
-            throw new IllegalStateException("""${outFilePath} already exists! 
""")
-        }
-        sql """
-            SELECT * FROM test_decimal256_outfile_csv t order by 1,2,3 INTO 
OUTFILE "file://${outFilePath}/" properties("column_separator" = ",");
-        """
-        File[] files = path.listFiles()
-        assert files.length == 1
-        List<String> outLines = 
Files.readAllLines(Paths.get(files[0].getAbsolutePath()), 
StandardCharsets.UTF_8);
-        assert outLines.size() == 19
+        def outfile_url = outfile_to_S3("test_decimal256_outfile_csv", "csv")
+
+        qt_select_tvf1 """ SELECT * FROM S3 (
+                            "uri" = 
"http://${bucket}.${s3_endpoint}${outfile_url.substring(5 + bucket.length(), 
outfile_url.length() - 1)}0.csv",
+                            "ACCESS_KEY"= "${ak}",
+                            "SECRET_KEY" = "${sk}",
+                            "format" = "csv",
+                            "region" = "${region}"
+                        );
+                        """
     } finally {
-        File path = new File(outFilePath)
-        if (path.exists()) {
-            for (File f: path.listFiles()) {
-                f.delete();
-            }
-            path.delete();
-        }
     }
 }
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to