Repository navigation
[bot] Fast-forward for 26.7.12 - #8140
Merged
Merged
Conversation
…ery (#8101) ## Rationale LabKey/internal-issues#1607 In the app React grid, we are sending two API requests: one for the page of data and a second for the total row count. Because the total row count API call sends maxRows: 1, we are getting an extra LIMIT 2 query on the server side prior to the COUNT(*) query. selectRows with maxRows=0 and an explicitly sent includeTotalCount=true now becomes a count-only request. The server runs only COUNT(*) (skipping the LIMIT 2 rows query) and returns rowCount, an empty rows list, and metadata only if asked for. loadTotalCount in withQueryModels now sends maxRows: 0 and includeMetadata: false. ## Related Pull Requests - #8101 - LabKey/labkey-ui-components#2081 - LabKey/limsModules#2501 - LabKey/testAutomation#3215 ## Changes - SelectRowsAction treats maxRows=0 with an explicit includeTotalCount=true as a count-only request - a new count-only path runs only the COUNT(*) and returns rowCount, metadata if requested - adds loadTotalRowsOnly(), which checks read permission and runs COUNT(*) without a rows query - getAggregates() no longer returns empty when no rows query has run
## Rationale Postgres can capture and report key info on its configuration, resource, and query execution. It's useful for troubleshooting performance problems. It requires the `pg_stat_statements` extension. ## Changes - Query to package up the info as a JSON blob - New Admin Console link to download the JSON as a file for analysis ## Tasks - [x] Claude Code Review - [x] Manual Testing @labkey-adam - [x] Test on PG 17+ (changed metadata views) - [x] Test Automation - [x] User Education Handoff @labkey-hannah - Worth a mention in our Admin Console docs - Useful to capture before and after slow DB queries - Supplements execution plans with more details on how the DB used memory, CPU, etc - Not intended for direct customer analysis, but something that we can use for optimization and troubleshooting - See notes here for install instructions for on-premise: LabKey/internal-issues#1613 ##User Education ## This is mostly for Account Managers' knowledge, not really public-facing documentation or information. That said, we should add "Postgres snapshot" to our Admin Console docs as an option. This is a potential tool that can help us (or Account Managers guiding on prem admins) to understand why a DB is so slow. As mentioned above, we'd want to capture the snapshot before and after an expensive/slow DB query. For on-premise customers, they will need to install a postgres extension (linked above).
…d of NPE (#8126) ## Rationale Every ETL whose source schema sits on a MySQL/MariaDB external data source fails on 26.7 with a NullPointerException in QueryDataIteratorBuilder. The builder quoted the source query name with the source database's dialect, which yields backticks for MySQL/MariaDB. Earlier releases silently dropped those characters in the LabKey SQL lexer, so the statement re-lexed as an unquoted name and worked by accident; 26.7 made lexer errors fatal parse errors (#7835), so the compile now fails. The failure then surfaced as an NPE rather than the parse error because the builder used the table before checking for errors. ## Changes - Quote the source query name as LabKey SQL via the existing LabKeySql helper, independent of the source dialect. - Check for parse errors before using the compiled table, and report a null table as a validation error, so a bad source query produces its real message.
- Require the Trusted Analyst or Platform Developer permission to add, change, or clear a file watcher's Parameter Function; folder admins can still edit other trigger settings when the function is left unchanged - Hide the Parameter Function in the pipeline trigger wizard from users without that permission, and keep an existing function when the task changes - Stop pre-filling the Parameter Function from URL parameters when creating a trigger - Restrict trigger configuration updates to the current folder and report update errors instead of dropping them ([GH Issue 1626](LabKey/internal-issues#1626)) - Reject trigger configurations that aren't valid JSON, for all users - Reject bulk loading of trigger configurations - Start and stop trigger listeners only after the change is committed - Lint `CreatePipelineTrigger.tsx` - Add integration tests for these cases
cnathe
approved these changes
Oct 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Generated automatically.
Approve all matching PRs simultaneously.
Approval will trigger automatic merge.
View all PRs: https://internal.labkey.com/Scrumtime/Backlog/harvest-gitOpenPullRequests.view?branch=26.7_ff_bot_26.7.12