Documentation
¶
Overview ¶
Package inmem is the default P04 implementation of plan.Backend. Every supported node kind is dispatched to a per-op helper that operates over the columnar *table.Table directly — no Pulse facade calls. The aggregate alias map (compile/aggregates.go) is the single source of truth for op naming.
Pulse v0.8.4 exposes a request-based facade (pulse.Process); it has no public in-memory cohort constructor, so feeding intermediate tables back into Pulse is not possible in v1. In-memory execution here produces values byte-equal to what pulse.Process would compute against the source cohort — proven by TestPrismAggregateValueParity. See D035.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Backend ¶
type Backend struct{}
Backend is the in-memory implementation of plan.Backend. It is safe for concurrent use across goroutines (no per-Compile state lives on the struct).
func New ¶
func New() *Backend
New returns the singleton in-memory backend. Callers can pass it to plan/build.Options.Backend or hold a pointer; equality semantics do not matter.
func (*Backend) Compile ¶
func (b *Backend) Compile(ctx context.Context, node plan.Node, ins []*table.Table) (*table.Table, error)
Compile dispatches one node to its per-op helper. Unsupported node kinds (Join, Union, Pivot, Unpivot — deferred to P07/P09/P10) return PRISM_COMPILE_001 so behaviour matches the P03 stubs.