Enums
DynamicWhere.ex is configured almost entirely through eight enums. They describe what a value is, how to compare it, how to combine conditions, and how to tune the internal reflection cache. Every JSON shape you send from the front-end is some combination of these.
Overview
The eight enums fall into three families: query (describes the filter expression), shape (describes the result shape), and cache (tunes the reflection cache).
| Enum | Family | Purpose |
|---|---|---|
DataType | Query | Logical type of a condition value — drives parsing, coercion, and the set of legal operators. |
Operator | Query | The comparison applied by a condition — 28 operators covering equality, text matching, ranges, sets, and null checks. |
Connector | Query | The logical glue (And / Or) that joins sibling conditions inside a ConditionGroup. |
Direction | Shape | Sort direction (Ascending / Descending) for an OrderBy. |
Intersection | Shape | The set operation (Union / Intersect / Except) applied between condition sets in a Segment. |
Aggregator | Shape | Aggregation function (Count, Sumation, Average, Minimum, Maximum, and friends) used inside a GroupBy. |
CacheEvictionStrategy | Cache | Eviction algorithm for the reflection cache — FIFO, LRU (default), or LFU. |
CacheMemoryType | Cache | Identifies one of the three internal cache stores for monitoring and clearing operations. |
Namespace
All query and shape enums live in DynamicWhere.ex.Enums. Cache enums live in DynamicWhere.ex.Optimization.Cache.Enums.
One more enum, set once for the process
TextMatching (3.5.0), also in DynamicWhere.ex.Enums, is part of no request. A deployment sets it once, with DwText.Configure, to choose how the case-insensitive operators match: Lower, the default, lowers both sides, and ILike uses PostgreSQL's ILIKE for the six pattern operators. See Operator → case-insensitive matching.Note
Every enum sub-page lists every value from the source of truth — no abbreviation. Use the table above as a quick map, then dive into the page you need.
Where to go next
- DataType → what each logical type means and which operators it accepts.
- Operator → the full operator matrix and the value count each one requires.
- Condition class → how the enums fit together inside a single filter predicate.