UNPKG

alasql

Version:

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

65 lines (58 loc) 1.96 kB
/* // // DROP TABLE for Alasql.js // Date: 03.11.2014 // (c) 2014, Andrey Gershun // */ yy.DropTable = function (params) { return yy.extend(this, params); } yy.DropTable.prototype.toString = function() { var s = K('DROP')+' '; if(this.view) s += K('VIEW'); else s += K('TABLE'); if(this.ifexists) s += ' '+K('IF')+' '+K('EXISTS'); s += ' '+this.table.toString(); return s; } // DROP TABLE yy.DropTable.prototype.execute = function (databaseid, params, cb) { // console.log(arguments); // console.log(alasql.databases[databaseid]); var db = alasql.databases[this.table.databaseid || databaseid]; var tableid = this.table.tableid; // console.log(db, this.table.databaseid ); if(db.engineid /*&& alasql.options.autocommit*/) { return alasql.engines[db.engineid].dropTable(this.table.databaseid || databaseid,tableid, this.ifexists, cb); } if(!this.ifexists || this.ifexists && db.tables[tableid]) { if(!db.tables[tableid]) { if(!alasql.options.dropifnotexists) { throw new Error('Can not drop table \''+this.table.tableid+'\', because it does not exist in the database.'); } } else { delete db.tables[tableid]; return 1; } } return 0; }; yy.TruncateTable = function (params) { return yy.extend(this, params); } yy.TruncateTable.prototype.toString = function() { var s = K('TRUNCATE')+' '+K('TABLE'); s += ' '+this.table.toString(); return s; } yy.TruncateTable.prototype.execute = function (databaseid, params, cb) { var db = alasql.databases[this.table.databaseid || databaseid]; var tableid = this.table.tableid; // console.log(db, this.table.databaseid ); if(db.engineid) { return alasql.engines[db.engineid].truncateTable(this.table.databaseid || databaseid,tableid, this.ifexists, cb); } if(db.tables[tableid]) { db.tables[tableid].data = []; } else { throw new Error('Cannot truncate table becaues it does not exist'); } return 0; };