This is an automated email from the ASF dual-hosted git repository.
danny0405 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new 744f2a1b6c0 [HUDI-7286] Flink get hudi index type ignore case
sensitive (#10476)
744f2a1b6c0 is described below
commit 744f2a1b6c08d283b8cd48db39f19091bcc11cfd
Author: akido <[email protected]>
AuthorDate: Tue Jan 16 10:39:14 2024 +0800
[HUDI-7286] Flink get hudi index type ignore case sensitive (#10476)
---
.../apache/hudi/configuration/OptionsResolver.java | 2 +-
.../hudi/configuration/TestOptionsResolver.java | 56 ++++++++++++++++++++++
2 files changed, 57 insertions(+), 1 deletion(-)
diff --git
a/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/configuration/OptionsResolver.java
b/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/configuration/OptionsResolver.java
index 59c6e79ddc1..fbe8fcdd62b 100644
---
a/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/configuration/OptionsResolver.java
+++
b/hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/configuration/OptionsResolver.java
@@ -340,7 +340,7 @@ public class OptionsResolver {
* Returns the index type.
*/
public static HoodieIndex.IndexType getIndexType(Configuration conf) {
- return
HoodieIndex.IndexType.valueOf(conf.getString(FlinkOptions.INDEX_TYPE));
+ return
HoodieIndex.IndexType.valueOf(conf.getString(FlinkOptions.INDEX_TYPE).toUpperCase());
}
/**
diff --git
a/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/configuration/TestOptionsResolver.java
b/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/configuration/TestOptionsResolver.java
new file mode 100644
index 00000000000..a68a4ab4d41
--- /dev/null
+++
b/hudi-flink-datasource/hudi-flink/src/test/java/org/apache/hudi/configuration/TestOptionsResolver.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hudi.configuration;
+
+import org.apache.flink.configuration.Configuration;
+import org.apache.hudi.common.model.WriteConcurrencyMode;
+import org.apache.hudi.config.HoodieWriteConfig;
+import org.apache.hudi.index.HoodieIndex;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import java.io.File;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+/**
+ * Test for {@link OptionsResolver}
+ */
+public class TestOptionsResolver {
+ @TempDir
+ File tempFile;
+
+ @Test
+ void testGetIndexType() {
+ Configuration conf = getConf();
+ // set uppercase index
+ conf.setString(FlinkOptions.INDEX_TYPE, "BLOOM");
+ assertEquals(HoodieIndex.IndexType.BLOOM,
OptionsResolver.getIndexType(conf));
+ // set lowercase index
+ conf.setString(FlinkOptions.INDEX_TYPE, "bloom");
+ assertEquals(HoodieIndex.IndexType.BLOOM,
OptionsResolver.getIndexType(conf));
+ }
+
+ private Configuration getConf() {
+ Configuration conf = new Configuration();
+ conf.setString(HoodieWriteConfig.WRITE_CONCURRENCY_MODE.key(),
WriteConcurrencyMode.OPTIMISTIC_CONCURRENCY_CONTROL.name());
+ conf.setString(FlinkOptions.PATH, tempFile.getAbsolutePath());
+ return conf;
+ }
+}