Reference

Capabilities

What each provider supports, and what it does with what it doesn't.

Databases differ, and ARX.SDK doesn't hide it. Every provider declares what it supports as capability flags (service.Capabilities), so code can choose a path before it calls. The rule is the same in every provider: a declared capability works; an undeclared one is refused with ArxNotSupportedException (ARX8001), naming what it can't do. No provider ignores part of a call.

CapabilityWhat it coversPostgreSQLSQL ServerMySQLMongoDBDynamoDB
JoinsLinks to other entities in a queryYesYesYesYes ($lookup)No
AggregatesCount, Sum, Avg, Min, Max and groupingYesYesYesYesNot declared: a single Count is answered, anything else is ARX8001
OffsetPagingPaging by page numberYesYesYesYesNo
TokenPagingPaging by the cookie each page returnsNoNoNoYesYes
TotalCountThe total of matching recordsYesYesYesYesNo
TransactionsTransactions and batch scopes across callsYesYesYesYes (replica set)Yes (sent at commit)
BulkWriteCreateMultiple, UpdateMultiple, DeleteMultipleYesYesYesYesYes (100 per transaction)
UpsertReserved for an insert-or-update operation: no operation uses it and no provider declares it yetNoNoNoNoNo
StoredProceduresExecute: procedures and functionsYesYesYesNoNo
FullTextSearchFull-text search conditionsYesYesYesYesNo
LikeOperatorsLike, Contains, BeginsWith, EndsWith (ignoring case where the database does)Yes, ignoring caseYes; the column's collation decides case (the default ignores it)Yes; the column's collation decides case (the default ignores it)Yes (Like ignores case from 0.1.0-preview.4; in preview.3 Like and NotLike are case-sensitive)Not declared: BeginsWith and Contains only, case-sensitive, with CaseSensitivePatterns; the rest is ARX8001
OrFiltersFilters joined by ORYesYesYesYesYes
SecondaryIndexQueryA read that names a secondary indexNoNoNoNoYes
OptimisticConcurrencyA version column declared in the schema, checked on writes (ARX2004 RecordChanged)Yes, from 0.1.0-preview.4Yes, from 0.1.0-preview.4Yes, from 0.1.0-preview.4Yes, from 0.1.0-preview.4Yes
SavepointsA failed call in a batch scope is undone alone (savepoints); without them it rolls the whole scope backYesYesYesNoNo
WriteByFilterUpdateMultiple and DeleteMultiple by a filter: every row the filter matches, in one callYes, from 0.1.0-preview.5Yes, from 0.1.0-preview.5Yes, from 0.1.0-preview.5Yes, from 0.1.0-preview.5Yes, from 0.1.0-preview.5 (the filter gives a partition key; at most 100 items)
SchemaResolutionA service without a catalog reads the id, keys and column types of each table itselfYesYesYesNoNo

The shared conformance suite runs against every database and tests each flag both ways: a provider that declares it must do it correctly, and one that doesn't must refuse it.