columnsemantics

package
v0.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ColumnTypes

func ColumnTypes() []typedcolumn.ColumnType

func Encodings

func Encodings() []typedcolumn.Encoding

func IsKnownColumnType

func IsKnownColumnType(t typedcolumn.ColumnType) bool

func IsKnownEncoding

func IsKnownEncoding(e typedcolumn.Encoding) bool

func IsKnownLogicalType

func IsKnownLogicalType(t LogicalType) bool

func RequireSupported

func RequireSupported(desc Descriptor, op Operation) error

Types

type Capability

type Capability struct {
	Operation Operation
	Status    Status
	Reason    ReasonCode
	Message   string
	Phase     ResolutionPhase
	Result    ResultSemantics
}

func CapabilityFor

func CapabilityFor(desc Descriptor, op Operation) Capability

func Fallback

func Fallback(op Operation, reason ReasonCode, msg string) Capability

func Supported

func Supported(op Operation) Capability

func SupportedResult

func SupportedResult(op Operation, result ResultSemantics) Capability

func Unsupported

func Unsupported(op Operation, reason ReasonCode, msg string) Capability

func (Capability) Error

func (c Capability) Error() string

func (Capability) Supported

func (c Capability) Supported() bool

type Descriptor

type Descriptor struct {
	Logical             LogicalType
	Physical            typedcolumn.ColumnType
	Encoding            typedcolumn.Encoding
	Nullable            bool
	DictionaryOrder     bool
	DictionaryCollation string
}

Descriptor binds logical semantics to the current typedcolumn physical shape.

type LogicalType

type LogicalType string

LogicalType names the collection-level value domain. It is intentionally separate from typedcolumn.ColumnType because several current encodings share carriers without sharing value semantics (for example float bits in int64).

const (
	LogicalBool    LogicalType = "bool"
	LogicalInt64   LogicalType = "int64"
	LogicalFloat32 LogicalType = "float32"
	LogicalDouble  LogicalType = "double"
	LogicalString  LogicalType = "string"
	LogicalInt8    LogicalType = "int8"
	LogicalUint8   LogicalType = "uint8"
	LogicalInt16   LogicalType = "int16"
	LogicalUint16  LogicalType = "uint16"
	LogicalInt32   LogicalType = "int32"
	LogicalUint32  LogicalType = "uint32"
	LogicalUint64  LogicalType = "uint64"
	// Float16 and BFloat16 are storage-only raw 16-bit bit payloads.
	LogicalFloat16           LogicalType = "float16"
	LogicalBFloat16          LogicalType = "bfloat16"
	LogicalUint8Vector       LogicalType = "uint8_vector"
	LogicalInt8Vector        LogicalType = "int8_vector"
	LogicalUint16Vector      LogicalType = "uint16_vector"
	LogicalInt16Vector       LogicalType = "int16_vector"
	LogicalUint32Vector      LogicalType = "uint32_vector"
	LogicalInt32Vector       LogicalType = "int32_vector"
	LogicalUint64Vector      LogicalType = "uint64_vector"
	LogicalInt64Vector       LogicalType = "int64_vector"
	LogicalFloat16Vector     LogicalType = "float16_vector"
	LogicalBFloat16Vector    LogicalType = "bfloat16_vector"
	LogicalFloat32Vector     LogicalType = "float32_vector"
	LogicalFloat64Vector     LogicalType = "float64_vector"
	LogicalByteVector        LogicalType = "byte_vector"
	LogicalPackedBitVector   LogicalType = "packed_bit_vector"
	LogicalPackedUint2Vector LogicalType = "packed_uint2_vector"
	LogicalPackedUint4Vector LogicalType = "packed_uint4_vector"
	LogicalUint32List        LogicalType = "uint32_list"
	LogicalBytes             LogicalType = "bytes"
	LogicalAdjacencyList     LogicalType = "adjacency_list"
)

func LogicalTypes

func LogicalTypes() []LogicalType

type Operation

type Operation string

Operation identifies the semantic question answered by the matrix. Query planners resolve these at prepare time and then dispatch to concrete kernels; callers must not consult this package per row in hot loops.

