alasql 2.0.6 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/alasql-echo.js~7d0ef547 (Added test for OUTER JOIN with missing ids) +18 -0
- package/dist/alasql-prolog.js~7d0ef547 (Added test for OUTER JOIN with missing ids) +40 -0
- package/dist/alasql-worker.js +2 -2
- package/dist/alasql-worker.js~7d0ef547 (Added test for OUTER JOIN with missing ids) +245 -0
- package/dist/alasql-worker.min.js +1 -1
- package/dist/alasql-worker.min.js~7d0ef547 (Added test for OUTER JOIN with missing ids) +2 -0
- package/dist/alasql.d.ts~7d0ef547 (Added test for OUTER JOIN with missing ids) +84 -0
- package/dist/alasql.fs.js +80 -27
- package/dist/alasql.fs.js~7d0ef547 (Added test for OUTER JOIN with missing ids) +19776 -0
- package/dist/alasql.js +80 -27
- package/dist/alasql.js~7d0ef547 (Added test for OUTER JOIN with missing ids) +19771 -0
- package/dist/alasql.min.js +2 -2
- package/dist/alasql.min.js~7d0ef547 (Added test for OUTER JOIN with missing ids) +16 -0
- package/package.json +1 -1
package/dist/alasql.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
//! AlaSQL v2.0
|
|
1
|
+
//! AlaSQL v2.1.0-develop-2f9d1182undefined | © 2014-2018 Andrey Gershun & Mathias Rangel Wulff | License: MIT
|
|
2
2
|
/*
|
|
3
3
|
@module alasql
|
|
4
|
-
@version 2.0
|
|
4
|
+
@version 2.1.0-develop-2f9d1182undefined
|
|
5
5
|
|
|
6
6
|
AlaSQL - JavaScript SQL database
|
|
7
7
|
© 2014-2016 Andrey Gershun & Mathias Rangel Wulff
|
|
@@ -142,7 +142,7 @@ var alasql = function(sql, params, cb, scope) {
|
|
|
142
142
|
Current version of alasql
|
|
143
143
|
@constant {string}
|
|
144
144
|
*/
|
|
145
|
-
alasql.version = '2.0
|
|
145
|
+
alasql.version = '2.1.0-develop-2f9d1182undefined';
|
|
146
146
|
|
|
147
147
|
/**
|
|
148
148
|
Debug flag
|
|
@@ -4109,6 +4109,15 @@ var extend = (utils.extend = function extend(a, b) {
|
|
|
4109
4109
|
return a;
|
|
4110
4110
|
});
|
|
4111
4111
|
|
|
4112
|
+
/**
|
|
4113
|
+
* Extracts the primitive data
|
|
4114
|
+
*/
|
|
4115
|
+
var getValueOf = (utils.getValueOf = function (val) {
|
|
4116
|
+
return typeof val === 'object' && (val instanceof String || val instanceof Number)
|
|
4117
|
+
? val.valueOf()
|
|
4118
|
+
: val;
|
|
4119
|
+
});
|
|
4120
|
+
|
|
4112
4121
|
/**
|
|
4113
4122
|
Flat array by first row
|
|
4114
4123
|
*/
|
|
@@ -4121,7 +4130,7 @@ var flatArray = (utils.flatArray = function (a) {
|
|
|
4121
4130
|
// For recordsets
|
|
4122
4131
|
if (typeof a === 'object' && a instanceof alasql.Recordset) {
|
|
4123
4132
|
return a.data.map(function (ai) {
|
|
4124
|
-
return ai[a.columns[0].columnid];
|
|
4133
|
+
return getValueOf(ai[a.columns[0].columnid]);
|
|
4125
4134
|
});
|
|
4126
4135
|
}
|
|
4127
4136
|
// Else for other arrays
|
|
@@ -9871,7 +9880,13 @@ yy.Select.prototype.compileOrder = function (query, params) {
|
|
|
9871
9880
|
var columnid = ord.expression.columnid;
|
|
9872
9881
|
if (query.xcolumns[columnid]) {
|
|
9873
9882
|
var dbtypeid = query.xcolumns[columnid].dbtypeid;
|
|
9874
|
-
if (
|
|
9883
|
+
if (
|
|
9884
|
+
dbtypeid == 'DATE' ||
|
|
9885
|
+
dbtypeid == 'DATETIME' ||
|
|
9886
|
+
dbtypeid == 'DATETIME2' ||
|
|
9887
|
+
dbtypeid == 'STRING' ||
|
|
9888
|
+
dbtypeid == 'NUMBER'
|
|
9889
|
+
)
|
|
9875
9890
|
dg = '.valueOf()';
|
|
9876
9891
|
// TODO Add other types mapping
|
|
9877
9892
|
} else {
|
|
@@ -9883,7 +9898,13 @@ yy.Select.prototype.compileOrder = function (query, params) {
|
|
|
9883
9898
|
var columnid = params[ord.expression.param];
|
|
9884
9899
|
if (query.xcolumns[columnid]) {
|
|
9885
9900
|
var dbtypeid = query.xcolumns[columnid].dbtypeid;
|
|
9886
|
-
if (
|
|
9901
|
+
if (
|
|
9902
|
+
dbtypeid == 'DATE' ||
|
|
9903
|
+
dbtypeid == 'DATETIME' ||
|
|
9904
|
+
dbtypeid == 'DATETIME2' ||
|
|
9905
|
+
dbtypeid == 'STRING' ||
|
|
9906
|
+
dbtypeid == 'NUMBER'
|
|
9907
|
+
)
|
|
9887
9908
|
dg = '.valueOf()';
|
|
9888
9909
|
// TODO Add other types mapping
|
|
9889
9910
|
} else {
|
|
@@ -10949,10 +10970,15 @@ yy.Op.prototype.toJS = function (context, tableid, defcols) {
|
|
|
10949
10970
|
context +
|
|
10950
10971
|
'))';
|
|
10951
10972
|
s += '.indexOf(';
|
|
10952
|
-
s += leftJS() + ')>-1)';
|
|
10973
|
+
s += 'alasql.utils.getValueOf(' + leftJS() + '))>-1)';
|
|
10953
10974
|
} else if (Array.isArray(this.right)) {
|
|
10954
10975
|
// if(this.right.length == 0) return 'false';
|
|
10955
|
-
s =
|
|
10976
|
+
s =
|
|
10977
|
+
'([' +
|
|
10978
|
+
this.right.map(ref).join(',') +
|
|
10979
|
+
'].indexOf(alasql.utils.getValueOf(' +
|
|
10980
|
+
leftJS() +
|
|
10981
|
+
'))>-1)';
|
|
10956
10982
|
|
|
10957
10983
|
} else {
|
|
10958
10984
|
s = '(' + rightJS() + '.indexOf(' + leftJS() + ')>-1)';
|
|
@@ -10969,11 +10995,11 @@ yy.Op.prototype.toJS = function (context, tableid, defcols) {
|
|
|
10969
10995
|
// s += 'alasql.utils.flatArray(this.query.queriesfn['+(this.queriesidx)+'](params,null,p))';
|
|
10970
10996
|
s += 'alasql.utils.flatArray(this.queriesfn[' + this.queriesidx + '](params,null,p))';
|
|
10971
10997
|
s += '.indexOf(';
|
|
10972
|
-
s += leftJS() + ')<0)';
|
|
10998
|
+
s += 'alasql.utils.getValueOf(' + leftJS() + '))<0)';
|
|
10973
10999
|
} else if (Array.isArray(this.right)) {
|
|
10974
11000
|
// if(this.right.length == 0) return 'true';
|
|
10975
11001
|
s = '([' + this.right.map(ref).join(',') + '].indexOf(';
|
|
10976
|
-
s += leftJS() + ')<0)';
|
|
11002
|
+
s += 'alasql.utils.getValueOf(' + leftJS() + '))<0)';
|
|
10977
11003
|
} else {
|
|
10978
11004
|
s = '(' + rightJS() + '.indexOf(';
|
|
10979
11005
|
s += leftJS() + ')==-1)';
|
|
@@ -12347,7 +12373,7 @@ alasql.stdfn.CONVERT = function (value, args) {
|
|
|
12347
12373
|
if (/\d{8}/.test(val)) {
|
|
12348
12374
|
t = new Date(+val.substr(0, 4), +val.substr(4, 2) - 1, +val.substr(6, 2));
|
|
12349
12375
|
} else {
|
|
12350
|
-
t =
|
|
12376
|
+
t = newDate(val);
|
|
12351
12377
|
}
|
|
12352
12378
|
switch (args.style) {
|
|
12353
12379
|
case 1: // mm/dd/yy
|
|
@@ -12518,9 +12544,9 @@ alasql.stdfn.CONVERT = function (value, args) {
|
|
|
12518
12544
|
var udbtypeid = args.dbtypeid.toUpperCase();
|
|
12519
12545
|
|
|
12520
12546
|
if (args.dbtypeid == 'Date') {
|
|
12521
|
-
return
|
|
12547
|
+
return newDate(val);
|
|
12522
12548
|
} else if (udbtypeid == 'DATE') {
|
|
12523
|
-
var d =
|
|
12549
|
+
var d = newDate(val);
|
|
12524
12550
|
var s =
|
|
12525
12551
|
d.getFullYear() +
|
|
12526
12552
|
'.' +
|
|
@@ -12529,7 +12555,7 @@ alasql.stdfn.CONVERT = function (value, args) {
|
|
|
12529
12555
|
('0' + d.getDate()).substr(-2);
|
|
12530
12556
|
return s;
|
|
12531
12557
|
} else if (udbtypeid == 'DATETIME' || udbtypeid == 'DATETIME2') {
|
|
12532
|
-
var d =
|
|
12558
|
+
var d = newDate(val);
|
|
12533
12559
|
var s =
|
|
12534
12560
|
d.getFullYear() +
|
|
12535
12561
|
'.' +
|
|
@@ -13305,7 +13331,7 @@ stdfn.OBJECT_ID = function (objid) {
|
|
|
13305
13331
|
|
|
13306
13332
|
stdfn.DATE = function (d) {
|
|
13307
13333
|
if (/\d{8}/.test(d)) return new Date(+d.substr(0, 4), +d.substr(4, 2) - 1, +d.substr(6, 2));
|
|
13308
|
-
return
|
|
13334
|
+
return newDate(d);
|
|
13309
13335
|
};
|
|
13310
13336
|
|
|
13311
13337
|
stdfn.NOW = function () {
|
|
@@ -13331,37 +13357,37 @@ stdfn.GETDATE = stdfn.NOW;
|
|
|
13331
13357
|
stdfn.CURRENT_TIMESTAMP = stdfn.NOW;
|
|
13332
13358
|
|
|
13333
13359
|
stdfn.SECOND = function (d) {
|
|
13334
|
-
var d =
|
|
13360
|
+
var d = newDate(d);
|
|
13335
13361
|
return d.getSeconds();
|
|
13336
13362
|
};
|
|
13337
13363
|
|
|
13338
13364
|
stdfn.MINUTE = function (d) {
|
|
13339
|
-
var d =
|
|
13365
|
+
var d = newDate(d);
|
|
13340
13366
|
return d.getMinutes();
|
|
13341
13367
|
};
|
|
13342
13368
|
|
|
13343
13369
|
stdfn.HOUR = function (d) {
|
|
13344
|
-
var d =
|
|
13370
|
+
var d = newDate(d);
|
|
13345
13371
|
return d.getHours();
|
|
13346
13372
|
};
|
|
13347
13373
|
|
|
13348
13374
|
stdfn.DAYOFWEEK = stdfn.WEEKDAY = function (d) {
|
|
13349
|
-
var d =
|
|
13375
|
+
var d = newDate(d);
|
|
13350
13376
|
return d.getDay();
|
|
13351
13377
|
};
|
|
13352
13378
|
|
|
13353
13379
|
stdfn.DAY = stdfn.DAYOFMONTH = function (d) {
|
|
13354
|
-
var d =
|
|
13380
|
+
var d = newDate(d);
|
|
13355
13381
|
return d.getDate();
|
|
13356
13382
|
};
|
|
13357
13383
|
|
|
13358
13384
|
stdfn.MONTH = function (d) {
|
|
13359
|
-
var d =
|
|
13385
|
+
var d = newDate(d);
|
|
13360
13386
|
return d.getMonth() + 1;
|
|
13361
13387
|
};
|
|
13362
13388
|
|
|
13363
13389
|
stdfn.YEAR = function (d) {
|
|
13364
|
-
var d =
|
|
13390
|
+
var d = newDate(d);
|
|
13365
13391
|
return d.getFullYear();
|
|
13366
13392
|
};
|
|
13367
13393
|
|
|
@@ -13381,13 +13407,30 @@ var PERIODS = {
|
|
|
13381
13407
|
};
|
|
13382
13408
|
|
|
13383
13409
|
alasql.stdfn.DATEDIFF = function (period, d1, d2) {
|
|
13384
|
-
var interval =
|
|
13410
|
+
var interval = newDate(d2).getTime() - newDate(d1).getTime();
|
|
13385
13411
|
return interval / PERIODS[period.toLowerCase()];
|
|
13386
13412
|
};
|
|
13387
13413
|
|
|
13388
13414
|
alasql.stdfn.DATEADD = function (period, interval, d) {
|
|
13389
|
-
var nd =
|
|
13390
|
-
|
|
13415
|
+
var nd = newDate(d);
|
|
13416
|
+
var period = period.toLowerCase();
|
|
13417
|
+
|
|
13418
|
+
switch (period) {
|
|
13419
|
+
case 'year':
|
|
13420
|
+
nd.setFullYear(nd.getFullYear() + interval);
|
|
13421
|
+
break;
|
|
13422
|
+
case 'quarter':
|
|
13423
|
+
nd.setMonth(nd.getMonth() + interval * 3);
|
|
13424
|
+
break;
|
|
13425
|
+
case 'month':
|
|
13426
|
+
nd.setMonth(nd.getMonth() + interval);
|
|
13427
|
+
break;
|
|
13428
|
+
default:
|
|
13429
|
+
nd = new Date(nd.getTime() + interval * PERIODS[period]);
|
|
13430
|
+
break;
|
|
13431
|
+
}
|
|
13432
|
+
|
|
13433
|
+
return nd;
|
|
13391
13434
|
};
|
|
13392
13435
|
|
|
13393
13436
|
alasql.stdfn.INTERVAL = function (interval, period) {
|
|
@@ -13395,15 +13438,25 @@ alasql.stdfn.INTERVAL = function (interval, period) {
|
|
|
13395
13438
|
};
|
|
13396
13439
|
|
|
13397
13440
|
alasql.stdfn.DATE_ADD = alasql.stdfn.ADDDATE = function (d, interval) {
|
|
13398
|
-
var nd =
|
|
13441
|
+
var nd = newDate(d).getTime() + interval;
|
|
13399
13442
|
return new Date(nd);
|
|
13400
13443
|
};
|
|
13401
13444
|
|
|
13402
13445
|
alasql.stdfn.DATE_SUB = alasql.stdfn.SUBDATE = function (d, interval) {
|
|
13403
|
-
var nd =
|
|
13446
|
+
var nd = newDate(d).getTime() - interval;
|
|
13404
13447
|
return new Date(nd);
|
|
13405
13448
|
};
|
|
13406
13449
|
|
|
13450
|
+
var dateRegexp = /^\d{4}\.\d{2}\.\d{2} \d{2}:\d{2}:\d{2}/;
|
|
13451
|
+
function newDate(d) {
|
|
13452
|
+
if (typeof d === 'string') {
|
|
13453
|
+
if (dateRegexp.test(d)) {
|
|
13454
|
+
d = d.replace('.', '-').replace('.', '-');
|
|
13455
|
+
}
|
|
13456
|
+
}
|
|
13457
|
+
return new Date(d);
|
|
13458
|
+
}
|
|
13459
|
+
|
|
13407
13460
|
/*
|
|
13408
13461
|
//
|
|
13409
13462
|
// DROP TABLE for Alasql.js
|