Norwegian Pony Master

    pgsql-parser

    13.4.0 • Public • Published

    pgsql-parser tests

    The real PostgreSQL parser for nodejs. The primary objective of this module is to provide symmetric parsing and deparsing of SQL statements. With this module you can modify parts of a SQL query statement and serialize the query tree back into a formatted SQL statement. It uses the real PostgreSQL parser.

    The main functionality provided by this module is deparsing, which PostgreSQL does not have internally.

    Installation

    npm install pgsql-parser

    Parser Example

    Rewrite part of a SQL query:

    const { parse, deparse } = require('pgsql-parser');
    
    const stmts = parse('SELECT * FROM test_table');
    
    stmts[0].RawStmt.stmt.SelectStmt.fromClause[0].RangeVar.relname = 'another_table';
    
    console.log(deparse(stmts));
    
    // SELECT * FROM "another_table"

    Deparser Example

    The deparser can be used separately, which removes many deps required for the parser:

    const { parse } = require('pgsql-parser');
    const { deparse } = require('pgsql-deparser');
    
    const stmts = parse('SELECT * FROM test_table');
    
    stmts[0].RawStmt.stmt.SelectStmt.fromClause[0].RangeVar.relname = 'another_table';
    
    console.log(deparse(stmts));
    
    // SELECT * FROM "another_table"

    CLI

    npm install -g pgsql-parser
    

    usage

    pgsql-parser <sqlfile>

    Documentation

    parser.parse(sql)

    Parses the query and returns a parse object.

    Parameters

    parameter type description
    query String SQL query

    Returns an object in the format:

    { query: <query|Object>,
      error: { message: <message|String>,
               fileName: <fileName|String>,
               lineNumber: <line|Number>,
               cursorPosition: <cursor|Number> }
    

    parser.deparse(query)

    Deparses the query tree and returns a formatted SQL statement. This function takes as input a query AST in the same format as the query property of on the result of the parse method. This is the primary functionality of this module.

    Parameters

    parameter type description
    query Object Query tree obtained from parse

    Returns a normalized formatted SQL string.

    Versions

    As of PG 13, PG majors versions maintained will have a matching dedicated major npm version. Only the latest Postgres stable release receives active updates.

    Our latest is built with 13-latest branch from libpg_query

    PostgreSQL Major Version libpg_query Status npm
    13 13-latest Active development latest
    12 (n/a) Not supported
    11 (n/a) Not supported
    10 10-latest Not supported @1.3.1 (tree)

    Resources

    Related

    Credits

    License: https://github.com/zhm/pg-query-parser/blob/master/LICENSE.md

    Thanks to https://github.com/zhm/pg-query-parser we've been able to start this repo and add a lot of functionality

    Install

    npm i pgsql-parser

    DownloadsWeekly Downloads

    9,725

    Version

    13.4.0

    License

    SEE LICENSE IN LICENSE

    Unpacked Size

    27.1 kB

    Total Files

    10

    Last publish

    Collaborators

    • pyramation
    • div.arora