You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 0b73e2c
Browse filesBrowse the repository at this point in the historyBrowse files
feat: add PostgreSQL query extensions and structured batch parsing
Represent DISTINCT ON, aggregate FILTER, LATERAL SELECT/function references,
named windows and ROWS/RANGE/GROUPS frames as structured AST nodes. Preserve
frame boundaries, exclusions, aliases and source quoting during emission.
Reject these constructs in the local planner where execution is unsupported.
Restore emission of window nodes that previously disappeared from SQL and
digests; affected digest strings and hashes consequently change.
Add parse_all with ordered per-statement results and byte spans. Reset the
arena once per batch so earlier ASTs remain valid while later statements
are parsed. Skip empty statements, retain failures, continue at available
lexical boundaries, and prevent unknown commands from making batch.ok true.
The API frames SQL text, not inline COPY data or procedural bodies.
Build transaction/savepoint/prepared-transaction ASTs and bounded COPY ASTs
for relation or supported query sources, directions, endpoints, modern
options and WHERE clauses. Add COPY and RELEASE_SAVEPOINT classifications
and update the oracle mapping. Use opt-in complete-operand parsing inside
COPY queries without globally tightening existing permissive parser paths.
Preserve PostgreSQL doubled-quote identifiers, ordinary versus E-string
boundaries, and complete dollar-quote delimiters. Reject truncated dollar
strings. Preserve quoted function names and normalize MySQL comma-LIMIT
children into count/offset order, recording their original syntax for
consumers that must handle anonymous bind positions.
Add focused round-trip, AST mutation, malformed-input, lexical-boundary,
retained-lifetime and planner-rejection tests and register them in the
Makefile. The final combined tree passes all 1,354 active C++ tests and
builds the corpus harness; 37 backend integration tests require unavailable
servers. LATERAL WITH/VALUES/compound operands and interval frame offsets
remain outside this implementation. Compatibility fixtures are refreshed
separately after all parser changes in this series.
0 commit comments