feat(inspector): show the whole log on the Database tab - #932
Merged
lcottercertinia merged 1 commit intoAug 14, 2026
Merged
Conversation
With nothing selected the Database tab reads the log rather than sitting empty. Three sections, each answering what the grids beside cannot: - Namespace duration: who asked for the database time, and, when it differs, whose code burned it — a package trigger firing on your DML. - Call tree: every call path that ends in a query, DML or search, with total database time beside the row's own code, so waiting on the database reads differently from the Apex around it. - Database duration: how few statements hold the time, with cost per row, repeat count and the self/descendant split. Every statement counts, a trigger's query under a DML included: the DML's total holds it, its net time does not, so shares of the database total hold whatever the nesting is. CategoryTimeBar's stacked bar becomes the shared StackedTimeBar, so the namespace bars and time by category are one component.
lcottercertinia
approved these changes
Aug 14, 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.
related #373
With nothing selected, the Database tab read as an empty panel. It now reads the whole log, in three sections that each answer something the grids beside cannot.
Namespace duration
Called from namespace — the namespace that issued the statement — and, only when they differ, Ran in namespace, the namespaces of whatever ran beneath it. A package trigger firing on your DML shows up as your time asked for, their time spent. One colour per namespace, stable across both bars.
Call tree
Every call path that ends in a query, DML or search, as a Tabulator tree with no depth cap. Total Time is the database time at or below the row; Self Time is the row's own code. A row with all total and no self is waiting on the database; the reverse is the Apex around it. Each column is a share of its own footer.
Database duration
2 of 7 statements · 96.0% of DB time · 68.1% of log, then the statements themselves with cost per row, how often each ran, and the self/descendant split — so a DML that is cheap in itself but fires seven seconds of triggers reads as one. A final row accounts for everything outside the top eight.Counting
Every statement counts, a trigger's query under a DML included: the DML's total holds the query, its net time does not, and the query owns its own time. Net times therefore sum to the database total, so shares of it hold whatever the nesting is. SOQL, DML and SOSL throughout; SOSL renders as a tint of the query colour and its rows are per-query only, since the log carries no SOSL row total.
Also
CategoryTimeBar's stacked bar is extracted as the sharedStackedTimeBar, so time by category and the namespace bars are one component..reveal-row--no-swatchjoins the shared row grid for sections whose rows carry no category swatch.Testing
tsc -b --forceand eslint clean.Escapeclearing a picked row.