Skip to content

Commit 79d3a38

Browse files
committed
feat: query result caching and efficiency improvements
Always-on: - Deduplicate resolveQueryPath (pass to processQueryRunResults) - Cache resolveDatabasePath via module-level Map - Cache extractQueryMetadata with mtime invalidation - Track actual vs target CodeQL CLI version; warn on mismatch Gated by ENABLE_ANNOTATION_TOOLS: - query_result_cache table in SqliteStore with auto-populate - query_results_cache_{lookup,retrieve,clear,compare} tools - Subset retrieval: line range, grep, SARIF index/file filters Integration tests: - Add annotation mode to run-integration-tests.sh - Client fixtures for all 4 cache tools - Extension e2e: cache tool availability + workflow tests
1 parent d30cea6 commit 79d3a38

23 files changed

Lines changed: 7755 additions & 6087 deletions

File tree

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"toolName": "query_results_cache_clear",
3+
"parameters": {
4+
"all": true
5+
},
6+
"success": true,
7+
"description": "Successfully cleared all cached query results"
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"toolName": "query_results_cache_clear",
3+
"parameters": {
4+
"all": true
5+
},
6+
"expectedSuccess": true,
7+
"description": "Test query_results_cache_clear clears all cached query results"
8+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"toolName": "query_results_cache_clear",
3+
"arguments": {
4+
"all": true
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"toolName": "query_results_cache_compare",
3+
"parameters": {
4+
"queryName": "CallGraphFrom"
5+
},
6+
"success": true,
7+
"description": "Successfully compared cached query results across databases"
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"toolName": "query_results_cache_compare",
3+
"parameters": {
4+
"queryName": "CallGraphFrom"
5+
},
6+
"expectedSuccess": true,
7+
"description": "Test query_results_cache_compare compares cached results for a query across databases"
8+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"toolName": "query_results_cache_compare",
3+
"arguments": {
4+
"queryName": "CallGraphFrom"
5+
}
6+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"toolName": "query_results_cache_lookup",
3+
"parameters": {
4+
"queryName": "PrintAST",
5+
"language": "javascript"
6+
},
7+
"success": true,
8+
"description": "Successfully looked up cached query results by query name and language"
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"toolName": "query_results_cache_lookup",
3+
"parameters": {
4+
"queryName": "PrintAST",
5+
"language": "javascript"
6+
},
7+
"expectedSuccess": true,
8+
"description": "Test query_results_cache_lookup lists cached results by query name and language"
9+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"toolName": "query_results_cache_lookup",
3+
"arguments": {
4+
"queryName": "PrintAST",
5+
"language": "javascript"
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"toolName": "query_results_cache_retrieve",
3+
"parameters": {
4+
"cacheKey": "nonexistent-key-for-test",
5+
"maxLines": 50
6+
},
7+
"success": true,
8+
"description": "Successfully handled cache retrieve for non-existent key"
9+
}

0 commit comments

Comments
 (0)