Gateway historian: remaining Part 11/13 gaps after #685–#688 (ReturnBounds, reverse native aggregates, strict-ceiling uncapped reads, reverse events) #691
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Collected from the #685–#688 lanes, reviews and live gate (2026-10-12, master
1f5d3100). Low priority; tracked so they don't get lost.IHistorianDataSource. AVEVA's synthetic boundary row cannot serve as a bound (it is stamped at the query start, not at the prior sample's time).AllowStreamingBeyondCeiling=false, every Gateway raw read withNumValuesPerNode = 0is refused (BadTooManyOperations), even a 10-row window, because unlimited is sent asint.MaxValue. Consider sending the ceiling and treating a full result as truncated. Also a gateway configured with a ceiling below 1,000,000 is not handled specially.All items addressed on master
15ccd9b7except item 6, which is blocked on historiangw#27 and carried to #694.942ca7bc): Part 11 bounding values on every backend from one authority (HistoryBounds), checked against every row of Table 1; Gateway start bound = the real prior sample via the walk-back (never AVEVA's synthetic row), end-bound lookup clamped to now + 1 day; no data + no bounds ⇒GoodNoData; modified read + bounds ⇒Bad_InvalidArgument; kill switchServerHistorian:HonorReturnBounds(default true). ⚠️ Breaking for SDK clients:new ReadRawModifiedDetails()defaultsReturnBoundsANDIsReadModifiedto true (documented).f0d064a6): served via forward requests on the SQL backends' grid in both directions; clipped interval is its own exact-span read marked Partial; forward reads no longer average past EndTime; >100k intervals refused up front.f0d064a6): the gateway's ceiling is learned from its refusal and remembered per data source; a read past it isBadTooManyOperations, never truncated.88141d6e): served by the walk (EventId tie order); uncapped event reads (forward too) no longer throw.Live AVEVA gate PASS for 1–5 (requests forward-only; one ceiling refusal across repeated reads; reverse events newest-first with a 3-way tie split correctly across pages; last deep pages ≤ 3 reads/<0.5 s). Values of item 2 remain wrong end to end until historiangw#27. Follow-ups: #692, #693, #694.