Table of Contents

Class ExtremeRowRenderRequest

Namespace
NextORM.Core
Assembly
nextorm.core.dll

The already-prepared inputs of one native extreme-row render: the filtered source SQL, the canonical payload aliases the returned source must expose, and the ordered key/group aliases that source exposes for the native construct.

public sealed record ExtremeRowRenderRequest : IEquatable<ExtremeRowRenderRequest>
Inheritance
ExtremeRowRenderRequest
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 Render(ExtremeRowRenderRequest). The eager constructor is part of the public contract: an external assembly without InternalsVisibleTo can construct one directly. Validation happens at construction - a null reference throws ArgumentNullException, while an empty or whitespace-only sourceSql, a null or empty collection element, or an undeclared KeywordCase throws ArgumentException (a whitespace-only alias is accepted). There is no SQL, provider, security or cardinality validation, and nothing calls CanRender(ExtremeRowDescription) or Render(ExtremeRowRenderRequest).

Constructors

ExtremeRowRenderRequest(string, bool, IReadOnlyList<string>, IReadOnlyList<string>, IReadOnlyList<ExtremeRowRenderColumn>, IReadOnlyList<string>, KeywordCase)

Creates the prepared inputs of one native extreme-row render. Exposed so an external IExtremeRowRenderer can be exercised without a host that has internals access. Every collection is borrowed, not copied; the renderer must not mutate a collection while the request is in use, including from a concurrent caller.

public ExtremeRowRenderRequest(string sourceSql, bool isMax, IReadOnlyList<string> payloadAliases, IReadOnlyList<string> keyAliases, IReadOnlyList<ExtremeRowRenderColumn> keyColumns, IReadOnlyList<string> groupAliases, KeywordCase keywordCase)

Parameters

sourceSql string

The prepared filtered source SQL. Must not be null, empty or whitespace-only.

isMax bool

true for a maximum, false for a minimum.

payloadAliases IReadOnlyList<string>

The canonical payload aliases, in order. Must not be null; elements must not be null or empty (whitespace-only is accepted).

keyAliases IReadOnlyList<string>

The aliases of the extreme-key components, in selector order. Must not be null; elements must not be null or empty (whitespace-only is accepted).

keyColumns IReadOnlyList<ExtremeRowRenderColumn>

The shape facts aligned with keyAliases. Must not be null; elements must not be null.

groupAliases IReadOnlyList<string>

The aliases of the group-by components; empty for the global form. Must not be null; elements must not be null or empty (whitespace-only is accepted).

keywordCase KeywordCase

The keyword casing; must be a declared KeywordCase value.

Exceptions

ArgumentNullException

A required reference is null.

ArgumentException

sourceSql is empty or whitespace-only, a collection contains a null or empty element, or keywordCase is not a declared value.

Properties

GroupAliases

The aliases of the group-by components, in selector order; empty for the global form.

public IReadOnlyList<string> GroupAliases { get; }

Property Value

IReadOnlyList<string>

IsMax

true for a maximum, false for a minimum.

public bool IsMax { get; }

Property Value

bool

KeyAliases

The aliases of the extreme-key components, in selector order.

public IReadOnlyList<string> KeyAliases { get; }

Property Value

IReadOnlyList<string>

KeyColumns

The shape facts of the extreme-key components, positionally aligned with KeyAliases. A renderer whose key emission depends on the component type (for example ClickHouse's floating-key NaN adaptation) reads this instead of re-deriving it.

public IReadOnlyList<ExtremeRowRenderColumn> KeyColumns { get; }

Property Value

IReadOnlyList<ExtremeRowRenderColumn>

KeywordCase

The keyword casing the returned SQL should use.

public KeywordCase KeywordCase { get; }

Property Value

KeywordCase

PayloadAliases

The canonical aliases of the payload columns the returned source must expose, in order.

public IReadOnlyList<string> PayloadAliases { get; }

Property Value

IReadOnlyList<string>

SourceSql

The prepared filtered source: select * from <source> where <key-component IS NOT NULL> [and <condition>]. The renderer wraps it and returns the winning-row source.

public string SourceSql { get; }

Property Value

string