diff --git a/core/translate/mod.rs b/core/translate/mod.rs index 7a5941221..95da67311 100644 --- a/core/translate/mod.rs +++ b/core/translate/mod.rs @@ -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 { 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 { .. }