moggaa commented on code in PR #17653:
URL: https://github.com/apache/iceberg/pull/17653#discussion_r4121985989
##########
kafka-connect/kafka-connect/src/main/java/org/apache/iceberg/connect/IcebergSinkConfig.java:
##########
@@ -179,6 +181,12 @@ private static ConfigDef newConfigDef() {
false,
Importance.MEDIUM,
"Set to true to add any missing record fields to the table schema,
false otherwise");
+ configDef.define(
+ TABLES_REPLACE_NULL_WITH_DEFAULT_PROP,
+ ConfigDef.Type.BOOLEAN,
+ true,
Review Comment:
Agreed — keeping `true` is a deliberate choice, not an omission. The
deciding factor for me is upgrade safety: with `false` as the default, an
existing pipeline would change its written data on upgrade (defaults become
nulls), and in the auto-created-table + CDC case it could start failing
outright on required columns. That feels like opt-in territory. So `true`
preserves everyone's current behavior, `false` is a documented opt-in, and the
docs now call out the tradeoff and the required-column failure mode explicitly.
If the project ever wants `false` as the default, a major release seems like
the natural point to flip it.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]