Repository navigation
0.12.3
Features
- Keyed the records that the pipeline exports into a
PARTITIONED BYKafka table the same way the server keys mutation records (#2527)- Records with the same key stay on one Kafka partition, in order
- Records written without a key are still read, through the new
scan.key-fields.read-from-valueoption of the defaultkafka-safeconnector - With the plain
kafkaconnector, these records are dropped as before0.12.2, and the compiler warns about it
- Added
"standalone": trueforscript.includeentries whose project is deployed on its own (636802567)- That project owns its internal Kafka tables, so
kafka.jsonlists their topics by name underincludedTopicsinstead oftopics - The deployment leaves creating and configuring these topics, including their partition count, to that project
- Internal Iceberg tables are not covered yet
- That project owns its internal Kafka tables, so
- Supported separate formats for the Kafka message key and value (#2529)
key.formatandvalue.formatfrom a connector template orWITHoptions now apply as given, instead of being overwritten byformat- Options of
format, such asflexible-json.timestamp-format.standard, only reach the side that uses that format - The compiler notes when both formats are equal, and warns when a mutation table uses a format other than
jsonorflexible-json, since the server writes mutations as JSON
- Extended the agent skills with guidance on:
- What the
enginehint selects:engine(flink)only when a served query needs an index on a computed column, such as atext_searchGIN index (#2515) - When a
primary_keyhint is needed: only when the compile fails withCould not determine primary key for table [...](#2515) PARTITIONED BYKafka keys, which columns they can use, and keeping internal Kafka tables onkafka-safe(#2527, #2530)- Separate Kafka key and value formats, and
standaloneincludes (#2529, 636802567)
- What the
Fixes
- Filled in the
uuidandauthmetadata columns before building the Kafka key of a mutation record (#2530)- Before, a
PARTITIONED BYon such a column keyed every record{}and sent all of them to one partition. Upsert tables with such a column in theirPRIMARY KEYhad the same problem on their compacted topic - The key now contains every key column, so an omitted nullable column gives
{"col":null}, the same key as an explicitnulland as the one Flink writes
- Before, a
- Fixed
EXPORTandINSERT INTOstatements that write into aPARTITIONED BYKafka table, which failed to compile (#2526)- The clause only declares the Kafka message key, but it reached the Flink table, and Flink's Kafka sink rejects partitioned tables
- Reported a
PARTITIONED BYcolumn that the server cannot fill in, such asMETADATA FROM 'timestamp', with an error that names the column and lists the columns that can be used (#2530)
Documentation
- Documented:
- Separate Kafka key and value formats (#2529)
- Standalone includes and
includedTopicsinkafka.json(636802567) - Which columns
PARTITIONED BYcan use as the Kafka key, and that it also keys the records the pipeline exports (#2527, #2530) - What the
enginehint selects and when aprimary_keyhint is needed (#2515)
Maintenance
- Updated Flink SQL Runner to
0.12.3(see its release notes), which:- Adds
scan.key-fields.read-from-valuetokafka-safe - Fixes idle source-watermark advancement in
kafka-safeandupsert-kafka-safe - Fixes value-format metadata columns, such as
debezium-json'svalue.source.timestamp, reading asNULLinkafka-safetables withkey.fields
- Adds
- Updated Jackson, Vert.x, Spring Framework, Reactor Core, Micrometer, Vert.x Maven Plugin, Maven Surefire Plugin, Maven Failsafe Plugin, and Node.js
Full Changelog: 0.12.2...0.12.3