diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/DefaultSchema.java b/storage/inkless/src/main/jooq/org/jooq/generated/DefaultSchema.java index f5ee779a1b..95c24d8984 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/DefaultSchema.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/DefaultSchema.java @@ -86,7 +86,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/Domains.java b/storage/inkless/src/main/jooq/org/jooq/generated/Domains.java index de42488464..c846e2f082 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/Domains.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/Domains.java @@ -23,7 +23,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/Indexes.java b/storage/inkless/src/main/jooq/org/jooq/generated/Indexes.java index c1625ed328..fbcd375be9 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/Indexes.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/Indexes.java @@ -21,7 +21,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/Keys.java b/storage/inkless/src/main/jooq/org/jooq/generated/Keys.java index ea9ab454c3..6b57664fb6 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/Keys.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/Keys.java @@ -29,7 +29,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/Routines.java b/storage/inkless/src/main/jooq/org/jooq/generated/Routines.java index a5f3348d36..e7531cd47e 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/Routines.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/Routines.java @@ -62,7 +62,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/Tables.java b/storage/inkless/src/main/jooq/org/jooq/generated/Tables.java index f2a391af41..e8fa0039ca 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/Tables.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/Tables.java @@ -58,7 +58,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/UDTs.java b/storage/inkless/src/main/jooq/org/jooq/generated/UDTs.java index 07d030f91b..0323b5f713 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/UDTs.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/UDTs.java @@ -36,7 +36,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/enums/AdvanceCrossTierLogStartResponseErrorV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/enums/AdvanceCrossTierLogStartResponseErrorV1.java index f63bfd94c6..cf3a342890 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/enums/AdvanceCrossTierLogStartResponseErrorV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/enums/AdvanceCrossTierLogStartResponseErrorV1.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/enums/CommitBatchResponseErrorV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/enums/CommitBatchResponseErrorV1.java index 0d29a44490..aeef933c00 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/enums/CommitBatchResponseErrorV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/enums/CommitBatchResponseErrorV1.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/enums/DeleteRecordsResponseErrorV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/enums/DeleteRecordsResponseErrorV1.java index d96ab2c045..a397ab10d5 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/enums/DeleteRecordsResponseErrorV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/enums/DeleteRecordsResponseErrorV1.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/enums/EnforceRetentionResponseErrorV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/enums/EnforceRetentionResponseErrorV1.java index 755d2c7ff5..e4dd09c48b 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/enums/EnforceRetentionResponseErrorV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/enums/EnforceRetentionResponseErrorV1.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/enums/FileReasonT.java b/storage/inkless/src/main/jooq/org/jooq/generated/enums/FileReasonT.java index d5971bc6ab..761c4d334e 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/enums/FileReasonT.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/enums/FileReasonT.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/enums/FileStateT.java b/storage/inkless/src/main/jooq/org/jooq/generated/enums/FileStateT.java index 62315d1467..b595792bff 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/enums/FileStateT.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/enums/FileStateT.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/enums/FindBatchesResponseErrorV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/enums/FindBatchesResponseErrorV1.java index 53383932aa..e0a23b8651 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/enums/FindBatchesResponseErrorV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/enums/FindBatchesResponseErrorV1.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/enums/InitDisklessLogErrorV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/enums/InitDisklessLogErrorV1.java index f6dc97efa2..6cb8feefa0 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/enums/InitDisklessLogErrorV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/enums/InitDisklessLogErrorV1.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/enums/ListOffsetsResponseErrorV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/enums/ListOffsetsResponseErrorV1.java index dba4fbe109..bf8519970a 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/enums/ListOffsetsResponseErrorV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/enums/ListOffsetsResponseErrorV1.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/enums/PruneBatchesBelowHighestTieredOffsetErrorV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/enums/PruneBatchesBelowHighestTieredOffsetErrorV1.java index 5ae12829d5..24da52a7f7 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/enums/PruneBatchesBelowHighestTieredOffsetErrorV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/enums/PruneBatchesBelowHighestTieredOffsetErrorV1.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/routines/BatchTimestamp.java b/storage/inkless/src/main/jooq/org/jooq/generated/routines/BatchTimestamp.java index e1b0831879..1ad4f535b9 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/routines/BatchTimestamp.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/routines/BatchTimestamp.java @@ -21,7 +21,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteBatchV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteBatchV1.java index b7837525a1..541b2a5dcf 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteBatchV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteBatchV1.java @@ -24,7 +24,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteFilesV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteFilesV1.java index 224330212e..199e3d5838 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteFilesV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteFilesV1.java @@ -20,7 +20,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteTopicV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteTopicV1.java index 4d74346cbf..6be48b452a 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteTopicV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/routines/DeleteTopicV1.java @@ -25,7 +25,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/routines/FlushCommitRunV2.java b/storage/inkless/src/main/jooq/org/jooq/generated/routines/FlushCommitRunV2.java index 3fca511668..52cedceb43 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/routines/FlushCommitRunV2.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/routines/FlushCommitRunV2.java @@ -23,7 +23,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/routines/MarkFileToDeleteV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/routines/MarkFileToDeleteV1.java index 6002b53259..2640fe5106 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/routines/MarkFileToDeleteV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/routines/MarkFileToDeleteV1.java @@ -24,7 +24,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/AdvanceCrossTierLogStartV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/AdvanceCrossTierLogStartV1.java index 69119c1b7b..6d36f99b47 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/AdvanceCrossTierLogStartV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/AdvanceCrossTierLogStartV1.java @@ -29,7 +29,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/Batches.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/Batches.java index f78502c444..d1bb65e3da 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/Batches.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/Batches.java @@ -53,7 +53,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) @@ -175,7 +175,7 @@ public Batches(Table path, ForeignKey ch value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/CommitFileV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/CommitFileV1.java index 117e167a17..efaec3ede1 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/CommitFileV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/CommitFileV1.java @@ -35,7 +35,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/CommitFileV2.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/CommitFileV2.java index 07523d98e4..fd41de8ec9 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/CommitFileV2.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/CommitFileV2.java @@ -35,7 +35,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/DeleteRecordsV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/DeleteRecordsV1.java index 842f1fe677..1bad144780 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/DeleteRecordsV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/DeleteRecordsV1.java @@ -34,7 +34,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/EnforceRetentionV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/EnforceRetentionV1.java index d4eb097554..db2d0b268c 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/EnforceRetentionV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/EnforceRetentionV1.java @@ -34,7 +34,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/EnforceRetentionV2.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/EnforceRetentionV2.java index c8a076dfca..78827100c1 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/EnforceRetentionV2.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/EnforceRetentionV2.java @@ -34,7 +34,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/Files.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/Files.java index f1a846a114..94d8f7239a 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/Files.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/Files.java @@ -54,7 +54,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) @@ -161,7 +161,7 @@ public Files(Table path, ForeignKey childP value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/FindBatchesV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/FindBatchesV1.java index 24f4390f66..0671844356 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/FindBatchesV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/FindBatchesV1.java @@ -30,7 +30,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/FindBatchesV2.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/FindBatchesV2.java index d8640d63b7..ef31b135b7 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/FindBatchesV2.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/FindBatchesV2.java @@ -30,7 +30,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/InitDisklessLogV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/InitDisklessLogV1.java index 779df6ffee..aef87bff5a 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/InitDisklessLogV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/InitDisklessLogV1.java @@ -31,7 +31,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/ListOffsetsV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/ListOffsetsV1.java index 2f48ef84a7..a0355f99bf 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/ListOffsetsV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/ListOffsetsV1.java @@ -29,7 +29,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/Logs.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/Logs.java index ed11ed60ea..4efb6132e6 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/Logs.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/Logs.java @@ -45,7 +45,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) @@ -152,7 +152,7 @@ public Logs(Table path, ForeignKey childPat value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/ProducerState.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/ProducerState.java index 45c154ac57..cc12260555 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/ProducerState.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/ProducerState.java @@ -41,7 +41,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/PruneBatchesBelowHighestTieredOffsetV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/PruneBatchesBelowHighestTieredOffsetV1.java index f01f0a6eea..2f4f9f302f 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/PruneBatchesBelowHighestTieredOffsetV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/PruneBatchesBelowHighestTieredOffsetV1.java @@ -34,7 +34,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/RepairDisklessLogV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/RepairDisklessLogV1.java index d0c811c678..6748cab0fe 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/RepairDisklessLogV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/RepairDisklessLogV1.java @@ -29,7 +29,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/AdvanceCrossTierLogStartV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/AdvanceCrossTierLogStartV1Record.java index 8a95a8a52e..cf75afdad7 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/AdvanceCrossTierLogStartV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/AdvanceCrossTierLogStartV1Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/BatchesRecord.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/BatchesRecord.java index c125917ae3..b1c38136a3 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/BatchesRecord.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/BatchesRecord.java @@ -20,7 +20,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/CommitFileV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/CommitFileV1Record.java index 7f3b2eec14..397debaad0 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/CommitFileV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/CommitFileV1Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/CommitFileV2Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/CommitFileV2Record.java index 7d4c668da6..30fada5f31 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/CommitFileV2Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/CommitFileV2Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/DeleteRecordsV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/DeleteRecordsV1Record.java index 83f2a8ab1f..bc1f9b9a82 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/DeleteRecordsV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/DeleteRecordsV1Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/EnforceRetentionV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/EnforceRetentionV1Record.java index 1f9959dad8..a545d9250e 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/EnforceRetentionV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/EnforceRetentionV1Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/EnforceRetentionV2Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/EnforceRetentionV2Record.java index d855ef5726..ecdd3b478e 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/EnforceRetentionV2Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/EnforceRetentionV2Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FilesRecord.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FilesRecord.java index 6fc6e684bf..4038bf4c08 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FilesRecord.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FilesRecord.java @@ -23,7 +23,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FindBatchesV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FindBatchesV1Record.java index 8037e74508..a6b36c7959 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FindBatchesV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FindBatchesV1Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FindBatchesV2Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FindBatchesV2Record.java index cb8f4e2a30..3170ed80ab 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FindBatchesV2Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/FindBatchesV2Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/InitDisklessLogV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/InitDisklessLogV1Record.java index 0a5bd89624..14141140b8 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/InitDisklessLogV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/InitDisklessLogV1Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/ListOffsetsV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/ListOffsetsV1Record.java index 270cae4d18..f540e33aeb 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/ListOffsetsV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/ListOffsetsV1Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/LogsRecord.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/LogsRecord.java index f70eefa773..bd811ec039 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/LogsRecord.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/LogsRecord.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/ProducerStateRecord.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/ProducerStateRecord.java index 37375438cd..80af95a57b 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/ProducerStateRecord.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/ProducerStateRecord.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/PruneBatchesBelowHighestTieredOffsetV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/PruneBatchesBelowHighestTieredOffsetV1Record.java index 76aa9f510d..2747b27063 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/PruneBatchesBelowHighestTieredOffsetV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/PruneBatchesBelowHighestTieredOffsetV1Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/RepairDisklessLogV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/RepairDisklessLogV1Record.java index 99e61ec756..2249483a53 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/RepairDisklessLogV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/tables/records/RepairDisklessLogV1Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/AdvanceCrossTierLogStartRequestV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/AdvanceCrossTierLogStartRequestV1.java index 47ddd744e6..a5a0a919a2 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/AdvanceCrossTierLogStartRequestV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/AdvanceCrossTierLogStartRequestV1.java @@ -27,7 +27,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/AdvanceCrossTierLogStartResponseV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/AdvanceCrossTierLogStartResponseV1.java index bda31ec88d..62f9d14c69 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/AdvanceCrossTierLogStartResponseV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/AdvanceCrossTierLogStartResponseV1.java @@ -28,7 +28,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/BatchInfoV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/BatchInfoV1.java index 43d63b7ff0..ed70fcfb6d 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/BatchInfoV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/BatchInfoV1.java @@ -25,7 +25,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/BatchMetadataV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/BatchMetadataV1.java index ee84bf3bd4..f1cd7e5032 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/BatchMetadataV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/BatchMetadataV1.java @@ -29,7 +29,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/CommitBatchRequestV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/CommitBatchRequestV1.java index 9382068b3f..6e35303732 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/CommitBatchRequestV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/CommitBatchRequestV1.java @@ -29,7 +29,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/CommitBatchResponseV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/CommitBatchResponseV1.java index 7180d56d8a..de0e77aea1 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/CommitBatchResponseV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/CommitBatchResponseV1.java @@ -28,7 +28,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/DeleteRecordsRequestV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/DeleteRecordsRequestV1.java index 69ecf75d10..6bc691af6d 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/DeleteRecordsRequestV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/DeleteRecordsRequestV1.java @@ -27,7 +27,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/DeleteRecordsResponseV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/DeleteRecordsResponseV1.java index 38a326090b..dfaa4e436d 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/DeleteRecordsResponseV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/DeleteRecordsResponseV1.java @@ -28,7 +28,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/EnforceRetentionRequestV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/EnforceRetentionRequestV1.java index eeb0a414a5..ed88d5506f 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/EnforceRetentionRequestV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/EnforceRetentionRequestV1.java @@ -27,7 +27,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/EnforceRetentionResponseV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/EnforceRetentionResponseV1.java index 435d195256..07d61f1cc1 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/EnforceRetentionResponseV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/EnforceRetentionResponseV1.java @@ -28,7 +28,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/FindBatchesRequestV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/FindBatchesRequestV1.java index 658d01e7ba..a5270ad484 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/FindBatchesRequestV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/FindBatchesRequestV1.java @@ -27,7 +27,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/FindBatchesResponseV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/FindBatchesResponseV1.java index 3d11054a9d..7ad2891cd9 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/FindBatchesResponseV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/FindBatchesResponseV1.java @@ -29,7 +29,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogProducerStateV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogProducerStateV1.java index c215e7e45d..11b8471431 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogProducerStateV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogProducerStateV1.java @@ -27,7 +27,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogRequestV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogRequestV1.java index d180dfc61c..7aec8b8689 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogRequestV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogRequestV1.java @@ -27,7 +27,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogResponseV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogResponseV1.java index 6409fb0ca3..9a8fdbc8b3 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogResponseV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/InitDisklessLogResponseV1.java @@ -28,7 +28,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/ListOffsetsRequestV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/ListOffsetsRequestV1.java index f023cab20f..12ef84d434 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/ListOffsetsRequestV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/ListOffsetsRequestV1.java @@ -27,7 +27,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/ListOffsetsResponseV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/ListOffsetsResponseV1.java index aa8755814a..d24631d018 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/ListOffsetsResponseV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/ListOffsetsResponseV1.java @@ -28,7 +28,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/PruneBatchesBelowHighestTieredOffsetRequestV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/PruneBatchesBelowHighestTieredOffsetRequestV1.java index 31f05bc8aa..a26b6c2f9e 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/PruneBatchesBelowHighestTieredOffsetRequestV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/PruneBatchesBelowHighestTieredOffsetRequestV1.java @@ -27,7 +27,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/PruneBatchesBelowHighestTieredOffsetResponseV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/PruneBatchesBelowHighestTieredOffsetResponseV1.java index 5480713c1b..7f29989f50 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/PruneBatchesBelowHighestTieredOffsetResponseV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/PruneBatchesBelowHighestTieredOffsetResponseV1.java @@ -28,7 +28,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/RepairDisklessLogRequestV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/RepairDisklessLogRequestV1.java index 837b378a08..48dbbc1792 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/RepairDisklessLogRequestV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/RepairDisklessLogRequestV1.java @@ -27,7 +27,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/RepairDisklessLogResponseV1.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/RepairDisklessLogResponseV1.java index 0b47284820..00af8a4211 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/RepairDisklessLogResponseV1.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/RepairDisklessLogResponseV1.java @@ -27,7 +27,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/AdvanceCrossTierLogStartRequestV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/AdvanceCrossTierLogStartRequestV1Path.java index 902b8ca3f3..e7bd878ce7 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/AdvanceCrossTierLogStartRequestV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/AdvanceCrossTierLogStartRequestV1Path.java @@ -32,7 +32,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/AdvanceCrossTierLogStartResponseV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/AdvanceCrossTierLogStartResponseV1Path.java index d43cbab1ab..846a484b71 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/AdvanceCrossTierLogStartResponseV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/AdvanceCrossTierLogStartResponseV1Path.java @@ -33,7 +33,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/BatchInfoV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/BatchInfoV1Path.java index 7beb400178..0210f3c56f 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/BatchInfoV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/BatchInfoV1Path.java @@ -31,7 +31,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/BatchMetadataV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/BatchMetadataV1Path.java index c7c7fb0fea..54c44b5f29 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/BatchMetadataV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/BatchMetadataV1Path.java @@ -34,7 +34,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/CommitBatchRequestV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/CommitBatchRequestV1Path.java index 15fb1f0366..2fdb01a49f 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/CommitBatchRequestV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/CommitBatchRequestV1Path.java @@ -34,7 +34,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/CommitBatchResponseV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/CommitBatchResponseV1Path.java index d4ce07e9a0..67966300e5 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/CommitBatchResponseV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/CommitBatchResponseV1Path.java @@ -33,7 +33,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/DeleteRecordsRequestV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/DeleteRecordsRequestV1Path.java index 3c78dbbfd3..e867f41719 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/DeleteRecordsRequestV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/DeleteRecordsRequestV1Path.java @@ -32,7 +32,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/DeleteRecordsResponseV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/DeleteRecordsResponseV1Path.java index 3f3f38112e..20e578dbf1 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/DeleteRecordsResponseV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/DeleteRecordsResponseV1Path.java @@ -33,7 +33,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/EnforceRetentionRequestV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/EnforceRetentionRequestV1Path.java index dfbedf00d0..26556d2897 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/EnforceRetentionRequestV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/EnforceRetentionRequestV1Path.java @@ -32,7 +32,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/EnforceRetentionResponseV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/EnforceRetentionResponseV1Path.java index 612270235f..dae1261bb0 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/EnforceRetentionResponseV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/EnforceRetentionResponseV1Path.java @@ -33,7 +33,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/FindBatchesRequestV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/FindBatchesRequestV1Path.java index acbfe13208..f66f5ea7bc 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/FindBatchesRequestV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/FindBatchesRequestV1Path.java @@ -32,7 +32,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/FindBatchesResponseV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/FindBatchesResponseV1Path.java index e775b97ac1..73e6b52710 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/FindBatchesResponseV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/FindBatchesResponseV1Path.java @@ -35,7 +35,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogProducerStateV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogProducerStateV1Path.java index 61db6f392d..48b77f9723 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogProducerStateV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogProducerStateV1Path.java @@ -32,7 +32,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogRequestV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogRequestV1Path.java index 9577ab8c07..caff2d3805 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogRequestV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogRequestV1Path.java @@ -32,7 +32,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogResponseV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogResponseV1Path.java index 6fc3edb63b..006774c275 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogResponseV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/InitDisklessLogResponseV1Path.java @@ -33,7 +33,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/ListOffsetsRequestV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/ListOffsetsRequestV1Path.java index 6ecad3129a..d55341c000 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/ListOffsetsRequestV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/ListOffsetsRequestV1Path.java @@ -32,7 +32,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/ListOffsetsResponseV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/ListOffsetsResponseV1Path.java index bca001f490..5d6df90326 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/ListOffsetsResponseV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/ListOffsetsResponseV1Path.java @@ -33,7 +33,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/PruneBatchesBelowHighestTieredOffsetRequestV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/PruneBatchesBelowHighestTieredOffsetRequestV1Path.java index 43b6f78767..d835ce0427 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/PruneBatchesBelowHighestTieredOffsetRequestV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/PruneBatchesBelowHighestTieredOffsetRequestV1Path.java @@ -32,7 +32,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/PruneBatchesBelowHighestTieredOffsetResponseV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/PruneBatchesBelowHighestTieredOffsetResponseV1Path.java index 5c6271e24d..3325f68089 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/PruneBatchesBelowHighestTieredOffsetResponseV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/PruneBatchesBelowHighestTieredOffsetResponseV1Path.java @@ -33,7 +33,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/RepairDisklessLogRequestV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/RepairDisklessLogRequestV1Path.java index 48ffbddbc4..de504f0561 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/RepairDisklessLogRequestV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/RepairDisklessLogRequestV1Path.java @@ -32,7 +32,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/RepairDisklessLogResponseV1Path.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/RepairDisklessLogResponseV1Path.java index a01d6f46a4..1468327d26 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/RepairDisklessLogResponseV1Path.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/paths/RepairDisklessLogResponseV1Path.java @@ -32,7 +32,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/AdvanceCrossTierLogStartRequestV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/AdvanceCrossTierLogStartRequestV1Record.java index 8bafb40917..73acba04d7 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/AdvanceCrossTierLogStartRequestV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/AdvanceCrossTierLogStartRequestV1Record.java @@ -18,7 +18,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/AdvanceCrossTierLogStartResponseV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/AdvanceCrossTierLogStartResponseV1Record.java index 713a5208c8..be1dd93f0c 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/AdvanceCrossTierLogStartResponseV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/AdvanceCrossTierLogStartResponseV1Record.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/BatchInfoV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/BatchInfoV1Record.java index b72f2dddb9..54ea597a3a 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/BatchInfoV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/BatchInfoV1Record.java @@ -17,7 +17,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/BatchMetadataV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/BatchMetadataV1Record.java index 2d1d7e9fde..af3a767956 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/BatchMetadataV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/BatchMetadataV1Record.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/CommitBatchRequestV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/CommitBatchRequestV1Record.java index 6e654341a8..10591555e5 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/CommitBatchRequestV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/CommitBatchRequestV1Record.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/CommitBatchResponseV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/CommitBatchResponseV1Record.java index d171e3ca4a..6675ec5f29 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/CommitBatchResponseV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/CommitBatchResponseV1Record.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/DeleteRecordsRequestV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/DeleteRecordsRequestV1Record.java index 2fa50723e7..3a6d6c12f7 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/DeleteRecordsRequestV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/DeleteRecordsRequestV1Record.java @@ -18,7 +18,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/DeleteRecordsResponseV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/DeleteRecordsResponseV1Record.java index 04c51976b1..e5d958b20d 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/DeleteRecordsResponseV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/DeleteRecordsResponseV1Record.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/EnforceRetentionRequestV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/EnforceRetentionRequestV1Record.java index 29bbaffe47..5b82be898c 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/EnforceRetentionRequestV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/EnforceRetentionRequestV1Record.java @@ -18,7 +18,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/EnforceRetentionResponseV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/EnforceRetentionResponseV1Record.java index de0a721fb1..d08e219281 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/EnforceRetentionResponseV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/EnforceRetentionResponseV1Record.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/FindBatchesRequestV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/FindBatchesRequestV1Record.java index d1e1c4b3ba..96f3b30ef9 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/FindBatchesRequestV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/FindBatchesRequestV1Record.java @@ -18,7 +18,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/FindBatchesResponseV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/FindBatchesResponseV1Record.java index 987d49bb2e..65c209cf5a 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/FindBatchesResponseV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/FindBatchesResponseV1Record.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogProducerStateV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogProducerStateV1Record.java index ec9d651899..107c2e952b 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogProducerStateV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogProducerStateV1Record.java @@ -18,7 +18,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogRequestV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogRequestV1Record.java index a21887fc54..2d1a9e3449 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogRequestV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogRequestV1Record.java @@ -18,7 +18,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogResponseV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogResponseV1Record.java index 35d8c03cd3..f4e77ef133 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogResponseV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/InitDisklessLogResponseV1Record.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/ListOffsetsRequestV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/ListOffsetsRequestV1Record.java index 3b038fe3ab..adf54e1fdb 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/ListOffsetsRequestV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/ListOffsetsRequestV1Record.java @@ -18,7 +18,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/ListOffsetsResponseV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/ListOffsetsResponseV1Record.java index 237983af48..8056c459c0 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/ListOffsetsResponseV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/ListOffsetsResponseV1Record.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/PruneBatchesBelowHighestTieredOffsetRequestV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/PruneBatchesBelowHighestTieredOffsetRequestV1Record.java index 36b92444af..f32e12b1f1 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/PruneBatchesBelowHighestTieredOffsetRequestV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/PruneBatchesBelowHighestTieredOffsetRequestV1Record.java @@ -18,7 +18,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/PruneBatchesBelowHighestTieredOffsetResponseV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/PruneBatchesBelowHighestTieredOffsetResponseV1Record.java index 18f1a672d2..a5e9983055 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/PruneBatchesBelowHighestTieredOffsetResponseV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/PruneBatchesBelowHighestTieredOffsetResponseV1Record.java @@ -19,7 +19,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/RepairDisklessLogRequestV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/RepairDisklessLogRequestV1Record.java index 9f3600309d..ac96d8b4f4 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/RepairDisklessLogRequestV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/RepairDisklessLogRequestV1Record.java @@ -18,7 +18,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/RepairDisklessLogResponseV1Record.java b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/RepairDisklessLogResponseV1Record.java index f5303ae6de..5caa03a2b5 100644 --- a/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/RepairDisklessLogResponseV1Record.java +++ b/storage/inkless/src/main/jooq/org/jooq/generated/udt/records/RepairDisklessLogResponseV1Record.java @@ -18,7 +18,7 @@ value = { "https://www.jooq.org", "jOOQ version:3.19.17", - "schema version:24" + "schema version:25" }, comments = "This class is generated by jOOQ" ) diff --git a/storage/inkless/src/main/resources/db/migration/V25__Commit_file_local_log_accumulation.sql b/storage/inkless/src/main/resources/db/migration/V25__Commit_file_local_log_accumulation.sql new file mode 100644 index 0000000000..03b12be9be --- /dev/null +++ b/storage/inkless/src/main/resources/db/migration/V25__Commit_file_local_log_accumulation.sql @@ -0,0 +1,294 @@ +-- Copyright (c) 2026 Aiven, Helsinki, Finland. https://aiven.io/ + +-- commit_file_v2: identical semantics to the V20 definition. The only change is where the +-- per-request high-watermark/byte-size accumulation happens. +-- +-- V20 (and every version back to V1) ran one `UPDATE logs_tmp ... RETURNING high_watermark` per +-- accepted request, purely to keep the `l_log` variable in sync with the staging table. `logs_tmp` is +-- created by CTAS and therefore has no index, so each of those updates seqscans one row per distinct +-- partition in the file: the staging cost of a commit was O(requests x partitions). +-- +-- Measured on CommitFileFanOutCostBenchmarkTest (local container, 1600 batches per commit, constant +-- volume, only fan-out varying): commit time rose from ~104 ms at 16 partitions to ~208 ms at 1600, +-- tracking `requests x partitions` at ~40-49 ns per tuple visit. At a production shape of 630 +-- partitions x 1600 batches that term alone is ~45 ms per commit, on top of the per-statement +-- execution overhead of the 1600 updates themselves. +-- +-- Here the accumulation happens in `l_log` and is written back to `logs_tmp` once per partition run +-- (at each partition change, and once after the loop), so the staging cost becomes O(partitions). +-- +-- Why this is equivalent: +-- * `l_log` was already the value the loop reads: `l_assigned_offset := l_log.high_watermark` and +-- the run bookkeeping both consume the variable, not the table. The old `RETURNING ... INTO` +-- existed only to refresh it. +-- * The write-back sets absolute values, not deltas, so re-reading a partition after a flush yields +-- the accumulated state. Correctness therefore does not depend on `arg_requests` being grouped by +-- partition (BatchBuffer.close() groups them, which keeps the flush count at one per partition, +-- but ungrouped input would only cost extra flushes). +-- * Every rejecting branch still CONTINUEs before the accumulation, exactly as it did before the +-- UPDATE, so a rejected request leaves the watermark untouched. +-- * A partition missing from `logs` leaves `l_log` all-NULL (SELECT INTO with no row); the flush is +-- guarded on `l_log.topic_id IS NOT NULL` so that state is never written back. +-- +-- WAL is unchanged: `logs_tmp` is a temporary relation and is not WAL-logged, and the transfer into +-- the real `logs` table is still a single UPDATE per partition. +-- +-- commit_file_v1 is deliberately left as it was: it is deprecated (retained only for mid-rolling-upgrade +-- brokers and as the coalescing benchmark's baseline), so it keeps the old accumulation. + +CREATE OR REPLACE FUNCTION commit_file_v2( + arg_object_key object_key_t, + arg_format format_t, + arg_uploader_broker_id broker_id_t, + arg_file_size byte_size_t, + arg_now TIMESTAMP WITH TIME ZONE, + arg_requests commit_batch_request_v1[] +) +RETURNS SETOF commit_batch_response_v1 LANGUAGE plpgsql VOLATILE AS $$ +DECLARE + l_new_file_id BIGINT; + l_request RECORD; + l_log logs%ROWTYPE; + l_duplicate RECORD; + l_assigned_offset offset_nullable_t; + l_new_high_watermark offset_nullable_t; + l_last_sequence_in_producer_epoch BIGINT; + l_log_append_timestamp BIGINT; + + -- Open-run accumulator. A run is a maximal sequence of accepted, byte-contiguous + -- requests sharing (topic_id, partition, magic, timestamp_type). + l_run_open BOOLEAN := FALSE; + l_run_topic_id UUID; + l_run_partition INT; + l_run_magic SMALLINT; + l_run_timestamp_type SMALLINT; + l_run_base_offset BIGINT; + l_run_last_offset BIGINT; + l_run_byte_offset BIGINT; + l_run_byte_size BIGINT; + l_run_max_timestamp BIGINT; +BEGIN + l_log_append_timestamp := (EXTRACT(EPOCH FROM arg_now AT TIME ZONE 'UTC') * 1000)::BIGINT; + + INSERT INTO files (object_key, format, reason, state, uploader_broker_id, committed_at, size) + VALUES (arg_object_key, arg_format, 'produce', 'uploaded', arg_uploader_broker_id, arg_now, arg_file_size) + RETURNING file_id + INTO l_new_file_id; + + -- We use this temporary table to perform the write operations in loop on it first + -- and only then dump the result on the real table. This reduces the WAL pressure and latency of the function. + DROP TABLE IF EXISTS logs_tmp; + CREATE TEMPORARY TABLE logs_tmp + ON COMMIT DROP + AS + -- Extract the relevant logs into the temporary table and simultaneously lock them. + -- topic_name and log_start_offset aren't technically needed, but having them allows declaring `l_log logs%ROWTYPE`. + SELECT * + FROM logs + WHERE (topic_id, partition) IN (SELECT DISTINCT topic_id, partition FROM unnest(arg_requests)) + ORDER BY topic_id, partition -- ordering is important to prevent deadlocks + FOR UPDATE; + + FOR l_request IN + SELECT * + FROM unnest(arg_requests) + LOOP + -- A small optimization: select the log into a variable only if it's a different topic-partition. + -- Batches are sorted by topic-partitions, so this makes sense. + IF l_log.topic_id IS DISTINCT FROM l_request.topic_id + OR l_log.partition IS DISTINCT FROM l_request.partition THEN + + -- Publish what was accumulated for the partition we are leaving before losing the variable. + IF l_log.topic_id IS NOT NULL THEN + UPDATE logs_tmp + SET high_watermark = l_log.high_watermark, + byte_size = l_log.byte_size + WHERE topic_id = l_log.topic_id + AND partition = l_log.partition; + END IF; + + SELECT * + FROM logs_tmp + WHERE topic_id = l_request.topic_id + AND partition = l_request.partition + INTO l_log; + + IF NOT FOUND THEN + RETURN NEXT (l_request.topic_id, l_request.partition, NULL, NULL, -1, 'nonexistent_log')::commit_batch_response_v1; + CONTINUE; + END IF; + END IF; + + l_assigned_offset = l_log.high_watermark; + + -- Validate that the new request base sequence is not larger than the previous batch last sequence + IF l_request.producer_id > -1 AND l_request.producer_epoch > -1 + THEN + -- If there are previous batches for the producer, check that the producer epoch is not smaller than the last batch + IF EXISTS ( + SELECT 1 + FROM producer_state + WHERE topic_id = l_request.topic_id + AND partition = l_request.partition + AND producer_id = l_request.producer_id + AND producer_epoch > l_request.producer_epoch + ) THEN + RETURN NEXT (l_request.topic_id, l_request.partition, NULL, NULL, -1, 'invalid_producer_epoch')::commit_batch_response_v1; + CONTINUE; + END IF; + + SELECT MAX(last_sequence) + INTO l_last_sequence_in_producer_epoch + FROM producer_state + WHERE topic_id = l_request.topic_id + AND partition = l_request.partition + AND producer_id = l_request.producer_id + AND producer_epoch = l_request.producer_epoch; + + -- If there are previous batches for the producer + IF l_last_sequence_in_producer_epoch IS NULL THEN + -- If there are no previous batches for the producer, the base sequence must be 0 + IF l_request.base_sequence <> 0 + THEN + RETURN NEXT (l_request.topic_id, l_request.partition, NULL, NULL, -1, 'sequence_out_of_order')::commit_batch_response_v1; + CONTINUE; + END IF; + ELSE + -- Check for duplicates + SELECT * + FROM producer_state + WHERE topic_id = l_request.topic_id + AND partition = l_request.partition + AND producer_id = l_request.producer_id + AND producer_epoch = l_request.producer_epoch + AND base_sequence = l_request.base_sequence + AND last_sequence = l_request.last_sequence + INTO l_duplicate; + IF FOUND THEN + RETURN NEXT (l_request.topic_id, l_request.partition, l_log.log_start_offset, l_duplicate.assigned_offset, l_duplicate.batch_max_timestamp, 'duplicate_batch')::commit_batch_response_v1; + CONTINUE; + END IF; + + -- Check that the sequence is not out of order. + -- A sequence is out of order if the base sequence is not a continuation of the last sequence + -- or, in case of wraparound, the base sequence must be 0 and the last sequence must be 2147483647 (Integer.MAX_VALUE). + IF (l_request.base_sequence - 1) <> l_last_sequence_in_producer_epoch OR (l_last_sequence_in_producer_epoch = 2147483647 AND l_request.base_sequence <> 0) THEN + RETURN NEXT (l_request.topic_id, l_request.partition, NULL, NULL, -1, 'sequence_out_of_order')::commit_batch_response_v1; + CONTINUE; + END IF; + END IF; + + INSERT INTO producer_state ( + topic_id, partition, producer_id, + producer_epoch, base_sequence, last_sequence, assigned_offset, batch_max_timestamp + ) + VALUES ( + l_request.topic_id, l_request.partition, l_request.producer_id, + l_request.producer_epoch, l_request.base_sequence, l_request.last_sequence, l_assigned_offset, l_request.batch_max_timestamp + ); + -- Keep only the last 5 records. + -- 5 == org.apache.kafka.storage.internals.log.ProducerStateEntry.NUM_BATCHES_TO_RETAIN + DELETE FROM producer_state + WHERE topic_id = l_request.topic_id + AND partition = l_request.partition + AND producer_id = l_request.producer_id + AND row_id <= ( + SELECT row_id + FROM producer_state + WHERE topic_id = l_request.topic_id + AND partition = l_request.partition + AND producer_id = l_request.producer_id + ORDER BY row_id DESC + LIMIT 1 + OFFSET 5 + ); + END IF; + + -- Accumulate in the variable; the write-back happens once per partition run (see header). + l_new_high_watermark := l_log.high_watermark + (l_request.last_offset - l_request.base_offset + 1); + l_log.high_watermark := l_new_high_watermark; + l_log.byte_size := l_log.byte_size + l_request.byte_size; + + -- This request is accepted. Either extend the open run, or flush it and open a new one. + -- The byte-adjacency check (see header) guarantees no rejected batch intervened, so + -- offsets within the run are contiguous. + IF l_run_open + AND l_run_topic_id = l_request.topic_id + AND l_run_partition = l_request.partition + AND l_run_magic = l_request.magic + AND l_run_timestamp_type = l_request.timestamp_type + AND l_request.byte_offset = l_run_byte_offset + l_run_byte_size + THEN + l_run_last_offset := l_new_high_watermark - 1; + l_run_byte_size := l_run_byte_size + l_request.byte_size; + l_run_max_timestamp := GREATEST(l_run_max_timestamp, l_request.batch_max_timestamp); + ELSE + IF l_run_open THEN + PERFORM flush_commit_run_v2( + l_new_file_id, l_run_magic, l_run_topic_id, l_run_partition, + l_run_base_offset, l_run_last_offset, l_run_byte_offset, l_run_byte_size, + l_run_timestamp_type, l_log_append_timestamp, l_run_max_timestamp); + END IF; + l_run_open := TRUE; + l_run_topic_id := l_request.topic_id; + l_run_partition := l_request.partition; + l_run_magic := l_request.magic; + l_run_timestamp_type := l_request.timestamp_type; + l_run_base_offset := l_assigned_offset; + l_run_last_offset := l_new_high_watermark - 1; + l_run_byte_offset := l_request.byte_offset; + l_run_byte_size := l_request.byte_size; + l_run_max_timestamp := l_request.batch_max_timestamp; + END IF; + + RETURN NEXT (l_request.topic_id, l_request.partition, l_log.log_start_offset, l_assigned_offset, l_request.batch_max_timestamp, 'none')::commit_batch_response_v1; + END LOOP; + + -- Flush the final open run. + IF l_run_open THEN + PERFORM flush_commit_run_v2( + l_new_file_id, l_run_magic, l_run_topic_id, l_run_partition, + l_run_base_offset, l_run_last_offset, l_run_byte_offset, l_run_byte_size, + l_run_timestamp_type, l_log_append_timestamp, l_run_max_timestamp); + END IF; + + -- Publish the last partition's accumulation, which no partition change flushed. + IF l_log.topic_id IS NOT NULL THEN + UPDATE logs_tmp + SET high_watermark = l_log.high_watermark, + byte_size = l_log.byte_size + WHERE topic_id = l_log.topic_id + AND partition = l_log.partition; + END IF; + + -- Transfer from the temporary to real table. + UPDATE logs + SET high_watermark = logs_tmp.high_watermark, + byte_size = logs_tmp.byte_size + FROM logs_tmp + WHERE logs.topic_id = logs_tmp.topic_id + AND logs.partition = logs_tmp.partition; + + -- Populate earliest_batch_timestamp for partitions in this commit that don't have it yet. + -- IS NULL guards the hot path: appends never change the oldest batch, so a log that already + -- has a value is skipped and the subquery never runs. This handles empty->non-empty (the + -- just-committed batch is the oldest) and lazily backfills pre-existing NULL logs. A partition + -- whose batches were all rejected stays empty, so the subquery yields NULL (still "unknown"). + UPDATE logs l + SET earliest_batch_timestamp = ( + SELECT batch_timestamp(b.timestamp_type, b.batch_max_timestamp, b.log_append_timestamp) + FROM batches b + WHERE b.topic_id = l.topic_id + AND b.partition = l.partition + ORDER BY b.topic_id, b.partition, b.last_offset + LIMIT 1 + ) + WHERE (l.topic_id, l.partition) IN (SELECT DISTINCT topic_id, partition FROM unnest(arg_requests)) + AND l.earliest_batch_timestamp IS NULL; + + IF NOT EXISTS (SELECT 1 FROM batches WHERE file_id = l_new_file_id LIMIT 1) THEN + PERFORM mark_file_to_delete_v1(arg_now, l_new_file_id); + END IF; +END; +$$ +; diff --git a/storage/inkless/src/test/java/io/aiven/inkless/control_plane/postgres/CommitFileFanOutCostBenchmarkTest.java b/storage/inkless/src/test/java/io/aiven/inkless/control_plane/postgres/CommitFileFanOutCostBenchmarkTest.java new file mode 100644 index 0000000000..92f692ba99 --- /dev/null +++ b/storage/inkless/src/test/java/io/aiven/inkless/control_plane/postgres/CommitFileFanOutCostBenchmarkTest.java @@ -0,0 +1,274 @@ +/* + * Inkless + * Copyright (C) 2024 - 2026 Aiven OY + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package io.aiven.inkless.control_plane.postgres; + +import org.apache.kafka.common.TopicIdPartition; +import org.apache.kafka.common.Uuid; +import org.apache.kafka.common.record.TimestampType; +import org.apache.kafka.common.utils.MockTime; +import org.apache.kafka.common.utils.Time; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +import java.sql.Connection; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import io.aiven.inkless.common.ObjectFormat; +import io.aiven.inkless.control_plane.CommitBatchRequest; +import io.aiven.inkless.control_plane.CreateTopicAndPartitionsRequest; +import io.aiven.inkless.test_utils.InklessPostgreSQLContainer; +import io.aiven.inkless.test_utils.PostgreSQLTestContainer; + +/** + * Answers two questions about {@code commit_file}'s cost model that production metrics cannot separate, + * and that decide whether write-path fan-out is worth managing at all (wiki G24). + * + *

