Class ExtremeRowDescription
A side-effect-free description of a prepared SelectWhereMax/SelectWhereMin command,
handed to CanRender(ExtremeRowDescription) so a dialect can decide - before any SQL,
alias or parameter side effect - whether its native strategy applies. An empty
Groups list means the global form; a non-empty one the grouped form.
public sealed record ExtremeRowDescription : IEquatable<ExtremeRowDescription>
- Inheritance
-
ExtremeRowDescription
- Implements
- Inherited Members
- Extension Methods
Remarks
This is a read-only input constructed by the core and handed to an external
IExtremeRowRenderer. Implementing a renderer means receiving instances through
CanRender(ExtremeRowDescription). The eager constructor is part of the public contract:
an external assembly without InternalsVisibleTo can construct one directly. Validation
happens at construction - a null collection reference throws ArgumentNullException
and a null element throws ArgumentException; Payload is never read to
validate it. There is no SQL, provider, security or cardinality validation, and nothing calls
CanRender(ExtremeRowDescription) or Render(ExtremeRowRenderRequest). The
internal lazy factory constructor remains non-public and is the path core preparation uses.
Constructors
ExtremeRowDescription(bool, IReadOnlyList<ExtremeRowRenderColumn>, IReadOnlyList<ExtremeRowRenderColumn>, IReadOnlyList<ExtremeRowRenderColumn>)
Creates an eager description from already-materialized payload columns. Exposed so an external IExtremeRowRenderer can be exercised without a host that has internals access. The collections are borrowed, not copied.
public ExtremeRowDescription(bool isMax, IReadOnlyList<ExtremeRowRenderColumn> keys, IReadOnlyList<ExtremeRowRenderColumn> groups, IReadOnlyList<ExtremeRowRenderColumn> payload)
Parameters
isMaxboolkeysIReadOnlyList<ExtremeRowRenderColumn>The extreme-key components in selector order. Must not be null.
groupsIReadOnlyList<ExtremeRowRenderColumn>The group-by components in selector order; empty for the global form. Must not be null.
payloadIReadOnlyList<ExtremeRowRenderColumn>The source payload columns. Must not be null and is not read during construction.
Exceptions
- ArgumentNullException
A collection reference is null.
- ArgumentException
A collection contains a null element.
Properties
Groups
The group-by components in selector order; empty for the global form.
public IReadOnlyList<ExtremeRowRenderColumn> Groups { get; }
Property Value
IsMax
public bool IsMax { get; }
Property Value
Keys
The extreme-key components in selector order (composite keys have more than one).
public IReadOnlyList<ExtremeRowRenderColumn> Keys { get; }
Property Value
Payload
The source payload columns the winning row must expose, in mapping declaration order.
public IReadOnlyList<ExtremeRowRenderColumn> Payload { get; }
Property Value
Methods
Equals(ExtremeRowDescription?)
Indicates whether the current object is equal to another object of the same type.
public bool Equals(ExtremeRowDescription? other)
Parameters
otherExtremeRowDescriptionAn object to compare with this object.
Returns
GetHashCode()
Serves as the default hash function.
public override int GetHashCode()
Returns
- int
A hash code for the current object.