Nauseating Packaged Meat

    sql-tokenizer

    0.2.1 • Public • Published

    SQL tokenizer

    analyzes SQL statements and converts it into a list of tokens

    Installation | Usage | License

    Installation

    With npm do

    npm install sql-tokenizer

    Usage

    Create a tokenize function using CommonJS.

    const tokenize = require('sql-tokenizer')()

    You can also create a tokenize function with ES6 syntax.

    import tokenizer from 'sql-tokenizer'
    const tokenize = tokenizer()

    Turn SQL statement into tokens.

    tokenize('select * from revenue')
    // ['select', ' ', '*', ' ', 'from', ' ', 'revenue']

    Quotes are handled properly.

    tokenize(`select 'O''Reilly' as "book shelf"`)
    // ['select', ' ', "'O''Reilly'", ' ', 'as', ' ', '"book shelf"']

    Indentation is preserved.

    tokenize(`
    SELECT COUNT(*) AS num
    FROM (
        SELECT *
        FROM mytable
        WHERE yyyymmdd=20170101
            AND country IN ('IT','US')
    )
    `)
    // '\n',
    // 'SELECT', ' ', 'COUNT', '(', '*', ')', ' ', 'AS', ' ', 'num', '\n',
    // 'FROM', ' ', '(', '\n',
    // '\t', 'SELECT', ' ', '*', '\n',
    // '\t', 'FROM', ' ', 'mytable', '\n',
    // '\t', 'WHERE', ' ', 'yyyymmdd', '=', '20170101', '\n',
    // '\t\t', 'AND', ' ', 'country', ' ', 'IN', ' ', '(', "'IT'", ',', "'US'", ')', '\n',
    // ')', '\n'

    The tokenizer function accepts an optional array of operators, which defaults to SQL92-operators. The following example shows how to extend the SQL92 operators list with PostgreSQL bitwise operators.

    const sql92Operators = require('sql92-operators')
    const tokenizer = require('sql-tokenizer')
     
    const operators = sql92Operators.concat(['&', '|', '#', '~' '>>', '<<'])
     
    const tokenize = tokenizer(operators)

    License

    MIT

    Keywords

    Install

    npm i sql-tokenizer

    DownloadsWeekly Downloads

    164

    Version

    0.2.1

    License

    MIT

    Unpacked Size

    15.5 kB

    Total Files

    18

    Last publish

    Collaborators

    • fibo