Class PostgreSqlParser

Object
gudusoft.gsqlparser.parser.AbstractSqlParser
gudusoft.gsqlparser.parser.PostgreSqlParser
All Implemented Interfaces:
SqlParser

public class PostgreSqlParser extends AbstractSqlParser
PostgreSQL database SQL parser implementation.

This parser handles PostgreSQL-specific SQL syntax including:

  • PL/pgSQL blocks (functions, procedures, triggers)
  • Dollar quoting ($$...$$)
  • PostgreSQL-specific DML/DDL
  • Special operators and functions
  • Special token handling (%ROWTYPE, %TYPE, etc.)

Design Notes:

  • Extends AbstractSqlParser
  • Can directly instantiate: TLexerPostgresql, TParserPostgresqlSql
  • Uses single parser (no secondary parser like Oracle's PL/SQL)
  • Delimiter character: ';' for SQL statements

Usage Example:

 // Get PostgreSQL parser from factory
 SqlParser parser = SqlParserFactory.get(EDbVendor.dbvpostgresql);

 // Build context
 ParserContext context = new ParserContext.Builder(EDbVendor.dbvpostgresql)
     .sqlText("SELECT * FROM employees WHERE dept_id = 10")
     .build();

 // Parse
 SqlParseResult result = parser.parse(context);

 // Access statements
 TStatementList statements = result.getSqlStatements();
 
Since:
3.2.0.0
See Also:
  • Field Details

    • flexer

      The PostgreSQL lexer used for tokenization (public for TGSqlParser.getFlexer())
  • Constructor Details

    • PostgreSqlParser

      Construct PostgreSQL SQL parser.

      Configures the parser for PostgreSQL database with default delimiter: semicolon (;)

      Following the original TGSqlParser pattern, the lexer and parser are created once in the constructor and reused for all parsing operations.

  • Method Details