voonhous commented on code in PR #18961:
URL: https://github.com/apache/hudi/pull/18961#discussion_r3850252151


##########
hudi-common/src/main/java/org/apache/hudi/common/config/HoodieStorageConfig.java:
##########
@@ -298,6 +298,24 @@ public class HoodieStorageConfig extends HoodieConfig {
           + "The provider parses variant binary data and populates typed_value 
columns. "
           + "When not set, the provider is auto-detected from the classpath.");
 
+  public static final ConfigProperty<Boolean> 
PARQUET_VARIANT_SHREDDING_SCHEMA_INFERENCE_ENABLED = ConfigProperty
+      .key("hoodie.parquet.variant.shredding.schema.inference.enabled")
+      .defaultValue(false)
+      .sinceVersion("1.3.0")
+      .withDocumentation("When enabled, the shredding schema for variant 
columns without an explicit "
+          + "typed_value in the write schema is inferred automatically per 
parquet file from a sample of "
+          + "the records written to that file, mirroring Spark 4.1's "
+          + "spark.sql.variant.inferShreddingSchema. Requires Spark 4.1+ on 
the writer classpath; "
+          + "writes stay unshredded otherwise (Spark 4.0, Flink, Java 
engines). Applies to every "
+          + "parquet file the writer produces: base files and, on table 
version 10+, the native "
+          + "parquet log files of MOR tables (each infers its own schema); 
legacy Avro log blocks "

Review Comment:
   Confirmed: `serializeRecordsToLogBlock` takes the `OutputStream` overload, 
which neither factory wraps. The doc now says data blocks inside Avro-format 
log files stay unshredded whether Avro or parquet 
(`hoodie.logfile.data.block.format`); the PR body sentence is updated to match.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to