Add scalar string/number functions in SELECT: UPPER, LOWER, LENGTH, ABS.
Today SELECT projects columns and aggregates but has no scalar functions. Add a handful of pure, single-argument functions usable in the select list: UPPER(s), LOWER(s), LENGTH(s), ABS(n).
Where
- Parser:
v2/src/sql.cpp — recognize func(expr) in the select list.
- Projection:
v2/src/exec.cpp — the materialize/project path.
Acceptance criteria
SELECT UPPER(name), LENGTH(name) FROM users returns correct values.
- An unknown function gives a clear parse error.
- Add a
bench2 correctness check that compares against SQLite.
- Document the supported list in
README/ROADMAP.
Scope note: scalar-in-projection only — no nesting inside WHERE yet (that's the larger "expression engine" roadmap item).
See CONTRIBUTING.md and comment here to claim it.
Add scalar string/number functions in
SELECT:UPPER,LOWER,LENGTH,ABS.Today
SELECTprojects columns and aggregates but has no scalar functions. Add a handful of pure, single-argument functions usable in the select list:UPPER(s),LOWER(s),LENGTH(s),ABS(n).Where
v2/src/sql.cpp— recognizefunc(expr)in the select list.v2/src/exec.cpp— thematerialize/project path.Acceptance criteria
SELECT UPPER(name), LENGTH(name) FROM usersreturns correct values.bench2correctness check that compares against SQLite.README/ROADMAP.Scope note: scalar-in-projection only — no nesting inside
WHEREyet (that's the larger "expression engine" roadmap item).See CONTRIBUTING.md and comment here to claim it.