UNPKG

plyql

Version:

A SQL-like interface for Plywood

34 lines (33 loc) 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var plywood_1 = require("plywood"); function upperCaseRefs(expression) { return expression.substitute(function (ex) { if (ex instanceof plywood_1.RefExpression) { var v = ex.valueOf(); v.name = v.name.toUpperCase(); return new plywood_1.RefExpression(v); } return null; }); } function executeSQLParse(sqlParse, context, timezone) { var expression = sqlParse.expression, database = sqlParse.database; if (database && database.toLowerCase() === 'information_schema') { expression = upperCaseRefs(expression); } return expression.compute(context, { timezone: timezone }); } exports.executeSQLParse = executeSQLParse; function executeSQLParseStream(sqlParse, context, timezone) { var expression = sqlParse.expression, database = sqlParse.database; if (database && database.toLowerCase() === 'information_schema') { expression = upperCaseRefs(expression); } return expression.computeStream(context, { timezone: timezone }); } exports.executeSQLParseStream = executeSQLParseStream; function executePlywood(expression, context, timezone) { return expression.compute(context, { timezone: timezone }); } exports.executePlywood = executePlywood;