@@ -28,35 +28,37 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
2828 println ! ( "This example demonstrates how Vortex automatically selects" ) ;
2929 println ! ( "optimal compression strategies for different data patterns.\n " ) ;
3030
31+ let session = VortexSession :: default ( ) ;
32+
3133 // 1. Compress sequential/monotonic data
3234 println ! ( "1. Sequential Data Compression:" ) ;
33- compress_sequential_data ( ) ?;
35+ compress_sequential_data ( & session ) ?;
3436
3537 // 2. Compress repetitive data
3638 println ! ( "\n 2. Repetitive Data Compression:" ) ;
37- compress_repetitive_data ( ) ?;
39+ compress_repetitive_data ( & session ) ?;
3840
3941 // 3. Compress string data
4042 println ! ( "\n 3. String Data Compression:" ) ;
41- compress_string_data ( ) ?;
43+ compress_string_data ( & session ) ?;
4244
4345 // 4. Compress floating-point data
4446 println ! ( "\n 4. Floating-Point Data Compression:" ) ;
45- compress_float_data ( ) ?;
47+ compress_float_data ( & session ) ?;
4648
4749 // 5. Compress sparse data
4850 println ! ( "\n 5. Sparse Data Compression:" ) ;
49- compress_sparse_data ( ) ?;
51+ compress_sparse_data ( & session ) ?;
5052
5153 // 6. Compress structured data
5254 println ! ( "\n 6. Structured Data Compression:" ) ;
53- compress_structured_data ( ) ?;
55+ compress_structured_data ( & session ) ?;
5456
5557 println ! ( "\n === Compression showcase completed! ===" ) ;
5658 Ok ( ( ) )
5759}
5860
59- fn compress_sequential_data ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
61+ fn compress_sequential_data ( session : & VortexSession ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
6062 // Create sequential data (e.g., timestamps, IDs)
6163 let sequential: PrimitiveArray = ( 1000 ..11000 ) . map ( |i| i as u64 ) . collect ( ) ;
6264
@@ -66,7 +68,6 @@ fn compress_sequential_data() -> Result<(), Box<dyn std::error::Error>> {
6668
6769 // Compress using default strategy
6870 let compressor = BtrBlocksCompressor :: default ( ) ;
69- let session = VortexSession :: default ( ) ;
7071 let compressed = compressor. compress (
7172 & sequential. into_array ( ) ,
7273 & mut session. create_execution_ctx ( ) ,
@@ -83,7 +84,7 @@ fn compress_sequential_data() -> Result<(), Box<dyn std::error::Error>> {
8384 Ok ( ( ) )
8485}
8586
86- fn compress_repetitive_data ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
87+ fn compress_repetitive_data ( session : & VortexSession ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
8788 // Create highly repetitive data (run-length encoding opportunity)
8889 let mut repetitive = Vec :: new ( ) ;
8990 for i in 0 ..100 {
@@ -98,7 +99,6 @@ fn compress_repetitive_data() -> Result<(), Box<dyn std::error::Error>> {
9899 println ! ( " Uncompressed size: ~{} bytes" , uncompressed_size) ;
99100
100101 let compressor = BtrBlocksCompressor :: default ( ) ;
101- let session = VortexSession :: default ( ) ;
102102 let compressed =
103103 compressor. compress ( & array. into_array ( ) , & mut session. create_execution_ctx ( ) ) ?;
104104
@@ -113,7 +113,7 @@ fn compress_repetitive_data() -> Result<(), Box<dyn std::error::Error>> {
113113 Ok ( ( ) )
114114}
115115
116- fn compress_string_data ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
116+ fn compress_string_data ( session : & VortexSession ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
117117 // Create string data with patterns
118118 let categories = vec ! [ "Electronics" , "Clothing" , "Food" , "Books" ] ;
119119 let mut strings = Vec :: new ( ) ;
@@ -132,7 +132,6 @@ fn compress_string_data() -> Result<(), Box<dyn std::error::Error>> {
132132 println ! ( " Uncompressed size: ~{} bytes" , uncompressed_size) ;
133133
134134 let compressor = BtrBlocksCompressor :: default ( ) ;
135- let session = VortexSession :: default ( ) ;
136135 let compressed =
137136 compressor. compress ( & array. into_array ( ) , & mut session. create_execution_ctx ( ) ) ?;
138137
@@ -147,7 +146,7 @@ fn compress_string_data() -> Result<(), Box<dyn std::error::Error>> {
147146 Ok ( ( ) )
148147}
149148
150- fn compress_float_data ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
149+ fn compress_float_data ( session : & VortexSession ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
151150 // Create floating-point data with patterns
152151 let floats: Buffer < f64 > = ( 0 ..10000 ) . map ( |i| ( i as f64 ) * 0.1 + 100.0 ) . collect ( ) ;
153152 let array = floats. into_array ( ) ;
@@ -157,7 +156,6 @@ fn compress_float_data() -> Result<(), Box<dyn std::error::Error>> {
157156 println ! ( " Uncompressed size: ~{} bytes" , uncompressed_size) ;
158157
159158 let compressor = BtrBlocksCompressor :: default ( ) ;
160- let session = VortexSession :: default ( ) ;
161159 let compressed = compressor. compress ( & array, & mut session. create_execution_ctx ( ) ) ?;
162160
163161 let compressed_size = compressed. nbytes ( ) ;
@@ -171,7 +169,7 @@ fn compress_float_data() -> Result<(), Box<dyn std::error::Error>> {
171169 Ok ( ( ) )
172170}
173171
174- fn compress_sparse_data ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
172+ fn compress_sparse_data ( session : & VortexSession ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
175173 // Create sparse data (mostly zeros with few non-zero values)
176174 let mut sparse = vec ! [ 0i64 ; 10000 ] ;
177175 for i in ( 0 ..10000 ) . step_by ( 100 ) {
@@ -184,7 +182,6 @@ fn compress_sparse_data() -> Result<(), Box<dyn std::error::Error>> {
184182 println ! ( " Uncompressed size: ~{} bytes" , uncompressed_size) ;
185183
186184 let compressor = BtrBlocksCompressor :: default ( ) ;
187- let session = VortexSession :: default ( ) ;
188185 let compressed =
189186 compressor. compress ( & array. into_array ( ) , & mut session. create_execution_ctx ( ) ) ?;
190187
@@ -199,7 +196,7 @@ fn compress_sparse_data() -> Result<(), Box<dyn std::error::Error>> {
199196 Ok ( ( ) )
200197}
201198
202- fn compress_structured_data ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
199+ fn compress_structured_data ( session : & VortexSession ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
203200 // Create a struct array with multiple columns
204201 let size = 5000 ;
205202
@@ -236,7 +233,6 @@ fn compress_structured_data() -> Result<(), Box<dyn std::error::Error>> {
236233 println ! ( " Uncompressed size: ~{} bytes" , uncompressed_size) ;
237234
238235 let compressor = BtrBlocksCompressor :: default ( ) ;
239- let session = VortexSession :: default ( ) ;
240236 let compressed = compressor. compress (
241237 & struct_array. into_array ( ) ,
242238 & mut session. create_execution_ctx ( ) ,
0 commit comments