diff options
Diffstat (limited to 'src/vtab/series.rs')
-rw-r--r-- | src/vtab/series.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/vtab/series.rs b/src/vtab/series.rs index f26212a..fffbd4d 100644 --- a/src/vtab/series.rs +++ b/src/vtab/series.rs @@ -10,8 +10,8 @@ use std::os::raw::c_int; use crate::ffi; use crate::types::Type; use crate::vtab::{ - eponymous_only_module, Context, IndexConstraintOp, IndexInfo, VTab, VTabConnection, VTabCursor, - Values, + eponymous_only_module, Context, IndexConstraintOp, IndexInfo, VTab, VTabConfig, VTabConnection, + VTabCursor, Values, }; use crate::{Connection, Error, Result}; @@ -57,13 +57,14 @@ unsafe impl<'vtab> VTab<'vtab> for SeriesTab { type Cursor = SeriesTabCursor<'vtab>; fn connect( - _: &mut VTabConnection, + db: &mut VTabConnection, _aux: Option<&()>, _args: &[&[u8]], ) -> Result<(String, SeriesTab)> { let vtab = SeriesTab { base: ffi::sqlite3_vtab::default(), }; + db.config(VTabConfig::Innocuous)?; Ok(( "CREATE TABLE x(value,start hidden,stop hidden,step hidden)".to_owned(), vtab, @@ -103,6 +104,8 @@ unsafe impl<'vtab> VTab<'vtab> for SeriesTab { let mut constraint_usage = info.constraint_usage(*j); constraint_usage.set_argv_index(n_arg); constraint_usage.set_omit(true); + #[cfg(all(test, feature = "modern_sqlite"))] + debug_assert_eq!(Ok("BINARY"), info.collation(*j)); } if !(unusable_mask & !idx_num).is_empty() { return Err(Error::SqliteFailure( @@ -150,7 +153,7 @@ unsafe impl<'vtab> VTab<'vtab> for SeriesTab { Ok(()) } - fn open(&self) -> Result<SeriesTabCursor<'_>> { + fn open(&mut self) -> Result<SeriesTabCursor<'_>> { Ok(SeriesTabCursor::new()) } } |