alasql
Version:
AlaSQL.js - JavaScript SQL database library for relational and graph data manipulation with support of localStorage, IndexedDB, and Excel
64 lines (48 loc) • 1.86 kB
JavaScript
if(typeof exports === 'object') {
var assert = require("assert");
var alasql = require('..');
} else {
__dirname = '.';
};
describe('Test 311 Special SEARCHors', function() {
it('0. Create database ',function(done){
alasql('CREATE DATABASE test311;USE test311');
done();
});
it('1. SEARCH DISTINCT, UNION ALL, and other selectors',function(done){
// var res = alasql.parse('CREATE GRAPH #Andrey');
var data = [{a:1,b:10},{a:2,b:20},{a:3,b:30},{a:4,b:40},{a:5,b:50},{a:5,b:50}];
var res = alasql('SEARCH DISTINCT(/b) FROM ?',[data]);
assert.deepEqual(res,[10,20,30,40,50]);
var res = alasql('SEARCH UNION ALL(/a,/b) FROM ?',[data]);
assert.deepEqual(res,[ 1, 2, 3, 4, 5, 5, 10, 20, 30, 40, 50, 50 ]);
// Ala UNION
var res = alasql('SEARCH DISTINCT(UNION ALL(/a,/b)) FROM ?',[data]);
assert.deepEqual(res,[ 1, 2, 3, 4, 5, 10, 20, 30, 40, 50]);
var res = alasql('SEARCH UNION(/a,/b) FROM ?',[data]);
assert.deepEqual(res,[ 1, 2, 3, 4, 5, 10, 20, 30, 40, 50]);
//
/*
var res = alasql('SEARCH INTERSECT(a,b)');
var res = alasql('SEARCH EXCEPT(a,b)');
var res = alasql('SEARCH CROSS JOIN(a,b,c)');
var res = alasql('SEARCH MERGE(@a,@b)');
var res = alasql('SEARCH DELETE(@a,@b)'); // properties
var res = alasql('SEARCH REMOVE(@a,@b)'); // graphs
var res = alasql('SEARCH RETURNS(a AS b, b+1 AS c)'); // graphs
// Post processors
var res = alasql('SEARCH ORDER BY() '); // graphs
var res = alasql('SEARCH EVEN()'); // graphs
var res = alasql('SEARCH ODD()'); // graphs
var res = alasql('SEARCH NTH(2)'); // graphs -??
var res = alasql('SEARCH SLICE(2,2)'); // graphs -??
// selector ORDER BY (a,b,c)
console.log(res);
*/
done();
});
it('99. Drop database ',function(done){
alasql('DROP DATABASE test311');
done();
});
});