QueryDataset

data class QueryDataset(val namedAggregate: MaterializedNamedAggregate, val scope: QueryDatasetScope, val declaration: QuerySchemaDeclaration, val identity: QueryField? = null, val eventTime: QueryField? = null, val title: String? = null, val storage: ObjectNode = JsonSerializer.createObjectNode())

A declared dataset (design 2026-10-10-clickhouse-dataset-query-design.md §4): a table-like record set, such as a BI wide table, queried as the QueryModel.DATASET model of namedAggregate.

A dataset is named within a bounded context, as an aggregate is, and occupies the same name slot: gateways, policies, observers and the Catalog address it by namedAggregate and tell it apart by its model. A dataset never shares its name with an aggregate of its context (QuerySchemaCatalog refuses the pair), so a policy keyed by an aggregate's name never applies to a dataset.

Its record layout comes from the declaration, not from a type: declaration lists the fields a query may name, at the record root, with their sensitivity (a dataset declaration is the one place outside a field annotation that declares it, since a dataset's columns have no type to carry one); the profile facts name the identity, the eventTime and the scope columns among them. storage is the opaque binding its query backend reads, such as a ClickHouse table.

Constructors

Link copied to clipboard
constructor(namedAggregate: MaterializedNamedAggregate, scope: QueryDatasetScope, declaration: QuerySchemaDeclaration, identity: QueryField? = null, eventTime: QueryField? = null, title: String? = null, storage: ObjectNode = JsonSerializer.createObjectNode())

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The record layout of this dataset: its identity, event time and scope columns.

Link copied to clipboard
Link copied to clipboard
val storage: ObjectNode
Link copied to clipboard