diff --git a/core/vdbe/insn.rs b/core/vdbe/insn.rs index 1cb83bd2c..82a92968e 100644 --- a/core/vdbe/insn.rs +++ b/core/vdbe/insn.rs @@ -1120,152 +1120,148 @@ impl InsnVariants { // This function is used for testing #[allow(dead_code)] #[inline(always)] - pub(crate) const fn to_function_fast(&self) -> InsnFunction { - INSN_VIRTUAL_TABLE[*self as usize] + pub(crate) const fn to_function_fast(self) -> InsnFunction { + INSN_VIRTUAL_TABLE[self as usize] } // This function is used for generating the virtual table. // We need to keep this function to make sure we implement all opcodes - pub(crate) const fn to_function(&self) -> InsnFunction { + pub(crate) const fn to_function(self) -> InsnFunction { match self { - InsnVariants::Init { .. } => execute::op_init, - InsnVariants::Null { .. } => execute::op_null, - InsnVariants::BeginSubrtn { .. } => execute::op_null, - InsnVariants::NullRow { .. } => execute::op_null_row, - InsnVariants::Add { .. } => execute::op_add, - InsnVariants::Subtract { .. } => execute::op_subtract, - InsnVariants::Multiply { .. } => execute::op_multiply, - InsnVariants::Divide { .. } => execute::op_divide, - InsnVariants::DropIndex { .. } => execute::op_drop_index, - InsnVariants::Compare { .. } => execute::op_compare, - InsnVariants::BitAnd { .. } => execute::op_bit_and, - InsnVariants::BitOr { .. } => execute::op_bit_or, - InsnVariants::BitNot { .. } => execute::op_bit_not, - InsnVariants::Checkpoint { .. } => execute::op_checkpoint, - InsnVariants::Remainder { .. } => execute::op_remainder, - InsnVariants::Jump { .. } => execute::op_jump, - InsnVariants::Move { .. } => execute::op_move, - InsnVariants::IfPos { .. } => execute::op_if_pos, - InsnVariants::NotNull { .. } => execute::op_not_null, - InsnVariants::Eq { .. } - | InsnVariants::Ne { .. } - | InsnVariants::Lt { .. } - | InsnVariants::Le { .. } - | InsnVariants::Gt { .. } - | InsnVariants::Ge { .. } => execute::op_comparison, - InsnVariants::If { .. } => execute::op_if, - InsnVariants::IfNot { .. } => execute::op_if_not, - InsnVariants::OpenRead { .. } => execute::op_open_read, - InsnVariants::VOpen { .. } => execute::op_vopen, - InsnVariants::VCreate { .. } => execute::op_vcreate, - InsnVariants::VFilter { .. } => execute::op_vfilter, - InsnVariants::VColumn { .. } => execute::op_vcolumn, - InsnVariants::VUpdate { .. } => execute::op_vupdate, - InsnVariants::VNext { .. } => execute::op_vnext, - InsnVariants::VDestroy { .. } => execute::op_vdestroy, + InsnVariants::Init => execute::op_init, + InsnVariants::Null => execute::op_null, + InsnVariants::BeginSubrtn => execute::op_null, + InsnVariants::NullRow => execute::op_null_row, + InsnVariants::Add => execute::op_add, + InsnVariants::Subtract => execute::op_subtract, + InsnVariants::Multiply => execute::op_multiply, + InsnVariants::Divide => execute::op_divide, + InsnVariants::DropIndex => execute::op_drop_index, + InsnVariants::Compare => execute::op_compare, + InsnVariants::BitAnd => execute::op_bit_and, + InsnVariants::BitOr => execute::op_bit_or, + InsnVariants::BitNot => execute::op_bit_not, + InsnVariants::Checkpoint => execute::op_checkpoint, + InsnVariants::Remainder => execute::op_remainder, + InsnVariants::Jump => execute::op_jump, + InsnVariants::Move => execute::op_move, + InsnVariants::IfPos => execute::op_if_pos, + InsnVariants::NotNull => execute::op_not_null, + InsnVariants::Eq + | InsnVariants::Ne + | InsnVariants::Lt + | InsnVariants::Le + | InsnVariants::Gt + | InsnVariants::Ge => execute::op_comparison, + InsnVariants::If => execute::op_if, + InsnVariants::IfNot => execute::op_if_not, + InsnVariants::OpenRead => execute::op_open_read, + InsnVariants::VOpen => execute::op_vopen, + InsnVariants::VCreate => execute::op_vcreate, + InsnVariants::VFilter => execute::op_vfilter, + InsnVariants::VColumn => execute::op_vcolumn, + InsnVariants::VUpdate => execute::op_vupdate, + InsnVariants::VNext => execute::op_vnext, + InsnVariants::VDestroy => execute::op_vdestroy, - InsnVariants::OpenPseudo { .. } => execute::op_open_pseudo, - InsnVariants::Rewind { .. } => execute::op_rewind, - InsnVariants::Last { .. } => execute::op_last, - InsnVariants::Column { .. } => execute::op_column, - InsnVariants::TypeCheck { .. } => execute::op_type_check, - InsnVariants::MakeRecord { .. } => execute::op_make_record, - InsnVariants::ResultRow { .. } => execute::op_result_row, - InsnVariants::Next { .. } => execute::op_next, - InsnVariants::Prev { .. } => execute::op_prev, - InsnVariants::Halt { .. } => execute::op_halt, - InsnVariants::HaltIfNull { .. } => execute::op_halt_if_null, - InsnVariants::Transaction { .. } => execute::op_transaction, - InsnVariants::AutoCommit { .. } => execute::op_auto_commit, - InsnVariants::Goto { .. } => execute::op_goto, - InsnVariants::Gosub { .. } => execute::op_gosub, - InsnVariants::Return { .. } => execute::op_return, - InsnVariants::Integer { .. } => execute::op_integer, - InsnVariants::Real { .. } => execute::op_real, - InsnVariants::RealAffinity { .. } => execute::op_real_affinity, - InsnVariants::String8 { .. } => execute::op_string8, - InsnVariants::Blob { .. } => execute::op_blob, - InsnVariants::RowData { .. } => execute::op_row_data, - InsnVariants::RowId { .. } => execute::op_row_id, - InsnVariants::IdxRowId { .. } => execute::op_idx_row_id, - InsnVariants::SeekRowid { .. } => execute::op_seek_rowid, - InsnVariants::DeferredSeek { .. } => execute::op_deferred_seek, - InsnVariants::SeekGE { .. } - | InsnVariants::SeekGT { .. } - | InsnVariants::SeekLE { .. } - | InsnVariants::SeekLT { .. } => execute::op_seek, - InsnVariants::SeekEnd { .. } => execute::op_seek_end, - InsnVariants::IdxGE { .. } => execute::op_idx_ge, - InsnVariants::IdxGT { .. } => execute::op_idx_gt, - InsnVariants::IdxLE { .. } => execute::op_idx_le, - InsnVariants::IdxLT { .. } => execute::op_idx_lt, - InsnVariants::DecrJumpZero { .. } => execute::op_decr_jump_zero, - InsnVariants::AggStep { .. } => execute::op_agg_step, - InsnVariants::AggFinal { .. } => execute::op_agg_final, - InsnVariants::SorterOpen { .. } => execute::op_sorter_open, - InsnVariants::SorterInsert { .. } => execute::op_sorter_insert, - InsnVariants::SorterSort { .. } => execute::op_sorter_sort, - InsnVariants::SorterData { .. } => execute::op_sorter_data, - InsnVariants::SorterNext { .. } => execute::op_sorter_next, - InsnVariants::Function { .. } => execute::op_function, - InsnVariants::Cast { .. } => execute::op_cast, - InsnVariants::InitCoroutine { .. } => execute::op_init_coroutine, - InsnVariants::EndCoroutine { .. } => execute::op_end_coroutine, - InsnVariants::Yield { .. } => execute::op_yield, - InsnVariants::Insert { .. } => execute::op_insert, - InsnVariants::Int64 { .. } => execute::op_int_64, - InsnVariants::IdxInsert { .. } => execute::op_idx_insert, - InsnVariants::Delete { .. } => execute::op_delete, - InsnVariants::NewRowid { .. } => execute::op_new_rowid, - InsnVariants::MustBeInt { .. } => execute::op_must_be_int, - InsnVariants::SoftNull { .. } => execute::op_soft_null, - InsnVariants::NoConflict { .. } => execute::op_no_conflict, - InsnVariants::NotExists { .. } => execute::op_not_exists, - InsnVariants::OffsetLimit { .. } => execute::op_offset_limit, - InsnVariants::OpenWrite { .. } => execute::op_open_write, - InsnVariants::Copy { .. } => execute::op_copy, - InsnVariants::CreateBtree { .. } => execute::op_create_btree, - InsnVariants::Destroy { .. } => execute::op_destroy, + InsnVariants::OpenPseudo => execute::op_open_pseudo, + InsnVariants::Rewind => execute::op_rewind, + InsnVariants::Last => execute::op_last, + InsnVariants::Column => execute::op_column, + InsnVariants::TypeCheck => execute::op_type_check, + InsnVariants::MakeRecord => execute::op_make_record, + InsnVariants::ResultRow => execute::op_result_row, + InsnVariants::Next => execute::op_next, + InsnVariants::Prev => execute::op_prev, + InsnVariants::Halt => execute::op_halt, + InsnVariants::HaltIfNull => execute::op_halt_if_null, + InsnVariants::Transaction => execute::op_transaction, + InsnVariants::AutoCommit => execute::op_auto_commit, + InsnVariants::Goto => execute::op_goto, + InsnVariants::Gosub => execute::op_gosub, + InsnVariants::Return => execute::op_return, + InsnVariants::Integer => execute::op_integer, + InsnVariants::Real => execute::op_real, + InsnVariants::RealAffinity => execute::op_real_affinity, + InsnVariants::String8 => execute::op_string8, + InsnVariants::Blob => execute::op_blob, + InsnVariants::RowData => execute::op_row_data, + InsnVariants::RowId => execute::op_row_id, + InsnVariants::IdxRowId => execute::op_idx_row_id, + InsnVariants::SeekRowid => execute::op_seek_rowid, + InsnVariants::DeferredSeek => execute::op_deferred_seek, + InsnVariants::SeekGE + | InsnVariants::SeekGT + | InsnVariants::SeekLE + | InsnVariants::SeekLT => execute::op_seek, + InsnVariants::SeekEnd => execute::op_seek_end, + InsnVariants::IdxGE => execute::op_idx_ge, + InsnVariants::IdxGT => execute::op_idx_gt, + InsnVariants::IdxLE => execute::op_idx_le, + InsnVariants::IdxLT => execute::op_idx_lt, + InsnVariants::DecrJumpZero => execute::op_decr_jump_zero, + InsnVariants::AggStep => execute::op_agg_step, + InsnVariants::AggFinal => execute::op_agg_final, + InsnVariants::SorterOpen => execute::op_sorter_open, + InsnVariants::SorterInsert => execute::op_sorter_insert, + InsnVariants::SorterSort => execute::op_sorter_sort, + InsnVariants::SorterData => execute::op_sorter_data, + InsnVariants::SorterNext => execute::op_sorter_next, + InsnVariants::Function => execute::op_function, + InsnVariants::Cast => execute::op_cast, + InsnVariants::InitCoroutine => execute::op_init_coroutine, + InsnVariants::EndCoroutine => execute::op_end_coroutine, + InsnVariants::Yield => execute::op_yield, + InsnVariants::Insert => execute::op_insert, + InsnVariants::Int64 => execute::op_int_64, + InsnVariants::IdxInsert => execute::op_idx_insert, + InsnVariants::Delete => execute::op_delete, + InsnVariants::NewRowid => execute::op_new_rowid, + InsnVariants::MustBeInt => execute::op_must_be_int, + InsnVariants::SoftNull => execute::op_soft_null, + InsnVariants::NoConflict => execute::op_no_conflict, + InsnVariants::NotExists => execute::op_not_exists, + InsnVariants::OffsetLimit => execute::op_offset_limit, + InsnVariants::OpenWrite => execute::op_open_write, + InsnVariants::Copy => execute::op_copy, + InsnVariants::CreateBtree => execute::op_create_btree, + InsnVariants::Destroy => execute::op_destroy, - InsnVariants::DropTable { .. } => execute::op_drop_table, - InsnVariants::DropView { .. } => execute::op_drop_view, - InsnVariants::Close { .. } => execute::op_close, - InsnVariants::IsNull { .. } => execute::op_is_null, - InsnVariants::CollSeq { .. } => execute::op_coll_seq, - InsnVariants::ParseSchema { .. } => execute::op_parse_schema, - InsnVariants::PopulateMaterializedViews { .. } => { - execute::op_populate_materialized_views - } - InsnVariants::ShiftRight { .. } => execute::op_shift_right, - InsnVariants::ShiftLeft { .. } => execute::op_shift_left, - InsnVariants::AddImm { .. } => execute::op_add_imm, - InsnVariants::Variable { .. } => execute::op_variable, - InsnVariants::ZeroOrNull { .. } => execute::op_zero_or_null, - InsnVariants::Not { .. } => execute::op_not, - InsnVariants::Concat { .. } => execute::op_concat, - InsnVariants::And { .. } => execute::op_and, - InsnVariants::Or { .. } => execute::op_or, + InsnVariants::DropTable => execute::op_drop_table, + InsnVariants::DropView => execute::op_drop_view, + InsnVariants::Close => execute::op_close, + InsnVariants::IsNull => execute::op_is_null, + InsnVariants::CollSeq => execute::op_coll_seq, + InsnVariants::ParseSchema => execute::op_parse_schema, + InsnVariants::PopulateMaterializedViews => execute::op_populate_materialized_views, + InsnVariants::ShiftRight => execute::op_shift_right, + InsnVariants::ShiftLeft => execute::op_shift_left, + InsnVariants::AddImm => execute::op_add_imm, + InsnVariants::Variable => execute::op_variable, + InsnVariants::ZeroOrNull => execute::op_zero_or_null, + InsnVariants::Not => execute::op_not, + InsnVariants::Concat => execute::op_concat, + InsnVariants::And => execute::op_and, + InsnVariants::Or => execute::op_or, InsnVariants::Noop => execute::op_noop, - InsnVariants::PageCount { .. } => execute::op_page_count, - InsnVariants::ReadCookie { .. } => execute::op_read_cookie, - InsnVariants::SetCookie { .. } => execute::op_set_cookie, - InsnVariants::OpenEphemeral { .. } | InsnVariants::OpenAutoindex { .. } => { - execute::op_open_ephemeral - } - InsnVariants::Once { .. } => execute::op_once, - InsnVariants::Found { .. } | InsnVariants::NotFound { .. } => execute::op_found, - InsnVariants::Affinity { .. } => execute::op_affinity, - InsnVariants::IdxDelete { .. } => execute::op_idx_delete, - InsnVariants::Count { .. } => execute::op_count, - InsnVariants::IntegrityCk { .. } => execute::op_integrity_check, - InsnVariants::RenameTable { .. } => execute::op_rename_table, - InsnVariants::DropColumn { .. } => execute::op_drop_column, - InsnVariants::AddColumn { .. } => execute::op_add_column, - InsnVariants::AlterColumn { .. } => execute::op_alter_column, - InsnVariants::MaxPgcnt { .. } => execute::op_max_pgcnt, - InsnVariants::JournalMode { .. } => execute::op_journal_mode, - InsnVariants::IfNeg { .. } => execute::op_if_neg, - InsnVariants::Explain { .. } => execute::op_noop, + InsnVariants::PageCount => execute::op_page_count, + InsnVariants::ReadCookie => execute::op_read_cookie, + InsnVariants::SetCookie => execute::op_set_cookie, + InsnVariants::OpenEphemeral | InsnVariants::OpenAutoindex => execute::op_open_ephemeral, + InsnVariants::Once => execute::op_once, + InsnVariants::Found | InsnVariants::NotFound => execute::op_found, + InsnVariants::Affinity => execute::op_affinity, + InsnVariants::IdxDelete => execute::op_idx_delete, + InsnVariants::Count => execute::op_count, + InsnVariants::IntegrityCk => execute::op_integrity_check, + InsnVariants::RenameTable => execute::op_rename_table, + InsnVariants::DropColumn => execute::op_drop_column, + InsnVariants::AddColumn => execute::op_add_column, + InsnVariants::AlterColumn => execute::op_alter_column, + InsnVariants::MaxPgcnt => execute::op_max_pgcnt, + InsnVariants::JournalMode => execute::op_journal_mode, + InsnVariants::IfNeg => execute::op_if_neg, + InsnVariants::Explain => execute::op_noop, } } } diff --git a/macros/src/lib.rs b/macros/src/lib.rs index 716c289f7..d83df0ab1 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -47,7 +47,7 @@ pub fn derive_description_from_doc(item: TokenStream) -> TokenStream { continue; } - // this is a quick fix for + // this is a quick fix for if ident_str == "repr" { continue; }