Wondering what’s next for npm?Check out our public roadmap! »

    pgsql-parser

    13.1.3 • Public • Published

    pgsql-parser Build Status

    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.

    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

    1,697

    Version

    13.1.3

    License

    SEE LICENSE IN LICENSE

    Unpacked Size

    19.8 kB

    Total Files

    10

    Last publish

    Collaborators

    • avatar