UNPKG

alasql

Version:

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

91 lines (78 loc) 2.46 kB
console.log('SPEED TESTS FROM http://www.sqlite.org/speed.html'); var zt = require('../../lib/zt/zt.js'); var alasql = require('../../alasql'); var db = new alasql.Database(); console.log('test 1'); zt('TEST1 - 1000 INSERTs', 1, function(){ // alasql.exec('CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))'); // TODO: VARCHAR(100) syntax db.exec('CREATE TABLE t1(a INTEGER, b INTEGER, c STRING)'); for(var i=0;i<1000;i++) { db.exec('INSERT INTO t1 VALUES ('+i+', '+(i*i*i%100000)+",'bla-blah-blah')"); } }); console.log('test 2'); zt('TEST2 - 25000 INSERTs in a transaction',function(){ // TODO: BEGIN AND COMMIT sql statements // TODO: Fast insert parser (may be separate parser) db.transaction(function(){ db.exec('CREATE TABLE t2 (a INTEGER, b INTEGER, c STRING)'); for(var i=0;i<25000;i++) { db.exec('INSERT INTO t2 VALUES ('+i+', '+(i*i*i%100000)+",'bla-blah-blah')"); }; }); }); console.log('test 3'); zt('TEST3 - 25000 INSERTs into an indexed table',function(){ // TODO: Indexies db.exec('CREATE TABLE t3 (a INTEGER, b INTEGER, c STRING)'); for(var i=0;i<25000;i++) { db.exec('INSERT INTO t3 VALUES ('+i+', '+(i*i*i%100000)+",'bla-blah-blah')"); }; }); console.log('test 4'); zt('TEST4 - 100 SELECTs without an index',function(){ // TODO AVG db.transaction(function(){ for(var i=0;i<100;i++) { db.exec('SELECT COUNT(*), SUM(b) FROM t2 WHERE b>='+(i*100)+' AND b<'+(i*100+1000)); }; }); }); console.log('test 5'); console.log('test 6'); console.log('test 7'); console.log('test 8'); zt('TEST8 - 1000 UPDATEs without an index',function(){ // TODO AVG db.transaction(function(){ for(var i=0;i<100;i++) { db.exec('UPDATE t1 SET b=b*2 WHERE b>='+(i*10)+' AND b<'+(i*10+10)); }; }); }); console.log('test 9'); zt('TEST9 - 1000 UPDATEs without an index',function(){ // TODO AVG db.transaction(function(){ for(var i=0;i<25000;i++) { db.exec('UPDATE t2 SET b='+(i*i*i%100000)+' WHERE a='+i); }; }); }); console.log('test 10'); console.log('test 11'); console.log('test 12'); console.log('test 13'); zt('TEST13 - DELETE with an index',function(){ db.exec('DELETE FROM t2 WHERE a>10 AND a<20000'); }); console.log('test 14'); console.log('test 15'); console.log('test 16'); zt('TEST16 - DROP TABLE',function(){ db.exec('DROP TABLE t1'); db.exec('DROP TABLE t2'); db.exec('DROP TABLE t3'); }); zt.log();