rkhachatryan commented on code in PR #27070:
URL: https://github.com/apache/flink/pull/27070#discussion_r2447405721
##########
flink-table/flink-table-api-java/src/main/java/org/apache/flink/table/api/config/ExecutionConfigOptions.java:
##########
@@ -159,6 +159,58 @@ public class ExecutionConfigOptions {
+ "or force
materialization(FORCE).")
.build());
+ @Documentation.TableOption(execMode = Documentation.ExecMode.STREAMING)
+ public static final ConfigOption<Long>
+ TABLE_EXEC_SINK_UPSERT_MATERIALIZE_ADAPTIVE_THRESHOLD_LOW =
+
key("table.exec.sink.upsert-materialize-strategy.adaptive.threshold.low")
+ .longType()
+ .noDefaultValue()
+ .withDescription(
+ Description.builder()
+ .text(
+ "When using
strategy=ADAPTIVE, defines the number of entries per key when the
implementation is changed from MAP to VALUE. "
+ + "If not
specified, Flink uses state-backend specific defaults (300 for hashmap state
backend and 40 for RocksDB and the rest).")
+ .linebreak()
+ .build());
+
+ @Documentation.TableOption(execMode = Documentation.ExecMode.STREAMING)
+ public static final ConfigOption<Long>
+ TABLE_EXEC_SINK_UPSERT_MATERIALIZE_ADAPTIVE_THRESHOLD_HIGH =
+
key("table.exec.sink.upsert-materialize-strategy.adaptive.threshold.high")
+ .longType()
+ .noDefaultValue()
+ .withDescription(
+ Description.builder()
+ .text(
+ "When using
strategy=ADAPTIVE, defines the number of entries per key when the
implementation is changed from VALUE to MAP. "
+ + "If not
specified, Flink uses state-backend specific defaults (400 for hashmap state
backend and 50 for RocksDB and the rest).")
+ .linebreak()
+ .build());
+
+ @Documentation.TableOption(execMode = Documentation.ExecMode.STREAMING)
+ public static final ConfigOption<SinkUpsertMaterializeStrategy>
+ TABLE_EXEC_SINK_UPSERT_MATERIALIZE_STRATEGY =
+ key("table.exec.sink.upsert-materialize-strategy.type")
Review Comment:
> I think randomized values are very valuable for finding potential bugs.
Yes, I agree.
> In other words, what is the difference between adding null value to
compiled plans and do not add it?
When `upsertMaterializeStrategy` is set to null, it's not written by json
serializer to the compiled plan because of
```
@JsonProperty(FIELD_NAME_UPSERT_MATERIALIZE_STRATEGY)
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
private final SinkUpsertMaterializeStrategy upsertMaterializeStrategy;
```
So it allows to stay compatible with older tests/runtime
--
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]