ChengLei Shao 4f87de7da5
feat: database view collection (#1587)
* test: create view collection

* feat: view collection class

* feat: list view

* chore: skip sync view collection

* test: should create view collection in difference schema

* test: create view collection in collection manager

* feat: create view collection by user sql

* test: view resourcer

* feat: view collection

* feat: view collection cannot be added, deleted, or modified

* feat: view collection cannot be added, deleted, or modified

* feat: view collection cannot be added, deleted, or modified

* feat: view collection cannot be added, deleted, or modified

* refactor: connect to database view

* refactor: sync from database

* chore: rename list view sql

* chore: list view fields api

* chore: create collection without viewName

* feat: bring out fields when selecting a view

* chore: bring out fields when selecting a view

* feat: view field inference class

* chore: bring out fields when selecting a view

* chore: sync form database view

* chore: sync form database view

* refactor: view collection local

* feat: view get api

* feat: database type infer

* feat: integer map

* chore: remove from in view list

* chore: build error

* chore: uniq collection

* fix: typo

* chore: replace collection list source field

* fix: destroy view collection

* chore: timestamp field map

* refactor: interface avalableTypes

* refactor: interface avalableTypes

* chore: list fields test

* refactor: interface avalableTypes

* chore: uiSchema response in field source

* fix: view query

* chore: collection snippet

* refactor: view collection support preview

* fix: handle field source

* fix: typo

* fix: configure fileds title

* fix: configure fileds title

* fix: configure fileds title

* fix: sync from databse interface

* fix: sync from databse interface

* feat: set fields api

* fix: sync from databse fix

* feat: possibleTypes

* chore: fields get

* fix: sync from databse

* fix: list view test

* fix: view test in difference schema

* chore: comment

* feat: when there is only one source  collection, the view is a subset of a Collection

* feat: view collection add field

* fix: inherit query with schema

* fix: test

* fix: ci test

* fix: test with schema

* chore: set pg default search path

* chore: mysql test

* fix: test with schema

* chore: test

* chore: action test

* chore: view column usage return type

* feat: mysql field inference

* fix: tableName

* chore: node sql parser

* fix: sql build

* fix: database build

* fix: mysql test

* feat: view collection uiSchema title

* fix: incorrect field source display  when switching views

* refactor: view collection not allow modify

* fix: view collection is allow add, delete, and modify

* fix: mysql test

* fix: sqlite test

* fix: sqlite test

* fix: sqlite test

* fix: sqlite test

* chore: add id field as default target key

* style: style improve

* feat: load source field options

* style: style improve

* chore: disable remove column in view collection

* chore: support creating view collection with different schemas with the same name

* chore: support creating view collection with different schemas with the same name

* fix: query view in difference schema

* refactor: view collection viewname

* fix: query view collection in difference schema

* fix: field load

* chore: field options

* fix: mysql test

* fix: uiSchema component error when using a view field in a block

* fix: sqlite test

* chore: test

* fix: dump user views

* fix: view collection can be updated and edited in table block

* chore: sync from database display last field configuration

* chore: loadCollections

* chore: sync from database display last field configuration

* fix: field options merge issues

* style: preview table

* fix: view collection is allow using in kanban blocks

* refactor: code improve

* fix: view collection can be updated an edited in calendar block

* chore: disable infer field without interface

* feat: preview only shows source or interface fields

* fix: test

* refactor: locale

* feat: sql parser

* chore: remove node-sql-parser

* fix: yarn.lock

* test: view repository

* fix: view repository test

* chore: console.log

* chore: console.log

* fix: mysql without schema

* fix: mysql without schema

* chore: preview with field schema

* chore: tableActionInitializers

* style: preview style improve

* chore:  parameter is filter when there is no filterByTk

* fix: preview pagination

* fix: preview pagination

* style: preview table style improve

* fix: sync from database loading

* chore: preview performance optimization

* chore: preview performance optimization

* feat: limit & offset

* chore: preview performance optimization

* test: field with dot column

* fix: datetime interface display

* fix: missing boolean type

* fix: sync

* fix: sync from database

* style: style improve

* style: style improve

* style: style improve

* chore: preview table

* chore: preview table

* chore: preview table

* fix: styling

---------

Co-authored-by: katherinehhh <katherine_15995@163.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-04-01 21:56:01 +08:00

10699 lines
249 KiB
JavaScript

// Generated by Peggy 3.0.2.
//
// https://peggyjs.org/
"use strict";
function peg$subclass(child, parent) {
function C() { this.constructor = child; }
C.prototype = parent.prototype;
child.prototype = new C();
}
function peg$SyntaxError(message, expected, found, location) {
var self = Error.call(this, message);
// istanbul ignore next Check is a necessary evil to support older environments
if (Object.setPrototypeOf) {
Object.setPrototypeOf(self, peg$SyntaxError.prototype);
}
self.expected = expected;
self.found = found;
self.location = location;
self.name = "SyntaxError";
return self;
}
peg$subclass(peg$SyntaxError, Error);
function peg$padEnd(str, targetLength, padString) {
padString = padString || " ";
if (str.length > targetLength) { return str; }
targetLength -= str.length;
padString += padString.repeat(targetLength);
return str + padString.slice(0, targetLength);
}
peg$SyntaxError.prototype.format = function(sources) {
var str = "Error: " + this.message;
if (this.location) {
var src = null;
var k;
for (k = 0; k < sources.length; k++) {
if (sources[k].source === this.location.source) {
src = sources[k].text.split(/\r\n|\n|\r/g);
break;
}
}
var s = this.location.start;
var offset_s = (this.location.source && (typeof this.location.source.offset === "function"))
? this.location.source.offset(s)
: s;
var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column;
if (src) {
var e = this.location.end;
var filler = peg$padEnd("", offset_s.line.toString().length, ' ');
var line = src[s.line - 1];
var last = s.line === e.line ? e.column : line.length + 1;
var hatLen = (last - s.column) || 1;
str += "\n --> " + loc + "\n"
+ filler + " |\n"
+ offset_s.line + " | " + line + "\n"
+ filler + " | " + peg$padEnd("", s.column - 1, ' ')
+ peg$padEnd("", hatLen, "^");
} else {
str += "\n at " + loc;
}
}
return str;
};
peg$SyntaxError.buildMessage = function(expected, found) {
var DESCRIBE_EXPECTATION_FNS = {
literal: function(expectation) {
return "\"" + literalEscape(expectation.text) + "\"";
},
class: function(expectation) {
var escapedParts = expectation.parts.map(function(part) {
return Array.isArray(part)
? classEscape(part[0]) + "-" + classEscape(part[1])
: classEscape(part);
});
return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";
},
any: function() {
return "any character";
},
end: function() {
return "end of input";
},
other: function(expectation) {
return expectation.description;
}
};
function hex(ch) {
return ch.charCodeAt(0).toString(16).toUpperCase();
}
function literalEscape(s) {
return s
.replace(/\\/g, "\\\\")
.replace(/"/g, "\\\"")
.replace(/\0/g, "\\0")
.replace(/\t/g, "\\t")
.replace(/\n/g, "\\n")
.replace(/\r/g, "\\r")
.replace(/[\x00-\x0F]/g, function(ch) { return "\\x0" + hex(ch); })
.replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return "\\x" + hex(ch); });
}
function classEscape(s) {
return s
.replace(/\\/g, "\\\\")
.replace(/\]/g, "\\]")
.replace(/\^/g, "\\^")
.replace(/-/g, "\\-")
.replace(/\0/g, "\\0")
.replace(/\t/g, "\\t")
.replace(/\n/g, "\\n")
.replace(/\r/g, "\\r")
.replace(/[\x00-\x0F]/g, function(ch) { return "\\x0" + hex(ch); })
.replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return "\\x" + hex(ch); });
}
function describeExpectation(expectation) {
return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
}
function describeExpected(expected) {
var descriptions = expected.map(describeExpectation);
var i, j;
descriptions.sort();
if (descriptions.length > 0) {
for (i = 1, j = 1; i < descriptions.length; i++) {
if (descriptions[i - 1] !== descriptions[i]) {
descriptions[j] = descriptions[i];
j++;
}
}
descriptions.length = j;
}
switch (descriptions.length) {
case 1:
return descriptions[0];
case 2:
return descriptions[0] + " or " + descriptions[1];
default:
return descriptions.slice(0, -1).join(", ")
+ ", or "
+ descriptions[descriptions.length - 1];
}
}
function describeFound(found) {
return found ? "\"" + literalEscape(found) + "\"" : "end of input";
}
return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
};
function peg$parse(input, options) {
options = options !== undefined ? options : {};
var peg$FAILED = {};
var peg$source = options.grammarSource;
var peg$startRuleFunctions = { start: peg$parsestart };
var peg$startRuleFunction = peg$parsestart;
var peg$c0 = "(";
var peg$c1 = ")";
var peg$c2 = "=";
var peg$c3 = "!";
var peg$c4 = ">=";
var peg$c5 = ">";
var peg$c6 = "<=";
var peg$c7 = "<>";
var peg$c8 = "<";
var peg$c9 = "!=";
var peg$c10 = "+";
var peg$c11 = "-";
var peg$c12 = "*";
var peg$c13 = "/";
var peg$c14 = "%";
var peg$c15 = "\"";
var peg$c16 = "'";
var peg$c17 = "`";
var peg$c18 = ":";
var peg$c19 = "\\'";
var peg$c20 = "\\\"";
var peg$c21 = "\\\\";
var peg$c22 = "\\/";
var peg$c23 = "\\b";
var peg$c24 = "\\f";
var peg$c25 = "\\n";
var peg$c26 = "\\r";
var peg$c27 = "\\t";
var peg$c28 = "\\u";
var peg$c29 = ".";
var peg$c30 = "null";
var peg$c31 = "true";
var peg$c32 = "false";
var peg$c33 = "show";
var peg$c34 = "drop";
var peg$c35 = "select";
var peg$c36 = "update";
var peg$c37 = "create";
var peg$c38 = "delete";
var peg$c39 = "insert";
var peg$c40 = "RECURSIVE";
var peg$c41 = "replace";
var peg$c42 = "explain";
var peg$c43 = "into";
var peg$c44 = "from";
var peg$c45 = "set";
var peg$c46 = "as";
var peg$c47 = "table";
var peg$c48 = "on";
var peg$c49 = "left";
var peg$c50 = "right";
var peg$c51 = "full";
var peg$c52 = "inner";
var peg$c53 = "join";
var peg$c54 = "outer";
var peg$c55 = "union";
var peg$c56 = "values";
var peg$c57 = "using";
var peg$c58 = "where";
var peg$c59 = "with";
var peg$c60 = "group";
var peg$c61 = "by";
var peg$c62 = "order";
var peg$c63 = "having";
var peg$c64 = "limit";
var peg$c65 = "asc";
var peg$c66 = "desc";
var peg$c67 = "all";
var peg$c68 = "distinct";
var peg$c69 = "between";
var peg$c70 = "in";
var peg$c71 = "is";
var peg$c72 = "like";
var peg$c73 = "exists";
var peg$c74 = "not";
var peg$c75 = "and";
var peg$c76 = "or";
var peg$c77 = "count";
var peg$c78 = "max";
var peg$c79 = "min";
var peg$c80 = "sum";
var peg$c81 = "avg";
var peg$c82 = "case";
var peg$c83 = "when";
var peg$c84 = "then";
var peg$c85 = "else";
var peg$c86 = "end";
var peg$c87 = "cast";
var peg$c88 = "char";
var peg$c89 = "varchar";
var peg$c90 = "numeric";
var peg$c91 = "decimal";
var peg$c92 = "signed";
var peg$c93 = "unsigned";
var peg$c94 = "int";
var peg$c95 = "integer";
var peg$c96 = "json";
var peg$c97 = "smallint";
var peg$c98 = "date";
var peg$c99 = "time";
var peg$c100 = "timestamp";
var peg$c101 = "user";
var peg$c102 = "current_date";
var peg$c103 = "adddate";
var peg$c104 = "interval";
var peg$c105 = "year";
var peg$c106 = "month";
var peg$c107 = "day";
var peg$c108 = "hour";
var peg$c109 = "minute";
var peg$c110 = "second";
var peg$c111 = "current_time";
var peg$c112 = "current_timestamp";
var peg$c113 = "current_user";
var peg$c114 = "session_user";
var peg$c115 = "system_user";
var peg$c116 = "$";
var peg$c117 = "return";
var peg$c118 = ":=";
var peg$c119 = "dual";
var peg$c120 = "sql_calc_found_rows";
var peg$c121 = "sql_cache";
var peg$c122 = "sql_no_cache";
var peg$c123 = "sql_small_result";
var peg$c124 = "sql_big_result";
var peg$c125 = "sql_buffer_result";
var peg$c126 = ",";
var peg$c127 = "[";
var peg$c128 = "]";
var peg$c129 = ";";
var peg$c130 = "/*";
var peg$c131 = "*/";
var peg$c132 = "--";
var peg$r0 = /^[^"]/;
var peg$r1 = /^[^']/;
var peg$r2 = /^[^`]/;
var peg$r3 = /^[A-Za-z_]/;
var peg$r4 = /^[A-Za-z0-9_]/;
var peg$r5 = /^[A-Za-z0-9_:]/;
var peg$r6 = /^[^"\\\0-\x1F\x7F]/;
var peg$r7 = /^[^'\\\0-\x1F\x7F]/;
var peg$r8 = /^[\n\r]/;
var peg$r9 = /^[0-9]/;
var peg$r10 = /^[1-9]/;
var peg$r11 = /^[0-9a-fA-F]/;
var peg$r12 = /^[eE]/;
var peg$r13 = /^[+\-]/;
var peg$r14 = /^[ \t\n\r]/;
var peg$e0 = peg$literalExpectation("(", false);
var peg$e1 = peg$literalExpectation(")", false);
var peg$e2 = peg$literalExpectation("=", false);
var peg$e3 = peg$literalExpectation("!", false);
var peg$e4 = peg$literalExpectation(">=", false);
var peg$e5 = peg$literalExpectation(">", false);
var peg$e6 = peg$literalExpectation("<=", false);
var peg$e7 = peg$literalExpectation("<>", false);
var peg$e8 = peg$literalExpectation("<", false);
var peg$e9 = peg$literalExpectation("!=", false);
var peg$e10 = peg$literalExpectation("+", false);
var peg$e11 = peg$literalExpectation("-", false);
var peg$e12 = peg$literalExpectation("*", false);
var peg$e13 = peg$literalExpectation("/", false);
var peg$e14 = peg$literalExpectation("%", false);
var peg$e15 = peg$literalExpectation("\"", false);
var peg$e16 = peg$classExpectation(["\""], true, false);
var peg$e17 = peg$literalExpectation("'", false);
var peg$e18 = peg$classExpectation(["'"], true, false);
var peg$e19 = peg$literalExpectation("`", false);
var peg$e20 = peg$classExpectation(["`"], true, false);
var peg$e21 = peg$classExpectation([["A", "Z"], ["a", "z"], "_"], false, false);
var peg$e22 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], "_"], false, false);
var peg$e23 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], "_", ":"], false, false);
var peg$e24 = peg$literalExpectation(":", false);
var peg$e25 = peg$classExpectation(["\"", "\\", ["\0", "\x1F"], "\x7F"], true, false);
var peg$e26 = peg$classExpectation(["'", "\\", ["\0", "\x1F"], "\x7F"], true, false);
var peg$e27 = peg$literalExpectation("\\'", false);
var peg$e28 = peg$literalExpectation("\\\"", false);
var peg$e29 = peg$literalExpectation("\\\\", false);
var peg$e30 = peg$literalExpectation("\\/", false);
var peg$e31 = peg$literalExpectation("\\b", false);
var peg$e32 = peg$literalExpectation("\\f", false);
var peg$e33 = peg$literalExpectation("\\n", false);
var peg$e34 = peg$literalExpectation("\\r", false);
var peg$e35 = peg$literalExpectation("\\t", false);
var peg$e36 = peg$literalExpectation("\\u", false);
var peg$e37 = peg$classExpectation(["\n", "\r"], false, false);
var peg$e38 = peg$literalExpectation(".", false);
var peg$e39 = peg$classExpectation([["0", "9"]], false, false);
var peg$e40 = peg$classExpectation([["1", "9"]], false, false);
var peg$e41 = peg$classExpectation([["0", "9"], ["a", "f"], ["A", "F"]], false, false);
var peg$e42 = peg$classExpectation(["e", "E"], false, false);
var peg$e43 = peg$classExpectation(["+", "-"], false, false);
var peg$e44 = peg$literalExpectation("NULL", true);
var peg$e45 = peg$literalExpectation("TRUE", true);
var peg$e46 = peg$literalExpectation("FALSE", true);
var peg$e47 = peg$literalExpectation("SHOW", true);
var peg$e48 = peg$literalExpectation("DROP", true);
var peg$e49 = peg$literalExpectation("SELECT", true);
var peg$e50 = peg$literalExpectation("UPDATE", true);
var peg$e51 = peg$literalExpectation("CREATE", true);
var peg$e52 = peg$literalExpectation("DELETE", true);
var peg$e53 = peg$literalExpectation("INSERT", true);
var peg$e54 = peg$literalExpectation("RECURSIVE", false);
var peg$e55 = peg$literalExpectation("REPLACE", true);
var peg$e56 = peg$literalExpectation("EXPLAIN", true);
var peg$e57 = peg$literalExpectation("INTO", true);
var peg$e58 = peg$literalExpectation("FROM", true);
var peg$e59 = peg$literalExpectation("SET", true);
var peg$e60 = peg$literalExpectation("AS", true);
var peg$e61 = peg$literalExpectation("TABLE", true);
var peg$e62 = peg$literalExpectation("ON", true);
var peg$e63 = peg$literalExpectation("LEFT", true);
var peg$e64 = peg$literalExpectation("RIGHT", true);
var peg$e65 = peg$literalExpectation("FULL", true);
var peg$e66 = peg$literalExpectation("INNER", true);
var peg$e67 = peg$literalExpectation("JOIN", true);
var peg$e68 = peg$literalExpectation("OUTER", true);
var peg$e69 = peg$literalExpectation("UNION", true);
var peg$e70 = peg$literalExpectation("VALUES", true);
var peg$e71 = peg$literalExpectation("USING", true);
var peg$e72 = peg$literalExpectation("WHERE", true);
var peg$e73 = peg$literalExpectation("WITH", true);
var peg$e74 = peg$literalExpectation("GROUP", true);
var peg$e75 = peg$literalExpectation("BY", true);
var peg$e76 = peg$literalExpectation("ORDER", true);
var peg$e77 = peg$literalExpectation("HAVING", true);
var peg$e78 = peg$literalExpectation("LIMIT", true);
var peg$e79 = peg$literalExpectation("ASC", true);
var peg$e80 = peg$literalExpectation("DESC", true);
var peg$e81 = peg$literalExpectation("ALL", true);
var peg$e82 = peg$literalExpectation("DISTINCT", true);
var peg$e83 = peg$literalExpectation("BETWEEN", true);
var peg$e84 = peg$literalExpectation("IN", true);
var peg$e85 = peg$literalExpectation("IS", true);
var peg$e86 = peg$literalExpectation("LIKE", true);
var peg$e87 = peg$literalExpectation("EXISTS", true);
var peg$e88 = peg$literalExpectation("NOT", true);
var peg$e89 = peg$literalExpectation("AND", true);
var peg$e90 = peg$literalExpectation("OR", true);
var peg$e91 = peg$literalExpectation("COUNT", true);
var peg$e92 = peg$literalExpectation("MAX", true);
var peg$e93 = peg$literalExpectation("MIN", true);
var peg$e94 = peg$literalExpectation("SUM", true);
var peg$e95 = peg$literalExpectation("AVG", true);
var peg$e96 = peg$literalExpectation("CASE", true);
var peg$e97 = peg$literalExpectation("WHEN", true);
var peg$e98 = peg$literalExpectation("THEN", true);
var peg$e99 = peg$literalExpectation("ELSE", true);
var peg$e100 = peg$literalExpectation("END", true);
var peg$e101 = peg$literalExpectation("CAST", true);
var peg$e102 = peg$literalExpectation("CHAR", true);
var peg$e103 = peg$literalExpectation("VARCHAR", true);
var peg$e104 = peg$literalExpectation("NUMERIC", true);
var peg$e105 = peg$literalExpectation("DECIMAL", true);
var peg$e106 = peg$literalExpectation("SIGNED", true);
var peg$e107 = peg$literalExpectation("UNSIGNED", true);
var peg$e108 = peg$literalExpectation("INT", true);
var peg$e109 = peg$literalExpectation("INTEGER", true);
var peg$e110 = peg$literalExpectation("JSON", true);
var peg$e111 = peg$literalExpectation("SMALLINT", true);
var peg$e112 = peg$literalExpectation("DATE", true);
var peg$e113 = peg$literalExpectation("TIME", true);
var peg$e114 = peg$literalExpectation("TIMESTAMP", true);
var peg$e115 = peg$literalExpectation("USER", true);
var peg$e116 = peg$literalExpectation("CURRENT_DATE", true);
var peg$e117 = peg$literalExpectation("ADDDATE", true);
var peg$e118 = peg$literalExpectation("INTERVAL", true);
var peg$e119 = peg$literalExpectation("YEAR", true);
var peg$e120 = peg$literalExpectation("MONTH", true);
var peg$e121 = peg$literalExpectation("DAY", true);
var peg$e122 = peg$literalExpectation("HOUR", true);
var peg$e123 = peg$literalExpectation("MINUTE", true);
var peg$e124 = peg$literalExpectation("SECOND", true);
var peg$e125 = peg$literalExpectation("CURRENT_TIME", true);
var peg$e126 = peg$literalExpectation("CURRENT_TIMESTAMP", true);
var peg$e127 = peg$literalExpectation("CURRENT_USER", true);
var peg$e128 = peg$literalExpectation("SESSION_USER", true);
var peg$e129 = peg$literalExpectation("SYSTEM_USER", true);
var peg$e130 = peg$literalExpectation("$", false);
var peg$e131 = peg$literalExpectation("return", true);
var peg$e132 = peg$literalExpectation(":=", false);
var peg$e133 = peg$literalExpectation("DUAL", true);
var peg$e134 = peg$literalExpectation("SQL_CALC_FOUND_ROWS", true);
var peg$e135 = peg$literalExpectation("SQL_CACHE", true);
var peg$e136 = peg$literalExpectation("SQL_NO_CACHE", true);
var peg$e137 = peg$literalExpectation("SQL_SMALL_RESULT", true);
var peg$e138 = peg$literalExpectation("SQL_BIG_RESULT", true);
var peg$e139 = peg$literalExpectation("SQL_BUFFER_RESULT", true);
var peg$e140 = peg$literalExpectation(",", false);
var peg$e141 = peg$literalExpectation("[", false);
var peg$e142 = peg$literalExpectation("]", false);
var peg$e143 = peg$literalExpectation(";", false);
var peg$e144 = peg$literalExpectation("/*", false);
var peg$e145 = peg$literalExpectation("*/", false);
var peg$e146 = peg$literalExpectation("--", false);
var peg$e147 = peg$anyExpectation();
var peg$e148 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false);
var peg$f0 = function(head, tail) {
const cur = [head && head.ast || head];
for (let i = 0; i < tail.length; i++) {
if(!tail[i][3] || tail[i][3].length === 0) continue;
cur.push(tail[i][3] && tail[i][3].ast || tail[i][3]);
}
return {
tableList: Array.from(tableList),
columnList: Array.from(columnList),
ast: cur
}
};
var peg$f1 = function(head, tail) {
let cur = head;
for (let i = 0; i < tail.length; i++) {
cur._next = tail[i][3];
cur = cur._next
}
return {
tableList: Array.from(tableList),
columnList: Array.from(columnList),
ast: head
}
};
var peg$f2 = function(s) {
return s[2];
};
var peg$f3 = function(head, tail) {
return createList(head, tail);
};
var peg$f4 = function(cte) {
cte.recursive = true;
return [cte]
};
var peg$f5 = function(name, columns, stmt) {
return { name, stmt, columns };
};
var peg$f6 = function(head, tail) {
return createList(head, tail);
};
var peg$f7 = function(cte, opts, d, c, f, w, g, h, o, l) {
if(f) f.forEach(info => info.table && tableList.add(`select::${info.db}::${info.table}`));
return {
with: cte,
type: 'select',
options: opts,
distinct: d,
columns: c,
from: f,
where: w,
groupby: g,
having: h,
orderby: o,
limit: l
};
};
var peg$f8 = function(head, tail) {
const opts = [head];
for (let i = 0, l = tail.length; i < l; ++i) {
opts.push(tail[i][1]);
}
return opts;
};
var peg$f9 = function(option) { return option; };
var peg$f10 = function() {
columnList.add('select::null::(.*)');
return '*';
};
var peg$f11 = function(head, tail) {
return createList(head, tail);
};
var peg$f12 = function(tbl) {
columnList.add(`select::${tbl}::(.*)`);
return {
expr: {
type: 'column_ref',
table: tbl,
column: '*'
},
as: null
};
};
var peg$f13 = function(e, alias) {
return { expr: e, as: alias };
};
var peg$f14 = function(i) { return i; };
var peg$f15 = function(i) { return i; };
var peg$f16 = function(l) { return l; };
var peg$f17 = function(head, tail) {
tail.unshift(head);
return tail;
};
var peg$f18 = function(t) { return t; };
var peg$f19 = function(t) { return t; };
var peg$f20 = function(op, t, head, tail) {
t.join = op;
t.using = createList(head, tail);
return t;
};
var peg$f21 = function(op, t, expr) {
t.join = op;
t.on = expr;
return t;
};
var peg$f22 = function(op, stmt, alias, expr) {
stmt.parentheses = true;
return {
expr: stmt,
as: alias,
join: op,
on: expr
};
};
var peg$f23 = function() {
return {
type: 'dual'
};
};
var peg$f24 = function(t, alias) {
if (t.type === 'var') {
t.as = alias;
return t;
} else {
return {
db: t.db,
table: t.table,
as: alias
};
}
};
var peg$f25 = function(stmt, alias) {
stmt.parentheses = true;
return {
expr: stmt,
as: alias
};
};
var peg$f26 = function() { return 'LEFT JOIN'; };
var peg$f27 = function() { return 'RIGHT JOIN'; };
var peg$f28 = function() { return 'FULL JOIN'; };
var peg$f29 = function() { return 'INNER JOIN'; };
var peg$f30 = function(dt, tail) {
const obj = { db: null, table: dt };
if (tail !== null) {
obj.db = dt;
obj.table = tail[3];
}
return obj;
};
var peg$f31 = function(v) {
v.db = null;
v.table = v.name;
return v;
};
var peg$f32 = function(e) { return e; };
var peg$f33 = function(e) { return e; };
var peg$f34 = function(l) { return l; };
var peg$f35 = function(head, tail) {
return createList(head, tail);
};
var peg$f36 = function(e) { return e; };
var peg$f37 = function(l) { return l; };
var peg$f38 = function(head, tail) {
return createList(head, tail);
};
var peg$f39 = function(e, d) {
const obj = { expr: e, type: 'ASC' };
if (d === 'DESC') obj.type = 'DESC';
return obj;
};
var peg$f40 = function(i1, tail) {
const res = [i1];
if (tail === null) res.unshift({ type: 'number', value: 0 });
else res.push(tail[2]);
return res;
};
var peg$f41 = function(t, l, w) {
if(t.table) tableList.add(`update::${t.db}::${t.table}`);
if(l) l.forEach(col => columnList.add(`update::${t.table}::${col.column}`));
return {
tableList: Array.from(tableList),
columnList: Array.from(columnList),
ast: {
type: 'update',
db: t.db,
table: t.table,
set: l,
where: w
}
};
};
var peg$f42 = function(t, f, w) {
if(f) f.forEach(info => {
info.table && tableList.add(`delete::${info.db}::${info.table}`);
columnList.add(`delete::${info.table}::(.*)`);
});
return {
tableList: Array.from(tableList),
columnList: Array.from(columnList),
ast: {
type: 'delete',
tables: t,
from: f,
where: w
}
};
};
var peg$f43 = function(head, tail) {
return createList(head, tail);
};
var peg$f44 = function(tbl, c, v) {
return { column: c, value: v, table: tbl && tbl[0] };
};
var peg$f45 = function(ri, t, c, v) {
if (t.table) tableList.add(`insert::${t.db}::${t.table}`);
if (c) c.forEach(c => columnList.add(`insert::${t.table}::${c}`));
return {
tableList: Array.from(tableList),
columnList: Array.from(columnList),
ast: {
type: ri,
db: t.db,
table: t.table,
columns: c,
values: v
}
};
};
var peg$f46 = function(ri, t, v) {
if (t.table) tableList.add(`insert::${t.db}::${t.table}`);
columnList.add(`insert::${t.table}::(.*)`);
return {
tableList: Array.from(tableList),
columnList: Array.from(columnList),
ast: {
type: ri,
db: t.db,
table: t.table,
columns: null,
values: v
}
};
};
var peg$f47 = function() { return 'insert'; };
var peg$f48 = function() { return 'replace'; };
var peg$f49 = function(l) { return l; };
var peg$f50 = function(head, tail) {
return createList(head, tail);
};
var peg$f51 = function(l) {
return l;
};
var peg$f52 = function(head, tail) {
const el = { type: 'expr_list' };
el.value = createList(head, tail);
return el;
};
var peg$f53 = function(n, u) {
return {
type: 'interval',
value: [n, u]
}
};
var peg$f54 = function(expr, condition_list, otherwise) {
if (otherwise) condition_list.push(otherwise);
return {
type: 'case',
expr: expr || null,
args: condition_list
};
};
var peg$f55 = function(condition, result) {
return {
type: 'when',
cond: condition,
result: result
};
};
var peg$f56 = function(result) {
return { type: 'else', result: result };
};
var peg$f57 = function(head, tail) {
return createBinaryExprChain(head, tail);
};
var peg$f58 = function(head, tail) {
return createBinaryExprChain(head, tail);
};
var peg$f59 = function(expr) {
return createUnaryExpr('NOT', expr);
};
var peg$f60 = function(left, rh) {
if (rh === null) return left;
else if (rh.type === 'arithmetic') return createBinaryExprChain(left, rh.tail);
else return createBinaryExpr(rh.op, left, rh.right);
};
var peg$f61 = function(op, stmt) {
stmt.parentheses = true;
return createUnaryExpr(op, stmt);
};
var peg$f62 = function(nk) { return nk[0] + ' ' + nk[2]; };
var peg$f63 = function(l) {
return { type: 'arithmetic', tail: l };
};
var peg$f64 = function(right) {
return { op: 'IS', right: right };
};
var peg$f65 = function(right) {
return { op: 'IS NOT', right: right };
};
var peg$f66 = function(op, begin, end) {
return {
op: op,
right: {
type: 'expr_list',
value: [begin, end]
}
};
};
var peg$f67 = function(nk) { return nk[0] + ' ' + nk[2]; };
var peg$f68 = function(nk) { return nk[0] + ' ' + nk[2]; };
var peg$f69 = function(nk) { return nk[0] + ' ' + nk[2]; };
var peg$f70 = function(op, right) {
return { op: op, right: right };
};
var peg$f71 = function(op, l) {
return { op: op, right: l };
};
var peg$f72 = function(op, e) {
return { op: op, right: e };
};
var peg$f73 = function(head, tail) {
return createBinaryExprChain(head, tail);
};
var peg$f74 = function(head, tail) {
return createBinaryExprChain(head, tail)
};
var peg$f75 = function(e) {
e.parentheses = true;
return e;
};
var peg$f76 = function(list) {
list.parentheses = true;
return list;
};
var peg$f77 = function(tbl, col) {
columnList.add(`select::${tbl}::${col}`);
return {
type: 'column_ref',
table: tbl,
column: col
};
};
var peg$f78 = function(col) {
columnList.add(`select::null::${col}`);
return {
type: 'column_ref',
table: null,
column: col
};
};
var peg$f79 = function(head, tail) {
return createList(head, tail);
};
var peg$f80 = function(name) { return reservedMap[name.toUpperCase()] === true; };
var peg$f81 = function(name) {
return name;
};
var peg$f82 = function(name) {
return name;
};
var peg$f83 = function(name) {
if (reservedMap[name.toUpperCase()] === true) throw new Error("Error: "+ JSON.stringify(name)+" is a reserved word, can not as alias clause");
return false
};
var peg$f84 = function(name) {
return name;
};
var peg$f85 = function(name) {
return name;
};
var peg$f86 = function(chars) { return chars.join(''); };
var peg$f87 = function(chars) { return chars.join(''); };
var peg$f88 = function(chars) { return chars.join(''); };
var peg$f89 = function(name) { return reservedMap[name.toUpperCase()] === true; };
var peg$f90 = function(name) { return name; };
var peg$f91 = function(start, parts) { return start + parts.join(''); };
var peg$f92 = function(start, parts) { return start + parts.join(''); };
var peg$f93 = function(l) {
return { type: 'param', value: l[1] };
};
var peg$f94 = function(name, e) {
return {
type: 'aggr_func',
name: name,
args: {
expr: e
}
};
};
var peg$f95 = function(name, arg) {
return {
type: 'aggr_func',
name: name,
args: arg
};
};
var peg$f96 = function(e) { return { expr: e }; };
var peg$f97 = function(d, c) { return { distinct: d, expr: c }; };
var peg$f98 = function() { return { type: 'star', value: '*' }; };
var peg$f99 = function(name, l) {
return {
type: 'function',
name: name,
args: l ? l: { type: 'expr_list', value: [] }
};
};
var peg$f100 = function(name) {
return {
type: 'function',
name: name,
args: { type: 'expr_list', value: [] }
};
};
var peg$f101 = function(e, t) {
return {
type: 'cast',
expr: e,
target: t
};
};
var peg$f102 = function(e, precision) {
return {
type: 'cast',
expr: e,
target: {
dataType: 'DECIMAL(' + precision + ')'
}
};
};
var peg$f103 = function(e, precision, scale) {
return {
type: 'cast',
expr: e,
target: {
dataType: 'DECIMAL(' + precision + ', ' + scale + ')'
}
};
};
var peg$f104 = function(e, s, t) { /* MySQL cast to un-/signed integer */
return {
type: 'cast',
expr: e,
target: {
dataType: s + (t ? ' ' + t: '')
}
};
};
var peg$f105 = function(head, tail) {
return createList(head, tail);
};
var peg$f106 = function() {
return { type: 'null', value: null };
};
var peg$f107 = function() {
return { type: 'bool', value: true };
};
var peg$f108 = function() {
return { type: 'bool', value: false };
};
var peg$f109 = function(ca) {
return {
type: 'string',
value: ca[1].join('')
};
};
var peg$f110 = function(ca) {
return {
type: 'string',
value: ca[1].join('')
};
};
var peg$f111 = function(type, ca) {
return {
type: type.toLowerCase(),
value: ca[1].join('')
};
};
var peg$f112 = function() { return "'"; };
var peg$f113 = function() { return '"'; };
var peg$f114 = function() { return "\\"; };
var peg$f115 = function() { return "/"; };
var peg$f116 = function() { return "\b"; };
var peg$f117 = function() { return "\f"; };
var peg$f118 = function() { return "\n"; };
var peg$f119 = function() { return "\r"; };
var peg$f120 = function() { return "\t"; };
var peg$f121 = function(h1, h2, h3, h4) {
return String.fromCharCode(parseInt("0x" + h1 + h2 + h3 + h4));
};
var peg$f122 = function(n) {
return { type: 'number', value: n };
};
var peg$f123 = function(int_, frac, exp) { return parseFloat(int_ + frac + exp); };
var peg$f124 = function(int_, frac) { return parseFloat(int_ + frac); };
var peg$f125 = function(int_, exp) { return parseFloat(int_ + exp); };
var peg$f126 = function(int_) { return parseFloat(int_); };
var peg$f127 = function(digit19, digits) { return digit19 + digits; };
var peg$f128 = function(op, digit19, digits) { return "-" + digit19 + digits; };
var peg$f129 = function(op, digit) { return "-" + digit; };
var peg$f130 = function(digits) { return "." + digits; };
var peg$f131 = function(e, digits) { return e + digits; };
var peg$f132 = function(digits) { return digits.join(""); };
var peg$f133 = function(e, sign) { return e + (sign !== null ? sign: ''); };
var peg$f134 = function() { return 'ASC'; };
var peg$f135 = function() { return 'DESC'; };
var peg$f136 = function() { return 'ALL'; };
var peg$f137 = function() { return 'DISTINCT';};
var peg$f138 = function() { return 'BETWEEN'; };
var peg$f139 = function() { return 'IN'; };
var peg$f140 = function() { return 'IS'; };
var peg$f141 = function() { return 'LIKE'; };
var peg$f142 = function() { return 'EXISTS'; };
var peg$f143 = function() { return 'NOT'; };
var peg$f144 = function() { return 'AND'; };
var peg$f145 = function() { return 'OR'; };
var peg$f146 = function() { return 'COUNT'; };
var peg$f147 = function() { return 'MAX'; };
var peg$f148 = function() { return 'MIN'; };
var peg$f149 = function() { return 'SUM'; };
var peg$f150 = function() { return 'AVG'; };
var peg$f151 = function() { return 'CHAR'; };
var peg$f152 = function() { return 'VARCHAR';};
var peg$f153 = function() { return 'NUMERIC'; };
var peg$f154 = function() { return 'DECIMAL'; };
var peg$f155 = function() { return 'SIGNED'; };
var peg$f156 = function() { return 'UNSIGNED'; };
var peg$f157 = function() { return 'INT'; };
var peg$f158 = function() { return 'INTEGER'; };
var peg$f159 = function() { return 'JSON'; };
var peg$f160 = function() { return 'SMALLINT'; };
var peg$f161 = function() { return 'DATE'; };
var peg$f162 = function() { return 'TIME'; };
var peg$f163 = function() { return 'TIMESTAMP'; };
var peg$f164 = function() { return 'USER'; };
var peg$f165 = function() { return 'CURRENT_DATE'; };
var peg$f166 = function() { return 'ADDDATE'; };
var peg$f167 = function() { return 'INTERVAL'; };
var peg$f168 = function() { return 'YEAR'; };
var peg$f169 = function() { return 'MONTH'; };
var peg$f170 = function() { return 'DAY'; };
var peg$f171 = function() { return 'HOUR'; };
var peg$f172 = function() { return 'MINUTE'; };
var peg$f173 = function() { return 'SECOND'; };
var peg$f174 = function() { return 'CURRENT_TIME'; };
var peg$f175 = function() { return 'CURRENT_TIMESTAMP'; };
var peg$f176 = function() { return 'CURRENT_USER'; };
var peg$f177 = function() { return 'SESSION_USER'; };
var peg$f178 = function() { return 'SYSTEM_USER'; };
var peg$f179 = function() { varList = []; return true; };
var peg$f180 = function(s) {
return { stmt: s, vars: varList };
};
var peg$f181 = function(va, e) {
return {
type: 'assign',
left: va,
right: e
};
};
var peg$f182 = function(e) {
return { type: 'return', expr: e };
};
var peg$f183 = function(head, tail) {
return createBinaryExprChain(head, tail);
};
var peg$f184 = function(head, tail) {
return createBinaryExprChain(head, tail);
};
var peg$f185 = function(lt, op, rt, expr) {
return {
type: 'join',
ltable: lt,
rtable: rt,
op: op,
on: expr
};
};
var peg$f186 = function(e) {
e.parentheses = true;
return e;
};
var peg$f187 = function(name, l) {
//compatible with original func_call
return {
type: 'function',
name: name,
args: {
type: 'expr_list',
value: l
}
};
};
var peg$f188 = function(head, tail) {
return createList(head, tail);
};
var peg$f189 = function(l) {
return { type: 'array', value: l };
};
var peg$f190 = function(name, m) {
//push for analysis
varList.push(name);
return {
type: 'var',
name: name,
members: m
};
};
var peg$f191 = function(l) {
const s = [];
for (let i = 0; i < l.length; i++) {
s.push(l[i][1]);
}
return s;
};
var peg$f192 = function(t, l) {
return { dataType: t, length: parseInt(l.join(''), 10) };
};
var peg$f193 = function(t) { return { dataType: t }; };
var peg$f194 = function(t) { return { dataType: t }; };
var peg$f195 = function(t) { return { dataType: t }; };
var peg$f196 = function(t) { return { dataType: t }; };
var peg$f197 = function(t) { return { dataType: t }; };
var peg$currPos = 0;
var peg$savedPos = 0;
var peg$posDetailsCache = [{ line: 1, column: 1 }];
var peg$maxFailPos = 0;
var peg$maxFailExpected = [];
var peg$silentFails = 0;
var peg$result;
if ("startRule" in options) {
if (!(options.startRule in peg$startRuleFunctions)) {
throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
}
peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
}
function text() {
return input.substring(peg$savedPos, peg$currPos);
}
function offset() {
return peg$savedPos;
}
function range() {
return {
source: peg$source,
start: peg$savedPos,
end: peg$currPos
};
}
function location() {
return peg$computeLocation(peg$savedPos, peg$currPos);
}
function expected(description, location) {
location = location !== undefined
? location
: peg$computeLocation(peg$savedPos, peg$currPos);
throw peg$buildStructuredError(
[peg$otherExpectation(description)],
input.substring(peg$savedPos, peg$currPos),
location
);
}
function error(message, location) {
location = location !== undefined
? location
: peg$computeLocation(peg$savedPos, peg$currPos);
throw peg$buildSimpleError(message, location);
}
function peg$literalExpectation(text, ignoreCase) {
return { type: "literal", text: text, ignoreCase: ignoreCase };
}
function peg$classExpectation(parts, inverted, ignoreCase) {
return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
}
function peg$anyExpectation() {
return { type: "any" };
}
function peg$endExpectation() {
return { type: "end" };
}
function peg$otherExpectation(description) {
return { type: "other", description: description };
}
function peg$computePosDetails(pos) {
var details = peg$posDetailsCache[pos];
var p;
if (details) {
return details;
} else {
p = pos - 1;
while (!peg$posDetailsCache[p]) {
p--;
}
details = peg$posDetailsCache[p];
details = {
line: details.line,
column: details.column
};
while (p < pos) {
if (input.charCodeAt(p) === 10) {
details.line++;
details.column = 1;
} else {
details.column++;
}
p++;
}
peg$posDetailsCache[pos] = details;
return details;
}
}
function peg$computeLocation(startPos, endPos, offset) {
var startPosDetails = peg$computePosDetails(startPos);
var endPosDetails = peg$computePosDetails(endPos);
var res = {
source: peg$source,
start: {
offset: startPos,
line: startPosDetails.line,
column: startPosDetails.column
},
end: {
offset: endPos,
line: endPosDetails.line,
column: endPosDetails.column
}
};
if (offset && peg$source && (typeof peg$source.offset === "function")) {
res.start = peg$source.offset(res.start);
res.end = peg$source.offset(res.end);
}
return res;
}
function peg$fail(expected) {
if (peg$currPos < peg$maxFailPos) { return; }
if (peg$currPos > peg$maxFailPos) {
peg$maxFailPos = peg$currPos;
peg$maxFailExpected = [];
}
peg$maxFailExpected.push(expected);
}
function peg$buildSimpleError(message, location) {
return new peg$SyntaxError(message, null, null, location);
}
function peg$buildStructuredError(expected, found, location) {
return new peg$SyntaxError(
peg$SyntaxError.buildMessage(expected, found),
expected,
found,
location
);
}
function peg$parsestart() {
var s0;
s0 = peg$parsemultiple_stmt();
if (s0 === peg$FAILED) {
s0 = peg$parsecrud_stmt();
}
return s0;
}
function peg$parsecrud_stmt() {
var s0;
s0 = peg$parseunion_stmt();
if (s0 === peg$FAILED) {
s0 = peg$parseupdate_stmt();
if (s0 === peg$FAILED) {
s0 = peg$parsereplace_insert_stmt();
if (s0 === peg$FAILED) {
s0 = peg$parseinsert_no_columns_stmt();
if (s0 === peg$FAILED) {
s0 = peg$parsedelete_stmt();
if (s0 === peg$FAILED) {
s0 = peg$parseproc_stmts();
}
}
}
}
}
return s0;
}
function peg$parsemultiple_stmt() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parsecrud_stmt();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseSEMICOLON();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsecrud_stmt();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
if (s3 !== peg$FAILED) {
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseSEMICOLON();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsecrud_stmt();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
} else {
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f0(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseunion_stmt() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseselect_stmt();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseKW_UNION();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseselect_stmt();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseKW_UNION();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseselect_stmt();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f1(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseselect_stmt() {
var s0, s1, s2, s3, s4, s5, s6;
s0 = peg$parseselect_stmt_nake();
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 40) {
s2 = peg$c0;
peg$currPos++;
} else {
s2 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e0); }
}
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
s4 = peg$parseselect_stmt();
if (s4 !== peg$FAILED) {
s5 = peg$parse__();
if (input.charCodeAt(peg$currPos) === 41) {
s6 = peg$c1;
peg$currPos++;
} else {
s6 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e1); }
}
if (s6 !== peg$FAILED) {
s2 = [s2, s3, s4, s5, s6];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f2(s1);
}
s0 = s1;
}
return s0;
}
function peg$parsewith_clause() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
s0 = peg$currPos;
s1 = peg$parseKW_WITH();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsecte_definition();
if (s3 !== peg$FAILED) {
s4 = [];
s5 = peg$currPos;
s6 = peg$parse__();
s7 = peg$parseCOMMA();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parsecte_definition();
if (s9 !== peg$FAILED) {
s6 = [s6, s7, s8, s9];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$FAILED;
}
} else {
peg$currPos = s5;
s5 = peg$FAILED;
}
while (s5 !== peg$FAILED) {
s4.push(s5);
s5 = peg$currPos;
s6 = peg$parse__();
s7 = peg$parseCOMMA();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parsecte_definition();
if (s9 !== peg$FAILED) {
s6 = [s6, s7, s8, s9];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$FAILED;
}
} else {
peg$currPos = s5;
s5 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f3(s3, s4);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parse__();
s2 = peg$parseKW_WITH();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
s4 = peg$parseKW_RECURSIVE();
if (s4 !== peg$FAILED) {
s5 = peg$parse__();
s6 = peg$parsecte_definition();
if (s6 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f4(s6);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
return s0;
}
function peg$parsecte_definition() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;
s0 = peg$currPos;
s1 = peg$parseident_name();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsecte_column_definition();
if (s3 === peg$FAILED) {
s3 = null;
}
s4 = peg$parse__();
s5 = peg$parseKW_AS();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseLPAREN();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parseunion_stmt();
if (s9 !== peg$FAILED) {
s10 = peg$parse__();
s11 = peg$parseRPAREN();
if (s11 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f5(s1, s3, s9);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsecte_column_definition() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
s0 = peg$currPos;
s1 = peg$parseLPAREN();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsecolumn();
if (s3 !== peg$FAILED) {
s4 = [];
s5 = peg$currPos;
s6 = peg$parse__();
s7 = peg$parseCOMMA();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parsecolumn();
if (s9 !== peg$FAILED) {
s6 = [s6, s7, s8, s9];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$FAILED;
}
} else {
peg$currPos = s5;
s5 = peg$FAILED;
}
while (s5 !== peg$FAILED) {
s4.push(s5);
s5 = peg$currPos;
s6 = peg$parse__();
s7 = peg$parseCOMMA();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parsecolumn();
if (s9 !== peg$FAILED) {
s6 = [s6, s7, s8, s9];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$FAILED;
}
} else {
peg$currPos = s5;
s5 = peg$FAILED;
}
}
s5 = peg$parse__();
s6 = peg$parseRPAREN();
if (s6 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f6(s3, s4);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseselect_stmt_nake() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21;
s0 = peg$currPos;
s1 = peg$parsewith_clause();
if (s1 === peg$FAILED) {
s1 = null;
}
s2 = peg$parse__();
s3 = peg$parseKW_SELECT();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseoption_clause();
if (s5 === peg$FAILED) {
s5 = null;
}
s6 = peg$parse__();
s7 = peg$parseKW_DISTINCT();
if (s7 === peg$FAILED) {
s7 = null;
}
s8 = peg$parse__();
s9 = peg$parsecolumn_clause();
if (s9 !== peg$FAILED) {
s10 = peg$parse__();
s11 = peg$parsefrom_clause();
if (s11 === peg$FAILED) {
s11 = null;
}
s12 = peg$parse__();
s13 = peg$parsewhere_clause();
if (s13 === peg$FAILED) {
s13 = null;
}
s14 = peg$parse__();
s15 = peg$parsegroup_by_clause();
if (s15 === peg$FAILED) {
s15 = null;
}
s16 = peg$parse__();
s17 = peg$parsehaving_clause();
if (s17 === peg$FAILED) {
s17 = null;
}
s18 = peg$parse__();
s19 = peg$parseorder_by_clause();
if (s19 === peg$FAILED) {
s19 = null;
}
s20 = peg$parse__();
s21 = peg$parselimit_clause();
if (s21 === peg$FAILED) {
s21 = null;
}
peg$savedPos = s0;
s0 = peg$f7(s1, s5, s7, s9, s11, s13, s15, s17, s19, s21);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseoption_clause() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parsequery_option();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parsequery_option();
if (s5 !== peg$FAILED) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parsequery_option();
if (s5 !== peg$FAILED) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f8(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsequery_option() {
var s0, s1;
s0 = peg$currPos;
s1 = peg$parseOPT_SQL_CALC_FOUND_ROWS();
if (s1 === peg$FAILED) {
s1 = peg$parseOPT_SQL_CACHE();
if (s1 === peg$FAILED) {
s1 = peg$parseOPT_SQL_NO_CACHE();
}
if (s1 === peg$FAILED) {
s1 = peg$parseOPT_SQL_BIG_RESULT();
if (s1 === peg$FAILED) {
s1 = peg$parseOPT_SQL_SMALL_RESULT();
if (s1 === peg$FAILED) {
s1 = peg$parseOPT_SQL_BUFFER_RESULT();
}
}
}
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f9(s1);
}
s0 = s1;
return s0;
}
function peg$parsecolumn_clause() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseKW_ALL();
if (s1 === peg$FAILED) {
s1 = peg$currPos;
s2 = peg$parseSTAR();
if (s2 !== peg$FAILED) {
s3 = peg$currPos;
peg$silentFails++;
s4 = peg$parseident_start();
peg$silentFails--;
if (s4 === peg$FAILED) {
s3 = undefined;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
if (s3 !== peg$FAILED) {
s2 = [s2, s3];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 === peg$FAILED) {
s1 = peg$parseSTAR();
}
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f10();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parsecolumn_list_item();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsecolumn_list_item();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsecolumn_list_item();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f11(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
return s0;
}
function peg$parsecolumn_list_item() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseident();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseDOT();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseSTAR();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f12(s1);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseexpr();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsealias_clause();
if (s3 === peg$FAILED) {
s3 = null;
}
peg$savedPos = s0;
s0 = peg$f13(s1, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
return s0;
}
function peg$parsealias_clause() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseKW_AS();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsealias_ident();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f14(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_AS();
if (s1 === peg$FAILED) {
s1 = null;
}
s2 = peg$parse__();
s3 = peg$parseident();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f15(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
return s0;
}
function peg$parsefrom_clause() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseKW_FROM();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsetable_ref_list();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f16(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsetable_ref_list() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parsetable_base();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$parsetable_ref();
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$parsetable_ref();
}
peg$savedPos = s0;
s0 = peg$f17(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsetable_ref() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = peg$parse__();
s2 = peg$parseCOMMA();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
s4 = peg$parsetable_base();
if (s4 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f18(s4);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parse__();
s2 = peg$parsetable_join();
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f19(s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
return s0;
}
function peg$parsetable_join() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;
s0 = peg$currPos;
s1 = peg$parsejoin_op();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsetable_base();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseKW_USING();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseLPAREN();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parseident_name();
if (s9 !== peg$FAILED) {
s10 = [];
s11 = peg$currPos;
s12 = peg$parse__();
s13 = peg$parseCOMMA();
if (s13 !== peg$FAILED) {
s14 = peg$parse__();
s15 = peg$parseident_name();
if (s15 !== peg$FAILED) {
s12 = [s12, s13, s14, s15];
s11 = s12;
} else {
peg$currPos = s11;
s11 = peg$FAILED;
}
} else {
peg$currPos = s11;
s11 = peg$FAILED;
}
while (s11 !== peg$FAILED) {
s10.push(s11);
s11 = peg$currPos;
s12 = peg$parse__();
s13 = peg$parseCOMMA();
if (s13 !== peg$FAILED) {
s14 = peg$parse__();
s15 = peg$parseident_name();
if (s15 !== peg$FAILED) {
s12 = [s12, s13, s14, s15];
s11 = s12;
} else {
peg$currPos = s11;
s11 = peg$FAILED;
}
} else {
peg$currPos = s11;
s11 = peg$FAILED;
}
}
s11 = peg$parse__();
s12 = peg$parseRPAREN();
if (s12 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f20(s1, s3, s9, s10);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parsejoin_op();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsetable_base();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseon_clause();
if (s5 === peg$FAILED) {
s5 = null;
}
peg$savedPos = s0;
s0 = peg$f21(s1, s3, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parsejoin_op();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseunion_stmt();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseRPAREN();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parsealias_clause();
if (s9 === peg$FAILED) {
s9 = null;
}
s10 = peg$parse__();
s11 = peg$parseon_clause();
if (s11 === peg$FAILED) {
s11 = null;
}
peg$savedPos = s0;
s0 = peg$f22(s1, s5, s9, s11);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
}
return s0;
}
function peg$parsetable_base() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseKW_DUAL();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f23();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parsetable_name();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsealias_clause();
if (s3 === peg$FAILED) {
s3 = null;
}
peg$savedPos = s0;
s0 = peg$f24(s1, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseLPAREN();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseunion_stmt();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseRPAREN();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsealias_clause();
if (s7 === peg$FAILED) {
s7 = null;
}
peg$savedPos = s0;
s0 = peg$f25(s3, s7);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
}
return s0;
}
function peg$parsejoin_op() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseKW_LEFT();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseKW_OUTER();
if (s3 === peg$FAILED) {
s3 = null;
}
s4 = peg$parse__();
s5 = peg$parseKW_JOIN();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f26();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_RIGHT();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseKW_OUTER();
if (s3 === peg$FAILED) {
s3 = null;
}
s4 = peg$parse__();
s5 = peg$parseKW_JOIN();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f27();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_FULL();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseKW_OUTER();
if (s3 === peg$FAILED) {
s3 = null;
}
s4 = peg$parse__();
s5 = peg$parseKW_JOIN();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f28();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$currPos;
s2 = peg$parseKW_INNER();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
s2 = [s2, s3];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 === peg$FAILED) {
s1 = null;
}
s2 = peg$parseKW_JOIN();
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f29();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
}
}
return s0;
}
function peg$parsetable_name() {
var s0, s1, s2, s3, s4, s5, s6;
s0 = peg$currPos;
s1 = peg$parseident();
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
s3 = peg$parse__();
s4 = peg$parseDOT();
if (s4 !== peg$FAILED) {
s5 = peg$parse__();
s6 = peg$parseident();
if (s6 !== peg$FAILED) {
s3 = [s3, s4, s5, s6];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 === peg$FAILED) {
s2 = null;
}
peg$savedPos = s0;
s0 = peg$f30(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parsevar_decl();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f31(s1);
}
s0 = s1;
}
return s0;
}
function peg$parseon_clause() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseKW_ON();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseexpr();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f32(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsewhere_clause() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseKW_WHERE();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseexpr();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f33(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsegroup_by_clause() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseKW_GROUP();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseKW_BY();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parsecolumn_ref_list();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f34(s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsecolumn_ref_list() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parsecolumn_ref();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsecolumn_ref();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsecolumn_ref();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f35(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsehaving_clause() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseKW_HAVING();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseexpr();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f36(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseorder_by_clause() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseKW_ORDER();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseKW_BY();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseorder_by_list();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f37(s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseorder_by_list() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseorder_by_element();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseorder_by_element();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseorder_by_element();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f38(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseorder_by_element() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseexpr();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseKW_DESC();
if (s3 === peg$FAILED) {
s3 = peg$parseKW_ASC();
}
if (s3 === peg$FAILED) {
s3 = null;
}
peg$savedPos = s0;
s0 = peg$f39(s1, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsenumber_or_param() {
var s0;
s0 = peg$parseliteral_numeric();
if (s0 === peg$FAILED) {
s0 = peg$parseparam();
}
return s0;
}
function peg$parselimit_clause() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
s0 = peg$currPos;
s1 = peg$parseKW_LIMIT();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsenumber_or_param();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$currPos;
s6 = peg$parseCOMMA();
if (s6 !== peg$FAILED) {
s7 = peg$parse__();
s8 = peg$parsenumber_or_param();
if (s8 !== peg$FAILED) {
s6 = [s6, s7, s8];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$FAILED;
}
} else {
peg$currPos = s5;
s5 = peg$FAILED;
}
if (s5 === peg$FAILED) {
s5 = null;
}
peg$savedPos = s0;
s0 = peg$f40(s3, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseupdate_stmt() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
s0 = peg$currPos;
s1 = peg$parseKW_UPDATE();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsetable_name();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseKW_SET();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseset_list();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parsewhere_clause();
if (s9 === peg$FAILED) {
s9 = null;
}
peg$savedPos = s0;
s0 = peg$f41(s3, s7, s9);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsedelete_stmt() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseKW_DELETE();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsetable_ref_list();
if (s3 === peg$FAILED) {
s3 = null;
}
s4 = peg$parse__();
s5 = peg$parsefrom_clause();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsewhere_clause();
if (s7 === peg$FAILED) {
s7 = null;
}
peg$savedPos = s0;
s0 = peg$f42(s3, s5, s7);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseset_list() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseset_item();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseset_item();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseset_item();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f43(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseset_item() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$currPos;
s2 = peg$parseident();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
s4 = peg$parseDOT();
if (s4 !== peg$FAILED) {
s2 = [s2, s3, s4];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 === peg$FAILED) {
s1 = null;
}
s2 = peg$parse__();
s3 = peg$parsecolumn_name();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
if (input.charCodeAt(peg$currPos) === 61) {
s5 = peg$c2;
peg$currPos++;
} else {
s5 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e2); }
}
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseadditive_expr();
if (s7 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f44(s1, s3, s7);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsereplace_insert_stmt() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;
s0 = peg$currPos;
s1 = peg$parsereplace_insert();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseKW_INTO();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parsetable_name();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseLPAREN();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parsecolumn_list();
if (s9 !== peg$FAILED) {
s10 = peg$parse__();
s11 = peg$parseRPAREN();
if (s11 !== peg$FAILED) {
s12 = peg$parse__();
s13 = peg$parsevalue_clause();
if (s13 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f45(s1, s5, s9, s13);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseinsert_no_columns_stmt() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parsereplace_insert();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseKW_INTO();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parsetable_name();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsevalue_clause();
if (s7 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f46(s1, s5, s7);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsereplace_insert() {
var s0, s1;
s0 = peg$currPos;
s1 = peg$parseKW_INSERT();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f47();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_REPLACE();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f48();
}
s0 = s1;
}
return s0;
}
function peg$parsevalue_clause() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseKW_VALUES();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsevalue_list();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f49(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsevalue_list() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parsevalue_item();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsevalue_item();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsevalue_item();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f50(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsevalue_item() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseLPAREN();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseexpr_list();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseRPAREN();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f51(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseexpr_list() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseexpr();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseexpr();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseexpr();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f52(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseinterval_expr() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseKW_INTERVAL();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsenumber();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseinterval_unit();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f53(s3, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsecase_expr() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;
s0 = peg$currPos;
s1 = peg$parseKW_CASE();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseexpr();
if (s3 === peg$FAILED) {
s3 = null;
}
s4 = peg$parse__();
s5 = [];
s6 = peg$parsecase_when_then();
if (s6 !== peg$FAILED) {
while (s6 !== peg$FAILED) {
s5.push(s6);
s6 = peg$parsecase_when_then();
}
} else {
s5 = peg$FAILED;
}
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsecase_else();
if (s7 === peg$FAILED) {
s7 = null;
}
s8 = peg$parse__();
s9 = peg$parseKW_END();
if (s9 !== peg$FAILED) {
s10 = peg$parse__();
s11 = peg$parseKW_CASE();
if (s11 === peg$FAILED) {
s11 = null;
}
peg$savedPos = s0;
s0 = peg$f54(s3, s5, s7);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsecase_when_then() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
s0 = peg$currPos;
s1 = peg$parseKW_WHEN();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseexpr();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseKW_THEN();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseexpr();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
peg$savedPos = s0;
s0 = peg$f55(s3, s7);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsecase_else() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseKW_ELSE();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseexpr();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f56(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseexpr() {
var s0;
s0 = peg$parseor_expr();
if (s0 === peg$FAILED) {
s0 = peg$parseselect_stmt();
}
return s0;
}
function peg$parseor_expr() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseand_expr();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseKW_OR();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseand_expr();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseKW_OR();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseand_expr();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f57(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseand_expr() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parsenot_expr();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseKW_AND();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsenot_expr();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseKW_AND();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsenot_expr();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f58(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsenot_expr() {
var s0, s1, s2, s3, s4;
s0 = peg$parsecomparison_expr();
if (s0 === peg$FAILED) {
s0 = peg$parseexists_expr();
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_NOT();
if (s1 === peg$FAILED) {
s1 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 33) {
s2 = peg$c3;
peg$currPos++;
} else {
s2 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e3); }
}
if (s2 !== peg$FAILED) {
s3 = peg$currPos;
peg$silentFails++;
if (input.charCodeAt(peg$currPos) === 61) {
s4 = peg$c2;
peg$currPos++;
} else {
s4 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e2); }
}
peg$silentFails--;
if (s4 === peg$FAILED) {
s3 = undefined;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
if (s3 !== peg$FAILED) {
s2 = [s2, s3];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
}
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsenot_expr();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f59(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
}
return s0;
}
function peg$parsecomparison_expr() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseadditive_expr();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsecomparison_op_right();
if (s3 === peg$FAILED) {
s3 = null;
}
peg$savedPos = s0;
s0 = peg$f60(s1, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseexists_expr() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseexists_op();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseunion_stmt();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseRPAREN();
if (s7 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f61(s1, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseexists_op() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = peg$currPos;
s2 = peg$parseKW_NOT();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
s4 = peg$parseKW_EXISTS();
if (s4 !== peg$FAILED) {
s2 = [s2, s3, s4];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f62(s1);
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$parseKW_EXISTS();
}
return s0;
}
function peg$parsecomparison_op_right() {
var s0;
s0 = peg$parsearithmetic_op_right();
if (s0 === peg$FAILED) {
s0 = peg$parsein_op_right();
if (s0 === peg$FAILED) {
s0 = peg$parsebetween_op_right();
if (s0 === peg$FAILED) {
s0 = peg$parseis_op_right();
if (s0 === peg$FAILED) {
s0 = peg$parselike_op_right();
}
}
}
}
return s0;
}
function peg$parsearithmetic_op_right() {
var s0, s1, s2, s3, s4, s5, s6;
s0 = peg$currPos;
s1 = [];
s2 = peg$currPos;
s3 = peg$parse__();
s4 = peg$parsearithmetic_comparison_operator();
if (s4 !== peg$FAILED) {
s5 = peg$parse__();
s6 = peg$parseadditive_expr();
if (s6 !== peg$FAILED) {
s3 = [s3, s4, s5, s6];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
while (s2 !== peg$FAILED) {
s1.push(s2);
s2 = peg$currPos;
s3 = peg$parse__();
s4 = peg$parsearithmetic_comparison_operator();
if (s4 !== peg$FAILED) {
s5 = peg$parse__();
s6 = peg$parseadditive_expr();
if (s6 !== peg$FAILED) {
s3 = [s3, s4, s5, s6];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
}
} else {
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f63(s1);
}
s0 = s1;
return s0;
}
function peg$parsearithmetic_comparison_operator() {
var s0;
if (input.substr(peg$currPos, 2) === peg$c4) {
s0 = peg$c4;
peg$currPos += 2;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e4); }
}
if (s0 === peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 62) {
s0 = peg$c5;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e5); }
}
if (s0 === peg$FAILED) {
if (input.substr(peg$currPos, 2) === peg$c6) {
s0 = peg$c6;
peg$currPos += 2;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e6); }
}
if (s0 === peg$FAILED) {
if (input.substr(peg$currPos, 2) === peg$c7) {
s0 = peg$c7;
peg$currPos += 2;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e7); }
}
if (s0 === peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 60) {
s0 = peg$c8;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e8); }
}
if (s0 === peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 61) {
s0 = peg$c2;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e2); }
}
if (s0 === peg$FAILED) {
if (input.substr(peg$currPos, 2) === peg$c9) {
s0 = peg$c9;
peg$currPos += 2;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e9); }
}
}
}
}
}
}
}
return s0;
}
function peg$parseis_op_right() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = peg$parseKW_IS();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseadditive_expr();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f64(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$currPos;
s2 = peg$parseKW_IS();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
s4 = peg$parseKW_NOT();
if (s4 !== peg$FAILED) {
s2 = [s2, s3, s4];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseadditive_expr();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f65(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
return s0;
}
function peg$parsebetween_op_right() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parsebetween_or_not_between_op();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseadditive_expr();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseKW_AND();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseadditive_expr();
if (s7 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f66(s1, s3, s7);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsebetween_or_not_between_op() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = peg$currPos;
s2 = peg$parseKW_NOT();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
s4 = peg$parseKW_BETWEEN();
if (s4 !== peg$FAILED) {
s2 = [s2, s3, s4];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f67(s1);
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$parseKW_BETWEEN();
}
return s0;
}
function peg$parselike_op() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = peg$currPos;
s2 = peg$parseKW_NOT();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
s4 = peg$parseKW_LIKE();
if (s4 !== peg$FAILED) {
s2 = [s2, s3, s4];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f68(s1);
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$parseKW_LIKE();
}
return s0;
}
function peg$parsein_op() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = peg$currPos;
s2 = peg$parseKW_NOT();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
s4 = peg$parseKW_IN();
if (s4 !== peg$FAILED) {
s2 = [s2, s3, s4];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f69(s1);
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$parseKW_IN();
}
return s0;
}
function peg$parselike_op_right() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parselike_op();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsecomparison_expr();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f70(s1, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsein_op_right() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parsein_op();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseexpr_list();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseRPAREN();
if (s7 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f71(s1, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parsein_op();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsevar_decl();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f72(s1, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
return s0;
}
function peg$parseadditive_expr() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parsemultiplicative_expr();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseadditive_operator();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsemultiplicative_expr();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseadditive_operator();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsemultiplicative_expr();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f73(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseadditive_operator() {
var s0;
if (input.charCodeAt(peg$currPos) === 43) {
s0 = peg$c10;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e10); }
}
if (s0 === peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 45) {
s0 = peg$c11;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e11); }
}
}
return s0;
}
function peg$parsemultiplicative_expr() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseprimary();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parsemultiplicative_operator();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseprimary();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parsemultiplicative_operator();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseprimary();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f74(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsemultiplicative_operator() {
var s0;
if (input.charCodeAt(peg$currPos) === 42) {
s0 = peg$c12;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e12); }
}
if (s0 === peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 47) {
s0 = peg$c13;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e13); }
}
if (s0 === peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 37) {
s0 = peg$c14;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e14); }
}
}
}
return s0;
}
function peg$parseprimary() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$parseliteral();
if (s0 === peg$FAILED) {
s0 = peg$parsecast_expr();
if (s0 === peg$FAILED) {
s0 = peg$parseaggr_func();
if (s0 === peg$FAILED) {
s0 = peg$parsefunc_call();
if (s0 === peg$FAILED) {
s0 = peg$parsecase_expr();
if (s0 === peg$FAILED) {
s0 = peg$parseinterval_expr();
if (s0 === peg$FAILED) {
s0 = peg$parsecolumn_ref();
if (s0 === peg$FAILED) {
s0 = peg$parseparam();
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseLPAREN();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseexpr();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseRPAREN();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f75(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseLPAREN();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseexpr_list();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseRPAREN();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f76(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$parsevar_decl();
}
}
}
}
}
}
}
}
}
}
return s0;
}
function peg$parsecolumn_ref() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseident();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseDOT();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parsecolumn();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f77(s1, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parsecolumn();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f78(s1);
}
s0 = s1;
}
return s0;
}
function peg$parsecolumn_list() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parsecolumn();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsecolumn();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parsecolumn();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f79(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseident() {
var s0, s1, s2;
s0 = peg$currPos;
s1 = peg$parseident_name();
if (s1 !== peg$FAILED) {
peg$savedPos = peg$currPos;
s2 = peg$f80(s1);
if (s2) {
s2 = peg$FAILED;
} else {
s2 = undefined;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f81(s1);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parsequoted_ident();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f82(s1);
}
s0 = s1;
}
return s0;
}
function peg$parsealias_ident() {
var s0, s1, s2;
s0 = peg$currPos;
s1 = peg$parseident_name();
if (s1 !== peg$FAILED) {
peg$savedPos = peg$currPos;
s2 = peg$f83(s1);
if (s2) {
s2 = peg$FAILED;
} else {
s2 = undefined;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f84(s1);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parsequoted_ident();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f85(s1);
}
s0 = s1;
}
return s0;
}
function peg$parsequoted_ident() {
var s0;
s0 = peg$parsedouble_quoted_ident();
if (s0 === peg$FAILED) {
s0 = peg$parsesingle_quoted_ident();
if (s0 === peg$FAILED) {
s0 = peg$parsebackticks_quoted_ident();
}
}
return s0;
}
function peg$parsedouble_quoted_ident() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 34) {
s1 = peg$c15;
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e15); }
}
if (s1 !== peg$FAILED) {
s2 = [];
if (peg$r0.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e16); }
}
if (s3 !== peg$FAILED) {
while (s3 !== peg$FAILED) {
s2.push(s3);
if (peg$r0.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e16); }
}
}
} else {
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 34) {
s3 = peg$c15;
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e15); }
}
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f86(s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsesingle_quoted_ident() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 39) {
s1 = peg$c16;
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e17); }
}
if (s1 !== peg$FAILED) {
s2 = [];
if (peg$r1.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e18); }
}
if (s3 !== peg$FAILED) {
while (s3 !== peg$FAILED) {
s2.push(s3);
if (peg$r1.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e18); }
}
}
} else {
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 39) {
s3 = peg$c16;
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e17); }
}
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f87(s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsebackticks_quoted_ident() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 96) {
s1 = peg$c17;
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e19); }
}
if (s1 !== peg$FAILED) {
s2 = [];
if (peg$r2.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e20); }
}
if (s3 !== peg$FAILED) {
while (s3 !== peg$FAILED) {
s2.push(s3);
if (peg$r2.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e20); }
}
}
} else {
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 96) {
s3 = peg$c17;
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e19); }
}
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f88(s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsecolumn() {
var s0, s1, s2;
s0 = peg$currPos;
s1 = peg$parsecolumn_name();
if (s1 !== peg$FAILED) {
peg$savedPos = peg$currPos;
s2 = peg$f89(s1);
if (s2) {
s2 = peg$FAILED;
} else {
s2 = undefined;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f90(s1);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$parsequoted_ident();
}
return s0;
}
function peg$parsecolumn_name() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseident_start();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$parsecolumn_part();
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$parsecolumn_part();
}
peg$savedPos = s0;
s0 = peg$f91(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseident_name() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseident_start();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$parseident_part();
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$parseident_part();
}
peg$savedPos = s0;
s0 = peg$f92(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseident_start() {
var s0;
if (peg$r3.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e21); }
}
return s0;
}
function peg$parseident_part() {
var s0;
if (peg$r4.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e22); }
}
return s0;
}
function peg$parsecolumn_part() {
var s0;
if (peg$r5.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e23); }
}
return s0;
}
function peg$parseparam() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 58) {
s2 = peg$c18;
peg$currPos++;
} else {
s2 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e24); }
}
if (s2 !== peg$FAILED) {
s3 = peg$parseident_name();
if (s3 !== peg$FAILED) {
s2 = [s2, s3];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f93(s1);
}
s0 = s1;
return s0;
}
function peg$parseaggr_func() {
var s0;
s0 = peg$parseaggr_fun_count();
if (s0 === peg$FAILED) {
s0 = peg$parseaggr_fun_smma();
}
return s0;
}
function peg$parseaggr_fun_smma() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseKW_SUM_MAX_MIN_AVG();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseadditive_expr();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseRPAREN();
if (s7 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f94(s1, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_SUM_MAX_MIN_AVG() {
var s0;
s0 = peg$parseKW_SUM();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_MAX();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_MIN();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_AVG();
}
}
}
return s0;
}
function peg$parseaggr_fun_count() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseKW_COUNT();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parsecount_arg();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseRPAREN();
if (s7 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f95(s1, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsecount_arg() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parsestar_expr();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f96(s1);
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_DISTINCT();
if (s1 === peg$FAILED) {
s1 = null;
}
s2 = peg$parse__();
s3 = peg$parsecolumn_ref();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f97(s1, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
return s0;
}
function peg$parsestar_expr() {
var s0, s1;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 42) {
s1 = peg$c12;
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e12); }
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f98();
}
s0 = s1;
return s0;
}
function peg$parsefunc_call() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseident();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseexpr_list();
if (s5 === peg$FAILED) {
s5 = null;
}
s6 = peg$parse__();
s7 = peg$parseRPAREN();
if (s7 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f99(s1, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parsescalar_func();
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
s3 = peg$parse__();
s4 = peg$parseLPAREN();
if (s4 !== peg$FAILED) {
s5 = peg$parseRPAREN();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s3 = [s3, s4, s5, s6];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 === peg$FAILED) {
s2 = null;
}
peg$savedPos = s0;
s0 = peg$f100(s1);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
return s0;
}
function peg$parsescalar_func() {
var s0;
s0 = peg$parseKW_CURRENT_DATE();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_CURRENT_TIME();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_CURRENT_TIMESTAMP();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_CURRENT_USER();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_USER();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_SESSION_USER();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_SYSTEM_USER();
}
}
}
}
}
}
return s0;
}
function peg$parsecast_expr() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21;
s0 = peg$currPos;
s1 = peg$parseKW_CAST();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseexpr();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseKW_AS();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parsedata_type();
if (s9 !== peg$FAILED) {
s10 = peg$parse__();
s11 = peg$parseRPAREN();
if (s11 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f101(s5, s9);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_CAST();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseexpr();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseKW_AS();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parseKW_DECIMAL();
if (s9 !== peg$FAILED) {
s10 = peg$parse__();
s11 = peg$parseLPAREN();
if (s11 !== peg$FAILED) {
s12 = peg$parse__();
s13 = peg$parseint();
if (s13 !== peg$FAILED) {
s14 = peg$parse__();
s15 = peg$parseRPAREN();
if (s15 !== peg$FAILED) {
s16 = peg$parse__();
s17 = peg$parseRPAREN();
if (s17 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f102(s5, s13);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_CAST();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseexpr();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseKW_AS();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parseKW_DECIMAL();
if (s9 !== peg$FAILED) {
s10 = peg$parse__();
s11 = peg$parseLPAREN();
if (s11 !== peg$FAILED) {
s12 = peg$parse__();
s13 = peg$parseint();
if (s13 !== peg$FAILED) {
s14 = peg$parse__();
s15 = peg$parseCOMMA();
if (s15 !== peg$FAILED) {
s16 = peg$parse__();
s17 = peg$parseint();
if (s17 !== peg$FAILED) {
s18 = peg$parse__();
s19 = peg$parseRPAREN();
if (s19 !== peg$FAILED) {
s20 = peg$parse__();
s21 = peg$parseRPAREN();
if (s21 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f103(s5, s13, s17);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_CAST();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseexpr();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseKW_AS();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
s9 = peg$parsesignedness();
if (s9 !== peg$FAILED) {
s10 = peg$parse__();
s11 = peg$parseKW_INTEGER();
if (s11 === peg$FAILED) {
s11 = null;
}
s12 = peg$parse__();
s13 = peg$parseRPAREN();
if (s13 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f104(s5, s9, s11);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
}
}
return s0;
}
function peg$parsesignedness() {
var s0;
s0 = peg$parseKW_SIGNED();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_UNSIGNED();
}
return s0;
}
function peg$parseliteral() {
var s0;
s0 = peg$parseliteral_string();
if (s0 === peg$FAILED) {
s0 = peg$parseliteral_numeric();
if (s0 === peg$FAILED) {
s0 = peg$parseliteral_bool();
if (s0 === peg$FAILED) {
s0 = peg$parseliteral_null();
if (s0 === peg$FAILED) {
s0 = peg$parseliteral_datetime();
}
}
}
}
return s0;
}
function peg$parseliteral_list() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseliteral();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseliteral();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseliteral();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f105(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseliteral_null() {
var s0, s1;
s0 = peg$currPos;
s1 = peg$parseKW_NULL();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f106();
}
s0 = s1;
return s0;
}
function peg$parseliteral_bool() {
var s0, s1;
s0 = peg$currPos;
s1 = peg$parseKW_TRUE();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f107();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_FALSE();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f108();
}
s0 = s1;
}
return s0;
}
function peg$parseliteral_string() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 39) {
s2 = peg$c16;
peg$currPos++;
} else {
s2 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e17); }
}
if (s2 !== peg$FAILED) {
s3 = [];
s4 = peg$parsesingle_char();
while (s4 !== peg$FAILED) {
s3.push(s4);
s4 = peg$parsesingle_char();
}
if (input.charCodeAt(peg$currPos) === 39) {
s4 = peg$c16;
peg$currPos++;
} else {
s4 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e17); }
}
if (s4 !== peg$FAILED) {
s2 = [s2, s3, s4];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f109(s1);
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 34) {
s2 = peg$c15;
peg$currPos++;
} else {
s2 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e15); }
}
if (s2 !== peg$FAILED) {
s3 = [];
s4 = peg$parsesingle_quote_char();
while (s4 !== peg$FAILED) {
s3.push(s4);
s4 = peg$parsesingle_quote_char();
}
if (input.charCodeAt(peg$currPos) === 34) {
s4 = peg$c15;
peg$currPos++;
} else {
s4 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e15); }
}
if (s4 !== peg$FAILED) {
s2 = [s2, s3, s4];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
} else {
peg$currPos = s1;
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f110(s1);
}
s0 = s1;
}
return s0;
}
function peg$parseliteral_datetime() {
var s0, s1, s2, s3, s4, s5, s6;
s0 = peg$currPos;
s1 = peg$parseKW_TIME();
if (s1 === peg$FAILED) {
s1 = peg$parseKW_DATE();
if (s1 === peg$FAILED) {
s1 = peg$parseKW_TIMESTAMP();
}
}
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 39) {
s4 = peg$c16;
peg$currPos++;
} else {
s4 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e17); }
}
if (s4 !== peg$FAILED) {
s5 = [];
s6 = peg$parsesingle_char();
while (s6 !== peg$FAILED) {
s5.push(s6);
s6 = peg$parsesingle_char();
}
if (input.charCodeAt(peg$currPos) === 39) {
s6 = peg$c16;
peg$currPos++;
} else {
s6 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e17); }
}
if (s6 !== peg$FAILED) {
s4 = [s4, s5, s6];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f111(s1, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsesingle_quote_char() {
var s0;
if (peg$r6.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e25); }
}
if (s0 === peg$FAILED) {
s0 = peg$parseescape_char();
}
return s0;
}
function peg$parsesingle_char() {
var s0;
if (peg$r7.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e26); }
}
if (s0 === peg$FAILED) {
s0 = peg$parseescape_char();
}
return s0;
}
function peg$parseescape_char() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c19) {
s1 = peg$c19;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e27); }
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f112();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c20) {
s1 = peg$c20;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e28); }
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f113();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c21) {
s1 = peg$c21;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e29); }
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f114();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c22) {
s1 = peg$c22;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e30); }
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f115();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c23) {
s1 = peg$c23;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e31); }
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f116();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c24) {
s1 = peg$c24;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e32); }
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f117();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c25) {
s1 = peg$c25;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e33); }
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f118();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c26) {
s1 = peg$c26;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e34); }
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f119();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c27) {
s1 = peg$c27;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e35); }
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f120();
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c28) {
s1 = peg$c28;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e36); }
}
if (s1 !== peg$FAILED) {
s2 = peg$parsehexDigit();
if (s2 !== peg$FAILED) {
s3 = peg$parsehexDigit();
if (s3 !== peg$FAILED) {
s4 = peg$parsehexDigit();
if (s4 !== peg$FAILED) {
s5 = peg$parsehexDigit();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f121(s2, s3, s4, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
}
}
}
}
}
}
}
}
return s0;
}
function peg$parseline_terminator() {
var s0;
if (peg$r8.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e37); }
}
return s0;
}
function peg$parseliteral_numeric() {
var s0, s1;
s0 = peg$currPos;
s1 = peg$parsenumber();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f122(s1);
}
s0 = s1;
return s0;
}
function peg$parsenumber() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = peg$parseint();
if (s1 !== peg$FAILED) {
s2 = peg$parsefrac();
if (s2 !== peg$FAILED) {
s3 = peg$parseexp();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
peg$savedPos = s0;
s0 = peg$f123(s1, s2, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseint();
if (s1 !== peg$FAILED) {
s2 = peg$parsefrac();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
peg$savedPos = s0;
s0 = peg$f124(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseint();
if (s1 !== peg$FAILED) {
s2 = peg$parseexp();
if (s2 !== peg$FAILED) {
s3 = peg$parse__();
peg$savedPos = s0;
s0 = peg$f125(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseint();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
peg$savedPos = s0;
s0 = peg$f126(s1);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
}
}
return s0;
}
function peg$parseint() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parsedigit19();
if (s1 !== peg$FAILED) {
s2 = peg$parsedigits();
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f127(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$parsedigit();
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 45) {
s1 = peg$c11;
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e11); }
}
if (s1 === peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 43) {
s1 = peg$c10;
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e10); }
}
}
if (s1 !== peg$FAILED) {
s2 = peg$parsedigit19();
if (s2 !== peg$FAILED) {
s3 = peg$parsedigits();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f128(s1, s2, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 45) {
s1 = peg$c11;
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e11); }
}
if (s1 === peg$FAILED) {
if (input.charCodeAt(peg$currPos) === 43) {
s1 = peg$c10;
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e10); }
}
}
if (s1 !== peg$FAILED) {
s2 = peg$parsedigit();
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f129(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
}
}
return s0;
}
function peg$parsefrac() {
var s0, s1, s2;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 46) {
s1 = peg$c29;
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e38); }
}
if (s1 !== peg$FAILED) {
s2 = peg$parsedigits();
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f130(s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseexp() {
var s0, s1, s2;
s0 = peg$currPos;
s1 = peg$parsee();
if (s1 !== peg$FAILED) {
s2 = peg$parsedigits();
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f131(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsedigits() {
var s0, s1, s2;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsedigit();
if (s2 !== peg$FAILED) {
while (s2 !== peg$FAILED) {
s1.push(s2);
s2 = peg$parsedigit();
}
} else {
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f132(s1);
}
s0 = s1;
return s0;
}
function peg$parsedigit() {
var s0;
if (peg$r9.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e39); }
}
return s0;
}
function peg$parsedigit19() {
var s0;
if (peg$r10.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e40); }
}
return s0;
}
function peg$parsehexDigit() {
var s0;
if (peg$r11.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e41); }
}
return s0;
}
function peg$parsee() {
var s0, s1, s2;
s0 = peg$currPos;
if (peg$r12.test(input.charAt(peg$currPos))) {
s1 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e42); }
}
if (s1 !== peg$FAILED) {
if (peg$r13.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e43); }
}
if (s2 === peg$FAILED) {
s2 = null;
}
peg$savedPos = s0;
s0 = peg$f133(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_NULL() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c30) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e44); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_TRUE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c31) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e45); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_FALSE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c32) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e46); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_SHOW() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c33) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e47); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_DROP() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c34) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e48); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_SELECT() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c35) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e49); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_UPDATE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c36) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e50); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_CREATE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c37) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e51); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_DELETE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c38) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e52); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_INSERT() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c39) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e53); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_RECURSIVE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 9) === peg$c40) {
s1 = peg$c40;
peg$currPos += 9;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e54); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_REPLACE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 7).toLowerCase() === peg$c41) {
s1 = input.substr(peg$currPos, 7);
peg$currPos += 7;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e55); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_EXPLAIN() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 7).toLowerCase() === peg$c42) {
s1 = input.substr(peg$currPos, 7);
peg$currPos += 7;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e56); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_INTO() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c43) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e57); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_FROM() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c44) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e58); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_SET() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c45) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e59); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_AS() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 2).toLowerCase() === peg$c46) {
s1 = input.substr(peg$currPos, 2);
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e60); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_TABLE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c47) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e61); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_ON() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 2).toLowerCase() === peg$c48) {
s1 = input.substr(peg$currPos, 2);
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e62); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_LEFT() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c49) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e63); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_RIGHT() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c50) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e64); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_FULL() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c51) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e65); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_INNER() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c52) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e66); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_JOIN() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c53) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e67); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_OUTER() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c54) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e68); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_UNION() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c55) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e69); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_VALUES() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c56) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e70); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_USING() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c57) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e71); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_WHERE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c58) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e72); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_WITH() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c59) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e73); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_GROUP() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c60) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e74); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_BY() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 2).toLowerCase() === peg$c61) {
s1 = input.substr(peg$currPos, 2);
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e75); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_ORDER() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c62) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e76); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_HAVING() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c63) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e77); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_LIMIT() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c64) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e78); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_ASC() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c65) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e79); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f134();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_DESC() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c66) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e80); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f135();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_ALL() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c67) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e81); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f136();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_DISTINCT() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 8).toLowerCase() === peg$c68) {
s1 = input.substr(peg$currPos, 8);
peg$currPos += 8;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e82); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f137();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_BETWEEN() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 7).toLowerCase() === peg$c69) {
s1 = input.substr(peg$currPos, 7);
peg$currPos += 7;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e83); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f138();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_IN() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 2).toLowerCase() === peg$c70) {
s1 = input.substr(peg$currPos, 2);
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e84); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f139();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_IS() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 2).toLowerCase() === peg$c71) {
s1 = input.substr(peg$currPos, 2);
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e85); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f140();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_LIKE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c72) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e86); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f141();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_EXISTS() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c73) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e87); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f142();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_NOT() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c74) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e88); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f143();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_AND() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c75) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e89); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f144();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_OR() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 2).toLowerCase() === peg$c76) {
s1 = input.substr(peg$currPos, 2);
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e90); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f145();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_COUNT() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c77) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e91); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f146();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_MAX() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c78) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e92); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f147();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_MIN() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c79) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e93); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f148();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_SUM() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c80) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e94); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f149();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_AVG() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c81) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e95); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f150();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_CASE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c82) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e96); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_WHEN() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c83) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e97); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_THEN() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c84) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e98); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_ELSE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c85) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e99); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_END() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c86) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e100); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_CAST() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c87) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e101); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_CHAR() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c88) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e102); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f151();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_VARCHAR() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 7).toLowerCase() === peg$c89) {
s1 = input.substr(peg$currPos, 7);
peg$currPos += 7;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e103); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f152();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_NUMERIC() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 7).toLowerCase() === peg$c90) {
s1 = input.substr(peg$currPos, 7);
peg$currPos += 7;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e104); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f153();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_DECIMAL() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 7).toLowerCase() === peg$c91) {
s1 = input.substr(peg$currPos, 7);
peg$currPos += 7;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e105); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f154();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_SIGNED() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c92) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e106); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f155();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_UNSIGNED() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 8).toLowerCase() === peg$c93) {
s1 = input.substr(peg$currPos, 8);
peg$currPos += 8;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e107); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f156();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_INT() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c94) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e108); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f157();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_INTEGER() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 7).toLowerCase() === peg$c95) {
s1 = input.substr(peg$currPos, 7);
peg$currPos += 7;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e109); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f158();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_JSON() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c96) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e110); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f159();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_SMALLINT() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 8).toLowerCase() === peg$c97) {
s1 = input.substr(peg$currPos, 8);
peg$currPos += 8;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e111); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f160();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_DATE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c98) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e112); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f161();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_TIME() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c99) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e113); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f162();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_TIMESTAMP() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 9).toLowerCase() === peg$c100) {
s1 = input.substr(peg$currPos, 9);
peg$currPos += 9;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e114); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f163();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_USER() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c101) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e115); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f164();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_CURRENT_DATE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 12).toLowerCase() === peg$c102) {
s1 = input.substr(peg$currPos, 12);
peg$currPos += 12;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e116); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f165();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_ADD_DATE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 7).toLowerCase() === peg$c103) {
s1 = input.substr(peg$currPos, 7);
peg$currPos += 7;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e117); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f166();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_INTERVAL() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 8).toLowerCase() === peg$c104) {
s1 = input.substr(peg$currPos, 8);
peg$currPos += 8;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e118); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f167();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_UNIT_YEAR() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c105) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e119); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f168();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_UNIT_MONTH() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 5).toLowerCase() === peg$c106) {
s1 = input.substr(peg$currPos, 5);
peg$currPos += 5;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e120); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f169();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_UNIT_DAY() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 3).toLowerCase() === peg$c107) {
s1 = input.substr(peg$currPos, 3);
peg$currPos += 3;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e121); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f170();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_UNIT_HOUR() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c108) {
s1 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e122); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f171();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_UNIT_MINUTE() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c109) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e123); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f172();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_UNIT_SECOND() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c110) {
s1 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e124); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f173();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_CURRENT_TIME() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 12).toLowerCase() === peg$c111) {
s1 = input.substr(peg$currPos, 12);
peg$currPos += 12;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e125); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f174();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_CURRENT_TIMESTAMP() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 17).toLowerCase() === peg$c112) {
s1 = input.substr(peg$currPos, 17);
peg$currPos += 17;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e126); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f175();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_CURRENT_USER() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 12).toLowerCase() === peg$c113) {
s1 = input.substr(peg$currPos, 12);
peg$currPos += 12;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e127); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f176();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_SESSION_USER() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 12).toLowerCase() === peg$c114) {
s1 = input.substr(peg$currPos, 12);
peg$currPos += 12;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e128); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f177();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_SYSTEM_USER() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.substr(peg$currPos, 11).toLowerCase() === peg$c115) {
s1 = input.substr(peg$currPos, 11);
peg$currPos += 11;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e129); }
}
if (s1 !== peg$FAILED) {
s2 = peg$currPos;
peg$silentFails++;
s3 = peg$parseident_start();
peg$silentFails--;
if (s3 === peg$FAILED) {
s2 = undefined;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
if (s2 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f178();
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseKW_VAR_PRE() {
var s0;
if (input.charCodeAt(peg$currPos) === 36) {
s0 = peg$c116;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e130); }
}
return s0;
}
function peg$parseKW_RETURN() {
var s0;
if (input.substr(peg$currPos, 6).toLowerCase() === peg$c117) {
s0 = input.substr(peg$currPos, 6);
peg$currPos += 6;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e131); }
}
return s0;
}
function peg$parseKW_ASSIGN() {
var s0;
if (input.substr(peg$currPos, 2) === peg$c118) {
s0 = peg$c118;
peg$currPos += 2;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e132); }
}
return s0;
}
function peg$parseKW_DUAL() {
var s0;
if (input.substr(peg$currPos, 4).toLowerCase() === peg$c119) {
s0 = input.substr(peg$currPos, 4);
peg$currPos += 4;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e133); }
}
return s0;
}
function peg$parseOPT_SQL_CALC_FOUND_ROWS() {
var s0;
if (input.substr(peg$currPos, 19).toLowerCase() === peg$c120) {
s0 = input.substr(peg$currPos, 19);
peg$currPos += 19;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e134); }
}
return s0;
}
function peg$parseOPT_SQL_CACHE() {
var s0;
if (input.substr(peg$currPos, 9).toLowerCase() === peg$c121) {
s0 = input.substr(peg$currPos, 9);
peg$currPos += 9;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e135); }
}
return s0;
}
function peg$parseOPT_SQL_NO_CACHE() {
var s0;
if (input.substr(peg$currPos, 12).toLowerCase() === peg$c122) {
s0 = input.substr(peg$currPos, 12);
peg$currPos += 12;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e136); }
}
return s0;
}
function peg$parseOPT_SQL_SMALL_RESULT() {
var s0;
if (input.substr(peg$currPos, 16).toLowerCase() === peg$c123) {
s0 = input.substr(peg$currPos, 16);
peg$currPos += 16;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e137); }
}
return s0;
}
function peg$parseOPT_SQL_BIG_RESULT() {
var s0;
if (input.substr(peg$currPos, 14).toLowerCase() === peg$c124) {
s0 = input.substr(peg$currPos, 14);
peg$currPos += 14;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e138); }
}
return s0;
}
function peg$parseOPT_SQL_BUFFER_RESULT() {
var s0;
if (input.substr(peg$currPos, 17).toLowerCase() === peg$c125) {
s0 = input.substr(peg$currPos, 17);
peg$currPos += 17;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e139); }
}
return s0;
}
function peg$parseDOT() {
var s0;
if (input.charCodeAt(peg$currPos) === 46) {
s0 = peg$c29;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e38); }
}
return s0;
}
function peg$parseCOMMA() {
var s0;
if (input.charCodeAt(peg$currPos) === 44) {
s0 = peg$c126;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e140); }
}
return s0;
}
function peg$parseSTAR() {
var s0;
if (input.charCodeAt(peg$currPos) === 42) {
s0 = peg$c12;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e12); }
}
return s0;
}
function peg$parseLPAREN() {
var s0;
if (input.charCodeAt(peg$currPos) === 40) {
s0 = peg$c0;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e0); }
}
return s0;
}
function peg$parseRPAREN() {
var s0;
if (input.charCodeAt(peg$currPos) === 41) {
s0 = peg$c1;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e1); }
}
return s0;
}
function peg$parseLBRAKE() {
var s0;
if (input.charCodeAt(peg$currPos) === 91) {
s0 = peg$c127;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e141); }
}
return s0;
}
function peg$parseRBRAKE() {
var s0;
if (input.charCodeAt(peg$currPos) === 93) {
s0 = peg$c128;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e142); }
}
return s0;
}
function peg$parseSEMICOLON() {
var s0;
if (input.charCodeAt(peg$currPos) === 59) {
s0 = peg$c129;
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e143); }
}
return s0;
}
function peg$parse__() {
var s0, s1;
s0 = [];
s1 = peg$parsewhitespace();
if (s1 === peg$FAILED) {
s1 = peg$parsecomment();
}
while (s1 !== peg$FAILED) {
s0.push(s1);
s1 = peg$parsewhitespace();
if (s1 === peg$FAILED) {
s1 = peg$parsecomment();
}
}
return s0;
}
function peg$parsecomment() {
var s0;
s0 = peg$parseblock_comment();
if (s0 === peg$FAILED) {
s0 = peg$parseline_comment();
}
return s0;
}
function peg$parseblock_comment() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c130) {
s1 = peg$c130;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e144); }
}
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$currPos;
peg$silentFails++;
if (input.substr(peg$currPos, 2) === peg$c131) {
s5 = peg$c131;
peg$currPos += 2;
} else {
s5 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e145); }
}
peg$silentFails--;
if (s5 === peg$FAILED) {
s4 = undefined;
} else {
peg$currPos = s4;
s4 = peg$FAILED;
}
if (s4 !== peg$FAILED) {
s5 = peg$parsechar();
if (s5 !== peg$FAILED) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$currPos;
peg$silentFails++;
if (input.substr(peg$currPos, 2) === peg$c131) {
s5 = peg$c131;
peg$currPos += 2;
} else {
s5 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e145); }
}
peg$silentFails--;
if (s5 === peg$FAILED) {
s4 = undefined;
} else {
peg$currPos = s4;
s4 = peg$FAILED;
}
if (s4 !== peg$FAILED) {
s5 = peg$parsechar();
if (s5 !== peg$FAILED) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
if (input.substr(peg$currPos, 2) === peg$c131) {
s3 = peg$c131;
peg$currPos += 2;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e145); }
}
if (s3 !== peg$FAILED) {
s1 = [s1, s2, s3];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseline_comment() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c132) {
s1 = peg$c132;
peg$currPos += 2;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e146); }
}
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$currPos;
peg$silentFails++;
s5 = peg$parseEOL();
peg$silentFails--;
if (s5 === peg$FAILED) {
s4 = undefined;
} else {
peg$currPos = s4;
s4 = peg$FAILED;
}
if (s4 !== peg$FAILED) {
s5 = peg$parsechar();
if (s5 !== peg$FAILED) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$currPos;
peg$silentFails++;
s5 = peg$parseEOL();
peg$silentFails--;
if (s5 === peg$FAILED) {
s4 = undefined;
} else {
peg$currPos = s4;
s4 = peg$FAILED;
}
if (s4 !== peg$FAILED) {
s5 = peg$parsechar();
if (s5 !== peg$FAILED) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsechar() {
var s0;
if (input.length > peg$currPos) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e147); }
}
return s0;
}
function peg$parseinterval_unit() {
var s0;
s0 = peg$parseKW_UNIT_YEAR();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_UNIT_MONTH();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_UNIT_DAY();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_UNIT_HOUR();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_UNIT_MINUTE();
if (s0 === peg$FAILED) {
s0 = peg$parseKW_UNIT_SECOND();
}
}
}
}
}
return s0;
}
function peg$parsewhitespace() {
var s0;
if (peg$r14.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e148); }
}
return s0;
}
function peg$parseEOL() {
var s0, s1;
s0 = peg$parseEOF();
if (s0 === peg$FAILED) {
s0 = [];
if (peg$r8.test(input.charAt(peg$currPos))) {
s1 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e37); }
}
if (s1 !== peg$FAILED) {
while (s1 !== peg$FAILED) {
s0.push(s1);
if (peg$r8.test(input.charAt(peg$currPos))) {
s1 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e37); }
}
}
} else {
s0 = peg$FAILED;
}
}
return s0;
}
function peg$parseEOF() {
var s0, s1;
s0 = peg$currPos;
peg$silentFails++;
if (input.length > peg$currPos) {
s1 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s1 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e147); }
}
peg$silentFails--;
if (s1 === peg$FAILED) {
s0 = undefined;
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseproc_stmts() {
var s0, s1;
s0 = [];
s1 = peg$parseproc_stmt();
while (s1 !== peg$FAILED) {
s0.push(s1);
s1 = peg$parseproc_stmt();
}
return s0;
}
function peg$parseproc_stmt() {
var s0, s1, s2, s3;
s0 = peg$currPos;
peg$savedPos = peg$currPos;
s1 = peg$f179();
if (s1) {
s1 = undefined;
} else {
s1 = peg$FAILED;
}
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseassign_stmt();
if (s3 === peg$FAILED) {
s3 = peg$parsereturn_stmt();
}
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f180(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseassign_stmt() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parsevar_decl();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseKW_ASSIGN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseproc_expr();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f181(s1, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsereturn_stmt() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseKW_RETURN();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseproc_expr();
if (s3 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f182(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseproc_expr() {
var s0;
s0 = peg$parseselect_stmt();
if (s0 === peg$FAILED) {
s0 = peg$parseproc_join();
if (s0 === peg$FAILED) {
s0 = peg$parseproc_additive_expr();
if (s0 === peg$FAILED) {
s0 = peg$parseproc_array();
}
}
}
return s0;
}
function peg$parseproc_additive_expr() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseproc_multiplicative_expr();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseadditive_operator();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseproc_multiplicative_expr();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseadditive_operator();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseproc_multiplicative_expr();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f183(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseproc_multiplicative_expr() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseproc_primary();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parsemultiplicative_operator();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseproc_primary();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parsemultiplicative_operator();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseproc_primary();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f184(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseproc_join() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parsevar_decl();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parsejoin_op();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parsevar_decl();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseon_clause();
if (s7 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f185(s1, s3, s5, s7);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseproc_primary() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$parseliteral();
if (s0 === peg$FAILED) {
s0 = peg$parsevar_decl();
if (s0 === peg$FAILED) {
s0 = peg$parseproc_func_call();
if (s0 === peg$FAILED) {
s0 = peg$parseparam();
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseLPAREN();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseproc_additive_expr();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseRPAREN();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f186(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
}
}
}
return s0;
}
function peg$parseproc_func_call() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseident();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseproc_primary_list();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseRPAREN();
if (s7 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f187(s1, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseproc_primary_list() {
var s0, s1, s2, s3, s4, s5, s6, s7;
s0 = peg$currPos;
s1 = peg$parseproc_primary();
if (s1 !== peg$FAILED) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseproc_primary();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
while (s3 !== peg$FAILED) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parse__();
s5 = peg$parseCOMMA();
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseproc_primary();
if (s7 !== peg$FAILED) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
} else {
peg$currPos = s3;
s3 = peg$FAILED;
}
}
peg$savedPos = s0;
s0 = peg$f188(s1, s2);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parseproc_array() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseLBRAKE();
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseproc_primary_list();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = peg$parseRBRAKE();
if (s5 !== peg$FAILED) {
peg$savedPos = s0;
s0 = peg$f189(s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsevar_decl() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseKW_VAR_PRE();
if (s1 !== peg$FAILED) {
s2 = peg$parseident_name();
if (s2 !== peg$FAILED) {
s3 = peg$parsemem_chain();
peg$savedPos = s0;
s0 = peg$f190(s2, s3);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
return s0;
}
function peg$parsemem_chain() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = [];
s2 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 46) {
s3 = peg$c29;
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e38); }
}
if (s3 !== peg$FAILED) {
s4 = peg$parseident_name();
if (s4 !== peg$FAILED) {
s3 = [s3, s4];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
while (s2 !== peg$FAILED) {
s1.push(s2);
s2 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 46) {
s3 = peg$c29;
peg$currPos++;
} else {
s3 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e38); }
}
if (s3 !== peg$FAILED) {
s4 = peg$parseident_name();
if (s4 !== peg$FAILED) {
s3 = [s3, s4];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
} else {
peg$currPos = s2;
s2 = peg$FAILED;
}
}
peg$savedPos = s0;
s1 = peg$f191(s1);
s0 = s1;
return s0;
}
function peg$parsedata_type() {
var s0;
s0 = peg$parsecharacter_string_type();
if (s0 === peg$FAILED) {
s0 = peg$parsenumeric_type();
if (s0 === peg$FAILED) {
s0 = peg$parsedatetime_type();
if (s0 === peg$FAILED) {
s0 = peg$parsejson_type();
}
}
}
return s0;
}
function peg$parsecharacter_string_type() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
s0 = peg$currPos;
s1 = peg$parseKW_CHAR();
if (s1 === peg$FAILED) {
s1 = peg$parseKW_VARCHAR();
}
if (s1 !== peg$FAILED) {
s2 = peg$parse__();
s3 = peg$parseLPAREN();
if (s3 !== peg$FAILED) {
s4 = peg$parse__();
s5 = [];
if (peg$r9.test(input.charAt(peg$currPos))) {
s6 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s6 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e39); }
}
if (s6 !== peg$FAILED) {
while (s6 !== peg$FAILED) {
s5.push(s6);
if (peg$r9.test(input.charAt(peg$currPos))) {
s6 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s6 = peg$FAILED;
if (peg$silentFails === 0) { peg$fail(peg$e39); }
}
}
} else {
s5 = peg$FAILED;
}
if (s5 !== peg$FAILED) {
s6 = peg$parse__();
s7 = peg$parseRPAREN();
if (s7 !== peg$FAILED) {
s8 = peg$parse__();
peg$savedPos = s0;
s0 = peg$f192(s1, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_CHAR();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f193(s1);
}
s0 = s1;
if (s0 === peg$FAILED) {
s0 = peg$currPos;
s1 = peg$parseKW_VARCHAR();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f194(s1);
}
s0 = s1;
}
}
return s0;
}
function peg$parsenumeric_type() {
var s0, s1;
s0 = peg$currPos;
s1 = peg$parseKW_NUMERIC();
if (s1 === peg$FAILED) {
s1 = peg$parseKW_DECIMAL();
if (s1 === peg$FAILED) {
s1 = peg$parseKW_INT();
if (s1 === peg$FAILED) {
s1 = peg$parseKW_INTEGER();
if (s1 === peg$FAILED) {
s1 = peg$parseKW_SMALLINT();
}
}
}
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f195(s1);
}
s0 = s1;
return s0;
}
function peg$parsedatetime_type() {
var s0, s1;
s0 = peg$currPos;
s1 = peg$parseKW_DATE();
if (s1 === peg$FAILED) {
s1 = peg$parseKW_TIME();
if (s1 === peg$FAILED) {
s1 = peg$parseKW_TIMESTAMP();
}
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f196(s1);
}
s0 = s1;
return s0;
}
function peg$parsejson_type() {
var s0, s1;
s0 = peg$currPos;
s1 = peg$parseKW_JSON();
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
s1 = peg$f197(s1);
}
s0 = s1;
return s0;
}
const reservedMap = {
'ALL': true,
'AND': true,
'AS': true,
'ASC': true,
'BETWEEN': true,
'BY': true,
'CASE': true,
'CREATE': true,
'CONTAINS': true,
'CURRENT_DATE': true,
'CURRENT_TIME': true,
'CURRENT_TIMESTAMP': true,
'CURRENT_USER': true,
'DELETE': true,
'DESC': true,
'DISTINCT': true,
'DROP': true,
'ELSE': true,
'END': true,
'EXISTS': true,
'EXPLAIN': true,
'FALSE': true,
'FROM': true,
'FULL': true,
'GROUP': true,
'HAVING': true,
'IN': true,
'INDEX': true,
'INNER': true,
'INSERT': true,
'INTO': true,
'IS': true,
'JOIN': true,
'JSON': true,
'LEFT': true,
'LIKE': true,
'LIMIT': true,
'NOT': true,
'NULL': true,
'ON': true,
'OR': true,
'ORDER': true,
'OUTER': true,
'RECURSIVE': true,
'REPLACE': true,
'RIGHT': true,
'SELECT': true,
'SESSION_USER': true,
'SET': true,
'SHOW': true,
'STATUS': true, // reserved (MySQL)
'SYSTEM_USER': true,
'TABLE': true,
'THEN': true,
'TRUE': true,
'TYPE': true, // reserved (MySQL)
'UNION': true,
'UPDATE': true,
'USER': true,
'USING': true,
'VALUES': true,
'WITH': true,
'WHEN': true,
'WHERE': true
};
function createUnaryExpr(op, e) {
return {
type: 'unary_expr',
operator: op,
expr: e
};
}
function createBinaryExpr(op, left, right) {
return {
type: 'binary_expr',
operator: op,
left: left,
right: right
};
}
function createList(head, tail) {
const result = [head];
for (let i = 0; i < tail.length; i++) {
result.push(tail[i][3]);
}
return result;
}
function createBinaryExprChain(head, tail) {
let result = head;
for (let i = 0; i < tail.length; i++) {
result = createBinaryExpr(tail[i][1], result, tail[i][3]);
}
return result;
}
const cmpPrefixMap = {
'+': true,
'-': true,
'*': true,
'/': true,
'>': true,
'<': true,
'!': true,
'=': true,
//between
'B': true,
'b': true,
//for is or in
'I': true,
'i': true,
//for like
'L': true,
'l': true,
//for not
'N': true,
'n': true
};
// used for dependency analysis
let varList = [];
const tableList = new Set();
const columnList = new Set();
peg$result = peg$startRuleFunction();
if (peg$result !== peg$FAILED && peg$currPos === input.length) {
return peg$result;
} else {
if (peg$result !== peg$FAILED && peg$currPos < input.length) {
peg$fail(peg$endExpectation());
}
throw peg$buildStructuredError(
peg$maxFailExpected,
peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
peg$maxFailPos < input.length
? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
: peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
);
}
}
module.exports = {
SyntaxError: peg$SyntaxError,
parse: peg$parse
};