update schema in case it's outdated

This commit is contained in:
Pere Diaz Bou
2025-07-02 11:47:57 +02:00
parent 65a7fe13cf
commit 5b733663ab

View File

@@ -39,7 +39,7 @@ use crate::storage::pager::Pager;
use crate::translate::delete::translate_delete;
use crate::vdbe::builder::{ProgramBuilder, ProgramBuilderOpts, QueryMode};
use crate::vdbe::Program;
use crate::{bail_parse_error, Connection, Result, SymbolTable};
use crate::{bail_parse_error, Connection, Result, SymbolTable, TransactionState};
use alter::translate_alter_table;
use index::{translate_create_index, translate_drop_index};
use insert::translate_insert;
@@ -64,6 +64,12 @@ pub fn translate(
_input: &str, // TODO: going to be used for CREATE VIEW
) -> Result<Program> {
tracing::trace!("querying {}", _input);
if matches!(connection.transaction_state.get(), TransactionState::None)
&& connection.schema.borrow().schema_version < connection._db.schema.read().schema_version
{
let new_schema = connection._db.schema.read();
connection.schema.replace(new_schema.clone());
}
let change_cnt_on = matches!(
stmt,
ast::Stmt::CreateIndex { .. }