Package com.darkcollective.relix.symbol
package com.darkcollective.relix.symbol
Root package for the relix symbol-table module.
Contains the core abstractions shared across the full symbol hierarchy:
Symbol— sealed root interface for every named entity known to the system. All symbols carry aProvenance(built-in vs user-defined), aShadowPolicygoverning whether they may be replaced, and a case-insensitive name within a namespace.ScalarType— the type lattice for column values and function parameters/returns (ANY,STRING,NUMBER,BOOLEAN).SchemaandColumnDefinition— structural description of a relation's columns.ParameterDefinition— a typed, named parameter used in function signatures.RegistrationResultandSymbolError— the result contract for symbol-table registration, supporting full error collection rather than fail-fast exceptions.
Naming convention: every symbol stores both a
Symbol.declaredName() (case-preserved, as
written by the user) and a Symbol.canonicalName()
(lower-cased), ensuring lookups are always case-insensitive regardless of how the
symbol was originally typed.
Default namespace: user-defined symbols that do not declare an explicit
namespace are placed in the "default" namespace. Built-in symbols use the
"builtin" namespace.
-
ClassDescriptionA nested array type — an ordered collection of elements of a single
element type(which may itself be nested).A single column in a relation schema — its name,Type, and optional source-relationColumnProvenance.The source-relation origin of a schemaColumnDefinition— which relation a column came from, and under what name, so that a relation-qualified reference (rooms.name) can be resolved precisely even after a join has renamed the physical column to disambiguate a collision.Per-column statistics used by the cost model to refine cardinality estimates.Optimizer hint flags that may be attached to a function symbol.A single parameter in a function signature: a scalar, or — for a table-valued function only — a relation.Records whether a symbol was provided by the runtime or declared by a user.The outcome of aSymbolTable.register(com.darkcollective.relix.symbol.Symbol)call.Optimizer-facing statistics about a relation — cardinality and structural metadata gathered from a data source (e.g.The scalar-value type lattice used for column types, function parameter types, and function return types.The structural description of a relation — an ordered list of named, typed columns.Governs what happens when a new symbol is registered under a name that is already occupied in the same namespace.A nested struct type — an ordered set of named, typedStructType.Fields.A single named, typed field of aStructType.Root sealed interface for every named entity registered in aSymbolTable.A non-fatal diagnostic produced during symbol registration.Classification of symbol registration errors.The type of a value in relix — a scalar, a nested struct, or an array.