Interface IExtremeRowRenderer
A dialect's optional native renderer for SelectWhereMax/SelectWhereMin (PostgreSQL
DISTINCT ON/ORDER BY ... LIMIT 1, ClickHouse argMin/argMax). The
object's presence is the capability: a dialect that returns null keeps the
shared portable window-function lowering, as does a renderer whose CanRender(ExtremeRowDescription) answers
false.
public interface IExtremeRowRenderer
- Extension Methods
Remarks
CanRender(ExtremeRowDescription) runs before the shared path builds any SQL, alias or parameter, so it must be side-effect free; only a positive answer leads to Render(ExtremeRowRenderRequest), whose failure is propagated (there is no late fallback to the portable path).
Methods
CanRender(ExtremeRowDescription)
True when this dialect can natively express the described command. Called with a prepared, immutable description before any SQL is assembled; must not mutate shared state.
bool CanRender(ExtremeRowDescription description)
Parameters
descriptionExtremeRowDescription
Returns
Render(ExtremeRowRenderRequest)
Renders the native winning-row source over the already-prepared SourceSql, exposing the request's PayloadAliases. The shared path already applied the compatibility validation and the source filter, and applies the outer projection, DISTINCT and output ordering afterwards.
string Render(ExtremeRowRenderRequest request)
Parameters
requestExtremeRowRenderRequest