Overview

Overview

Pre-built SQL grammars that you can import and “just use”. No configuration necessary.

Supports MySQL, T-SQL (SQL Server), PL/pgSQL (PostgreSQL) and PL/SQL (Oracle) dialects.

  • Get parsers, lexers and parse-trees with a single method call.
  • Determine if an arbitrary SQL script is syntactically correct.
  • Identify the types of keywords used in the queries.

Install

npm install antlr4ts-sql

Get Started

import { antlr4tsSQL, SQLDialect } from 'antlr4ts-sql';

const antlr4tssql = new antlr4tsSQL(SQLDialect.MYSQL);
const query = 'SELECT * FROM table1';
const parseTree = antlr4tssql.getParseTreeFromSQL(query);
console.log(parseTree);

// Sql_scriptContext {
//   _parent: undefined,
//   invokingState: -1,
//   _start: CommonToken { _line: 1, _charPositionInLine: 0, _channel: 0,
//                           index: 0, _text: undefined, _type: 614,
//                           source: { source: [MySQLLexer], stream: [ANTLRInputStream] },
//                           start: 0, stop: 5
//   },
//   children: [
//     QueryContext {
//       _parent: [Circular], invokingState: 1212,
//       _start: [CommonToken], children: [Array], _stop: [CommonToken]
//     },
//     TerminalNode { _symbol: [CommonToken], _parent: [Circular] }
//   ],
//   _stop: CommonToken { _line: 1, _charPositionInLine: 20, _channel: 0,
//                         index: 7, _text: undefined, _type: -1,
//                         source: { source: [MySQLLexer], stream: [ANTLRInputStream] },
//                         start: 20, stop: 19
//   }
// }

Created By

modelDBA logo

antlr4ts-sql is a project created and maintained by modelDBA, a database IDE for modern developers. modelDBA lets you visualize SQL as you type and edit tables easily with a no-code table editor.

API

Full API documentation.

Using antlr4ts

How to use antlr4ts classes in your application.

Acknowledgments

Shout outs, thanks, and appreciation.