-
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
|
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
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.
Review completed. 2 suggestions posted.
Comment augment review to trigger a new review at any time.
| 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.
Interpolating after filtering can allow queries whose expr becomes empty post-replacement to slip through; consider re-filtering after .map(...) (or interpolate before filtering) to avoid executing empty expressions. This prevents invalid requests when a placeholder like $var resolves to an empty string.
🤖 Was this useful? React with 👍 or 👎
| .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.
Same concern as in runSplitQuery: if expr becomes empty after applyTemplateVariables, it will pass the pre-map filters; consider re-filtering after .map(...) (or interpolate before filtering) to avoid sending empty expressions. (Related to the similar change in querySplitting.ts.)
🤖 Was this useful? React with 👍 or 👎
No description provided.