Regex optimization (TRIE)

Benchmark created on


Description

Test whether a large set of keywords gets more efficiently matched when using a tree-like regex vs a plain, list best regex

Setup

var oneSql = 'SELECT * FROM "someTable" as t WHERE someColumn = \'someValue\' union all';
var array = new Array(1000);
var manySql = array.fill(oneSql).join('\n');

Test runner

Ready to run.

Testing in
TestOps/sec
baseline
var re = /(?<keyword>(?:\b)(?:[Aa][Uu][Tt][Hh][Oo][Rr][Ii][Zz][Aa][Tt][Ii][Oo][Nn]|[Xx][Mm][Ll][Aa][Tt][Tt][Rr][Ii][Bb][Uu][Tt][Ee][Ss]|[Xx][Mm][Ll][Nn][Aa][Mm][Ee][Ss][Pp][Aa][Cc][Ee][Ss]|[Cc][Oo][Nn][Cc][Uu][Rr][Rr][Ee][Nn][Tt][Ll][Yy]|[Pp][Ii][Vv][Oo][Tt]_[Ll][Oo][Nn][Gg][Ee][Rr]|[Xx][Mm][Ll][Ss][Ee][Rr][Ii][Aa][Ll][Ii][Zz][Ee]|[Gg][Rr][Oo][Uu][Pp][Ii][Nn][Gg]_[Ii][Dd]|[Pp][Ii][Vv][Oo][Tt]_[Ww][Ii][Dd][Ee][Rr]|[Tt][Aa][Bb][Ll][Ee][Ss][Aa][Mm][Pp][Ll][Ee]|[Aa][Ss][Yy][Mm][Mm][Ee][Tt][Rr][Ii][Cc]|[Cc][Oo][Nn][Ss][Tt][Rr][Aa][Ii][Nn][Tt]|[Dd][Ee][Ff][Ee][Rr][Rr][Aa][Bb][Ll][Ee]|[Pp][Oo][Ss][Ii][Tt][Ii][Oo][Nn][Aa][Ll]|[Rr][Ee][Ff][Ee][Rr][Ee][Nn][Cc][Ee][Ss]|[Xx][Mm][Ll][Ee][Ll][Ee][Mm][Ee][Nn][Tt]|[Cc][Hh][Aa][Rr][Aa][Cc][Tt][Ee][Rr]|[Cc][Oo][Ll][Ll][Aa][Tt][Ii][Oo][Nn]|[Gg][Ee][Nn][Ee][Rr][Aa][Tt][Ee][Dd]|[Ii][Nn][Ii][Tt][Ii][Aa][Ll][Ll][Yy]|[Ii][Nn][Tt][Ee][Rr][Ss][Ee][Cc][Tt]|[Pp][Rr][Ee][Cc][Ii][Ss][Ii][Oo][Nn]|[Rr][Ee][Tt][Uu][Rr][Nn][Ii][Nn][Gg]|[Ss][Uu][Bb][Ss][Tt][Rr][Ii][Nn][Gg]|[Ss][Uu][Mm][Mm][Aa][Rr][Ii][Zz][Ee]|[Ss][Yy][Mm][Mm][Ee][Tt][Rr][Ii][Cc]|[Tt][Ii][Mm][Ee][Ss][Tt][Aa][Mm][Pp]|[Xx][Mm][Ll][Cc][Oo][Nn][Cc][Aa][Tt]|[Xx][Mm][Ll][Ee][Xx][Ii][Ss][Tt][Ss]|[Xx][Mm][Ll][Ff][Oo][Rr][Ee][Ss][Tt]|[Cc][Oo][Aa][Ll][Ee][Ss][Cc][Ee]|[Dd][Ee][Ss][Cc][Rr][Ii][Bb][Ee]|[Dd][Ii][Ss][Tt][Ii][Nn][Cc][Tt]|[Gg][Rr][Oo][Uu][Pp][Ii][Nn][Gg]|[Ii][Nn][Tt][Ee][Rr][Vv][Aa][Ll]|[Nn][Aa][Tt][Ii][Oo][Nn][Aa][Ll]|[Oo][Vv][Ee][Rr][Ll][Aa][Pp][Ss]|[Pp][Oo][Ss][Ii][Tt][Ii][Oo][Nn]|[Ss][Mm][Aa][Ll][Ll][Ii][Nn][Tt]|[Tt][Rr][Aa][Ii][Ll][Ii][Nn][Gg]|[Tt][Rr][Yy]_[Cc][Aa][Ss][Tt]|[Vv][Aa][Rr][Ii][Aa][Dd][Ii][Cc]|[Xx][Mm][Ll][Pp][Aa][Rr][Ss][Ee]|[Xx][Mm][Ll][Tt][Aa][Bb][Ll][Ee]|[Aa][Nn][Aa][Ll][Yy][Ss][Ee]|[Aa][Nn][Aa][Ll][Yy][Zz][Ee]|[Bb][Ee][Tt][Ww][Ee][Ee][Nn]|[Bb][Oo][Oo][Ll][Ee][Aa][Nn]|[Cc][Oo][Ll][Ll][Aa][Tt][Ee]|[Cc][Oo][Ll][Uu][Mm][Nn][Ss]|[Dd][Ee][Cc][Ii][Mm][Aa][Ll]|[Dd][Ee][Ff][Aa][Uu][Ll][Tt]|[Ee][Xx][Tt][Rr][Aa][Cc][Tt]|[Ff][Oo][Rr][Ee][Ii][Gg][Nn]|[Ii][Nn][Tt][Ee][Gg][Ee][Rr]|[Ll][Aa][Tt][Ee][Rr][Aa][Ll]|[Ll][Ee][Aa][Dd][Ii][Nn][Gg]|[Nn][Aa][Tt][Uu][Rr][Aa][Ll]|[Nn][Oo][Tt][Nn][Uu][Ll][Ll]|[Nn][Uu][Mm][Ee][Rr][Ii][Cc]|[Oo][Vv][Ee][Rr][Ll][Aa][Yy]|[Pp][Ll][Aa][Cc][Ii][Nn][Gg]|[Pp][Rr][Ii][Mm][Aa][Rr][Yy]|[Qq][Uu][Aa][Ll][Ii][Ff][Yy]|[Ss][Ii][Mm][Ii][Ll][Aa][Rr]|[Uu][Nn][Pp][Ii][Vv][Oo][Tt]|[Vv][Aa][Rr][Cc][Hh][Aa][Rr]|[Vv][Ee][Rr][Bb][Oo][Ss][Ee]|[Xx][Mm][Ll][Rr][Oo][Oo][Tt]|[Bb][Ii][Gg][Ii][Nn][Tt]|[Bb][Ii][Nn][Aa][Rr][Yy]|[Cc][Oo][Ll][Uu][Mm][Nn]|[Cc][Rr][Ee][Aa][Tt][Ee]|[Ee][Xx][Cc][Ee][Pp][Tt]|[Ee][Xx][Ii][Ss][Tt][Ss]|[Ff][Rr][Ee][Ee][Zz][Ee]|[Hh][Aa][Vv][Ii][Nn][Gg]|[Ii][Ss][Nn][Uu][Ll][Ll]|[Ll][Aa][Mm][Bb][Dd][Aa]|[Nn][Uu][Ll][Ll][Ii][Ff]|[Oo][Ff][Ff][Ss][Ee][Tt]|[Ss][Ee][Ll][Ee][Cc][Tt]|[Ss][Tt][Rr][Uu][Cc][Tt]|[Uu][Nn][Ii][Qq][Uu][Ee]|[Uu][Nn][Pp][Aa][Cc][Kk]|[Vv][Aa][Ll][Uu][Ee][Ss]|[Ww][Ii][Nn][Dd][Oo][Ww]|[Aa][Rr][Rr][Aa][Yy]|[Cc][Hh][Ee][Cc][Kk]|[Cc][Rr][Oo][Ss][Ss]|[Ff][Aa][Ll][Ss][Ee]|[Ff][Ee][Tt][Cc][Hh]|[Ff][Ll][Oo][Aa][Tt]|[Gg][Rr][Oo][Uu][Pp]|[Ii][Ll][Ii][Kk][Ee]|[Ii][Nn][Nn][Ee][Rr]|[Ii][Nn][Oo][Uu][Tt]|[Ll][Ii][Mm][Ii][Tt]|[Nn][Cc][Hh][Aa][Rr]|[Oo][Rr][Dd][Ee][Rr]|[Oo][Uu][Tt][Ee][Rr]|[Pp][Ii][Vv][Oo][Tt]|[Rr][Ii][Gg][Hh][Tt]|[Ss][Ee][Tt][Oo][Ff]|[Tt][Aa][Bb][Ll][Ee]|[Tt][Rr][Ee][Aa][Tt]|[Uu][Nn][Ii][Oo][Nn]|[Uu][Ss][Ii][Nn][Gg]|[Ww][Hh][Ee][Rr][Ee]|[Xx][Mm][Ll][Pp][Ii]|[Aa][Nn][Tt][Ii]|[Aa][Ss][Oo][Ff]|[Bb][Oo][Tt][Hh]|[Cc][Aa][Ss][Ee]|[Cc][Aa][Ss][Tt]|[Cc][Hh][Aa][Rr]|[Dd][Ee][Ss][Cc]|[Ee][Ll][Ss][Ee]|[Ff][Rr][Oo][Mm]|[Ff][Uu][Ll][Ll]|[Gg][Ll][Oo][Bb]|[Ii][Nn][Tt][Oo]|[Jj][Oo][Ii][Nn]|[Ll][Ee][Ff][Tt]|[Ll][Ii][Kk][Ee]|[Nn][Oo][Nn][Ee]|[Nn][Uu][Ll][Ll]|[Oo][Nn][Ll][Yy]|[Rr][Ee][Aa][Ll]|[Ss][Ee][Mm][Ii]|[Ss][Hh][Oo][Ww]|[Ss][Oo][Mm][Ee]|[Tt][Hh][Ee][Nn]|[Tt][Ii][Mm][Ee]|[Tt][Rr][Ii][Mm]|[Tt][Rr][Uu][Ee]|[Ww][Hh][Ee][Nn]|[Ww][Ii][Tt][Hh]|[Aa][Ll][Ll]|[Aa][Nn][Dd]|[Aa][Nn][Yy]|[Aa][Ss][Cc]|[Bb][Ii][Tt]|[Dd][Ee][Cc]|[Ee][Nn][Dd]|[Ff][Oo][Rr]|[Ii][Nn][Tt]|[Mm][Aa][Pp]|[Nn][Oo][Tt]|[Oo][Uu][Tt]|[Rr][Oo][Ww]|[Aa][Ss]|[Aa][Tt]|[Bb][Yy]|[Dd][Oo]|[Ii][Nn]|[Ii][Ss]|[Oo][Nn]|[Oo][Rr]|[Tt][Oo])(?:\b))|(?<number>\d+(\.\d*)?|\.\d+)|(?<string>(?:')(?:(?:')(?:(?:'))|(?!')(?:[\s\S]))*(?:'))|(?<multiLineComment>(?:\/\*)(?:(?!\*\/)(?:[\s\S]))*(?:\*\/))|(?<singleLineComment>(?:\x2d\x2d)(?:(?!\n)(?:[\s\S]))*(?=\n))|(?<punctuation>[\(\)\{\}\.\:;,\-\+<>=\*])|(?<quotedIdentifier>(?:")(?:(?:")(?:(?:"))|(?!")(?:[\s\S]))+(?:"))|(?<identifier>\w+)|(?<whitespace>\s+)/gm
var match;
while (match = re.exec(manySql));
ready
trie
var re = /(?<keyword>(?:\b)(?:(?:[Aa](?:[Ll](?:[Ll](?:))|[Nn](?:[Aa](?:[Ll](?:[Yy](?:[Ss](?:[Ee](?:))|[Zz](?:[Ee](?:)))))|[Dd](?:)|[Tt](?:[Ii](?:))|[Yy](?:))|[Rr](?:[Rr](?:[Aa](?:[Yy](?:))))|[Ss](?:[Cc](?:)|[Oo](?:[Ff](?:))|[Yy](?:[Mm](?:[Mm](?:[Ee](?:[Tt](?:[Rr](?:[Ii](?:[Cc](?:)))))))))|[Tt](?:)|[Uu](?:[Tt](?:[Hh](?:[Oo](?:[Rr](?:[Ii](?:[Zz](?:[Aa](?:[Tt](?:[Ii](?:[Oo](?:[Nn](?:)))))))))))))|[Bb](?:[Ee](?:[Tt](?:[Ww](?:[Ee](?:[Ee](?:[Nn](?:))))))|[Ii](?:[Gg](?:[Ii](?:[Nn](?:[Tt](?:))))|[Nn](?:[Aa](?:[Rr](?:[Yy](?:))))|[Tt](?:))|[Oo](?:[Oo](?:[Ll](?:[Ee](?:[Aa](?:[Nn](?:)))))|[Tt](?:[Hh](?:)))|[Yy](?:))|[Cc](?:[Aa](?:[Ss](?:[Ee](?:)|[Tt](?:)))|[Hh](?:[Aa](?:[Rr](?:[Aa](?:[Cc](?:[Tt](?:[Ee](?:[Rr](?:)))))))|[Ee](?:[Cc](?:[Kk](?:))))|[Oo](?:[Aa](?:[Ll](?:[Ee](?:[Ss](?:[Cc](?:[Ee](?:))))))|[Ll](?:[Ll](?:[Aa](?:[Tt](?:[Ee](?:)|[Ii](?:[Oo](?:[Nn](?:))))))|[Uu](?:[Mm](?:[Nn](?:[Ss](?:)))))|[Nn](?:[Cc](?:[Uu](?:[Rr](?:[Rr](?:[Ee](?:[Nn](?:[Tt](?:[Ll](?:[Yy](?:)))))))))|[Ss](?:[Tt](?:[Rr](?:[Aa](?:[Ii](?:[Nn](?:[Tt](?:)))))))))|[Rr](?:[Ee](?:[Aa](?:[Tt](?:[Ee](?:))))|[Oo](?:[Ss](?:[Ss](?:)))))|[Dd](?:[Ee](?:[Cc](?:[Ii](?:[Mm](?:[Aa](?:[Ll](?:)))))|[Ff](?:[Aa](?:[Uu](?:[Ll](?:[Tt](?:))))|[Ee](?:[Rr](?:[Rr](?:[Aa](?:[Bb](?:[Ll](?:[Ee](?:))))))))|[Ss](?:[Cc](?:[Rr](?:[Ii](?:[Bb](?:[Ee](?:)))))))|[Ii](?:[Ss](?:[Tt](?:[Ii](?:[Nn](?:[Cc](?:[Tt](?:)))))))|[Oo](?:))|[Ee](?:[Ll](?:[Ss](?:[Ee](?:)))|[Nn](?:[Dd](?:))|[Xx](?:[Cc](?:[Ee](?:[Pp](?:[Tt](?:))))|[Ii](?:[Ss](?:[Tt](?:[Ss](?:))))|[Tt](?:[Rr](?:[Aa](?:[Cc](?:[Tt](?:)))))))|[Ff](?:[Aa](?:[Ll](?:[Ss](?:[Ee](?:))))|[Ee](?:[Tt](?:[Cc](?:[Hh](?:))))|[Ll](?:[Oo](?:[Aa](?:[Tt](?:))))|[Oo](?:[Rr](?:[Ee](?:[Ii](?:[Gg](?:[Nn](?:))))))|[Rr](?:[Ee](?:[Ee](?:[Zz](?:[Ee](?:))))|[Oo](?:[Mm](?:)))|[Uu](?:[Ll](?:[Ll](?:))))|[Gg](?:[Ee](?:[Nn](?:[Ee](?:[Rr](?:[Aa](?:[Tt](?:[Ee](?:[Dd](?:))))))))|[Ll](?:[Oo](?:[Bb](?:)))|[Rr](?:[Oo](?:[Uu](?:[Pp](?:[Ii](?:[Nn](?:[Gg](?:[__](?:[Ii](?:[Dd](?:)))))))))))|[Hh](?:[Aa](?:[Vv](?:[Ii](?:[Nn](?:[Gg](?:))))))|[Ii](?:[Ll](?:[Ii](?:[Kk](?:[Ee](?:))))|[Nn](?:[Ii](?:[Tt](?:[Ii](?:[Aa](?:[Ll](?:[Ll](?:[Yy](?:)))))))|[Nn](?:[Ee](?:[Rr](?:)))|[Oo](?:[Uu](?:[Tt](?:)))|[Tt](?:[Ee](?:[Gg](?:[Ee](?:[Rr](?:)))|[Rr](?:[Ss](?:[Ee](?:[Cc](?:[Tt](?:))))|[Vv](?:[Aa](?:[Ll](?:)))))|[Oo](?:)))|[Ss](?:[Nn](?:[Uu](?:[Ll](?:[Ll](?:))))))|[Jj](?:[Oo](?:[Ii](?:[Nn](?:))))|[Ll](?:[Aa](?:[Mm](?:[Bb](?:[Dd](?:[Aa](?:))))|[Tt](?:[Ee](?:[Rr](?:[Aa](?:[Ll](?:))))))|[Ee](?:[Aa](?:[Dd](?:[Ii](?:[Nn](?:[Gg](?:)))))|[Ff](?:[Tt](?:)))|[Ii](?:[Kk](?:[Ee](?:))|[Mm](?:[Ii](?:[Tt](?:)))))|[Mm](?:[Aa](?:[Pp](?:)))|[Nn](?:[Aa](?:[Tt](?:[Ii](?:[Oo](?:[Nn](?:[Aa](?:[Ll](?:)))))|[Uu](?:[Rr](?:[Aa](?:[Ll](?:))))))|[Cc](?:[Hh](?:[Aa](?:[Rr](?:))))|[Oo](?:[Nn](?:[Ee](?:))|[Tt](?:[Nn](?:[Uu](?:[Ll](?:[Ll](?:))))))|[Uu](?:[Ll](?:[Ll](?:[Ii](?:[Ff](?:))))|[Mm](?:[Ee](?:[Rr](?:[Ii](?:[Cc](?:)))))))|[Oo](?:[Ff](?:[Ff](?:[Ss](?:[Ee](?:[Tt](?:)))))|[Nn](?:[Ll](?:[Yy](?:)))|[Rr](?:[Dd](?:[Ee](?:[Rr](?:))))|[Uu](?:[Tt](?:[Ee](?:[Rr](?:))))|[Vv](?:[Ee](?:[Rr](?:[Ll](?:[Aa](?:[Pp](?:[Ss](?:))|[Yy](?:)))))))|[Pp](?:[Ii](?:[Vv](?:[Oo](?:[Tt](?:[__](?:[Ll](?:[Oo](?:[Nn](?:[Gg](?:[Ee](?:[Rr](?:))))))|[Ww](?:[Ii](?:[Dd](?:[Ee](?:[Rr](?:))))))))))|[Ll](?:[Aa](?:[Cc](?:[Ii](?:[Nn](?:[Gg](?:))))))|[Oo](?:[Ss](?:[Ii](?:[Tt](?:[Ii](?:[Oo](?:[Nn](?:[Aa](?:[Ll](?:)))))))))|[Rr](?:[Ee](?:[Cc](?:[Ii](?:[Ss](?:[Ii](?:[Oo](?:[Nn](?:)))))))|[Ii](?:[Mm](?:[Aa](?:[Rr](?:[Yy](?:)))))))|[Qq](?:[Uu](?:[Aa](?:[Ll](?:[Ii](?:[Ff](?:[Yy](?:)))))))|[Rr](?:[Ee](?:[Aa](?:[Ll](?:))|[Ff](?:[Ee](?:[Rr](?:[Ee](?:[Nn](?:[Cc](?:[Ee](?:[Ss](?:))))))))|[Tt](?:[Uu](?:[Rr](?:[Nn](?:[Ii](?:[Nn](?:[Gg](?:))))))))|[Ii](?:[Gg](?:[Hh](?:[Tt](?:))))|[Oo](?:[Ww](?:)))|[Ss](?:[Ee](?:[Ll](?:[Ee](?:[Cc](?:[Tt](?:))))|[Mm](?:[Ii](?:))|[Tt](?:[Oo](?:[Ff](?:))))|[Hh](?:[Oo](?:[Ww](?:)))|[Ii](?:[Mm](?:[Ii](?:[Ll](?:[Aa](?:[Rr](?:))))))|[Mm](?:[Aa](?:[Ll](?:[Ll](?:[Ii](?:[Nn](?:[Tt](?:)))))))|[Oo](?:[Mm](?:[Ee](?:)))|[Tt](?:[Rr](?:[Uu](?:[Cc](?:[Tt](?:)))))|[Uu](?:[Bb](?:[Ss](?:[Tt](?:[Rr](?:[Ii](?:[Nn](?:[Gg](?:)))))))|[Mm](?:[Mm](?:[Aa](?:[Rr](?:[Ii](?:[Zz](?:[Ee](?:))))))))|[Yy](?:[Mm](?:[Mm](?:[Ee](?:[Tt](?:[Rr](?:[Ii](?:[Cc](?:)))))))))|[Tt](?:[Aa](?:[Bb](?:[Ll](?:[Ee](?:[Ss](?:[Aa](?:[Mm](?:[Pp](?:[Ll](?:[Ee](?:))))))))))|[Hh](?:[Ee](?:[Nn](?:)))|[Ii](?:[Mm](?:[Ee](?:[Ss](?:[Tt](?:[Aa](?:[Mm](?:[Pp](?:))))))))|[Oo](?:)|[Rr](?:[Aa](?:[Ii](?:[Ll](?:[Ii](?:[Nn](?:[Gg](?:))))))|[Ee](?:[Aa](?:[Tt](?:)))|[Ii](?:[Mm](?:))|[Uu](?:[Ee](?:))|[Yy](?:[__](?:[Cc](?:[Aa](?:[Ss](?:[Tt](?:))))))))|[Uu](?:[Nn](?:[Ii](?:[Oo](?:[Nn](?:))|[Qq](?:[Uu](?:[Ee](?:))))|[Pp](?:[Aa](?:[Cc](?:[Kk](?:)))|[Ii](?:[Vv](?:[Oo](?:[Tt](?:))))))|[Ss](?:[Ii](?:[Nn](?:[Gg](?:)))))|[Vv](?:[Aa](?:[Ll](?:[Uu](?:[Ee](?:[Ss](?:))))|[Rr](?:[Cc](?:[Hh](?:[Aa](?:[Rr](?:))))|[Ii](?:[Aa](?:[Dd](?:[Ii](?:[Cc](?:)))))))|[Ee](?:[Rr](?:[Bb](?:[Oo](?:[Ss](?:[Ee](?:)))))))|[Ww](?:[Hh](?:[Ee](?:[Nn](?:)|[Rr](?:[Ee](?:))))|[Ii](?:[Nn](?:[Dd](?:[Oo](?:[Ww](?:))))|[Tt](?:[Hh](?:))))|[Xx](?:[Mm](?:[Ll](?:[Aa](?:[Tt](?:[Tt](?:[Rr](?:[Ii](?:[Bb](?:[Uu](?:[Tt](?:[Ee](?:[Ss](?:))))))))))|[Cc](?:[Oo](?:[Nn](?:[Cc](?:[Aa](?:[Tt](?:))))))|[Ee](?:[Ll](?:[Ee](?:[Mm](?:[Ee](?:[Nn](?:[Tt](?:))))))|[Xx](?:[Ii](?:[Ss](?:[Tt](?:[Ss](?:))))))|[Ff](?:[Oo](?:[Rr](?:[Ee](?:[Ss](?:[Tt](?:))))))|[Nn](?:[Aa](?:[Mm](?:[Ee](?:[Ss](?:[Pp](?:[Aa](?:[Cc](?:[Ee](?:[Ss](?:))))))))))|[Pp](?:[Aa](?:[Rr](?:[Ss](?:[Ee](?:))))|[Ii](?:))|[Rr](?:[Oo](?:[Oo](?:[Tt](?:))))|[Ss](?:[Ee](?:[Rr](?:[Ii](?:[Aa](?:[Ll](?:[Ii](?:[Zz](?:[Ee](?:)))))))))|[Tt](?:[Aa](?:[Bb](?:[Ll](?:[Ee](?:))))))))))(?:\b))|(?<number>\d+(\.\d*)?|\.\d+)|(?<string>(?:')(?:(?:')(?:(?:'))|(?!')(?:[\s\S]))*(?:'))|(?<multiLineComment>(?:\/\*)(?:(?!\*\/)(?:[\s\S]))*(?:\*\/))|(?<singleLineComment>(?:\x2d\x2d)(?:(?!\n)(?:[\s\S]))*(?=\n))|(?<punctuation>[\(\)\{\}\.\:;,\-\+<>=\*])|(?<quotedIdentifier>(?:")(?:(?:")(?:(?:"))|(?!")(?:[\s\S]))+(?:"))|(?<identifier>\w+)|(?<whitespace>\s+)/gm;
var match;
while (match = re.exec(manySql));
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.