Q1 — is commit cost proportional to fan-out, or fixed per transaction? {@link #fanOutSweep()} + * holds the number of batches per commit constant and varies only the number of distinct partitions they + * spread over. The v1 leg is the controlled one: {@code commit_file_v1} writes one {@code batches} row per + * request regardless of shape, so insert volume, file count and request-array size are all constant and + * partition count is the only variable. Growth along that leg can only come from the per-partition work: + * the {@code logs_tmp} seed width, the unindexed per-request {@code UPDATE logs_tmp} scan, the + * {@code logs FOR UPDATE} set, and the final dump. A flat v1 leg means fixed overhead dominates and no + * rotation policy can help; a rising leg means commit is superlinear in fan-out. + * + *

Q2 — what does the per-call temp table actually cost? {@link #tempTableChurnFloor()} times + * the {@code CREATE TEMPORARY TABLE ... AS SELECT} / {@code DROP} pair on its own, both empty (catalog + * floor) and at production width, so the DDL can be priced against the whole-commit numbers instead of + * being assumed expensive. + * + *

Timings are wall clock against a local container: indicative, and only comparable within a run. + */ +@Tag("benchmark") +@Testcontainers +class CommitFileFanOutCostBenchmarkTest { + @Container + static final InklessPostgreSQLContainer pgContainer = PostgreSQLTestContainer.container(); + + private static final int BROKER_ID = 11; + private static final long FILE_SIZE = 4 * 1024 * 1024; + private static final int BATCH_BYTES = 2600; // ~ prod p999: 4 MiB / 1600 batches + private static final int BATCHES_PER_COMMIT = 1600; + private static final int COMMITS_PER_SHAPE = 30; + private static final int CHURN_ITERATIONS = 2000; + + private final Time time = new MockTime(); + private int topicSeq = 0; + + @BeforeEach + void setUp(final TestInfo testInfo) { + pgContainer.createDatabase(testInfo); + pgContainer.migrate(); + } + + @AfterEach + void tearDown() { + pgContainer.tearDown(); + } + + @Test + void fanOutSweep() { + // Each shape carries BATCHES_PER_COMMIT batches; only the spread changes. + final List partitionCounts = List.of(16, 80, 320, 640, 800, 1600); + + msPerCommit(16, BATCHES_PER_COMMIT / 16, false); // warm up JIT + PG caches before measuring + + final StringBuilder out = new StringBuilder(); + out.append(String.format("%n== COMMIT COST vs FAN-OUT (constant %d batches per commit) ==%n", + BATCHES_PER_COMMIT)); + out.append(String.format("%-30s | %12s | %12s | %12s | %12s | %16s%n", + "shape", "v1 ms/commit", "v2 ms/commit", "v1 KiB WAL", "v2 KiB WAL", "tmp visits (M)")); + out.append("-".repeat(113)).append(String.format("%n")); + + for (final int partitions : partitionCounts) { + final int batchesPerPartition = BATCHES_PER_COMMIT / partitions; + final Result v1 = measure(partitions, batchesPerPartition, false); + final Result v2 = measure(partitions, batchesPerPartition, true); + out.append(String.format("%-30s | %12.3f | %12.3f | %12.1f | %12.1f | %16.3f%n", + partitions + " parts x " + batchesPerPartition, + v1.msPerCommit, v2.msPerCommit, + v1.walBytesPerCommit / 1024, v2.walBytesPerCommit / 1024, + (double) partitions * BATCHES_PER_COMMIT / 1_000_000)); + } + out.append(String.format("%nv1 leg is the controlled one (constant %d batches rows inserted per commit; " + + "only partition count varies). v2 additionally collapses runs, so its batches-row count falls " + + "as fan-out falls.%n" + + "'tmp visits' = batches x partitions, the tuple-visit count implied by the unindexed " + + "per-request UPDATE logs_tmp scan; compare its growth against the measured growth.%n" + + "WAL is a pg_current_wal_lsn() delta over the shape's commits, so it includes background " + + "activity (checkpoints, autovacuum) and is indicative only.%n", + BATCHES_PER_COMMIT)); + System.out.println(out); + } + + @Test + void walFromLoopedUpdates() throws Exception { + createTopic(630); + try (Connection connection = pgContainer.getDataSource().getConnection(); + Statement statement = connection.createStatement()) { + statement.execute("CREATE TABLE probe_perm AS SELECT * FROM logs"); + statement.execute(""" + CREATE OR REPLACE FUNCTION probe_looped_updates(arg_iterations INT, arg_permanent BOOLEAN) + RETURNS VOID LANGUAGE plpgsql VOLATILE AS $$ + BEGIN + CREATE TEMPORARY TABLE probe_tmp ON COMMIT DROP AS SELECT * FROM logs; + FOR i IN 1..arg_iterations LOOP + IF arg_permanent THEN + UPDATE probe_perm SET byte_size = byte_size + 1 WHERE partition = i % 630; + ELSE + UPDATE probe_tmp SET byte_size = byte_size + 1 WHERE partition = i % 630; + END IF; + END LOOP; + END; + $$; + """); + connection.commit(); + } + + walForLoopedUpdates(false); // discard: first call pays one-off plan/catalog costs + final double tempWal = walForLoopedUpdates(false); + final double permWal = walForLoopedUpdates(true); + + System.out.println(String.format("%n== WAL FROM %d LOOPED UPDATES (the statements the fix removes) ==%n" + + "on a TEMPORARY table (today's logs_tmp): %10.1f KiB%n" + + "on a regular table (same rows, for scale): %10.1f KiB%n" + + "The temporary leg still creates the temp table per call, so its figure is the " + + "CREATE's catalog WAL, not the updates.%n", + BATCHES_PER_COMMIT, tempWal / 1024, permWal / 1024)); + } + + private double walForLoopedUpdates(final boolean permanent) { + final String lsnBefore = walLsn(); + pgContainer.getJooqCtx().transaction(cfg -> + cfg.dsl().execute("SELECT probe_looped_updates({0}, {1})", BATCHES_PER_COMMIT, permanent)); + return walBytesSince(lsnBefore); + } + + @Test + void tempTableChurnFloor() throws Exception { + try (Connection connection = pgContainer.getDataSource().getConnection(); + Statement statement = connection.createStatement()) { + statement.execute(""" + CREATE OR REPLACE FUNCTION probe_temp_table_churn(arg_iterations INT, arg_rows INT) + RETURNS DOUBLE PRECISION LANGUAGE plpgsql VOLATILE AS $$ + DECLARE + l_start TIMESTAMP WITH TIME ZONE; + BEGIN + l_start := clock_timestamp(); + FOR i IN 1..arg_iterations LOOP + CREATE TEMPORARY TABLE probe_tmp AS + SELECT * FROM logs LIMIT arg_rows; + DROP TABLE probe_tmp; + END LOOP; + RETURN EXTRACT(EPOCH FROM (clock_timestamp() - l_start)) * 1000000 / arg_iterations; + END; + $$; + """); + connection.commit(); // pool hands out autoCommit=false connections + } + + // Populate `logs` so the width-630 probe copies real rows. + createTopic(630); + + final double emptyUs = probe(0); + final double widthUs = probe(630); + + System.out.println(String.format("%n== TEMP TABLE CREATE+DROP COST (%d iterations each) ==%n" + + "catalog floor (0 rows copied): %8.1f us/pair%n" + + "production width (630 rows): %8.1f us/pair%n%n" + + "Compare against v1/v2 ms/commit from fanOutSweep: this pair is paid once per commit.%n", + CHURN_ITERATIONS, emptyUs, widthUs)); + } + + private double probe(final int rows) { + return pgContainer.getJooqCtx() + .fetchOne("SELECT probe_temp_table_churn({0}, {1})", CHURN_ITERATIONS, rows) + .get(0, Double.class); + } + + private record Result(double msPerCommit, double walBytesPerCommit) { + } + + private double msPerCommit(final int partitions, final int batchesPerPartition, final boolean coalesce) { + return measure(partitions, batchesPerPartition, coalesce).msPerCommit(); + } + + private Result measure(final int partitions, final int batchesPerPartition, final boolean coalesce) { + final List topicPartitions = createTopic(partitions); + final String lsnBefore = walLsn(); + long nanos = 0; + for (int w = 0; w < COMMITS_PER_SHAPE; w++) { + final List requests = commitWindow(topicPartitions, batchesPerPartition); + final CommitFileJob commit = new CommitFileJob( + time, pgContainer.getJooqCtx(), + "file-" + topicPartitions.get(0).topicId() + "-" + w, + ObjectFormat.WRITE_AHEAD_MULTI_SEGMENT, BROKER_ID, FILE_SIZE, requests, coalesce, duration -> { }); + final long start = System.nanoTime(); + commit.call(); + nanos += System.nanoTime() - start; + } + final double walBytes = walBytesSince(lsnBefore); + return new Result(nanos / 1_000_000.0 / COMMITS_PER_SHAPE, walBytes / COMMITS_PER_SHAPE); + } + + private String walLsn() { + return pgContainer.getJooqCtx().fetchOne("SELECT pg_current_wal_lsn()::text").get(0, String.class); + } + + private double walBytesSince(final String lsnBefore) { + return pgContainer.getJooqCtx() + .fetchOne("SELECT pg_wal_lsn_diff(pg_current_wal_lsn(), {0}::pg_lsn)", lsnBefore) + .get(0, Double.class); + } + + private List createTopic(final int partitionCount) { + final Uuid topicId = new Uuid(11, ++topicSeq); + final String topicName = "fanout-" + topicSeq; + new TopicsAndPartitionsCreateJob(Time.SYSTEM, pgContainer.getJooqCtx(), + Set.of(new CreateTopicAndPartitionsRequest(topicId, topicName, partitionCount)), duration -> { }).run(); + final List partitions = new ArrayList<>(partitionCount); + for (int p = 0; p < partitionCount; p++) { + partitions.add(new TopicIdPartition(topicId, p, topicName)); + } + return partitions; + } + + /** Batches grouped by partition and byte-contiguous, as {@code BatchBuffer.close()} lays them out. */ + private List commitWindow(final List partitions, + final int batchesPerPartition) { + final List requests = new ArrayList<>(partitions.size() * batchesPerPartition); + int byteOffset = 0; + for (final TopicIdPartition partition : partitions) { + for (int b = 0; b < batchesPerPartition; b++) { + requests.add(CommitBatchRequest.of( + 0, partition, byteOffset, BATCH_BYTES, 0, 0, time.milliseconds(), TimestampType.CREATE_TIME)); + byteOffset += BATCH_BYTES; + } + } + return requests; + } +}