Package-level declarations

Types

Link copied to clipboard
data class DatasetColumn(val name: String, val type: DatasetColumn.Type, val nullable: Boolean = false)

A column of a TCK dataset table, in storage-neutral terms; each backend maps it to a native type.

Link copied to clipboard

The semantics every dataset backend implements over a flat table: the filter semantics matrix, records (sort, projection, offset and keyset pages, counts), aggregation, and the dataset's scope column. Queries run through trusted admission against the schema the Catalog compiles from the dataset's declaration and the storage's facts.

Link copied to clipboard
data class DatasetTable(val name: String, val columns: List<DatasetColumn>, val rows: List<Map<String, Any?>>)

A table the spec loads: its columns and rows, each value a String, Long, BigDecimal, Instant, a List of strings or null as its column's type says.

Link copied to clipboard
Link copied to clipboard

The semantic specification of the field filter operators (design §6.2): how each operator treats a missing field, an explicit null, array elements and letter case. The expected matches are the current MongoDB behavior, which is canonical; every backend must reproduce them, and the TCK runs every case against every backend.

Link copied to clipboard

Binds NoOpEventStreamQueryBackend to a storage adapter that reports the schema unavailable.

Link copied to clipboard
abstract class NoOpQueryBackend(val namedAggregate: NamedAggregate) : QueryBackend

A test double backend that answers every query with no rows.

Link copied to clipboard

Binds NoOpSnapshotQueryBackend to a storage adapter that reports the schema unavailable.

Link copied to clipboard
class QueryTarget<out B : QueryBackend>(val backend: B, val schemaProvider: QueryModelSchemaProvider)

A backend with the schema the Catalog compiles for it: what a backend spec queries through trusted admission, as a gateway would, but without governance.

Link copied to clipboard
class SemanticCase(val id: String, val shape: SemanticShape, val matches: Set<String>, filter: (QueryField) -> FilterExpression)

One cell of the semantic matrix: filter, applied to a field of shape, matches exactly the probes named in matches. id is stable and unique, so a backend's test can name the cells it is known to diverge on.

Link copied to clipboard

One stored value of a SemanticShape. value is null when the field is absent from the stored record, and a JSON null node when the record stores an explicit null.

Link copied to clipboard

The shape of the field a SemanticCase runs against. Each shape comes with a fixed set of SemanticProbes: stored values that cover a missing field, an explicit null, and the ordinary and edge values of that shape.

Link copied to clipboard
Link copied to clipboard
class UnnecessaryAbstractClassGuardrail(anchor: KClass<*>, packageName: String, allowed: Set<String> = emptySet())

Detekt's UnnecessaryAbstractClass needs type resolution, which the detekt task does not run, so the query modules keep the same rule with this list-style check: an abstract class whose members, declared or inherited, are all concrete should be a concrete class or an object.

Functions

Link copied to clipboard

dataset's backend, with the schema a Catalog compiles from the dataset's declaration and its storage facts.

namedAggregate's event-stream backend, with the schema a Catalog over sources compiles from its storage facts.

namedAggregate's snapshot backend, with the schema a Catalog over sources compiles from its storage facts.