Skip to content

docs: the SQL dialects have a page of their own - #30

Merged
christiangda merged 1 commit into
mainfrom
docs/the-sql-dialects-page
Oct 24, 2026
Merged

christiangda merged 1 commit into
mainfrom
docs/the-sql-dialects-page

Conversation

@christiangda

Copy link
Copy Markdown
Contributor

What a dialect is was a section of the configuration guide. It now has its own page, docs/dialects.md.

The page

  • Why a filter parser needs a dialect. The parser checks an expression and does not translate it, so "accepted" has to mean "the database runs it". What a disagreement costs: at best a database error on a request the parser called valid, at worst one text read as two different predicates.
  • Choosing a dialect, with a decision diagram.
  • How a filter is checked against it, with a diagram: the operator, then its spelling, then the allow-list, every problem joined.
  • The dialect and the allow-list as two narrowings, with a diagram, and Dialect.Operators().
  • Every construct the filter parser knows, in PostgreSQL 18 and in SQL:2023, with the standard's feature IDs, and PostgreSQL's manual's own words for each ❌.
  • What each refusal says, word for word.
  • What a dialect does not do:
    • it does not translate;
    • it does not know your column types or collation;
    • it does not change a pattern's meaning: without ESCAPE, the backslash is PostgreSQL's escape character and the standard has none;
    • it does not apply to sorting or field selection.
  • What adding a dialect takes, with MySQL 8.4 as the next one: the operators it lacks and adds, its backslash escapes in strings, and tests against a running MySQL 8.4.

Also

  • Every page that pointed at the old configuration section now points at the new page: README.md, getting-started.md, filtering.md, error-handling.md, migration.md, the documentation index's guide table, and the package doc. configuration.md keeps a summary.
  • TestTheDialectsPageQuotesTheParser reads the page's table of refusals and holds each message to what Parse answers. A message changed on the page alone fails it; that was tested.
  • The page's three diagrams were rendered, and so were the configuration guide's and the index's.

This goes into v1.1.1 with #29, which is tagged after this merges.

🤖 Generated with Claude Code

What a dialect is was a section of the configuration guide. It has its
own page now, docs/dialects.md: why a filter parser needs one (it checks
and does not translate, so accepted has to mean the database runs it),
how to choose it, how a filter is checked against it, the dialect and
the allow-list as two narrowings, every construct in PostgreSQL 18 and
SQL:2023 with the standard's feature ids and the manual's words, what
each refusal says, what a dialect does not do, and what adding one
(MySQL 8.4 next) takes. Its three diagrams were rendered. Every page
that pointed at the section points at it, and the configuration guide
keeps a summary.

TestTheDialectsPageQuotesTheParser reads the page's table of refusals
and holds each message to what Parse answers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@christiangda christiangda self-assigned this Oct 24, 2026
@christiangda
christiangda merged commit ce7b878 into main Oct 24, 2026
1 check passed
@christiangda
christiangda deleted the docs/the-sql-dialects-page branch October 24, 2026 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant