Contributing to General SQL Parser .NET¶
We welcome contributions to General SQL Parser .NET. This page covers the development environment, build commands, and the regression-test workflow you should follow before opening a PR.
Repository layout¶
Top-level structure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Development environment¶
Prerequisites¶
- .NET 10 SDK. On Ubuntu 24.04:
sudo apt-get install -y dotnet-sdk-10.0. Verify withdotnet --info(should show 10.0.x). - Git with LFS support (for the binary parser tables).
- An IDE with C# support (Rider, Visual Studio, or VS Code with the C# Dev Kit).
Build the whole solution¶
1 2 3 4 5 6 7 | |
Omit any /p:includeXxx=true flag to compile a library without that dialect's parser tables. Every project builds on Linux — there are no Windows-only projects.
Run the regression suite¶
1 2 3 4 5 6 | |
The fixture suite parses ~3000 real SQL files across every supported dialect. The current baseline is 0 failures — your PR must keep it that way.
Run a demo¶
1 2 | |
Mandatory regression check before committing parser changes¶
Any change that can alter parser behaviour (grammar edits, hand-edits to source files in gsp_dotnet_core/src/gsqlparser/) must be followed by:
- A clean full-solution build with all dialects enabled (
0 Errors) - The full fixture suite passing (
Failed: 0)
The library is a SQL parser — most bugs are silent (a query parses to a subtly different AST). Compiling cleanly is nowhere near sufficient. The fixture suite is the only thing that catches these regressions early. Do not commit until the suite passes.
Commit message style¶
Follow the repository's commit convention:
- Subject line: ~50 chars, imperative mood, capitalised, no trailing period
- Scope tag in brackets when relevant:
[Oracle],[PostgreSQL, Redshift],[build],[docs],[parser] - Wrap body at 72 chars; explain what and why, not how
Good examples:
1 2 3 | |
Reporting bugs¶
Use the issue tracker at https://www.sqlparser.com/bugs/mantisbt (free registration). Include:
- Full failing SQL
- Vendor (and version, if relevant)
- The error from
parser.Errormessage - GSP .NET version
- Expected vs actual
Getting help¶
- Read the FAQ for common questions
- Visit the Support page for community channels
- Email info@sqlparser.com for licensing or commercial support
Thank you for contributing to General SQL Parser .NET.