PostgreSQL · Types · Routing, paging cookies and capabilities

ArxCapability

Definition

Namespace
ARX.SDK.Services
Package
ARX.SDK
C#
public enum ArxCapability

The features that differ between providers. A provider declares the ones it supports, so code can choose a path before it calls. The flags never replace the rule: a provider refuses an unsupported part of a call with ArxNotSupportedException (ARX8001) naming it, and never ignores it.

Values

None= 0

No feature.

Joins= 1 << 0

Linked entities in a query (ArxLinkEntity): SQL joins, MongoDB $lookup.

Aggregates= 1 << 1

Aggregates and grouping in a query (AggregateInfo).

OffsetPaging= 1 << 2

Paging by page number (PageInfo.PageNumber beyond 1).

TokenPaging= 1 << 3

Paging by an opaque cookie from the previous page (PageInfo.PagingCookie).

TotalCount= 1 << 4

The total of matching rows (PageInfo.ReturnTotalRecordCount).

Transactions= 1 << 5

ARX transactions and batch scopes across several calls.

BulkWrite= 1 << 6

CreateMultiple, UpdateMultiple and DeleteMultiple.

Upsert= 1 << 7

Reserved for an insert-or-update operation. ARX has none yet, so no provider declares it.

StoredProcedures= 1 << 8

Execute: stored procedures and functions (ArxProcedureExpression).

FullTextSearch= 1 << 9

Full-text search conditions (ArxFullTextSearch).

LikeOperators= 1 << 10

Pattern conditions: Like, BeginsWith, EndsWith, Contains (and their negations).

OrFilters= 1 << 11

Filters joined by Or (ArxFilterExpression with the Or operator).

SecondaryIndexQuery= 1 << 12

A read that names a secondary index (DynamoDB GSIs). Relational databases choose indexes themselves and don't declare it.

OptimisticConcurrency= 1 << 13

Optimistic concurrency: a table's version column (ArxSchemaCatalogBuilder.Version) kept and checked on writes (ARX2004).

SchemaResolution= 1 << 14

Without a schema catalog, the service reads each table's id column, keys and column types from the database when a call needs them. Without this capability, a service with no catalog refuses an undeclared table (ARX1016).

Savepoints= 1 << 15

A batch scope can undo one failed call alone, through a savepoint (Savepoints). Without it the default batch scope has no savepoints, and asking for them is ARX8001.

WriteByFilter= 1 << 16

Update and delete by a filter: UpdateMultipleAsync(values, filter) and DeleteMultipleAsync(table, filter) change the rows a filter of the table's own columns matches. DynamoDB declares it with a rule: the filter must give the partition key (else ARX8001), and at most 100 items change.

Usage

C#

A line from a verified sample; the full, runnable code is on its page.

Show($"ready: {check.IsReady}; transactions here: {check.Supports(ArxCapability.Transactions)}; limits: {check.Limits.Count}");

Set the service up for production, scenario 2

Used in: