UNPKG

alasql

Version:

AlaSQL.js - JavaScript SQL database library for relational and graph data manipulation with support of localStorage, IndexedDB, and Excel

83 lines (72 loc) 2.21 kB
/* // // Select run-time part for Alasql.js // Date: 03.11.2014 // (c) 2014, Andrey Gershun // */ yy.Select.prototype.compileDefCols = function(query, databaseid) { // console.log('defcols'); var defcols = {}; if(this.from) { this.from.forEach(function(fr){ if(fr instanceof yy.Table) { var alias = fr.as || fr.tableid; // console.log(alasql.databases[fr.databaseid || databaseid]); // console.log(alasql.databases[fr.databaseid || databaseid].tables, fr.tableid); //console.log(alasql.databases[fr.databaseid || databaseid].tables, fr.tableid); //console.log(alasql.databases); var table = alasql.databases[fr.databaseid || databaseid].tables[fr.tableid]; //console.log(table); if(table.columns) { table.columns.forEach(function(col){ if(defcols[col.columnid]) { defcols[col.columnid] = '-'; // Ambigous } else { defcols[col.columnid] = alias; } }); } } else if(fr instanceof yy.Select) { } else if(fr instanceof yy.Search) { } else if(fr instanceof yy.ParamValue) { } else if(fr instanceof yy.VarValue) { } else if(fr instanceof yy.FuncValue) { } else if(fr instanceof yy.FromData) { } else { throw new Error('Unknown type of FROM clause'); }; }); }; if(this.joins) { this.joins.forEach(function(jn){ // console.log(jn); if(jn.table) { var alias = jn.table.tableid; if(jn.as) alias = jn.as; var alias = jn.as || jn.table.tableid; var table = alasql.databases[jn.table.databaseid || databaseid].tables[jn.table.tableid]; // console.log(jn.table.tableid, jn.table.databaseid); if(table.columns) { table.columns.forEach(function(col){ if(defcols[col.columnid]) { defcols[col.columnid] = '-'; // Ambigous } else { defcols[col.columnid] = alias; } }); } } else if(jn.select) { } else if(jn.param) { } else if(jn.func) { } else { throw new Error('Unknown type of FROM clause'); }; }); }; // for(var k in defcols) { // if(defcols[k] == '-') defcols[k] = undefined; // } // console.log(defcols); return defcols; }