const (
	OpAllRows                  Operation = "predicate.all_rows"
	OpEquality                 Operation = "predicate.equality"
	OpInequality               Operation = "predicate.inequality"
	OpOrderedRange             Operation = "predicate.ordered_range"
	OpInList                   Operation = "predicate.in_list"
	OpIsNull                   Operation = "predicate.is_null"
	OpIsNotNull                Operation = "predicate.is_not_null"
	OpStringPrefix             Operation = "predicate.string_prefix"
	OpStringLexicalRange       Operation = "predicate.string_lexical_range"
	OpUnknownPredicateKind     Operation = "predicate.unknown_kind"
	OpDictionaryEquality       Operation = "predicate.dictionary_equality"
	OpDictionaryInList         Operation = "predicate.dictionary_in_list"
	OpDictionaryCategory       Operation = "predicate.dictionary_category"
	OpDictionaryRange          Operation = "predicate.dictionary_range"
	OpVectorSimilarity         Operation = "predicate.vector_similarity"
	OpVectorDotProduct         Operation = "vector.dot_product"
	OpVectorDirectPayload      Operation = "direct.vector_payload"
	OpUint32ListDirectPayload  Operation = "direct.uint32_list_payload"
	OpBytesDirectPayload       Operation = "direct.bytes_payload"
	OpAdjacencyTraversal       Operation = "graph.adjacency_traversal"
	OpAdjacencyDirectPayload   Operation = "direct.adjacency_payload"
	OpCountRows                Operation = "aggregate.count_rows"
	OpCountNonNull             Operation = "aggregate.count_non_null"
	OpSum                      Operation = "aggregate.sum"
	OpAvg                      Operation = "aggregate.avg"
	OpMin                      Operation = "aggregate.min"
	OpMax                      Operation = "aggregate.max"
	OpBoolCounts               Operation = "aggregate.bool_counts"
	OpDictionaryGroupBy        Operation = "aggregate.dictionary_group_by"
	OpDictionaryCount          Operation = "aggregate.dictionary_count"
	OpDictionaryCountDistinct  Operation = "aggregate.dictionary_count_distinct"
	OpVectorMetrics            Operation = "aggregate.vector_metrics"
	OpAdjacencyMetrics         Operation = "aggregate.adjacency_metrics"
	OpStatsMinMax              Operation = "stats.min_max"
	OpStatsSum                 Operation = "stats.sum"
	OpPruneEquality            Operation = "pruning.equality"
	OpPruneOrderedRange        Operation = "pruning.ordered_range"
	OpDirectScalarValueCarrier Operation = "direct.scalar_value_carrier"
)

type ReasonCode

type ReasonCode string

ReasonCode is a stable diagnostic token. Add new values rather than changing existing strings; tests and planner diagnostics may key on them.

const (
	ReasonSupported                            ReasonCode = "supported"
	ReasonUnknownLogicalType                   ReasonCode = "unknown_logical_type"
	ReasonUnsupportedPhysicalType              ReasonCode = "unsupported_physical_type"
	ReasonUnsupportedEncoding                  ReasonCode = "unsupported_encoding"
	ReasonLogicalPhysicalMismatch              ReasonCode = "logical_physical_mismatch"
	ReasonEncodingPhysicalMismatch             ReasonCode = "encoding_physical_mismatch"
	ReasonOperationUnsupported                 ReasonCode = "operation_unsupported"
	ReasonFloatRawInt64BitPattern              ReasonCode = "float_raw_int64_bit_pattern"
	ReasonNativeFloatLayoutMissing             ReasonCode = "native_float_layout_missing"
	ReasonDictionaryOrderUnproven              ReasonCode = "dictionary_order_unproven"
	ReasonDictionaryCollationUnproven          ReasonCode = "dictionary_collation_unproven"
	ReasonNullableCarrierValueSemantics        ReasonCode = "nullable_carrier_value_semantics"
	ReasonNullableCarrierAggregateSemantics    ReasonCode = "nullable_carrier_aggregate_semantics"
	ReasonNotNullable                          ReasonCode = "not_nullable"
	ReasonVectorScalarOperationUnsupported     ReasonCode = "vector_scalar_operation_unsupported"
	ReasonUint32ListScalarOperationUnsupported ReasonCode = "uint32_list_scalar_operation_unsupported"
	ReasonBytesScalarOperationUnsupported      ReasonCode = "bytes_scalar_operation_unsupported"
	ReasonAdjacencyScalarOperationUnsupported  ReasonCode = "adjacency_scalar_operation_unsupported"
	ReasonVectorCapabilityDeferred             ReasonCode = "vector_capability_deferred"
	ReasonAdjacencyCapabilityDeferred          ReasonCode = "adjacency_capability_deferred"
	ReasonBoolRangeUnsupported                 ReasonCode = "bool_range_unsupported"
	ReasonStatsPayloadUnsupported              ReasonCode = "stats_payload_unsupported"
	ReasonPruningPayloadUnsupported            ReasonCode = "pruning_payload_unsupported"
)

type ResolutionPhase

type ResolutionPhase string

ResolutionPhase records where a caller is allowed to make the semantic dispatch decision. Current #1843 consumers resolve once during prepare; hot row loops must already have selected a concrete scan/reducer implementation.

const (
	PhasePrepare ResolutionPhase = "prepare"
)

type ResultSemantics

type ResultSemantics struct {
	ResultType     string
	Accumulator    string
	OverflowPolicy string
	Comparison     string
	GroupKey       string
	Precision      string
}

ResultSemantics makes aggregate result shape explicit for capabilities that expose aggregate output. Empty fields mean the operation is not an aggregate result capability.

type Status

type Status string

Status is a trinary capability outcome. Fallback is explicit: a planner may use a non-optimized implementation, but only outside direct typed-column hot loops that require StatusSupported.

const (
	StatusSupported   Status = "supported"
	StatusUnsupported Status = "unsupported"
	StatusFallback    Status = "fallback"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL