From 1ae7c4e307f3e14c2c59e0f40e51925ff902ee78 Mon Sep 17 00:00:00 2001 From: wxy Date: Thu, 22 Sep 2022 09:07:46 +0800 Subject: [PATCH] [fix](LOAD statement): fix bug for `toSql` func of LoadStmt. (#12648) --- .../java/org/apache/doris/analysis/DataDescription.java | 9 ++++++--- .../org/apache/doris/analysis/DataDescriptionTest.java | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java index 814e0ccab7..da5a69aea2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java @@ -917,14 +917,17 @@ public class DataDescription { if (columnSeparator != null) { sb.append(" COLUMNS TERMINATED BY ").append(columnSeparator.toSql()); } - if (columnsFromPath != null && !columnsFromPath.isEmpty()) { - sb.append(" COLUMNS FROM PATH AS ("); - Joiner.on(", ").appendTo(sb, columnsFromPath).append(")"); + if (fileFormat != null && !fileFormat.isEmpty()) { + sb.append(" FORMAT AS '" + fileFormat + "'"); } if (fileFieldNames != null && !fileFieldNames.isEmpty()) { sb.append(" ("); Joiner.on(", ").appendTo(sb, fileFieldNames).append(")"); } + if (columnsFromPath != null && !columnsFromPath.isEmpty()) { + sb.append(" COLUMNS FROM PATH AS ("); + Joiner.on(", ").appendTo(sb, columnsFromPath).append(")"); + } if (columnMappingList != null && !columnMappingList.isEmpty()) { sb.append(" SET ("); Joiner.on(", ").appendTo(sb, Lists.transform(columnMappingList, new Function() { diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/DataDescriptionTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/DataDescriptionTest.java index a12819d8bd..c8a9002236 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/DataDescriptionTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/DataDescriptionTest.java @@ -128,7 +128,7 @@ public class DataDescriptionTest { desc = new DataDescription("testTable", null, Lists.newArrayList("abc.txt"), Lists.newArrayList("col1", "col2"), new Separator(","), "csv", null, false, null, null, whereExpr, LoadTask.MergeType.MERGE, whereExpr, null, null); desc.analyze("testDb"); - Assert.assertEquals("MERGE DATA INFILE ('abc.txt') INTO TABLE testTable COLUMNS TERMINATED BY ',' (col1, col2) WHERE 1 = 1 DELETE ON 1 = 1", desc.toString()); + Assert.assertEquals("MERGE DATA INFILE ('abc.txt') INTO TABLE testTable COLUMNS TERMINATED BY ',' FORMAT AS 'csv' (col1, col2) WHERE 1 = 1 DELETE ON 1 = 1", desc.toString()); Assert.assertEquals("1 = 1", desc.getWhereExpr().toSql()); Assert.assertEquals("1 = 1", desc.getDeleteCondition().toSql()); Assert.assertEquals(",", desc.getColumnSeparator());