postgres-semicolons
v0.1.2
Published
Split Postgres SQL queries on semicolons
Downloads
32,384
Readme
semicolons
This package exists to take a string containing multiple Postgres SQL statements, separated by semicolons, and split it into its constituent statements.
This isn't trivial, because semicolons may occur in double-quoted identifiers, ordinary strings, 'escape' strings, continuation strings, dollar-quoted strings, single-line comments, and (nestable) multi-line comments, and in all these cases they do not separate statements.
Sticky RegExps are used liberally.
Installation
npm install postgres-semicolons
Usage
The exported functions have comprehensive TSDoc comments in index.ts
.
An example:
import * as semicolons from 'postgres-semicolons';
const sql = `BEGIN; /*/* SELECT 1; */ SELECT 2; */; SELECT ';'';'; SELECT $x$;$x$; -- COMMIT;`;
const standardConformingStrings = true;
const splits = semicolons.parseSplits(sql, standardConformingStrings);
const queries = semicolons.nonEmptyStatements(sql, splits.positions);
console.log(queries); // -> [ 'BEGIN', "SELECT ';'';'", 'SELECT $x$;$x$' ]
License
The code is MIT licensed.