Skip to content

Commit bb0ceb9

Browse files
committed
docs: add index term to layout
1 parent e184825 commit bb0ceb9

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

DEVELOPMENT.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,14 @@ These are the important files in the repo:
3737
├── mise.toml <-- the main config file for mise
3838
├── tasks/ <-- mise tasks
3939
├── src/ <-- The individual SQL components that make up EQL
40+
│ ├── blake3/ <-- blake3 index term type
4041
│ ├── encrypted/ <-- Encrypted column type
4142
│ ├── operators/ <-- Operators for the encrypted column type
4243
│ ├── match/ <-- match index term type
4344
│ ├── unique/ <-- unique index term type
4445
│ ├── ore/ <-- ore index term type
45-
│ ├── ore-cllw/ <-- ore-cllw index term type
46+
│ ├── ore_cllw_u64_8/ <-- ore-cllw fixed index term type
47+
│ ├── ore_cllw_var_8/ <-- ore-cllw variable index term type
4648
│ ├── config/ <-- Configuration management for encrypted columns
4749
│ ├── schema.sql <-- Defines the PostgreSQL schema for namespacing EQL
4850
│ ├── crypto.sql <-- Installs pg_crypto extension, required by ORE
@@ -316,8 +318,11 @@ Each type of encrypted index (`unique`, `match`, `ore`) has an associated type,
316318

317319
These are transient runtime types, used internally by EQL functions and operators:
318320

321+
- `eql_v1.blake3`
319322
- `eql_v1.unique_index`
320323
- `eql_v1.match`
324+
- `eql_v1.ore_cllw_u64_8`
325+
- `eql_v1.ore_cllw_var_8`
321326
- `eql_v1.ore_64_8_v1`
322327
- `eql_v1.ore_64_8_v1_term`
323328

@@ -338,10 +343,16 @@ Operators allow comparisons between:
338343
- `jsonb` and `eql_v1_encrypted`
339344
- `eql_v1_encrypted` and `jsonb`
340345

341-
The index types and functions are internal implementation details and should not be exposed as operators on the `eql_v1_encrypted` type.
346+
Operators defined on the `eql_v1_encrypted` dispatch to the underlying index terms based on the most efficient order of operations.
347+
348+
For example, it is possible to have both `unique` and `ore` indexes defined.
349+
For equality (`=`, `<>`) operations, a `unique` index term is a text comparison and should be preferred over an `ore` index term.
350+
351+
The index term types and functions are internal implementation details and should not be exposed as operators on the `eql_v1_encrypted` type.
342352
For example, `eql_v1_encrypted` should not have an operator with the `ore_64_8_v1` type.
343353
Users should never need to think about or interact with EQL internals.
344354

355+
345356
#### Working without operators
346357

347358
There are scenarios where users are unable to install EQL operators in your database.

0 commit comments

Comments
 (0)