-
Notifications
You must be signed in to change notification settings - Fork 0
Advanced Query Processing Architecture #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: query-splitting-baseline
Are you sure you want to change the base?
Advanced Query Processing Architecture #7
Conversation
…7534) * Loki query splitting: interpolate queries before execution * Update tests * Prettier * shardQuerySplitting: remove unnecessary call
|
cursor review |
| .filter((query) => query.expr) | ||
| .filter((query) => !query.hide); | ||
| .filter((query) => !query.hide) | ||
| .map((query) => datasource.applyTemplateVariables(query, request.scopedVars, request.filters)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Template Variables: Double Interpolation Breaks Queries.
Template variables are interpolated twice when shard splitting is enabled. runShardSplitQuery calls applyTemplateVariables on each query, then passes them to runSplitQuery which calls applyTemplateVariables again. This double interpolation can cause variables to be incorrectly replaced multiple times, potentially breaking queries that contain variable-like patterns in their interpolated values.
| const queries = request.targets | ||
| .filter((query) => !query.hide) | ||
| .filter((query) => query.expr) | ||
| .map((query) => datasource.applyTemplateVariables(query, request.scopedVars, request.filters)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Double Interpolation Glitch for Template Variables
Template variables are interpolated twice in the regular query splitting path. The new code calls applyTemplateVariables in runSplitQuery, but DataSourceWithBackend.query() (called via datasource.runQuery) also calls applyTemplateVariables. The old code didn't interpolate in runSplitQuery, relying solely on the backend interpolation. This double interpolation can cause variables to be incorrectly replaced multiple times.
|
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 2 weeks if no further activity occurs. Please feel free to give a status update or ping for review. Thank you for your contributions! |
Test 4
Replicated from ai-code-review-evaluation/grafana-cursor#4
Note
Interpolates template variables on Loki queries before time- and shard-based splitting, updating tests and mocks accordingly.
querySplitting.ts):datasource.applyTemplateVariablesto targets before filtering and splitting.shardQuerySplitting.ts):applyTemplateVariablesprior to sharding; replace previous interpolation method.$__autoand$stepbefore execution for both split and shard-split paths.applyTemplateVariablesand adjust expectations (expressions, steps, call counts, request shapes).Written by Cursor Bugbot for commit 3ba2457. Configure here.