Repository navigation
PgTargetTempTests: the temp-spill e2e is anchored at the planted window's end, so analyze_server measures the series that was planted rather than one that UtcNow slid past; and the observed-time pin names the one nominal-span use (the trend midpoint) instead of forbidding the expression (#3542 lane 6 follow-up to #3681) - #3685
Merged
Merged
Conversation
…w's end (un-anchored, UtcNow slid the window start past the first 120 MiB minutes), and pin the midpoint as the one nominal-span use rather than forbidding the expression
erikdarlingdata
added a commit
that referenced
this pull request
Sep 19, 2026
… PRs across the #3653, #3542 and #3691 waves, #3704, #3710, #3712 and #3735, spliced once (#3751) Sixty-five PRs merged to dev since #3672 (the first splice) across two seats - the coordinator's #3653 brains-review residue lanes and the wave-2 worker's #3542 / #3691 PostgreSQL-target engine lanes - and by rule none touched this file; each returned its entry to a buffer. This is the one splice. Text-only; one file; nothing outside ## [Unreleased] and the definition block moves. [Unreleased] gains a ### Changed between ### Added and ### Fixed (Keep-a-Changelog order) for the nine entries whose subject is a designed behaviour that now behaves differently - routing (#3712 confidence chooses the channel), gating (#3692 tempdb persistence, #3734 blocking/LRQ gates, #3724 peak-and-mean), the wire shape (#3719 one error envelope), the review guard's drift arm (#3673), lineage metadata (#3723) and two grading changes (#3693, #3747). Twenty-two new capabilities append to ### Added (the sixteen PostgreSQL-target fact families and rungs, CONFIG_CHANGED, the recurrence label, the V134/V135 columns, the review traps file, the measurement census); thirty-two defects append to ### Fixed. Order within each section is ascending PR number, as #3672 did. Every entry is one line and verbatim from its buffer (trailing whitespace only). Four PR pairs fold into one entry as the buffers wrote them (#3738+#3746, #3683+#3686, #3681+#3685, #3726+#3729); #3695 carries three entries. #3673 has no issue and cites none, like the file's ninety-six other ref-less entries. Five definitions added ([#3691], [#3704], [#3710], [#3712], [#3735]) at the end of the [Unreleased] run, which stays one ascending run (3517..3735). No archive touched; the split was not run. tools/changelog/changelog_archive.py verify: all PASS (1,483 bold entries, floor 1,329; 1,363 distinct refs resolve; 1,372 definitions; CRLF throughout; 409,263 bytes under the ceiling). Client-hygiene grep over the file: zero hits.
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.
What does this PR do?
#3681 (lane 6 of #3542) was merged on its first commit while its own fix commit was still landing on the branch, so dev's
Darling PostgreSQL testsnow carry two red assertions inPgTargetTempTests— both in the TEST, neither in the product. This is that fix commit, cherry-picked onto dev (test file only, 13 lines).1. The e2e's
analyze_servercall was un-anchored. Withoutas_of, the tool ends its window atUtcNow, a minute or two after the plantedwindowEnd, so the window's START slid past the first planted minutes — each a 120 MiB step intemp_bytes— and the frozen headline read27.8 GBwhere the collector-alone assertions (which use the planted window) had just measured28 GB. The call now passesas_of: windowEnd(the idiom lanes 2 and 3 already use), so the tool analyzes exactly the planted window. An anchored run is exploratory (not persisted); the test reads nothing persisted, and drill-down enrichment runs before the persistence gate, so thepg_temp_spill_statementsassertion is unaffected.2. A source pin over-matched.
DoesNotContain("TimeRangeEnd - context.TimeRangeStart")was meant to pin "rates divide by observed time, never the nominal window" — but the coordinator-requestedtps_trendlegitimately uses the window's span ONCE, for the midpoint bound ($4) that splits the halves. The pin now says what it means: that expression appears exactly once, as(… ) / 2, and nothing divides by aTimeSpanof it (.TotalMilliseconds/.TotalSeconds/.TotalHoursabsent).Which component(s) does this affect?
How was this tested?
Test-only.
Darling/Darling.Testsbuilds with zero warnings. The anchored shape was the one my local run of the whole pipeline against a throwaway PostgreSQL 18 store used (asOfUtc: windowEnd), which is why the pinned numbers matched there and not on the un-anchored CI run. First execution of the corrected assertions is this CI run.Checklist
dotnet build -c Debug)