This is an automated email from the ASF dual-hosted git repository.
voonhous pushed a commit to branch branch-1.2.x
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/branch-1.2.x by this push:
new 060cf01ad709 fix(config): correct sinceVersion of 1.2.1 configs
(#20056)
060cf01ad709 is described below
commit 060cf01ad7091c7b5a6babb7f8b973c578e04ec8
Author: voonhous <[email protected]>
AuthorDate: Fri Sep 25 09:48:13 2026 +0800
fix(config): correct sinceVersion of 1.2.1 configs (#20056)
Fourteen configs first shipped in 1.2.1 but carry sinceVersion 1.3.0,
because they were cherry-picked from master before the label was
updated. Label them 1.2.1. hoodie.metadata.index.partition.stats.enable
has existed since 1.0.0, so restore that label.
---
.../main/java/org/apache/hudi/client/CommitMetadataProperties.java | 4 ++--
.../main/java/org/apache/hudi/common/config/HoodieCommonConfig.java | 2 +-
.../java/org/apache/hudi/common/config/HoodieMetadataConfig.java | 6 +++---
.../apache/hudi/common/table/view/FileSystemViewStorageConfig.java | 2 +-
.../src/main/java/org/apache/hudi/hive/HiveSyncConfigHolder.java | 4 ++--
.../java/org/apache/hudi/utilities/config/CloudSourceConfig.java | 6 +++---
.../java/org/apache/hudi/utilities/config/KinesisSourceConfig.java | 6 +++---
7 files changed, 15 insertions(+), 15 deletions(-)
diff --git
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CommitMetadataProperties.java
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CommitMetadataProperties.java
index 3a7b79812c8e..1341b1cf8ca6 100644
---
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CommitMetadataProperties.java
+++
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CommitMetadataProperties.java
@@ -83,7 +83,7 @@ public class CommitMetadataProperties {
.key("hoodie.commit.metadata.engine.properties.embed.enable")
.defaultValue(false)
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("When enabled, engine-specific properties (e.g.
spark.application.id, "
+ "spark.user, java.version) are embedded into commit metadata
for debugging. "
+ "hudi.version and engine name are always embedded regardless
of this flag.");
@@ -101,7 +101,7 @@ public class CommitMetadataProperties {
.key("hoodie.write.config.keys.to.serialize.to.commit.metadata")
.defaultValue(DEFAULT_WRITE_CONFIG_KEYS)
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("Comma-separated list of write-config keys whose
values are "
+ "serialized into the extraMetadata map of every commit (under
the 'config.' "
+ "prefix). Set to empty to skip config-key serialization
entirely. Avoid adding "
diff --git
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieCommonConfig.java
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieCommonConfig.java
index 0eaf9533a737..a6106e95e136 100644
---
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieCommonConfig.java
+++
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieCommonConfig.java
@@ -87,7 +87,7 @@ public class HoodieCommonConfig extends HoodieConfig {
.key("hoodie.write.timestamp.logical.type.overrides")
.defaultValue("")
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("Per-field authority for the timestamp logical type,
taking precedence over the "
+ "auto-inferred schema. Comma-separated 'field:type' pairs, where
type is one of timestamp-micros, "
+ "timestamp-millis, local-timestamp-micros, local-timestamp-millis
(case-insensitive). A field with an "
diff --git
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java
index a99f3bb35963..6121bd250378 100644
---
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java
+++
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java
@@ -199,7 +199,7 @@ public final class HoodieMetadataConfig extends
HoodieConfig {
.key(METADATA_PREFIX + ".skip.zero.size.files.on.initialize")
.defaultValue(false)
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("When enabled, zero-size data files encountered while
listing the data table during "
+ "metadata table initialization and restore sync are skipped
instead of being recorded in the metadata "
+ "table. Skipped files remain on storage and are not tracked by the
metadata table or the cleaner; "
@@ -250,7 +250,7 @@ public final class HoodieMetadataConfig extends
HoodieConfig {
.key(METADATA_PREFIX + ".index.partition.stats.enable")
.defaultValue(true)
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.0.0")
.withDocumentation("Enable aggregating the column stats index to the
partition level in the metadata table, "
+ "used to prune partitions during index lookups. Partition stats
requires the column stats index "
+ "(" + METADATA_PREFIX + ".index.column.stats.enable) to be enabled
and has no effect when column stats "
@@ -709,7 +709,7 @@ public final class HoodieMetadataConfig extends
HoodieConfig {
.key(METADATA_PREFIX + ".enable.detailed.metrics")
.defaultValue(false)
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("Enables detailed metadata table metrics —
per-metadata-partition file size and base/log "
+ "file counts. Emitting these requires building a
HoodieTableFileSystemView for the metadata table on "
+ "the driver, which adds memory pressure at scale; leave disabled
unless you need the breakdown.");
diff --git
a/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java
b/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java
index ae08886ed537..c98b41d094e7 100644
---
a/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java
+++
b/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java
@@ -171,7 +171,7 @@ public class FileSystemViewStorageConfig extends
HoodieConfig {
.key("hoodie.filesystem.view.remote.response.charset")
.defaultValue(StandardCharsets.ISO_8859_1.name())
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("Charset used for decoding HTTP responses from the
timeline server. "
+ "Set to 'UTF-8' if partition paths or file paths contain non-ASCII
characters (e.g. Unicode). "
+ "Default is ISO-8859-1 for backwards compatibility.");
diff --git
a/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HiveSyncConfigHolder.java
b/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HiveSyncConfigHolder.java
index 84e2f7bae0e8..1c1ed1895ed6 100644
---
a/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HiveSyncConfigHolder.java
+++
b/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HiveSyncConfigHolder.java
@@ -126,7 +126,7 @@ public class HiveSyncConfigHolder {
.key("hoodie.datasource.hive_sync.batching.enabled")
.defaultValue(false)
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("Only applies to HiveQL sync mode; has no effect in
HMS or JDBC mode. When true, "
+ "ADD, TOUCH, and SET_LOCATION partition statements are dispatched
in parallel across a pool of "
+ "Hive Driver workers, with ADD and TOUCH additionally split into
batches of "
@@ -145,7 +145,7 @@ public class HiveSyncConfigHolder {
.key("hoodie.datasource.hive_sync.batching.threads")
.defaultValue(4)
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("Number of worker threads used for parallel HiveQL
partition dispatch when "
+ "`hoodie.datasource.hive_sync.batching.enabled` is true. The same
value sizes both pools: the "
+ "Hive Driver workers used for ADD/TOUCH/SET_LOCATION and the
metastore (Thrift) clients used "
diff --git
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/CloudSourceConfig.java
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/CloudSourceConfig.java
index 69ab1753513c..2c56793c2f39 100644
---
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/CloudSourceConfig.java
+++
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/CloudSourceConfig.java
@@ -186,7 +186,7 @@ public class CloudSourceConfig extends HoodieConfig {
.key(STREAMER_CONFIG_PREFIX +
"source.cloud.data.include.source.path.field")
.defaultValue(false)
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("When enabled, appends a nullable string column named
_hoodie_cloud_source_path holding the "
+ "fully-qualified URI of the source file each record was read from,
as returned by Spark's "
+ "input_file_name() (percent-encoded, e.g.
s3a://bucket/dir/file%20name.json). A same-named column "
@@ -213,7 +213,7 @@ public class CloudSourceConfig extends HoodieConfig {
.key(STREAMER_CONFIG_PREFIX +
"source.cloud.data.check.file.exists.parallelism")
.defaultValue(16)
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("Number of threads per Spark task used to check cloud
object existence concurrently when "
+ ENABLE_EXISTS_CHECK.key() + " is enabled. Must be >= 1; 1 checks
sequentially. All tasks on an executor "
+ "share one cached FileSystem client, so keep executor cores x this
value within the client's connection "
@@ -223,7 +223,7 @@ public class CloudSourceConfig extends HoodieConfig {
.key(STREAMER_CONFIG_PREFIX +
"source.cloud.data.check.file.exists.partitions")
.defaultValue(0)
.markAdvanced()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.withDocumentation("Number of Spark partitions the cloud object
existence checks are spread over when "
+ ENABLE_EXISTS_CHECK.key() + " is enabled; each partition checks
with " + EXISTS_CHECK_PARALLELISM.key()
+ " threads. The default 0 sizes to the cluster (spark default
parallelism, i.e. the registered executor "
diff --git
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/KinesisSourceConfig.java
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/KinesisSourceConfig.java
index a9f3fd4688f9..c8dd7d54f628 100644
---
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/KinesisSourceConfig.java
+++
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/KinesisSourceConfig.java
@@ -79,7 +79,7 @@ public class KinesisSourceConfig extends HoodieConfig {
public static final ConfigProperty<String> KINESIS_ROLE_ARN = ConfigProperty
.key(PREFIX + "role.arn")
.noDefaultValue()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.markAdvanced()
.withDocumentation("IAM role ARN to assume via STS when the Kinesis
stream lives in a different AWS "
+ "account than the application. When set, and no static
access/secret key is configured (static keys "
@@ -93,7 +93,7 @@ public class KinesisSourceConfig extends HoodieConfig {
public static final ConfigProperty<String> KINESIS_ROLE_EXTERNAL_ID =
ConfigProperty
.key(PREFIX + "role.external.id")
.noDefaultValue()
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.markAdvanced()
.withDocumentation("External ID passed to sts:AssumeRole when assuming "
+ PREFIX + "role.arn, for roles "
+ "whose trust policy carries an sts:ExternalId condition. Ignored
when the role ARN is not set.");
@@ -101,7 +101,7 @@ public class KinesisSourceConfig extends HoodieConfig {
public static final ConfigProperty<String> KINESIS_ROLE_SESSION_NAME =
ConfigProperty
.key(PREFIX + "role.session.name")
.defaultValue("hudi-kinesis-source")
- .sinceVersion("1.3.0")
+ .sinceVersion("1.2.1")
.markAdvanced()
.withDocumentation("STS role session name used when assuming " + PREFIX
+ "role.arn. Shows up in the "
+ "target account's CloudTrail, so set it per pipeline when several
jobs share one role.");