pgsql-parser
https://github.com/zhm/pg-query-parser with some added functionality.
This is really justThe 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
Example
Rewrite part of a SQL query:
const parser = require('pgsql-parser');
const query = parser.parse('SELECT * FROM test_table').query;
query[0].SelectStmt.fromClause[0].RangeVar.relname = 'another_table';
console.log(parser.deparse(query));
// SELECT * FROM "another_table"
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.