pub struct VdbeProgram { /* private fields */ }Expand description
A finalized VDBE bytecode program ready for execution.
Implementations§
Source§impl VdbeProgram
impl VdbeProgram
Sourcepub fn route_storage_roots_to_temp_database(
&mut self,
temp_roots: impl IntoIterator<Item = i32>,
)
pub fn route_storage_roots_to_temp_database( &mut self, temp_roots: impl IntoIterator<Item = i32>, )
Route storage-root opens for connection-local TEMP objects through SQLite’s database-number 1 namespace.
Code generation deliberately operates on schema metadata rather than
connection state, so it cannot know which otherwise ordinary table
roots belong to the TEMP database. The connection applies this final
annotation after codegen. Execution then uses the attached
MemDatabase instead of ever consulting
or mutating pages in the main pager.
Sourcepub fn register_count(&self) -> i32
pub fn register_count(&self) -> i32
Number of registers required.
Sourcepub fn max_bind_parameter_index(&self) -> Result<usize, i32>
pub fn max_bind_parameter_index(&self) -> Result<usize, i32>
Highest 1-based bind parameter index referenced by the program.
Returns Ok(0) when no Variable opcodes are present.
Returns Err(raw_index) if the bytecode contains an invalid
parameter index (<= 0 or not representable as usize).
Sourcepub fn get(&self, pc: usize) -> Option<&VdbeOp>
pub fn get(&self, pc: usize) -> Option<&VdbeOp>
Get the instruction at the given program counter.
Sourcepub fn table_index_meta(&self) -> &HashMap<i32, Box<[IndexCursorMeta]>>
pub fn table_index_meta(&self) -> &HashMap<i32, Box<[IndexCursorMeta]>>
Table-to-index cursor metadata for REPLACE conflict resolution.
Sourcepub fn storage_root_usages(&self) -> impl Iterator<Item = StorageRootUsage> + '_
pub fn storage_root_usages(&self) -> impl Iterator<Item = StorageRootUsage> + '_
Returns storage B-tree root usage in deterministic instruction order.
Conflict-topology and backend-identity diagnostics can use this to tie bytecode to root-page level heat without ad hoc opcode scans.
Sourcepub fn has_insert_ops(&self) -> bool
pub fn has_insert_ops(&self) -> bool
Returns true if the program contains any Insert opcodes,
meaning column defaults may be needed during execution.
Precomputed at build time — O(1) at call time.
Sourcepub fn requires_attached_memdb(&self) -> bool
pub fn requires_attached_memdb(&self) -> bool
Returns true when this program still requires an attached
MemDatabase for opcode semantics.
Sourcepub fn attached_memdb_requirement_reason(&self) -> Option<&'static str>
pub fn attached_memdb_requirement_reason(&self) -> Option<&'static str>
Returns the first conservative reason this program still requires an
attached MemDatabase, or None for storage-only VDBE programs.
Sourcepub fn requires_version_store(&self) -> bool
pub fn requires_version_store(&self) -> bool
Returns true when this program can read historical page versions.
Sourcepub fn disassemble(&self) -> String
pub fn disassemble(&self) -> String
Disassemble the program to a human-readable string.
Output format matches SQLite’s EXPLAIN output:
addr opcode p1 p2 p3 p4 p5
---- ---------- ---- ---- ---- ----- --
0 Init 0 8 0 0Trait Implementations§
Source§impl Clone for VdbeProgram
impl Clone for VdbeProgram
Source§fn clone(&self) -> VdbeProgram
fn clone(&self) -> VdbeProgram
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more