From 0a69ea0138415a347d2c33a8ed50545464f5d9ff Mon Sep 17 00:00:00 2001 From: Anton Harniakou Date: Wed, 23 Apr 2025 16:46:37 +0300 Subject: [PATCH] Support reading db page size using PRAGMA page_size --- core/translate/pragma.rs | 7 +++++++ core/vdbe/execute.rs | 1 - vendored/sqlite3-parser/src/parser/ast/mod.rs | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/core/translate/pragma.rs b/core/translate/pragma.rs index 668c1f214..bd120ecb8 100644 --- a/core/translate/pragma.rs +++ b/core/translate/pragma.rs @@ -160,6 +160,9 @@ fn update_pragma( // getting here unreachable!(); } + PragmaName::PageSize => { + todo!("updating page_size is not yet implemented") + } } } @@ -257,6 +260,10 @@ fn query_pragma( }); program.emit_result_row(register, 1); } + PragmaName::PageSize => { + program.emit_int(database_header.lock().page_size.into(), register); + program.emit_result_row(register, 1); + } } Ok(()) diff --git a/core/vdbe/execute.rs b/core/vdbe/execute.rs index de871f54c..e6cba3769 100644 --- a/core/vdbe/execute.rs +++ b/core/vdbe/execute.rs @@ -1447,7 +1447,6 @@ pub fn op_result_row( values: &state.registers[*start_reg] as *const Register, count: *count, }; - state.result_row = Some(row); state.pc += 1; return Ok(InsnFunctionStepResult::Row); diff --git a/vendored/sqlite3-parser/src/parser/ast/mod.rs b/vendored/sqlite3-parser/src/parser/ast/mod.rs index 1aac9c2c4..d511ddaaf 100644 --- a/vendored/sqlite3-parser/src/parser/ast/mod.rs +++ b/vendored/sqlite3-parser/src/parser/ast/mod.rs @@ -1622,6 +1622,8 @@ pub enum PragmaName { LegacyFileFormat, /// Return the total number of pages in the database file. PageCount, + // `page_size` pragma + PageSize, /// returns information about the columns of a table TableInfo, /// Returns the user version of the database file.