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

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git


The following commit(s) were added to refs/heads/master by this push:
     new 1ba867278 [core] Use enum instead of string for file.format (#691)
1ba867278 is described below

commit 1ba867278612ea189cbeb0008f8738cc6cd39b4b
Author: Shammon FY <[email protected]>
AuthorDate: Thu Mar 23 14:59:15 2023 +0800

    [core] Use enum instead of string for file.format (#691)
---
 .../shortcodes/generated/core_configuration.html   | 18 ++----
 .../paimon/benchmark/TableWriterBenchmark.java     |  8 +--
 .../main/java/org/apache/paimon/CoreOptions.java   | 69 ++++++++++++++++++----
 .../org/apache/paimon/schema/SchemaValidation.java |  5 ++
 .../apache/paimon/utils/FileStorePathFactory.java  |  2 +-
 .../java/org/apache/paimon/FileFormatTest.java     |  4 +-
 .../test/java/org/apache/paimon/TestFileStore.java |  4 +-
 .../apache/paimon/append/AppendOnlyWriterTest.java |  2 +-
 .../apache/paimon/io/DataFilePathFactoryTest.java  |  4 +-
 .../apache/paimon/io/RollingFileWriterTest.java    |  4 +-
 .../paimon/manifest/ManifestFileMetaTest.java      |  2 +-
 .../apache/paimon/manifest/ManifestFileTest.java   |  5 +-
 .../apache/paimon/manifest/ManifestListTest.java   |  2 +-
 .../apache/paimon/schema/SchemaManagerTest.java    | 20 +++++++
 .../paimon/table/FileStoreTableTestBase.java       |  8 ++-
 .../paimon/utils/FileStorePathFactoryTest.java     |  2 +-
 .../org/apache/paimon/flink/FileStoreITCase.java   |  2 +-
 .../apache/paimon/flink/ForceCompactionITCase.java |  2 +-
 .../flink/source/TestChangelogDataReadWrite.java   |  2 +-
 .../paimon/hive/PaimonStorageHandlerITCase.java    | 10 ++--
 .../paimon/hive/mapred/PaimonRecordReaderTest.java |  6 +-
 21 files changed, 129 insertions(+), 52 deletions(-)

diff --git a/docs/layouts/shortcodes/generated/core_configuration.html 
b/docs/layouts/shortcodes/generated/core_configuration.html
index 874f02da7..ab6802a1b 100644
--- a/docs/layouts/shortcodes/generated/core_configuration.html
+++ b/docs/layouts/shortcodes/generated/core_configuration.html
@@ -82,9 +82,9 @@
         </tr>
         <tr>
             <td><h5>file.format</h5></td>
-            <td style="word-wrap: break-word;">"orc"</td>
-            <td>String</td>
-            <td>Specify the message format of data files.</td>
+            <td style="word-wrap: break-word;">orc</td>
+            <td><p>Enum</p></td>
+            <td>Specify the message format of data files, currently orc, 
parquet and avro are supported.<br /><br />Possible values:<ul><li>"orc": ORC 
file format.</li><li>"parquet": Parquet file format.</li><li>"avro": Avro file 
format.</li></ul></td>
         </tr>
         <tr>
             <td><h5>local-sort.max-num-file-handles</h5></td>
@@ -148,9 +148,9 @@
         </tr>
         <tr>
             <td><h5>manifest.format</h5></td>
-            <td style="word-wrap: break-word;">"avro"</td>
-            <td>String</td>
-            <td>Specify the message format of manifest files.</td>
+            <td style="word-wrap: break-word;">avro</td>
+            <td><p>Enum</p></td>
+            <td>Specify the message format of manifest files.<br /><br 
/>Possible values:<ul><li>"orc": ORC file format.</li><li>"parquet": Parquet 
file format.</li><li>"avro": Avro file format.</li></ul></td>
         </tr>
         <tr>
             <td><h5>manifest.merge-min-count</h5></td>
@@ -362,11 +362,5 @@
             <td>Boolean</td>
             <td>If set to true, compactions and snapshot expiration will be 
skipped. This option is used along with dedicated compact jobs.</td>
         </tr>
-        <tr>
-            <td><h5>read.batch-size</h5></td>
-            <td style="word-wrap: break-word;">1024</td>
-            <td>Integer</td>
-            <td>Read batch size for orc and parquet.</td>
-        </tr>
     </tbody>
 </table>
diff --git 
a/paimon-benchmark/paimon-micro-benchmarks/src/test/java/org/apache/paimon/benchmark/TableWriterBenchmark.java
 
b/paimon-benchmark/paimon-micro-benchmarks/src/test/java/org/apache/paimon/benchmark/TableWriterBenchmark.java
index 0d1f83c5b..85340f194 100644
--- 
a/paimon-benchmark/paimon-micro-benchmarks/src/test/java/org/apache/paimon/benchmark/TableWriterBenchmark.java
+++ 
b/paimon-benchmark/paimon-micro-benchmarks/src/test/java/org/apache/paimon/benchmark/TableWriterBenchmark.java
@@ -36,7 +36,7 @@ public class TableWriterBenchmark extends TableBenchmark {
     @Test
     public void testAvro() throws Exception {
         Options options = new Options();
-        options.set(CoreOptions.FILE_FORMAT, "avro");
+        options.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.AVRO);
         innerTest("avro", options);
         /*
          * Java HotSpot(TM) 64-Bit Server VM 1.8.0_301-b09 on Mac OS X 10.16
@@ -50,7 +50,7 @@ public class TableWriterBenchmark extends TableBenchmark {
     @Test
     public void testOrcNoCompression() throws Exception {
         Options options = new Options();
-        options.set(CoreOptions.FILE_FORMAT, "orc");
+        options.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.ORC);
         options.set("orc.compress", "none");
         innerTest("orc", options);
         /*
@@ -65,7 +65,7 @@ public class TableWriterBenchmark extends TableBenchmark {
     @Test
     public void testParquet() throws Exception {
         Options options = new Options();
-        options.set(CoreOptions.FILE_FORMAT, "parquet");
+        options.set(CoreOptions.FILE_FORMAT, 
CoreOptions.FileFormatType.PARQUET);
         innerTest("parquet", options);
         /*
          * Java HotSpot(TM) 64-Bit Server VM 1.8.0_301-b09 on Mac OS X 10.16
@@ -79,7 +79,7 @@ public class TableWriterBenchmark extends TableBenchmark {
     @Test
     public void testOrc() throws Exception {
         Options options = new Options();
-        options.set(CoreOptions.FILE_FORMAT, "orc");
+        options.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.ORC);
         innerTest("orc", options);
         /*
          * Java HotSpot(TM) 64-Bit Server VM 1.8.0_301-b09 on Mac OS X 10.16
diff --git a/paimon-core/src/main/java/org/apache/paimon/CoreOptions.java 
b/paimon-core/src/main/java/org/apache/paimon/CoreOptions.java
index b2832a4aa..8feb424a9 100644
--- a/paimon-core/src/main/java/org/apache/paimon/CoreOptions.java
+++ b/paimon-core/src/main/java/org/apache/paimon/CoreOptions.java
@@ -20,6 +20,7 @@ package org.apache.paimon;
 
 import org.apache.paimon.annotation.Documentation.ExcludeFromDocumentation;
 import org.apache.paimon.annotation.Documentation.Immutable;
+import org.apache.paimon.annotation.VisibleForTesting;
 import org.apache.paimon.format.FileFormat;
 import org.apache.paimon.format.FileFormatFactory.FormatContext;
 import org.apache.paimon.fs.Path;
@@ -29,11 +30,13 @@ import org.apache.paimon.options.Options;
 import org.apache.paimon.options.description.DescribedEnum;
 import org.apache.paimon.options.description.Description;
 import org.apache.paimon.options.description.InlineElement;
+import org.apache.paimon.utils.StringUtils;
 
 import java.io.Serializable;
 import java.lang.reflect.Field;
 import java.time.Duration;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -79,11 +82,12 @@ public class CoreOptions implements Serializable {
                     .noDefaultValue()
                     .withDescription("The file path of this table in the 
filesystem.");
 
-    public static final ConfigOption<String> FILE_FORMAT =
+    public static final ConfigOption<FileFormatType> FILE_FORMAT =
             key("file.format")
-                    .stringType()
-                    .defaultValue("orc")
-                    .withDescription("Specify the message format of data 
files.");
+                    .enumType(FileFormatType.class)
+                    .defaultValue(FileFormatType.ORC)
+                    .withDescription(
+                            "Specify the message format of data files, 
currently orc, parquet and avro are supported.");
 
     public static final ConfigOption<String> ORC_BLOOM_FILTER_COLUMNS =
             key("orc.bloom.filter.columns")
@@ -109,10 +113,10 @@ public class CoreOptions implements Serializable {
                                     + "could be NONE, ZLIB, SNAPPY, LZO, LZ4, 
for parquet file format, the compression value could be "
                                     + "UNCOMPRESSED, SNAPPY, GZIP, LZO, 
BROTLI, LZ4, ZSTD.");
 
-    public static final ConfigOption<String> MANIFEST_FORMAT =
+    public static final ConfigOption<FileFormatType> MANIFEST_FORMAT =
             key("manifest.format")
-                    .stringType()
-                    .defaultValue("avro")
+                    .enumType(FileFormatType.class)
+                    .defaultValue(FileFormatType.AVRO)
                     .withDescription("Specify the message format of manifest 
files.");
 
     public static final ConfigOption<MemorySize> MANIFEST_TARGET_FILE_SIZE =
@@ -564,6 +568,10 @@ public class CoreOptions implements Serializable {
         return new Path(options.get(PATH));
     }
 
+    public FileFormatType formatType() {
+        return options.get(FILE_FORMAT);
+    }
+
     public FileFormat fileFormat() {
         return createFileFormat(options, FILE_FORMAT);
     }
@@ -580,11 +588,12 @@ public class CoreOptions implements Serializable {
         return options.get(PARTITION_DEFAULT_NAME);
     }
 
-    public static FileFormat createFileFormat(Options options, 
ConfigOption<String> formatOption) {
-        String formatIdentifier = options.get(formatOption);
+    public static FileFormat createFileFormat(
+            Options options, ConfigOption<FileFormatType> formatOption) {
+        FileFormatType formatIdentifier = options.get(formatOption);
         int readBatchSize = options.get(READ_BATCH_SIZE);
         return FileFormat.fromIdentifier(
-                formatIdentifier,
+                formatIdentifier.toString(),
                 new FormatContext(options.removePrefix(formatIdentifier + 
"."), readBatchSize));
     }
 
@@ -956,6 +965,46 @@ public class CoreOptions implements Serializable {
         }
     }
 
+    /** Specifies the file format type for store. */
+    public enum FileFormatType implements DescribedEnum {
+        ORC("orc", "ORC file format."),
+        PARQUET("parquet", "Parquet file format."),
+        AVRO("avro", "Avro file format.");
+
+        private final String value;
+        private final String description;
+
+        FileFormatType(String value, String description) {
+            this.value = value;
+            this.description = description;
+        }
+
+        @Override
+        public String toString() {
+            return value;
+        }
+
+        @Override
+        public InlineElement getDescription() {
+            return text(description);
+        }
+
+        @VisibleForTesting
+        public static FileFormatType fromValue(String value) {
+            for (FileFormatType formatType : FileFormatType.values()) {
+                if (formatType.value.equals(value)) {
+                    return formatType;
+                }
+            }
+            throw new IllegalArgumentException(
+                    String.format(
+                            "Invalid format type %s, only support [%s]",
+                            value,
+                            StringUtils.join(
+                                    
Arrays.stream(FileFormatType.values()).iterator(), ",")));
+        }
+    }
+
     /**
      * Set the default values of the {@link CoreOptions} via the given {@link 
Options}.
      *
diff --git 
a/paimon-core/src/main/java/org/apache/paimon/schema/SchemaValidation.java 
b/paimon-core/src/main/java/org/apache/paimon/schema/SchemaValidation.java
index f0e46eaa9..2ecbbf633 100644
--- a/paimon-core/src/main/java/org/apache/paimon/schema/SchemaValidation.java
+++ b/paimon-core/src/main/java/org/apache/paimon/schema/SchemaValidation.java
@@ -100,6 +100,11 @@ public class SchemaValidation {
             }
         }
 
+        // Get the format type here which will try to convert string value to 
{@Code
+        // FileFormatType}. If the string value is illegal, an exception will 
be thrown.
+        // TODO Check fields type according to the format type
+        options.formatType();
+
         // Check column names in schema
         schema.fieldNames()
                 .forEach(
diff --git 
a/paimon-core/src/main/java/org/apache/paimon/utils/FileStorePathFactory.java 
b/paimon-core/src/main/java/org/apache/paimon/utils/FileStorePathFactory.java
index 6482ac839..242dd8648 100644
--- 
a/paimon-core/src/main/java/org/apache/paimon/utils/FileStorePathFactory.java
+++ 
b/paimon-core/src/main/java/org/apache/paimon/utils/FileStorePathFactory.java
@@ -58,7 +58,7 @@ public class FileStorePathFactory {
                 root,
                 RowType.builder().build(),
                 PARTITION_DEFAULT_NAME.defaultValue(),
-                CoreOptions.FILE_FORMAT.defaultValue());
+                CoreOptions.FILE_FORMAT.defaultValue().toString());
     }
 
     // for tables without partition, partitionType should be a row type with 0 
columns (not null)
diff --git a/paimon-core/src/test/java/org/apache/paimon/FileFormatTest.java 
b/paimon-core/src/test/java/org/apache/paimon/FileFormatTest.java
index 1ff601443..83a869ffb 100644
--- a/paimon-core/src/test/java/org/apache/paimon/FileFormatTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/FileFormatTest.java
@@ -90,7 +90,7 @@ public class FileFormatTest {
     @Test
     public void testCreateFileFormat() {
         Options tableOptions = new Options();
-        tableOptions.set(CoreOptions.FILE_FORMAT, IDENTIFIER);
+        tableOptions.set(CoreOptions.FILE_FORMAT, 
CoreOptions.FileFormatType.fromValue(IDENTIFIER));
         tableOptions.set(CoreOptions.READ_BATCH_SIZE, 1024);
         tableOptions.setString(IDENTIFIER + ".hello", "world");
         FileFormat fileFormat = CoreOptions.createFileFormat(tableOptions, 
CoreOptions.FILE_FORMAT);
@@ -103,7 +103,7 @@ public class FileFormatTest {
 
     public FileFormat createFileFormat(String codec) {
         Options tableOptions = new Options();
-        tableOptions.set(CoreOptions.FILE_FORMAT, "avro");
+        tableOptions.set(CoreOptions.FILE_FORMAT, 
CoreOptions.FileFormatType.AVRO);
         tableOptions.setString("avro.codec", codec);
         return CoreOptions.createFileFormat(tableOptions, 
CoreOptions.FILE_FORMAT);
     }
diff --git a/paimon-core/src/test/java/org/apache/paimon/TestFileStore.java 
b/paimon-core/src/test/java/org/apache/paimon/TestFileStore.java
index 0da839383..78d0044bb 100644
--- a/paimon-core/src/test/java/org/apache/paimon/TestFileStore.java
+++ b/paimon-core/src/test/java/org/apache/paimon/TestFileStore.java
@@ -534,8 +534,8 @@ public class TestFileStore extends KeyValueFileStore {
                     CoreOptions.MANIFEST_TARGET_FILE_SIZE,
                     MemorySize.parse((ThreadLocalRandom.current().nextInt(16) 
+ 1) + "kb"));
 
-            conf.set(CoreOptions.FILE_FORMAT, format);
-            conf.set(CoreOptions.MANIFEST_FORMAT, format);
+            conf.set(CoreOptions.FILE_FORMAT, 
CoreOptions.FileFormatType.fromValue(format));
+            conf.set(CoreOptions.MANIFEST_FORMAT, 
CoreOptions.FileFormatType.fromValue(format));
             conf.set(CoreOptions.PATH, root);
             conf.set(CoreOptions.BUCKET, numBuckets);
 
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/append/AppendOnlyWriterTest.java 
b/paimon-core/src/test/java/org/apache/paimon/append/AppendOnlyWriterTest.java
index aa0949d10..e5b71e4a3 100644
--- 
a/paimon-core/src/test/java/org/apache/paimon/append/AppendOnlyWriterTest.java
+++ 
b/paimon-core/src/test/java/org/apache/paimon/append/AppendOnlyWriterTest.java
@@ -295,7 +295,7 @@ public class AppendOnlyWriterTest {
                 new Path(tempDir.toString()),
                 "dt=" + PART,
                 0,
-                CoreOptions.FILE_FORMAT.defaultValue());
+                CoreOptions.FILE_FORMAT.defaultValue().toString());
     }
 
     private AppendOnlyWriter createEmptyWriter(long targetFileSize) {
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/io/DataFilePathFactoryTest.java 
b/paimon-core/src/test/java/org/apache/paimon/io/DataFilePathFactoryTest.java
index eba1fb37e..c579cabda 100644
--- 
a/paimon-core/src/test/java/org/apache/paimon/io/DataFilePathFactoryTest.java
+++ 
b/paimon-core/src/test/java/org/apache/paimon/io/DataFilePathFactoryTest.java
@@ -38,7 +38,7 @@ public class DataFilePathFactoryTest {
                         new Path(tempDir.toString()),
                         "",
                         123,
-                        CoreOptions.FILE_FORMAT.defaultValue());
+                        CoreOptions.FILE_FORMAT.defaultValue().toString());
         String uuid = pathFactory.uuid();
 
         for (int i = 0; i < 20; i++) {
@@ -64,7 +64,7 @@ public class DataFilePathFactoryTest {
                         new Path(tempDir.toString()),
                         "dt=20211224",
                         123,
-                        CoreOptions.FILE_FORMAT.defaultValue());
+                        CoreOptions.FILE_FORMAT.defaultValue().toString());
         String uuid = pathFactory.uuid();
 
         for (int i = 0; i < 20; i++) {
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/io/RollingFileWriterTest.java 
b/paimon-core/src/test/java/org/apache/paimon/io/RollingFileWriterTest.java
index 51180f39b..cfd3300f5 100644
--- a/paimon-core/src/test/java/org/apache/paimon/io/RollingFileWriterTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/io/RollingFileWriterTest.java
@@ -68,7 +68,9 @@ public class RollingFileWriterTest {
                                                         new 
Path(tempDir.toString()),
                                                         "",
                                                         0,
-                                                        
CoreOptions.FILE_FORMAT.defaultValue())
+                                                        CoreOptions.FILE_FORMAT
+                                                                .defaultValue()
+                                                                .toString())
                                                 .newPath(),
                                         SCHEMA,
                                         
fileFormat.createStatsExtractor(SCHEMA).orElse(null),
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestFileMetaTest.java
 
b/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestFileMetaTest.java
index 004721119..1a8f10e28 100644
--- 
a/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestFileMetaTest.java
+++ 
b/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestFileMetaTest.java
@@ -150,7 +150,7 @@ public class ManifestFileMetaTest {
                                 path,
                                 PARTITION_TYPE,
                                 "default",
-                                CoreOptions.FILE_FORMAT.defaultValue()),
+                                
CoreOptions.FILE_FORMAT.defaultValue().toString()),
                         Long.MAX_VALUE)
                 .create();
     }
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestFileTest.java 
b/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestFileTest.java
index 071d2fece..d4773395b 100644
--- a/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestFileTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestFileTest.java
@@ -95,7 +95,10 @@ public class ManifestFileTest {
         Path path = new Path(pathStr);
         FileStorePathFactory pathFactory =
                 new FileStorePathFactory(
-                        path, DEFAULT_PART_TYPE, "default", 
CoreOptions.FILE_FORMAT.defaultValue());
+                        path,
+                        DEFAULT_PART_TYPE,
+                        "default",
+                        CoreOptions.FILE_FORMAT.defaultValue().toString());
         int suggestedFileSize = ThreadLocalRandom.current().nextInt(8192) + 
1024;
         FileIO fileIO = FileIOFinder.find(path);
         return new ManifestFile.Factory(
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestListTest.java 
b/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestListTest.java
index 01d883fb4..bbceeff3a 100644
--- a/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestListTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/manifest/ManifestListTest.java
@@ -94,7 +94,7 @@ public class ManifestListTest {
                         path,
                         TestKeyValueGenerator.DEFAULT_PART_TYPE,
                         "default",
-                        CoreOptions.FILE_FORMAT.defaultValue());
+                        CoreOptions.FILE_FORMAT.defaultValue().toString());
         return new ManifestList.Factory(
                         FileIOFinder.find(path),
                         TestKeyValueGenerator.DEFAULT_PART_TYPE,
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/schema/SchemaManagerTest.java 
b/paimon-core/src/test/java/org/apache/paimon/schema/SchemaManagerTest.java
index 9ba99e453..23dc0b1b8 100644
--- a/paimon-core/src/test/java/org/apache/paimon/schema/SchemaManagerTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/schema/SchemaManagerTest.java
@@ -52,6 +52,7 @@ import java.util.concurrent.ThreadLocalRandom;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 
+import static org.apache.paimon.CoreOptions.FILE_FORMAT;
 import static org.apache.paimon.utils.FailingFileIO.retryArtificialException;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -307,4 +308,23 @@ public class SchemaManagerTest {
         manager.deleteSchema(manager.latest().get().id());
         assertThat(manager.latest().get().toString()).isEqualTo(schemaContent);
     }
+
+    @Test
+    public void testInvalidFormatType() {
+        Map<String, String> options = new HashMap<>();
+        options.put(FILE_FORMAT.key(), "test");
+        Schema schema =
+                new Schema(
+                        rowType.getFields(),
+                        partitionKeys,
+                        primaryKeys,
+                        options,
+                        "append-only table with primary key");
+        SchemaManager manager = new SchemaManager(LocalFileIO.create(), path);
+        assertThatThrownBy(() -> manager.createTable(schema))
+                .isInstanceOf(IllegalArgumentException.class)
+                .hasMessage(
+                        String.format(
+                                "Could not parse value 'test' for key '%s'.", 
FILE_FORMAT.key()));
+    }
 }
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/table/FileStoreTableTestBase.java 
b/paimon-core/src/test/java/org/apache/paimon/table/FileStoreTableTestBase.java
index d700f003c..ddd94224c 100644
--- 
a/paimon-core/src/test/java/org/apache/paimon/table/FileStoreTableTestBase.java
+++ 
b/paimon-core/src/test/java/org/apache/paimon/table/FileStoreTableTestBase.java
@@ -18,6 +18,7 @@
 
 package org.apache.paimon.table;
 
+import org.apache.paimon.CoreOptions;
 import org.apache.paimon.Snapshot;
 import org.apache.paimon.data.BinaryRow;
 import org.apache.paimon.data.BinaryRowWriter;
@@ -148,7 +149,8 @@ public abstract class FileStoreTableTestBase {
 
     @Test
     public void testChangeFormat() throws Exception {
-        FileStoreTable table = createFileStoreTable(conf -> 
conf.set(FILE_FORMAT, "orc"));
+        FileStoreTable table =
+                createFileStoreTable(conf -> conf.set(FILE_FORMAT, 
CoreOptions.FileFormatType.ORC));
 
         StreamTableWrite write = table.newWrite(commitUser);
         StreamTableCommit commit = table.newCommit(commitUser);
@@ -167,7 +169,9 @@ public abstract class FileStoreTableTestBase {
                         "1|10|100|binary|varbinary|mapKey:mapVal|multiset",
                         "2|20|200|binary|varbinary|mapKey:mapVal|multiset");
 
-        table = createFileStoreTable(conf -> conf.set(FILE_FORMAT, "avro"));
+        table =
+                createFileStoreTable(
+                        conf -> conf.set(FILE_FORMAT, 
CoreOptions.FileFormatType.AVRO));
         write = table.newWrite(commitUser);
         commit = table.newCommit(commitUser);
         write.write(rowData(1, 11, 111L));
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/utils/FileStorePathFactoryTest.java
 
b/paimon-core/src/test/java/org/apache/paimon/utils/FileStorePathFactoryTest.java
index e5635b696..8e9088bb4 100644
--- 
a/paimon-core/src/test/java/org/apache/paimon/utils/FileStorePathFactoryTest.java
+++ 
b/paimon-core/src/test/java/org/apache/paimon/utils/FileStorePathFactoryTest.java
@@ -84,7 +84,7 @@ public class FileStorePathFactoryTest {
                                 new DataType[] {new VarCharType(10), new 
IntType()},
                                 new String[] {"dt", "hr"}),
                         "default",
-                        CoreOptions.FILE_FORMAT.defaultValue());
+                        CoreOptions.FILE_FORMAT.defaultValue().toString());
 
         assertPartition("20211224", 16, pathFactory, "/dt=20211224/hr=16");
         assertPartition("20211224", null, pathFactory, 
"/dt=20211224/hr=default");
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/FileStoreITCase.java
 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/FileStoreITCase.java
index 8bc7bdf44..05d83e621 100644
--- 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/FileStoreITCase.java
+++ 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/FileStoreITCase.java
@@ -417,7 +417,7 @@ public class FileStoreITCase extends AbstractTestBase {
             FailingFileIO.reset(failingName, 3, 100);
             options.set(PATH, FailingFileIO.getFailingPath(failingName, 
temporaryPath));
         }
-        options.set(FILE_FORMAT, "avro");
+        options.set(FILE_FORMAT, CoreOptions.FileFormatType.AVRO);
         return options;
     }
 
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/ForceCompactionITCase.java
 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/ForceCompactionITCase.java
index f1347e6ec..1306dd386 100644
--- 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/ForceCompactionITCase.java
+++ 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/ForceCompactionITCase.java
@@ -231,7 +231,7 @@ public class ForceCompactionITCase extends 
CatalogITCaseBase {
                         getTableDirectory(tableName),
                         partType,
                         "default",
-                        CoreOptions.FILE_FORMAT.defaultValue());
+                        CoreOptions.FILE_FORMAT.defaultValue().toString());
 
         List<ManifestFileMeta> manifestFileMetas =
                 new ManifestList.Factory(LocalFileIO.create(), partType, avro, 
pathFactory)
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/source/TestChangelogDataReadWrite.java
 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/source/TestChangelogDataReadWrite.java
index a4e2e454e..499951cd3 100644
--- 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/source/TestChangelogDataReadWrite.java
+++ 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/source/TestChangelogDataReadWrite.java
@@ -100,7 +100,7 @@ public class TestChangelogDataReadWrite {
                         tablePath,
                         RowType.of(new IntType()),
                         "default",
-                        CoreOptions.FILE_FORMAT.defaultValue());
+                        CoreOptions.FILE_FORMAT.defaultValue().toString());
         this.snapshotManager = new SnapshotManager(LocalFileIO.create(), new 
Path(root));
         this.commitUser = UUID.randomUUID().toString();
     }
diff --git 
a/paimon-hive/paimon-hive-connector-common/src/test/java/org/apache/paimon/hive/PaimonStorageHandlerITCase.java
 
b/paimon-hive/paimon-hive-connector-common/src/test/java/org/apache/paimon/hive/PaimonStorageHandlerITCase.java
index 04c8a1d68..c26524620 100644
--- 
a/paimon-hive/paimon-hive-connector-common/src/test/java/org/apache/paimon/hive/PaimonStorageHandlerITCase.java
+++ 
b/paimon-hive/paimon-hive-connector-common/src/test/java/org/apache/paimon/hive/PaimonStorageHandlerITCase.java
@@ -600,7 +600,7 @@ public class PaimonStorageHandlerITCase {
         Options conf = new Options();
         conf.set(CoreOptions.PATH, path);
         conf.set(CoreOptions.BUCKET, 2);
-        conf.set(CoreOptions.FILE_FORMAT, "avro");
+        conf.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.AVRO);
         FileStoreTable table =
                 FileStoreTestUtils.createFileStoreTable(conf, rowType, 
partitionKeys, primaryKeys);
 
@@ -613,7 +613,7 @@ public class PaimonStorageHandlerITCase {
         Options conf = new Options();
         conf.set(CoreOptions.PATH, path);
         conf.set(CoreOptions.BUCKET, 2);
-        conf.set(CoreOptions.FILE_FORMAT, "avro");
+        conf.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.AVRO);
         conf.set(CoreOptions.WRITE_MODE, WriteMode.APPEND_ONLY);
         FileStoreTable table =
                 FileStoreTestUtils.createFileStoreTable(
@@ -653,7 +653,7 @@ public class PaimonStorageHandlerITCase {
         String root = folder.newFolder().toString();
         Options conf = new Options();
         conf.set(CoreOptions.PATH, root);
-        conf.set(CoreOptions.FILE_FORMAT, "avro");
+        conf.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.AVRO);
         FileStoreTable table =
                 FileStoreTestUtils.createFileStoreTable(
                         conf,
@@ -769,7 +769,7 @@ public class PaimonStorageHandlerITCase {
         String path = folder.newFolder().toURI().toString();
         Options conf = new Options();
         conf.set(CoreOptions.PATH, path);
-        conf.set(CoreOptions.FILE_FORMAT, "avro");
+        conf.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.AVRO);
         FileStoreTable table =
                 FileStoreTestUtils.createFileStoreTable(
                         conf,
@@ -858,7 +858,7 @@ public class PaimonStorageHandlerITCase {
         String path = folder.newFolder().toURI().toString();
         Options conf = new Options();
         conf.set(CoreOptions.PATH, path);
-        conf.set(CoreOptions.FILE_FORMAT, "avro");
+        conf.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.AVRO);
         FileStoreTable table =
                 FileStoreTestUtils.createFileStoreTable(
                         conf,
diff --git 
a/paimon-hive/paimon-hive-connector-common/src/test/java/org/apache/paimon/hive/mapred/PaimonRecordReaderTest.java
 
b/paimon-hive/paimon-hive-connector-common/src/test/java/org/apache/paimon/hive/mapred/PaimonRecordReaderTest.java
index d3dcf35b4..2548accff 100644
--- 
a/paimon-hive/paimon-hive-connector-common/src/test/java/org/apache/paimon/hive/mapred/PaimonRecordReaderTest.java
+++ 
b/paimon-hive/paimon-hive-connector-common/src/test/java/org/apache/paimon/hive/mapred/PaimonRecordReaderTest.java
@@ -65,7 +65,7 @@ public class PaimonRecordReaderTest {
     public void testPk() throws Exception {
         Options conf = new Options();
         conf.set(CoreOptions.PATH, tempDir.toString());
-        conf.set(CoreOptions.FILE_FORMAT, "avro");
+        conf.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.AVRO);
         FileStoreTable table =
                 FileStoreTestUtils.createFileStoreTable(
                         conf,
@@ -103,7 +103,7 @@ public class PaimonRecordReaderTest {
     public void testValueCount() throws Exception {
         Options conf = new Options();
         conf.set(CoreOptions.PATH, tempDir.toString());
-        conf.set(CoreOptions.FILE_FORMAT, "avro");
+        conf.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.AVRO);
         FileStoreTable table =
                 FileStoreTestUtils.createFileStoreTable(
                         conf,
@@ -142,7 +142,7 @@ public class PaimonRecordReaderTest {
     public void testProjectionPushdown() throws Exception {
         Options conf = new Options();
         conf.set(CoreOptions.PATH, tempDir.toString());
-        conf.set(CoreOptions.FILE_FORMAT, "avro");
+        conf.set(CoreOptions.FILE_FORMAT, CoreOptions.FileFormatType.AVRO);
         FileStoreTable table =
                 FileStoreTestUtils.createFileStoreTable(
                         conf,

Reply via email to