DRAFTThis page is not published. Only visible in development mode.

Working with none

ReifyDB has no null. The missing value is none, it is typed, and every operation defines how it behaves when none flows through.

none is typed

A missing int4 is still an int4. Optional columns are declared as Option(type), and none carries the inner type with it. This section will cover declaring optional columns and what the type checker enforces.

Propagation

Arithmetic and most scalar functions propagate none instead of failing:

$ none Propagates Through Arithmetic
$ ctrl+enter to run

Testing for none

Equality against none never matches. Use is::none and is::some:

$ Test for none with is::none
$ ctrl+enter to run

Choosing a policy

Arithmetic comes in explicit policy variants (math::add::none, math::add::saturate, math::add::strict, and friends) so missing values and overflow are a decision, not an accident. This section will link the full policy reference.