From 3c690bac944d4b04e3acdaeb3c044c1365699fe5 Mon Sep 17 00:00:00 2001 From: Paul Masurel Date: Tue, 18 Aug 2026 15:37:54 +0200 Subject: [PATCH] Mark LEFT out of scope --- jitexpr/docs/FUNCTIONS.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/jitexpr/docs/FUNCTIONS.md b/jitexpr/docs/FUNCTIONS.md index d2a1d05ae..7eed15d48 100644 --- a/jitexpr/docs/FUNCTIONS.md +++ b/jitexpr/docs/FUNCTIONS.md @@ -51,7 +51,7 @@ excluded from this pass, or is complex enough to warrant a separate implementati | 35 | `SQRT` | out-of-scope | | 38 | `MIN` | done | | 39 | `MAX` | done | -| 40 | `LEFT` | pending | +| 40 | `LEFT` | out-of-scope | | 41 | `RIGHT` | pending | | 42 | `SUBSTRING` | pending | | 43 | `SPLIT_BEFORE` | pending | @@ -76,7 +76,7 @@ excluded from this pass, or is complex enough to warrant a separate implementati | 79 | `SUBSTRING_COUNT` | pending | | 80 | `REGEXP_LIKE` | pending | -Progress: **25 / 41 in-scope** functions implemented; **14** functions are out-of-scope. +Progress: **25 / 40 in-scope** functions implemented; **15** functions are out-of-scope. ## Deferred implementation notes @@ -102,3 +102,6 @@ Progress: **25 / 41 in-scope** functions implemented; **14** functions are out-o - `SQRT` has a contradictory production type contract: the dd-go type checker returns the selected input type (including integer), while the registry declares a `float64` output and both integer and float kernels write `float64`. It is deferred until one of those contracts is chosen. +- `LEFT` counts raw UTF-8 bytes and may split a code point. Representing its exact output as + jitexpr's valid Rust `str` would be unsound, while rounding to a character boundary would diverge + from production.