SkillAgentSearch skills...

Semicolons

Take a string with multiple Postgres SQL statements, separated by semicolons, and split it into its constituent statements

Install / Use

/learn @neondatabase/Semicolons
About this skill

Quality Score

0/100

Supported Platforms

Universal

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.

Developed for and used by Neon's SQL Editor. Kick the tyres there or at https://semicolons.pages.dev/.

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.

Related Skills

View on GitHub
GitHub Stars8
CategoryData
Updated1y ago
Forks1

Languages

TypeScript

Security Score

75/100

Audited on Jul 15, 2024

No findings