n1-sql
Version:
32 lines (29 loc) • 913 B
JavaScript
;
module.exports.setSingularState = function (state, path, value) {
var old = state.getIn([path]);
if (old) {
throw '"' + path + '" already set to "' + old + '".';
}
return state.setIn([path], value);
};
module.exports.parseColumn = function (colId, state) {
var cs = colId.split('.');
if (cs.length !== 2) {
throw 'Expected a column description of kind "table.colName", but got "' + colId + '".';
}
var tableName = cs[0];
var table = state.getIn(['table2dp', tableName]);
if (!table) {
throw 'Undeclared table "' + tableName + '" in join "' + colId + '".';
}
var column = cs[1];
var res = { table: table, column: column };
if (tableName !== table) {
res.tableAlias = tableName;
}
return res;
};
module.exports.toSqlColumn = function (colHash) {
var t = colHash.tableAlias ? colHash.tableAlias : colHash.table;
return t + '.' + colHash.column;
};