Skip to content

Commit 1b6c0ab

Browse files
committed
set SEALED flag when segment is sealed
1 parent db10943 commit 1b6c0ab

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

libsql-wal/src/segment/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ bitflags::bitflags! {
3232
/// This is true for a segment created by a primary, but a replica may insert frames in any
3333
/// order, as long as commit boundaries are preserved.
3434
const FRAME_UNORDERED = 1 << 0;
35+
const SEALED = 1 << 1;
3536
}
3637
}
3738

libsql-wal/src/segment/sealed.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use crate::io::file::{BufCopy, FileExt};
1717
use crate::LIBSQL_MAGIC;
1818

1919
use super::compacted::{CompactedSegmentDataFooter, CompactedSegmentDataHeader};
20-
use super::{frame_offset, page_offset, Frame, FrameHeader, Segment, SegmentHeader};
20+
use super::{frame_offset, page_offset, Frame, FrameHeader, Segment, SegmentHeader, SegmentFlags};
2121

2222
/// an immutable, wal segment
2323
#[derive(Debug)]
@@ -191,6 +191,10 @@ impl<F: FileExt> SealedSegment<F> {
191191
let index_offset = header.index_offset.get();
192192
let index_len = header.index_size.get();
193193

194+
if !header.flags().contains(SegmentFlags::SEALED) {
195+
todo!("recover");
196+
}
197+
194198
if header.is_empty() {
195199
std::fs::remove_file(path)?;
196200
return Ok(None);

0 commit comments

Comments
 (0)