plyql
Version:
A SQL-like interface for Plywood
34 lines (33 loc) • 1.33 kB
JavaScript
;
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;