Merge 'Give name to hard-coded page_size values' from Anton Harniakou

Related to #1379
I guess there are more hard-coded values.

Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com>

Closes #1404
This commit is contained in:
Jussi Saurio
2025-04-25 22:03:43 +03:00
2 changed files with 9 additions and 4 deletions

View File

@@ -65,6 +65,8 @@ pub const DATABASE_HEADER_SIZE: usize = 100;
// DEFAULT_CACHE_SIZE negative values mean that we store the amount of pages a XKiB of memory can hold.
// We can calculate "real" cache size by diving by page size.
const DEFAULT_CACHE_SIZE: i32 = -2000;
// The size of db page in bytes.
const DEFAULT_PAGE_SIZE: u16 = 4096;
// Minimum number of pages that cache can hold.
pub const MIN_PAGE_CACHE_SIZE: usize = 10;
@@ -219,7 +221,7 @@ impl Default for DatabaseHeader {
fn default() -> Self {
Self {
magic: *b"SQLite format 3\0",
page_size: 4096,
page_size: DEFAULT_PAGE_SIZE,
write_version: 2,
read_version: 2,
reserved_space: 0,
@@ -1370,6 +1372,7 @@ pub fn begin_write_wal_frame(
io: &Arc<dyn File>,
offset: usize,
page: &PageRef,
page_size: u16,
db_size: u32,
write_counter: Rc<RefCell<usize>>,
wal_header: &WalHeader,
@@ -1406,15 +1409,16 @@ pub fn begin_write_wal_frame(
let content_len = contents_buf.len();
buf[WAL_FRAME_HEADER_SIZE..WAL_FRAME_HEADER_SIZE + content_len]
.copy_from_slice(contents_buf);
if content_len < 4096 {
buf[WAL_FRAME_HEADER_SIZE + content_len..WAL_FRAME_HEADER_SIZE + 4096].fill(0);
if content_len < page_size as usize {
buf[WAL_FRAME_HEADER_SIZE + content_len..WAL_FRAME_HEADER_SIZE + page_size as usize]
.fill(0);
}
let expects_be = wal_header.magic & 1;
let use_native_endian = cfg!(target_endian = "big") as u32 == expects_be;
let header_checksum = checksum_wal(&buf[0..8], wal_header, checksums, use_native_endian); // Only 8 bytes
let final_checksum = checksum_wal(
&buf[WAL_FRAME_HEADER_SIZE..WAL_FRAME_HEADER_SIZE + 4096],
&buf[WAL_FRAME_HEADER_SIZE..WAL_FRAME_HEADER_SIZE + page_size as usize],
wal_header,
header_checksum,
use_native_endian,

View File

@@ -462,6 +462,7 @@ impl Wal for WalFile {
&shared.file,
offset,
&page,
self.page_size as u16,
db_size,
write_counter,
&header,