Package com.darkcollective.relix.symbol.relation
package com.darkcollective.relix.symbol.relation
Relation symbol hierarchy — the five concrete kinds of named relation.
All five implement RelationSymbol,
which in turn implements Symbol.
DatabaseRelationSymbol— a relation backed by an external JDBC store. Only its schema is stored here; the actual data lives in the database.InlineRelationSymbol— a relation whose rows are declared inline in a.relixfile, typically as a Markdown or CSV table. Column types are inferred from cell content: columns whose every cell parses as a number are typedScalarType.NUMBER; all others areScalarType.STRING.QueryRelationSymbol— a named relational algebra expression (aRelNodebody). Acts as a view: the body is stored for later semantic analysis and pretty-printing.SourceRelationSymbol— a relation backed by an external transport (HTTP API, CSV file, etc.). Only the schema is stored here for name-resolution purposes; the full source configuration lives in the semantic model produced byrelix-semantic.SystemRelationSymbol— a read-only engine-computed catalog relation in the reservedrelix.*namespace. Rows are populated byCatalogBuilder; the type itself enforces that catalog relations are structurally distinct from user-declared inline data.
All five types are records and are therefore immutable. The user-facing types
(InlineRelationSymbol, SourceRelationSymbol) provide a convenience
factory method (of(...)) that applies the standard defaults:
namespace "default" and provenance Provenance.USER.
-
ClassDescriptionA relation symbol backed by an external data store — typically a database table or view.A relation whose rows are declared inline in a
.relixsource file, typically as a Markdown table.A named relational algebra expression — essentially a stored view.Sealed sub-interface ofSymbolfor all relation-typed symbols.A relation symbol backed by an external data source whose transport details (HTTP, CSV file, etc.) are held outside the symbol table.A read-only system catalog relation in the reservedrelix.*namespace.