Tier 1
93.1%
Tier 2
93.3%
Tier 3
94.9%
Fully supports
Operation areas this target implements completely — every test passes, nothing skipped. Areas it only partly implements, or gets wrong, are in “Where it falls short” below.
- batchGetItem tier 1
- batchWriteItem tier 1
- deleteTable tier 1
- describeTable tier 1
- getItem tier 1
- listTables tier 1
- account tier 2
- streams tier 2
- tags tier 2
- ttl tier 2
- updateTable tier 2
- legacy-api tier 3
Conformance over time
Where it falls short
Operation groups with gaps in the latest run, biggest first. Unsupported means the target doesn't implement that feature at all, often by design. Open one for the exact tests, or see the conformance suite.
-
partiql Tier 2 unsupported
View these tests in the suite →- BatchExecuteStatement — PartiQL batch of multiple SELECT statements
- BatchExecuteStatement — PartiQL batch of INSERT and UPDATE statements
- BatchExecuteStatement — PartiQL partial failure — one valid and one invalid statement
- BatchExecuteStatement — PartiQL rejects an empty Statements array
- ExecuteStatement — PartiQL INSERTs a new item
- ExecuteStatement — PartiQL SELECTs an item by primary key
- ExecuteStatement — PartiQL SELECTs with WHERE clause using comparison
- ExecuteStatement — PartiQL UPDATEs an existing item
- ExecuteStatement — PartiQL DELETEs an item
- ExecuteStatement — PartiQL rejects INSERT on an existing item (INSERT is not upsert)
- ExecuteStatement — PartiQL INSERT succeeds after DELETE of same key
- ExecuteStatement — PartiQL SELECT returns empty results for non-matching WHERE
- ExecuteStatement — PartiQL parameterized INSERT with ? placeholders
- ExecuteStatement — PartiQL parameterized SELECT with ? placeholder
- ExecuteStatement — PartiQL SELECT with nested map path
- ExecuteStatement — PartiQL SELECT with specific attributes
- ExecuteStatement — PartiQL SELECT with begins_with in WHERE clause
- ExecuteStatement — PartiQL PartiQL UPDATE with SET on attribute
- ExecuteStatement — PartiQL PartiQL UPDATE with REMOVE
- ExecuteStatement — PartiQL returns a populated ConsumedCapacity block when requested
- ExecuteStatement — PartiQL evaluates negated predicates (NOT begins_with, IS NOT MISSING)
- ExecuteStatement — PartiQL rejects a statement with syntax error
- ExecuteStatement — PartiQL rejects a reference to a non-existent table
- ExecuteTransaction — PartiQL transactional INSERT and UPDATE both succeed atomically
- ExecuteTransaction — PartiQL transaction rolls back on duplicate key INSERT
- ExecuteTransaction — PartiQL multiple INSERTs in one transaction
- ExecuteTransaction — PartiQL rejects empty TransactStatements
-
error-messages Tier 3 7 failing
View these tests in the suite →- PutItem — exact error messages redundant parentheses in ConditionExpression: full error string
- PutItem — exact error messages contains() with duplicate path and operand: full distinct-operand error
- Query — exact error messages redundant parentheses in KeyConditionExpression: full error string
- Query — exact error messages malformed ExclusiveStartKey: short invalid-starting-key error
- Scan — exact error messages begins_with with non-string operand: full operand-type error
- Scan — exact error messages redundant parentheses in FilterExpression: full error string
- Scan — exact error messages malformed ExclusiveStartKey: long schema-mismatch error
-
query Tier 1 6 failing
View these tests in the suite →- Query — Limit + FilterExpression interaction rejects ExclusiveStartKey that does not match the table schema
- Query — Limit + FilterExpression interaction rejects ExclusiveStartKey missing the index key on a GSI query
- Query — size() string encoding counts UTF-16 code units (3), not UTF-8 bytes (6)
- Query — GSI pagination across tied sort keys composes LastEvaluatedKey from base and index keys and walks every tied item once
- Query — KeyConditionExpression with parentheses rejects redundant parentheses in KeyConditionExpression
- Query — LSI pagination across tied sort keys composes LastEvaluatedKey from base and index keys and walks every tied item once
-
putItem Tier 1 4 failing
View these tests in the suite →- PutItem — ConditionExpression parens rejects redundant parentheses in ConditionExpression
- PutItem — ConditionExpression parens rejects contains() with a duplicate path and operand
- PutItem — validation rejects duplicate values in number set
- PutItem — validation rejects duplicate values in binary set
-
scan Tier 1 4 failing
View these tests in the suite →- Scan — ProjectionExpression rejects ExclusiveStartKey that does not match the table schema
- Scan — filter expression validation rejects begins_with with a non-string/binary operand
- Scan — filter expression validation rejects redundant parentheses in FilterExpression
- Scan — GSI pagination across tied sort keys walks every item once across a paged GSI scan with tied sort keys
-
updateItem Tier 1 4 failing
View these tests in the suite →- UpdateItem — SET evaluation semantics a second SET clause reads the pre-update value of another attribute
- UpdateItem — SET evaluation semantics applies parenthesised arithmetic (SET c = (c - :v))
- UpdateItem — ReturnValues granularity UPDATED_NEW on a nested SET returns only the changed fragment
- UpdateItem — ReturnValues granularity REMOVE with UPDATED_NEW omits Attributes (nothing was set to a new value)
-
transactions Tier 2 4 failing
View these tests in the suite →- TransactGetItems — ConsumedCapacity charges 2 read capacity units per item, including a missing item
- TransactGetItems — ConsumedCapacity INDEXES breakdown includes the table read capacity units
- TransactGetItems — projection matching nothing omits Item when the projection matches no attribute on a present item
- TransactWriteItems — ConsumedCapacity charges 2 write capacity units per item
-
createTable Tier 1 3 failing
View these tests in the suite →- CreateTable — configuration parameters TableClass STANDARD_INFREQUENT_ACCESS round-trips
- CreateTable — configuration parameters SSESpecification with the AWS-managed key round-trips
- CreateTable — configuration parameters OnDemandThroughput round-trips on a PAY_PER_REQUEST table
-
updateTable Tier 1 2 failing
View these tests in the suite →- UpdateTable — configuration parameters UpdateTable changes TableClass
- UpdateTable — configuration parameters UpdateTable changes OnDemandThroughput
-
backups Tier 2 2 failing
View these tests in the suite →- On-demand backups — lifecycle and restore RestoreTableFromBackup initiates a restore into a new table
- On-demand backups — lifecycle and restore DescribeBackup on a deleted backup throws BackupNotFoundException
-
contributorInsights Tier 2 unsupported
View these tests in the suite →- Contributor insights — enable/describe/list reports DISABLED by default
- Contributor insights — enable/describe/list enabling transitions the status and lists the table
-
export Tier 2 unsupported
View these tests in the suite →- Export and import — S3 ExportTableToPointInTime initiates an export and reports it
- Export and import — S3 ImportTable ingests S3 data into a new table
-
resourcePolicy Tier 2 unsupported
View these tests in the suite →- Resource policies — Put/Get/Delete GetResourcePolicy on a table with no policy throws PolicyNotFoundException
- Resource policies — Put/Get/Delete Put then Get round-trips the policy, and Delete removes it
-
limits Tier 3 2 failing
View these tests in the suite →- Item size limit — number sizing a number-dominated item under 400KB succeeds (15000 numbers)
- Number precision — DynamoDB number limits and edge cases rejects arithmetic that overflows the supported number magnitude
-
validation-ordering Tier 3 2 failing
View these tests in the suite →- Non-existent index — error surface UpdateTable deleting a non-existent GSI reports ResourceNotFoundException
- Scan — validation ordering rejects a negative Segment
-
deleteItem Tier 1 1 failing
View these tests in the suite →- DeleteItem — ConditionExpression parens rejects redundant parentheses in ConditionExpression
-
kinesis Tier 2 unsupported
View these tests in the suite →- Kinesis streaming destination enables a streaming destination and reports it via Describe