diff --git a/src/transparent.rs b/src/transparent.rs index d863bf7..9e5c3dc 100644 --- a/src/transparent.rs +++ b/src/transparent.rs @@ -195,7 +195,7 @@ pub fn zstd_enable_transparent<'a>(ctx: &Context) -> anyhow::Result(ctx: &Context) -> anyhow::Result anyhow::Result<()> { + let db = create_example_db(None, 0)?; + + for id in 1..=10 { + db.execute( + "insert into events (id, timestamp, data) values (?, '2020-01-01', '')", + params![id], + )?; + } + + db.query_row( + r#"select zstd_enable_transparent(?)"#, + params![r#"{"table": "events", "column": "data", "compression_level": 3, "dict_chooser": "'[nodict]'"}"#], + |_| Ok(()) + ).context("enable transparent")?; + + db.query_row( + "select zstd_incremental_maintenance(9999999, 1)", + params![], + |row| row.get::<_, i64>(0), + ) + .context("incremental maintenance")?; + + let uncompressed_count: i64 = db.query_row( + "select count(*) from _events_zstd where _data_dict is null", + params![], + |row| row.get(0), + )?; + assert_eq!(uncompressed_count, 0); + + Ok(()) + } + #[test] #[should_panic(expected = "another_col (another_col_idx) - used as part of index")] fn indexed_column_cannot_be_enabled() {