From 478fadad23a638e6f55d07b5d37567f4628dbe2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Gonz=C3=A1lez=20Di=20Antonio?= Date: Sat, 24 Oct 2026 19:33:55 +0200 Subject: [PATCH] docs: the README names the dialect and the license The Documentation list did not name the dialects page, the Configurable feature and the two How it works diagrams did not show the dialect, and the License section said "see the repository". It names the SQL Dialects page, the dialect on both diagrams (rendered), and the license: the Apache License, Version 2.0, linked to LICENSE and to its text. Co-Authored-By: Claude Opus 5.5 --- README.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a373b5c..b918093 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,8 @@ func main() { `IS [NOT] DISTINCT FROM`. The default dialect is PostgreSQL 18's; `WithDialect(DialectSQLStandard)` accepts SQL:2023 (ISO/IEC 9075:2023) and refuses PostgreSQL's own spellings. See [the SQL dialect](docs/dialects.md). -- **Configurable** — restrict which operators or sort directions are allowed. +- **Configurable** — choose the SQL dialect (PostgreSQL 18 or SQL:2023), and + restrict which operators or sort directions are allowed. - **Returns an AST** you can walk or render, with precise, aggregated errors. - **Concurrency-safe** parsers. @@ -87,6 +88,7 @@ flowchart LR AL(["Allow-list of fields"]) -. gates .-> FP AL -. gates .-> FI AL -. gates .-> SP + DI(["SQL dialect
PostgreSQL 18 (default) · SQL:2023"]) -. grammar .-> FI FP --> FN["FieldsNode
[]string"] FI --> AST["Filter AST
(Node tree)"] @@ -101,13 +103,14 @@ flowchart LR The filter parser is a hand-written recursive-descent parser: a `Lexer` tokenizes the input, then the parser builds the AST while honoring operator -precedence (`OR` < `AND` < comparison) and the allow-list. +precedence (`OR` < `AND` < comparison), the dialect and the allow-lists. ```mermaid flowchart LR IN["input string"] --> LEX["Lexer
tokenize"] LEX --> TOK["[]Token"] TOK --> PAR["FilterParser
recursive descent"] + CHK(["dialect · field and
operator allow-lists"]) -. "each field and operator" .-> PAR PAR --> AST["AST root (Node)"] PAR -. "collects every error" .-> ERR["errors.Join(…)"] ``` @@ -118,7 +121,10 @@ Full documentation lives in [`docs/`](docs/README.md): - [Getting Started](docs/getting-started.md) — install, update, complete example - [Filtering](docs/filtering.md) — the full operator/predicate reference -- [Configuration](docs/configuration.md) — restrict operators and sort directions +- [SQL Dialects](docs/dialects.md) — PostgreSQL 18 (the default) or SQL:2023: + why a filter parser needs one, choosing it, and every construct in each +- [Configuration](docs/configuration.md) — choose the dialect, restrict + operators and sort directions - [Error Handling](docs/error-handling.md) — inspecting validation failures - [Migration Guide](docs/migration.md) — upgrading between versions @@ -127,4 +133,5 @@ API reference and runnable examples are on ## License -See the repository for license details. +QFV is licensed under the [Apache License, Version 2.0](LICENSE) +([text](https://www.apache.org/licenses/LICENSE-2.0)).