SQLParser 3.0.22

There is a newer version of this package available.
See the version list below for details.
dotnet add package SQLParser --version 3.0.22                
NuGet\Install-Package SQLParser -Version 3.0.22                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SQLParser" Version="3.0.22" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SQLParser --version 3.0.22                
#r "nuget: SQLParser, 3.0.22"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SQLParser as a Cake Addin
#addin nuget:?package=SQLParser&version=3.0.22

// Install SQLParser as a Cake Tool
#tool nuget:?package=SQLParser&version=3.0.22                

SQLParser

This C# library provides a SQL parser and lexer implementation using ANTLR. It allows you to parse SQL queries into an abstract syntax tree (AST) and perform various operations on the parsed queries.

Features

  • Lexical analysis: Tokenizing SQL queries into individual tokens.
  • Syntactic analysis: Parsing SQL queries into an abstract syntax tree.
  • Query manipulation: Modifying and transforming the parsed SQL queries.
  • Query analysis: Extracting metadata and information from SQL queries.

Installation

You can install the library via NuGet:

dotnet add package SQLParser

Usage

To use this library in your C# project, follow these steps:

  1. Add a reference to the SQLParser package in your project.

  2. Import the SQLParser namespace in your code:

    using SQLParser.Parsers.TSql;
    using SQLParser;
    
  3. Create a parser listener class:

    /// <summary>
    /// This is an example of a printer that can be used to parse a statement.
    /// </summary>
    /// <seealso cref="TSqlParserBaseListener" />
    internal class Printer : TSqlParserBaseListener
    {
        /// <summary>
        /// Gets or sets a value indicating whether [statement found].
        /// </summary>
        /// <value>
        ///   <c>true</c> if [statement found]; otherwise, <c>false</c>.
        /// </value>
        public bool StatementFound { get; set; }
    
        /// <summary>
        /// Enter a parse tree produced by <see cref="M:SQLParser.Parsers.TSql.TSqlParser.dml_clause" />.
        /// <para>The default implementation does nothing.</para>
        /// </summary>
        /// <param name="context">The parse tree.</param>
        public override void EnterDml_clause([NotNull] TSqlParser.Dml_clauseContext context)
        {
            // This is a select statement if the select_statement_standalone is not null
            StatementFound |= context.select_statement_standalone() != null;
            base.EnterDml_clause(context);
        }
    }
    
    
  4. Parse the query:

    Parser.Parse("SELECT * FROM Somewhere", ExamplePrinter, Enums.SQLType.TSql);
    

Contributing

Contributions are welcome! If you encounter any bugs, issues, or have feature requests, please create an issue on this repository.

If you want to contribute to the codebase, follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature/bug fix.
  3. Make your changes and write tests if applicable.
  4. Submit a pull request.

Please ensure that your code follows the existing code style and passes the tests before submitting a pull request.

License

This library is released under the Apache 2 License.

Acknowledgments

  • This library was built using ANTLR (version 4).
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on SQLParser:

Package Downloads
SQLHelper.DB

SQLHelper is a simple class to help with databases.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.0.0 98 11/19/2024
3.0.22 280 11/11/2024
3.0.21 427 11/4/2024
3.0.20 399 10/29/2024
3.0.19 6,467 6/17/2024
3.0.18 9,359 5/6/2024
3.0.17 1,013 4/30/2024
3.0.16 216 4/29/2024
3.0.15 2,658 3/9/2024
3.0.14 352 3/4/2024
3.0.13 15,182 11/15/2023
3.0.12 619 11/6/2023
3.0.11 638 10/30/2023
3.0.10 2,542 9/18/2023
3.0.9 610 9/11/2023
3.0.8 757 9/4/2023
3.0.7 636 8/29/2023
3.0.6 269 8/28/2023
3.0.5 1,745 8/4/2023
3.0.4 1,890 7/10/2023
3.0.3 6,283 6/10/2022
3.0.1 16,967 4/20/2022
3.0.0 2,084 4/20/2022
2.0.15 3,427 1/11/2022
2.0.14 7,205 2/24/2021
2.0.13 2,001 1/6/2021
2.0.11 6,709 9/13/2020
2.0.10 20,939 3/25/2020
2.0.9 16,698 12/23/2019
2.0.7 9,965 2/21/2019
2.0.6 2,426 8/1/2018
2.0.5 5,461 7/17/2018
2.0.4 1,511 7/3/2018
2.0.3 921 7/3/2018
2.0.2 3,724 5/22/2018
2.0.1 2,001 5/11/2018
2.0.0 6,909 1/2/2018
1.0.3 14,357 9/19/2017
1.0.2 2,428 9/15/2017