SQL Server · Types · Routing, paging cookies and capabilities
ArxCapability
Definition
- Namespace
ARX.SDK.Services- Package
ARX.SDK
public enum ArxCapabilityThe 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= 0No feature.
Joins= 1 << 0Linked entities in a query (
ArxLinkEntity): SQL joins, MongoDB$lookup.Aggregates= 1 << 1Aggregates and grouping in a query (
AggregateInfo).OffsetPaging= 1 << 2Paging by page number (
PageInfo.PageNumberbeyond 1).TokenPaging= 1 << 3Paging by an opaque cookie from the previous page (
PageInfo.PagingCookie).TotalCount= 1 << 4The total of matching rows (
PageInfo.ReturnTotalRecordCount).Transactions= 1 << 5ARX transactions and batch scopes across several calls.
BulkWrite= 1 << 6CreateMultiple, UpdateMultiple and DeleteMultiple.
Upsert= 1 << 7Reserved for an insert-or-update operation. ARX has none yet, so no provider declares it.
StoredProcedures= 1 << 8Execute: stored procedures and functions (
ArxProcedureExpression).FullTextSearch= 1 << 9Full-text search conditions (
ArxFullTextSearch).LikeOperators= 1 << 10Pattern conditions: Like, BeginsWith, EndsWith, Contains (and their negations).
OrFilters= 1 << 11Filters joined by Or (
ArxFilterExpressionwith the Or operator).SecondaryIndexQuery= 1 << 12A read that names a secondary index (DynamoDB GSIs). Relational databases choose indexes themselves and don't declare it.
OptimisticConcurrency= 1 << 13Optimistic concurrency: a table's version column (
ArxSchemaCatalogBuilder.Version) kept and checked on writes (ARX2004).SchemaResolution= 1 << 14Without 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 << 15A 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 << 16Update and delete by a filter:
UpdateMultipleAsync(values, filter)andDeleteMultipleAsync(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
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: