Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Drop NULL columns (e.g.
NULL AS KEY
) from INSERT INTO pipelines.Promote NULL fields to BYTES in DDL (e.g.
KEY BYTES
).Details
Flink does not allow NULLs in queries (SQL) or in table definitions (DDL). This is problematic, because we would like to be able to write
NULL AS KEY
in subscriptions.In Hoptimator, sink tables are derived from subscription SQL. If we write
NULL AS KEY
in a subscription, the sink table would have aNULL
-typed column, and the Flink job would fail. Instead,NULL AS KEY
should result in the column being omitted form the pipeline entirely (defaulting to NULL).At the same time, Flink DDL cannot have NULL-typed fields, so we promote these to BYTES.
The result is that
SELECT ... NULL AS KEY ...
results in a sink table withKEY BYTES
and pipelines that omit theKEY
field (defaulting to NULL).Testing
New unit tests. Tested locally and by manually tweaking production pipelines.
Changed integration tests to use
NULL AS KEY
.