diff --git a/core/lib/dal/.sqlx/query-c31632143b459ea6684908ce7a15d03a811221d4ddf26e2e0ddc34147a0d8e23.json b/core/lib/dal/.sqlx/query-0a2138a1cbf21546931867319ccbfe1e597151ecfaeb3cfa6624f2a1978ef23f.json similarity index 55% rename from core/lib/dal/.sqlx/query-c31632143b459ea6684908ce7a15d03a811221d4ddf26e2e0ddc34147a0d8e23.json rename to core/lib/dal/.sqlx/query-0a2138a1cbf21546931867319ccbfe1e597151ecfaeb3cfa6624f2a1978ef23f.json index dcbfb1d0bd24..eaef732751ec 100644 --- a/core/lib/dal/.sqlx/query-c31632143b459ea6684908ce7a15d03a811221d4ddf26e2e0ddc34147a0d8e23.json +++ b/core/lib/dal/.sqlx/query-0a2138a1cbf21546931867319ccbfe1e597151ecfaeb3cfa6624f2a1978ef23f.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n WITH\n available_batches AS (\n SELECT\n MAX(number) AS \"last_batch\"\n FROM\n l1_batches\n ),\n processed_batches AS (\n SELECT\n COALESCE(MAX(l1_batch_number), 0) + $1 AS \"last_ready_batch\"\n FROM\n vm_runner_protective_reads\n )\n SELECT\n LEAST(last_batch, last_ready_batch) AS \"last_ready_batch!\"\n FROM\n available_batches\n FULL JOIN processed_batches ON TRUE\n ", + "query": "\n WITH\n available_batches AS (\n SELECT\n MAX(number) AS \"last_batch\"\n FROM\n l1_batches\n ),\n processed_batches AS (\n SELECT\n COALESCE(MAX(l1_batch_number), $1) + $2 AS \"last_ready_batch\"\n FROM\n vm_runner_protective_reads\n )\n SELECT\n LEAST(last_batch, last_ready_batch) AS \"last_ready_batch!\"\n FROM\n available_batches\n FULL JOIN processed_batches ON TRUE\n ", "describe": { "columns": [ { @@ -11,6 +11,7 @@ ], "parameters": { "Left": [ + "Int8", "Int8" ] }, @@ -18,5 +19,5 @@ true ] }, - "hash": "c31632143b459ea6684908ce7a15d03a811221d4ddf26e2e0ddc34147a0d8e23" + "hash": "0a2138a1cbf21546931867319ccbfe1e597151ecfaeb3cfa6624f2a1978ef23f" } diff --git a/core/lib/dal/src/vm_runner_dal.rs b/core/lib/dal/src/vm_runner_dal.rs index 39e0f89630ee..2d17ff3f9fca 100644 --- a/core/lib/dal/src/vm_runner_dal.rs +++ b/core/lib/dal/src/vm_runner_dal.rs @@ -31,6 +31,7 @@ impl VmRunnerDal<'_, '_> { pub async fn get_protective_reads_last_ready_batch( &mut self, + default_batch: L1BatchNumber, window_size: u32, ) -> DalResult { let row = sqlx::query!( @@ -44,7 +45,7 @@ impl VmRunnerDal<'_, '_> { ), processed_batches AS ( SELECT - COALESCE(MAX(l1_batch_number), 0) + $1 AS "last_ready_batch" + COALESCE(MAX(l1_batch_number), $1) + $2 AS "last_ready_batch" FROM vm_runner_protective_reads ) @@ -54,6 +55,7 @@ impl VmRunnerDal<'_, '_> { available_batches FULL JOIN processed_batches ON TRUE "#, + default_batch.0 as i32, window_size as i32 ) .instrument("get_protective_reads_last_ready_batch") diff --git a/core/node/vm_runner/src/impls/protective_reads.rs b/core/node/vm_runner/src/impls/protective_reads.rs index e47e54541f5a..8fcb5c6b3f08 100644 --- a/core/node/vm_runner/src/impls/protective_reads.rs +++ b/core/node/vm_runner/src/impls/protective_reads.rs @@ -104,7 +104,7 @@ impl VmRunnerIo for ProtectiveReadsIo { ) -> anyhow::Result { Ok(conn .vm_runner_dal() - .get_protective_reads_last_ready_batch(self.window_size) + .get_protective_reads_last_ready_batch(self.first_processed_batch, self.window_size) .await?) }