MCPcopy Create free account
hub / github.com/erans/pgsqlite / test_query_execution

Function test_query_execution

src/optimization/read_only_optimizer.rs:581–613  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

579
580 #[test]
581 fn test_query_execution() {
582 let optimizer = ReadOnlyOptimizer::new(100);
583 let conn = rusqlite::Connection::open_in_memory().unwrap();
584 let schema_cache = SchemaCache::new(3600);
585
586 // Create a test table
587 conn.execute("CREATE TABLE users (id INTEGER, name TEXT, active BOOLEAN)", []).unwrap();
588 conn.execute("INSERT INTO users VALUES (1, 'Alice', 1), (2, 'Bob', 0)", []).unwrap();
589
590 // Test simple query execution
591 let result = optimizer.execute_read_only_query(&conn, "SELECT * FROM users", &schema_cache).unwrap();
592 assert!(result.is_some());
593
594 let response = result.unwrap();
595 assert_eq!(response.columns, vec!["id", "name", "active"]);
596 assert_eq!(response.rows.len(), 2);
597
598 // Test that stats are updated
599 let stats = optimizer.get_stats();
600 assert_eq!(stats.total_queries, 1);
601 assert_eq!(stats.cache_misses, 1);
602 assert_eq!(stats.successful_optimizations, 1);
603
604 // Test cache hit on second execution
605 let result2 = optimizer.execute_read_only_query(&conn, "SELECT * FROM users", &schema_cache).unwrap();
606 assert!(result2.is_some());
607
608 let stats2 = optimizer.get_stats();
609 assert_eq!(stats2.total_queries, 2);
610 assert_eq!(stats2.cache_hits, 1);
611 assert_eq!(stats2.cache_misses, 1);
612 assert!(optimizer.get_cache_hit_rate() > 0.0);
613 }
614}

Callers

nothing calls this directly

Calls 3

executeMethod · 0.45
get_statsMethod · 0.45

Tested by

no test coverage detected