alasql 4.0.1 → 4.0.3

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/CHANGELOG.md ADDED
@@ -0,0 +1,942 @@
1
+ # Changelog
2
+
3
+ Please see https://github.com/AlaSQL/alasql/releases for more info...
4
+
5
+ ## 0.7.1 (2021-03-05)
6
+
7
+ - Bump: Update lodash dependency
8
+
9
+
10
+ ## 0.7.0 (2021-03-03)
11
+
12
+ - Fix: Code injection vulnerability processing literals
13
+ - Fix: Return empty results in group by when input is empty #927
14
+
15
+
16
+
17
+ ### 0.6.5 (11.11.2020)
18
+
19
+ - Fix: Do not include null in COUNT or AVG fixes #1251
20
+
21
+
22
+ ### 0.6.4 (24.09.2020)
23
+
24
+ - Add: String and Number objects supported as values
25
+ - Add: `JOIN USING` now supports String and Number objects
26
+ - Fix: File naming when exporting to Exel
27
+
28
+
29
+ ### 0.6.2 (31.05.2020)
30
+
31
+
32
+ - Add: Use NOT BETWEEN without parenthesis.
33
+
34
+
35
+
36
+ ### 0.6.1 (20.05.2020)
37
+
38
+ - Add: Use BETWEEN without parenthesis.
39
+ - Fix: Let ADD COLUMN use the given dbtypeid
40
+
41
+
42
+
43
+ ## 0.6.0 (02.05.2020)
44
+
45
+ - Add: NULLS FIRST/LAST clause in ORDER BY (#1187)
46
+ - Add: Support table/row names starting with numbers
47
+
48
+
49
+
50
+ ### 0.5.9 (26.04.2020)
51
+
52
+ - Add: Composite foreign keys implementation (#1179)
53
+ - Fix: Insert's toString() (#1177)
54
+ - Fix: DROP Filestorage Database with database name (#1184)
55
+
56
+ ### 0.5.8 (27.03.2020)
57
+
58
+ - Fix: usage of CURRENT_TIMESTAMP (Fix #1174)
59
+
60
+ ### 0.5.6 "Bafq" (22.03.2020)
61
+
62
+ - Add: GroupBy within nested array data set/params (#1167)
63
+ - Fix: Use unknown DB name
64
+
65
+ ### 0.5.5 "Bam" (29.01.2020)
66
+
67
+ - Fix: Typescript typing
68
+
69
+ ### 0.5.4 "Qom" (19.01.2020)
70
+
71
+ - Fix: QUART/MEDIAN/MIN/MAX on number/date/string
72
+
73
+
74
+ ### 0.5.3 "Chabahar" (02.01.2020)
75
+
76
+ - Better: Support csv data from buffer
77
+ - Better: Error message for foreign key constraint fail #1009
78
+ - Fix: ORDER BY supports parameters #1100
79
+ - Fix: Filestorage DELETE FROM #624
80
+ - Fix: Drop trigger #1113
81
+
82
+
83
+ ## 0.5.1 "Qazvin" (16.09.2019)
84
+
85
+ - Add: Chain OUTER JOIN's #1105
86
+ - Better: Typescript typings
87
+ - Better: Updated dependencies
88
+ - Fix: Join on CSV files directly
89
+ - Fix: OUTER JOIN bug #1101
90
+ - Fix: Pivot function cast for SUM and AVG
91
+
92
+
93
+ ### 0.4.11 "Lawdar" (05.10.2018)
94
+
95
+ * Add: Specified XLSX sheet without knowing the name
96
+
97
+
98
+ ### 0.4.10 "Maoshk" (04.10.2018)
99
+
100
+
101
+ * Add: xlsxml files with multiple sheets
102
+
103
+
104
+ ### 0.4.9 "Alsalfiah" (05.08.2018)
105
+
106
+ * Better: Error message grammar
107
+ * Better: Support for Meteor code standards
108
+ * Fix: dbprecision for select query
109
+ * Fix: Handle promise error when reading one line csv files
110
+ * Fix: AUTO_INCREMENT when using local storage
111
+
112
+ ### 0.4.8 "Nafhan" (14.07.2018)
113
+
114
+ * Fix: Error when installing caused by missing cli file in npm
115
+
116
+
117
+ ### 0.4.7 "Tarim" (14.07.2018)
118
+
119
+ * Better: Always find global object
120
+
121
+
122
+ ### 0.4.6 "Rahbah" (14.06.2018)
123
+
124
+ * Better: `Use strict` mode for javascript
125
+
126
+
127
+ ### 0.4.5 "Marib" (24.01.2018)
128
+
129
+ * Fix: Aggregate functions applied to empty sets (#964)
130
+ * Fix: missing ORDER BY direction when calling toString on AST (#970)
131
+ * Fix: Converting the syntax tree back to SQL with multple joins (#972)
132
+
133
+ ### 0.4.4 "Alsowm" (03.12.2017)
134
+
135
+ * Better: Better usage via unpkg.com
136
+ * Better: Better usage via jsdelivr.com
137
+
138
+
139
+ ### 0.4.3 "Hajjah" (05.09.2017)
140
+
141
+ * Update: Removed implicit "any" in definition file
142
+ * Fix: Tabletop reads in empty cells as numeric 0 instead of empty string
143
+ * Fix: DISTINCT on emtpy table produced error
144
+
145
+
146
+ ### 0.4.2 "Baraqish" (17.08.2017)
147
+
148
+ * Added: SQL function LTRIM
149
+ * Added: SQL function RTRIM
150
+ * Better: Remove implicit any in type script definitioni
151
+ * Better: Out-of-the-box Webpack and Browserify compatibility without hacks
152
+ * Fix: Use created database id on foreign key check as default database
153
+
154
+
155
+ ### 0.4.1 "Sayhut" (23.07.2017)
156
+
157
+ * Better: Performace on `distinct` selects
158
+ * Better: Hashing for cashed SQLs
159
+ * Fix: Case insensetive selects from EXCEL
160
+ * Fix: Select from empty EXCEL
161
+
162
+
163
+ ##0.4.0 "Sanaa" (09.05.2017)
164
+ * **Breaking:** OFFSET will now skip the first N rows in a result set before starting to return any rows (before it would skip N-1)
165
+ * Add: Quartile aggregators (QUART, QUART2, QUART3)
166
+ * Add: Typescript definitoin now supports extensions
167
+ * Fix: Aggregate MEDIAN now working with ROLLUP
168
+ * Fix: Aggregate STDEV now working with ROLLUP
169
+ * Fix: SHOW COLUMNS works with the promise interface
170
+ * Fix: SHOW INDEX works with the promise interface
171
+
172
+ ### 0.3.9 "Turua" (23.03.2017)
173
+ * Add: React native support
174
+ * Fix: CSV error when quote set to empty
175
+ * Fix: autoExt bug when not set for CSV on read
176
+
177
+ ### 0.3.8 "Wanaka" (15.03.2017)
178
+
179
+ * Added: Lazy promise notation
180
+ * Added: Create user defined function via SQL statement
181
+ * Added: Create user defined aggretator via SQL statement
182
+ * Added: Auto extension for filenames on read + write
183
+ * Fix: `.xlsx` can now be imported via browser "upload"
184
+ * Update: `xls.js` package not needed any more. Only `xlsx` package is needed.
185
+
186
+ ### 0.3.7 "Niau" (20.02.2017)
187
+
188
+ * Added: Last `S` in `VALUES` can be omitted when insterting (For the lazy ones)
189
+ * Added: The `VALUES` keyword is optional when insterting (For the very lazy ones)
190
+ * Fix: Multiple worksheet Excel with custom headers
191
+
192
+
193
+ ### 0.3.6 "Hipu" (24.01.2017)
194
+
195
+ * Addded: Support for "use strict"
196
+ * Fix: Select.toString() had bugs
197
+ * Update: Better and faster deep compare of objects
198
+
199
+
200
+ ### 0.3.5 "Maiao" (22.12.2016)
201
+ * Added: Import data through AngularJS controllers
202
+ * Added: Support for running in VM for nodeJS
203
+ * Fix: Typescript definition
204
+ * Fix: False negatives for deepequal'ing of extended primitives
205
+ * Fix: Double quotation marks in CSV output
206
+
207
+
208
+ ### 0.3.4 "Fitii" (09.11.2016)
209
+ * Added: trigger `AFTER DELETE`
210
+ * Fix: `TRUNCATE TABLE` now works for local storage DB
211
+ * Fix: `JOIN` a sub select
212
+ * Removed: The `HELP` command (to save space)
213
+
214
+
215
+ ### 0.3.3 "Makemo" (13.10.2016)
216
+ * Add: support for VALUE inside checks
217
+ * Add: Conflate null and undefined
218
+ * Add: Load CSV data from a string
219
+ * Add: Warn when server side uses browser build of lib
220
+ * Update: typescript definition for native import
221
+ * Update: filesaver.js updated to 1.3.2
222
+
223
+
224
+ ### 0.3.2 "Maumu" (05.09.2016)
225
+ * Added: Postgres arrays like array[] and text[]
226
+ * Added: Allow non-reserved keywords as identifiers
227
+ * Fix: Empty tsv/csv files will no longer raise an error
228
+ * Fix: alasql.d.ts format
229
+ * Fix: Better way to find out if indexedDB is present
230
+ * Fix: `null = null` is (now) null, baby.
231
+ * Update: Column names first for RECORDSETS
232
+
233
+
234
+ ### 0.3.1 "Taravao" (01.08.2016)
235
+ * Allow unknown functions to be defined on alasql.fn afterwards
236
+ * Easy access to AUTOINCREMENT values
237
+ * MEDIAN will ignore null values
238
+ * STDEV will ignore null values
239
+
240
+
241
+ ## Version 0.3.0 "Papeete" (25.07.2016)
242
+ * Breaking change: CSVs with header will now default have BOM added (for better utf8 support)
243
+ * Added: Constraint names will now be exported in error message
244
+ * Added: Web worker now supports .promise notation
245
+ * Added: Postgres-specific aliases and fixes
246
+ * Added: Make converting to an unknown type result in a noop rather than an error
247
+ * Added: Support column types consisting of more than 2 words
248
+
249
+
250
+ ### 0.2.7 "Corinth" (30.05.2016)
251
+ * Added: Now supports Node 6.0
252
+ * Added: Let .promise return all responses (not just last)
253
+ * Change: Headers set as default true for INTO and FROM statements
254
+ * Fix: Back on track (for good) with supporting Meteor
255
+ * Fix: Default tentative string to numbers conversion when reading data from google spreadsheets
256
+ * Update: No need for empty params when async
257
+ * Update: Better hashing for cashing
258
+
259
+
260
+ ### 0.2.6 "Frikes" (22.04.2016)
261
+ * Added: Progress callback
262
+ * Change: CLI defaults to pretty print (with option for compressed output as original)
263
+ * Fix: Declaring all variables
264
+ * Fix: Read XLSX files
265
+ * Fix: Selecting a view from localstorage
266
+ * Fix: CREATE VIEW for localStorage engine
267
+ * Fix: Better use for RequireJS
268
+ * Update: CLI output is guaranteed to be valid JSON
269
+ * Update: Better error message for missing table or column
270
+ * Update: Typescript defenition for .promise
271
+ * Update: Empty params not needed for async calls
272
+
273
+
274
+ ### 0.2.5 "Polychrono" (23.03.2016)
275
+ * Added: Promise chain of queries
276
+ * Fix: Remove leading whitespace from fields when importing csv files
277
+ * Fix: Set default option for XLSXML
278
+ * Fix: Use callbacks consistently
279
+
280
+
281
+ ### 0.2.4 "Exogi" (04.03.2016)
282
+ * Added: Central enviroment detection
283
+ * Added: SELECT * FROM ? GROUP BY a works as FIRST(*)
284
+ * Added: Better detection for browserify, phonegap and cordova
285
+ * Fix: CONCAT without space
286
+ * Fix: IE11: Reading Excel File
287
+ * Fix: Date handeling (in)dependent from locale
288
+
289
+
290
+ ### 0.2.3 "Spetses" (01.02.2016)
291
+ * Changed: New fast way to calculate aggregators (some parameters changed)
292
+ * Added: User defined aggregators
293
+ * Fixed: Remove empty Last line in TXT and XLSX
294
+ * Changed: {headers:true} now is default option
295
+ * Fixed: option.joinstar flag for SELECT * FROM a,b
296
+ * Added: EXP() function, ^ now is XOR, ~ binary NOT
297
+ * Added: REPLACE() string function (see issue #560)
298
+ * Added: NEWID(), UUID() and GEN_RANDOM_UUID() functions for GUID
299
+ * Added: DEFAULT for column can be a function (e.g. DEFAULT NEWID())
300
+
301
+
302
+ ### 0.2.2 "Mitilini" (15.01.2016)
303
+ * Fix: SELECT can use functions from GROUP BY list
304
+ * Fix: Bug in NUMERIC type conversion
305
+ * Added: functions CEIL/CEILING and FLOOR
306
+ * Added: CONCAT to the list of standard functions
307
+ * Fix: Bug with primary key after DELETE all
308
+ * Fix: Added String() to UPPER() and LOWER() functions
309
+ * Added: PIVOT and UNPIVOT functionality
310
+ * Added: REPLACE INTO command (see issue #467)
311
+ * Added: ON UPDATE - column constraint
312
+ * Fix: COLLATE and UNIQUE KEY words for CREATE TABLE (see issue #452)
313
+ * Fix: Added params to SEARCH WHERE function
314
+ * Added: TRIGGERs
315
+ * Fix: Bug with MATRIX modifier
316
+ * Fix: Bug with undefined content variable with IN operation (issue #501)
317
+ * Fix: Bug with wrong realizaion of REPLACE INTO (issue #505)
318
+ * Added: >>,<<,&,| - binary operations
319
+ * Added: || - string concatenation (issue #514)
320
+ * Added: GLOB operator
321
+ * Fix: >> for binary operation and graphs collisions
322
+ * Added: SELECT * FROM INSERTED (for T-SQL like triggers)
323
+ * Fix: Added DEFAULT clause to INSERT SELECT statement
324
+ * Added: expression NOT NULL operator (issue #507)
325
+ * Added and Fix: REINDEX and fixed CREATE INDEX (issues #509, #470)
326
+ * Fixed: browser tests, IndexedDB tests, DROP TABLE callback for external engines
327
+ * Added: DATETIME2 type for compatibility with T-SQL
328
+ * Added: DATEADD() and DATEDIFF() functions in T-SQL style
329
+ * Added: CONCAT_WS() function
330
+ * Added: OF() selector for SEARCH statement
331
+
332
+ ### 0.2.1 "Rodos" (28.09.2015)
333
+ * Added: AlaSQL CLI: Support for --version flag
334
+ * Added: AlaSQL CLI: support for CLI exit code
335
+ * Added: AlaSQL CLI: Missing file now won't throw exception (but log error text) nor if its a folder
336
+ * Added: Support for using _ as a single wildcard in LIKE queries
337
+ * Added: Support for FETCH NEXT syntax in queries (MSSQL/T-SQL)
338
+ * Added: SUBSTR() alias for MID() function (for SQLite compatibility)
339
+ * Added: LIKE ESCAPE functionality
340
+ * Added: REGEXP operator (like MySQL) and REGEXP_LIKE() function (like in Oracle)
341
+ * Added: INSERT OR REPLACE VALUE, INSERT OR REPLACE SELECT
342
+ * Added: Read Blob as parameter for from-functions like XLS()
343
+ * Fix: .CSV files made Excel 2013 compliant
344
+ * Fix: misbehavour related to 'NOT' and '=' predecession
345
+ * Fix: alasql running from cordova on iOS
346
+
347
+
348
+ ## Version 0.2.0 "Athens" (13.07.2015)
349
+ The purpose of this release were hard work on:
350
+ * Documentation
351
+ * Resolving bugs
352
+ * Refactoring code
353
+
354
+ Minor verison updated to sync lib, Meteor and npm version
355
+
356
+ ### 0.1.11 "San Remo" (03.06.2015)
357
+ * Code partially refactored with help of bitHound
358
+ * New directory 'partners' added
359
+ * Added file for codecomplexity.com
360
+
361
+ ### 0.1.10 "Genova" (31.05.2015 - 02.06.2015)
362
+ * CALL procedure() statement
363
+ * bitHound advices
364
+ * bower.json file updated
365
+
366
+ ### 0.1.9 "Torino" (29.05.2015 - 31.05.2015)
367
+ * SERIAL data type added
368
+ * Changed package.json
369
+ * Sample application AlaSQL Codex (alasql.org/codex)
370
+ * Changed type conversion procedure for INTEGER, JSON and other types
371
+ * TypeScript definition file: alasql.d.ts
372
+
373
+ ### 0.1.8 "Pisa" (22.05.2015 - 28.05.2015)
374
+ * SELECT FROM syntax
375
+ * Export to multiple sheets workbook
376
+ * SQL-99 features list
377
+ * Changed README.md
378
+ * PEOPLE.md moved to wiki
379
+ * VALUE OF SELECT operator
380
+ * bitHound file
381
+
382
+ ### 0.1.7 "Parma" (17.05.2015 - 22.05.2015)
383
+ * Fixed BETWEEN AND and AND parsing priority bug (KPI1:95%)
384
+ * Fixed SUM() with NULL(undefined) values
385
+ * SLT tests run
386
+ * select1.test passed 100%
387
+ * Set jsdoc environment
388
+ * Added 'var y' and functions for NULL and undefined conversions
389
+ * Fixed AVG() aggregator for NULL elements
390
+ * New gulp commands: 'gulp doc' and 'gulp console'
391
+ * Some jsDoc documentation tag added
392
+ * Expression statement ( = 2*2 )
393
+
394
+ ### 0.1.6 "Palermo" (13.05.2015 - 17.05.2015)
395
+ * SET NOCOUNT OFF (for CREATE and INSERT)
396
+ * ROWNUM() and ROW_NUMBER() functions
397
+ * Promised version of alasql() - alasql.async() (based on es6-promises)
398
+ * SELECT * FROM Json
399
+ * SEARCH COMMA selector
400
+ * Fixed bug with ORDER BY 1,2,3
401
+ * Added subqueries for INSERT/DELETE/UPDATE
402
+ * First 'official' ECHO plugin released (REQUIRE ECHO)
403
+ * New catalogs added for future plugins
404
+ * Meteor package 'agershun:alasql'
405
+ * Changed readFile and readBinaryFile to read data from Meteor server
406
+ * Added alasql.path
407
+ * Test program improved
408
+
409
+ ### 0.1.5 "San Marino" (12.05.2015 - 12.05.2015)
410
+ * Added Meteor package (agershun:alasql) - still does not work - skeleton
411
+ * Northwind test database - test for speed and SQL
412
+ * Added w3 database (Northwind analogue)
413
+ * Fixed FOREIGN KEY problem
414
+
415
+ ### 0.1.4 "Napoli" (09.05.2015 - 11.05.2015)
416
+ * Convert Meteor/Mongo collections on the fly
417
+ * Added METEOR() from-function
418
+ * Fixed $[0] -> $0 for parameters
419
+ * utils/2ch.js - utility for minification of AlaSQL (calculate size of economy)
420
+ * d3 graph path samples
421
+ * alasql.options.autovertex flag - create vertices if not found
422
+ * EQ() selector
423
+ * LIKE selector
424
+ * RETURNS selector - return record with columns like in SELECT
425
+ * ALL() and ANY() selectors
426
+ * Added CREATE TABLE column UNIQUE constraint on INSERT/DELETE/UPDATE
427
+ * Added OBJECT_ID() function (like in T-SQL)
428
+ * Added parts and optional for specific database compatibility
429
+ * Changed REFERENCES syntax
430
+ * dbo always as default database (for some compatibility with T-SQL)
431
+ * NOT NULL check on INSERT/UPDATE
432
+ * CHECK constraint (for whole table)
433
+ * CURRENT_TIMESTAMP function
434
+ * UNIQUE constraint (whole table)
435
+ * VARCHAR(MAX)
436
+ * CHECK constraint for columns
437
+ * FOREIGN KEYS for columns and tables
438
+
439
+ ### 0.1.3 "Vaticano" (08.05.2015 - 09.05.2015)
440
+ * Check for null values for SEARCH
441
+ * ORDER BY for SEARCH operator
442
+ * Brackets for SEARCH selectors (WITH() selector)
443
+ * SEARCH DISTINCT, UNION ALL, UNION selectors
444
+ * Added simple PATH() selector
445
+
446
+ ### 0.1.2 "Firenze" (06.05.2015 - 07.05.2015)
447
+ * Simple compilation of SEARCH operator
448
+ * SUM(),COUNT(),MIN(),MAX(),FIRST(),LAST() search aggregators
449
+ * The # operator, CREATE VERTEX #
450
+ * SEARCH # - start with object
451
+ * SERCH smth # - test for object
452
+ * SEARCH VALUE - leave only one first object in the result
453
+ * Bug in browser version (no global object)
454
+ * Changed Bower
455
+ * CREATE GRAPH
456
+ * Minor changes in SEARCH over XML syntax
457
+ * New tests added
458
+
459
+ ### 0.1.1 "Milano" (03.05.2015 - 04.05.2015)
460
+ * XLSXML() into- function with colors
461
+ * $$hashKey - remove Angular's key
462
+ * CREATE VERTEX, CREATE EDGE
463
+ * SEARCH objects
464
+ * SEARCH graph
465
+ * "name" as name for graph vertices and edges
466
+ * Added INSTANCEOF selector
467
+ * Added CLASS selector
468
+ * * selector, + selector, ? selector, !selector for SEARCH in JSON and graphs
469
+ * XML() from function
470
+ * SEARCH INTO functions
471
+
472
+ ## 0.1.0 (aka 0.0.52) "Venice" (02.05.2015 - 03.05.2015)
473
+ * Added INFORMATION_SCHEMA from variable
474
+ * Fixed localstorage dropTable with AUTOCOMMIT OFF
475
+ * STD() function added, STDEV(),STEDEVP(),VAR(),VARP()
476
+ * DISTINCT and ALL with custom aggregators (like STD(DISTINCT a))
477
+ * UNION problem fixed
478
+ * IE9 - save plain text and XLS()
479
+
480
+ ### 0.0.51 "Rimini" (23.04.2015 - 02.05.2015)
481
+ * alasql.options.modifier flag added
482
+ * alasql.options.columnlookup flag added
483
+ * SELECT * REMOVE COLUMNS a,b
484
+ * SELECT * REMOVE COLUMNS LIKE 'b%'
485
+ * Remove columns from .columns schema
486
+ * Custom aggregators - added additional calls (init and in the cycle)
487
+ * Added MEDIAN() aggregator
488
+
489
+ ### 0.0.50 "Seoul" (21.04.2015 - 22.04.2015)
490
+ * CREATE VERTEX and CREATE EDGE syntax
491
+ * Fixed MIN and MAX functions and aggregators #93
492
+ * Found UPDATE bug with column/columnid
493
+ * Fixed bug with valueOf in comparision
494
+
495
+ ### 0.0.49 "Beijing" (19.04.2015 - 21.04.2015)
496
+ * CREATE CLASS
497
+ * INSERT INTO class
498
+ * INSERT INTO class returns inserted value
499
+ * The # operator
500
+ * Classes support
501
+ * Tests with SEARCH syntax and tests for CREATE EDGE and CREATE VERTES
502
+ * Fixed bug with leaking to global.key
503
+
504
+ ### 0.0.48 "Amsterdam" (18.04.2015 - 19.04.2015)
505
+ * Fixed bug indexedDB.webGetDatabaseNames in Firefox
506
+ * Some bugs from Sqllogictest fixed (see test258)
507
+ * Bower package registered
508
+ * Fixed CASE bonding query to this error
509
+
510
+ ### 0.0.47 "Antalya" (16.04.2015 - 18.04.2015)
511
+ * Added CORRESPONDING keyword to the grammas
512
+ * Fixed export to Excel - with data types
513
+ * New version of FileSaver is updated
514
+ * New INTO XLS() function with colors(!)
515
+ * Added params parameter to intoallfn()
516
+ * master and develop branches fixed
517
+
518
+ ### 0.0.46 "Cape Town" (14.04.2015 - 14.04.2015)
519
+ * Cleaned 'test' directory
520
+ * Fixed problem with tests
521
+ * Fixed bug with localStorage DELETE FROM (without WHERE)
522
+
523
+ ### 0.0.45 "Rio de Janeiro" (13.04.2015 - 13.04.2015)
524
+ * Changed CRLF for alacon.js and alaserver.js to LF
525
+
526
+ ### 0.0.44 "Roma" (02.04.2015 - 13.04.2015)
527
+ * Added params to SQLite attached database: alasql('ATTACH SQLITE DATABASE a(?)',[event],cb);
528
+ * Root directory was cleaned
529
+ * Gulp version is updated
530
+ * Fixed bug with (SELECT) and EXISTS() in SELECTS with GROUP BY
531
+
532
+ ### 0.0.43 "The Wall" (25.03.2015 - 01.04.2015)
533
+ * Created "develop" branch for git-flow
534
+ * Fixed GREATEST and LEAST() bugs
535
+ * Added flags {sourcefilename: "aaa", range:"B4"} to INTO XLSX() function
536
+ * CREATE TABLE one(two,three) - without coulmn types
537
+
538
+ ### 0.0.42 "Robin" (17.03.2015 - 25.03.2015)
539
+ * MAX() and MIN() math functions renamed to GREATEST() and LEAST()
540
+ * ORDER BY 2,1
541
+ * :: casting operator
542
+ * UNARY PLUS
543
+ * NOT LIKE
544
+ * NOT\sLIKE and NOT\sBETWEEN for multiple spaces
545
+ * Removed "Test238"
546
+
547
+ ### 0.0.41 "Eagle" (12.03.2015 - 17.03.2015)
548
+ * `column` for column names
549
+ * ``JavaScript expression`` for JavaScript
550
+ * Changed package.json (main:alasql.js)
551
+
552
+ ### 0.0.40 "Sapsan" (24.01.2015 - 06.03.2015)
553
+
554
+ * IF EXISTS() and subqueries
555
+ * MERGE syntax
556
+ * alasql('#sql1');
557
+ * alasql(document.querySelector('#sql'));
558
+ * alasql(function(){/* SELECT 100 */}); for multiline SQL statements
559
+ * SELECT one.a,one.b INTO "one.xlsx" FROM "one.json" AS one
560
+ * Cut first BOM character when reading text files in UTF-8
561
+ * LIKE is case-insensitive
562
+
563
+ ### 0.0.39 "Everest" (17.01.2015 - 23.01.2015)
564
+
565
+ * `JavaScript()` expressions and statements SELECT `Math.random()*100`
566
+ * Added conversion to number for strings like: ' 123 '
567
+ * Fixed from HTML() function (childNodes -> children)
568
+ * CREATE FILE DATABASE IF NOT EXISTS "filename.json"
569
+ * DROP FILE DATABASE IF EXISTS "filename.json"
570
+ * SELECT a->(1+1) - show ( and ) in toString() function
571
+ * CROSS APPLY and OUTER APPLY (!)
572
+ * Float numbers like 10e20
573
+ * SELECT COLUMN a+(SELECT MAX(b) FROM one) FROM one - SELECT in Expressions
574
+ * Turned off WHERE optimization (due some problem with indices)
575
+ * OVER PARTITION and OVER ORDER syntax
576
+ * NIST SQL Example Tests passed (except constrains and subquery in delete)
577
+ * Errors handling
578
+ * SET ERRORLOG ON/OFF (trap errors)
579
+ * COALESCE() function skips NaN values as well as NULL
580
+ * SET CACHE ON/OFF - turn on/off SQL statements caching
581
+ * loadFileFrom('#selector') - to read data from HTML <tag>
582
+
583
+ ### 0.0.38 "Elbrus" (17.01.2015 - 17.01.2015)
584
+
585
+ * Additional wrapper for FileSaver to work with R and V8 (http://cran.r-project.org/web/packages/V8/vignettes/v8_intro.html)
586
+ * Fixed ROLLUP, CUBE and GROUPING SETS()
587
+ * Added Apache Cordova for Windows 8 support
588
+
589
+
590
+ ### 0.0.37 "Ararat" (09.01.2015 - 16.01.2015)
591
+
592
+ * Added test for "? IN @(?)"
593
+ * Convert -> correct DATE("20141008")
594
+ * TRUNCATE TABLE table;
595
+ * Fixed bug when COUNT and SUM() aggregators shows 'undefined' with zero groups
596
+ * test-sql tests for compatibility with other databases
597
+ * SELECT TEXT -> SELECT TEXTSTRING (do not conflict with TEXT data type)
598
+ * Fixed bug: different databases for different FROM and JOIN parts
599
+ * Google Spreadsheet integration with Tabletop (https://github.com/jsoma/tabletop) FROM-function: alasql('SELECT * FROM TABLETOP(?)',[url]);
600
+ * Changed worker() method
601
+ * DECLARE with multiple variable definitions and initial value (DECLARE @one int = 123)
602
+ * SET a->property->0->(1+1) = 100
603
+ * Views: CREATE VIEW, DROP VIEW, SELECT FROM VIEW, JOIN VIEW
604
+ * Multi line comments /* */
605
+ * WITH SELECT statement
606
+ * Appach Cordova loadFile and saveFile procedures
607
+ * Test Alasql with Cordova on iPhone, iOS emulator, and Android emulator, Windows 8
608
+ * Fixed bug with npm install (bin directory)
609
+ * Fixed bug in localStorage with local variable
610
+ * fileExists() function
611
+ * FILESTORAGE engine for Node.js and Apach Cordova
612
+
613
+
614
+ ### 0.0.36 "Happy New Year" (23.12.2014 - 08.01.2015)
615
+
616
+ * REDUCE Aggregator for custom aggregators
617
+ * LINQ functions (fluent interface):
618
+ * alasql() or alasql(data)
619
+ * From()
620
+ * Where()
621
+ * OrderBy()
622
+ * GroupBy()
623
+ * Having()
624
+ * Select()
625
+ * Top()
626
+ * RANGE(1,10) - from function => [1,2,3,4,5,6,7,8,9,10]
627
+ * HTML-from and into functions
628
+ * Clean root directory
629
+ * GO keyword as semicolon
630
+ * global alasql => var alasql
631
+ * SELECT * INTO SQL() FROM ? - into-function for generating INSERTS
632
+ * SELECT TOP 10 PERCENT * FROM ?
633
+ * ORDER BY _ - fixed
634
+ * ORDER BY formula (ORDER BY MID(a,2,1))
635
+ * GROUP BY formula (GROUP BY MID(a,1,1))
636
+ * HAVING with formulas (HAVING COUNT(*)>1)
637
+ * Fixed COUNT(*) and COUNT(expression)
638
+ * COUNT(DISTINCT all)
639
+ * Subquery SELECT (SELECT)
640
+ * IF expr statement
641
+ * OBJECT_ID(tableid) function
642
+ * IS NULL and IS NOT NULL operators
643
+ * SET option value (ON/OFF)
644
+ * OVER PARTITION ORDER BY syntax
645
+ * SET option ON/OFF (alasql.options.autocommit)
646
+ * SUM(DISTINCT a)
647
+ * Create table column NULL constraint syntax
648
+ * WebWorker (alasql-worker.js)
649
+ * GETDATE() returns date
650
+ * PRINT statement
651
+ * Tests renumbered and fixed
652
+ * REQUIRE 'plugin.js'
653
+ * alasql.worker("../alasql.js", ["plugins.js",...], callback)
654
+ * @localvariable
655
+ * SET @localvariable = expression
656
+ * WHILE, CONTINUE, BREAK, BEGIN END syntax
657
+ * WHILE statement
658
+ * alasql.worker() - run WebWorker
659
+ * alasql-worker.js - library to run webworker
660
+ * FROM @localvariable
661
+ * SELECT INTO @localvariable
662
+ * CONVERT(type,value,style)
663
+ * Fixed multiple same aggregators bug
664
+ * DECLARE @locarvariable type
665
+
666
+ ### 0.0.35 (14.12.2014 - 22.12.2014)
667
+
668
+ * Added [?] array conversion
669
+ * ARRAY Aggregator (http://stackoverflow.com/questions/15887900/group-objects-by-property-in-javascript?rq=1)
670
+ * _ column for whole record
671
+ * SELECT INDEX
672
+ * SELECT RECORDSET
673
+ * SELECT TEXTSTRING
674
+
675
+ ### 0.0.34 (14.12.2014 - 20.12.2014)
676
+
677
+ * New User Manual written
678
+ * Remove $$hashKey field for Angular.js integration
679
+ * New CSV and TAB parser with separators and quotes
680
+ * Fixed USING bug
681
+ * Fixed HAVING bug
682
+ * INTO JSON function()
683
+
684
+ ### 0.0.33 (12.12.2014 - 14.12.2014)
685
+
686
+ * SQL.js engine adapter (to real SQLite database)
687
+
688
+ ### 0.0.32 (12.12.2014 - 14.12.2014)
689
+
690
+ * Read XLS and XLSX files (with xlsx package)
691
+ * AT is no longer required for json-objects @{}
692
+ * Stdin and stdout functions for Alacon (INTO TXT() FROM TXT())
693
+
694
+ ### 0.0.31 (10.12.2014 - 11.12.2014)
695
+
696
+ * INSERT and DELETE for IndexedDB
697
+ * New tests for FROM and INTO functions
698
+ * UPDATE for IndexedDB
699
+ * DOM-storage support for Node.js (test159.js)
700
+
701
+
702
+ ### 0.0.30 (03.12.2014 - 09.12.2014)
703
+
704
+ * Async version (except streamming)
705
+ * Fixed a hundred bugs after changes to async/sync version
706
+ * IndexedDB support (except INSERT/DELETE/UPDATE)
707
+ * DOM-Storage support (pull request #15)
708
+ * Grammar for STORE/RESTORE commands (for key-value storages)
709
+
710
+ ### 0.0.29 (29.11.2014 - 02.12.2014)
711
+
712
+ * INSERT/DELETE/UPDATE for localStorage AUTOCOMMIT ON mode
713
+ * ROLLBACK for localStorage bug
714
+
715
+ ### 0.0.28 (29.11.2014 - 01.12.2014)
716
+
717
+ * SET AUTOCOMMIT ON|OFF
718
+ * localStorage in AUTOCIMMIT ON mode (without INSERT/DELETE/UPDATE)
719
+ * localStorage in AUTOCIMMIT OF mode (simple COMMIT)
720
+
721
+ ### 0.0.27 (27.11.2014 - 29.11.2014)
722
+
723
+ * Function as a source of data for FROM ? AND JOIN ?
724
+ * Virtualization of source
725
+ * Query as a source in joins
726
+ * Multiple databases
727
+ * SELECT * INTO into-function() FROM from-function()
728
+
729
+
730
+ ### 0.0.26 (26.11.2014 - 26.11.2014)
731
+
732
+ * Show time in ms in Alasql Console
733
+ * JSON Object functions like d->getFullYear()
734
+ * JavaScript Dates
735
+ * SQL DATE functions
736
+ * alasql.stdfn() - runtime library
737
+ * CREATE TABLE AND INSERT with Date
738
+ * new Date()
739
+
740
+ ### 0.0.25 (23.11.2014 - 25.11.2014)
741
+
742
+ * CAST(expression AS type)
743
+ * CONVERT(type, expression)
744
+ * alasql.options.datetimeformat = 'sql' / 'javascript' for CAST
745
+ * loadFile works in Node.js (changes some tests)
746
+ * SELECT VALUE
747
+ * SELECT ROW
748
+ * SELECT COLUMN
749
+ * SELECT MATRIX
750
+ * JSON(json-object)
751
+ * == and !== for deepEqual
752
+ * alacon - alasql console (to run: node alacon sql params...)
753
+ * Json property operator - JSON({a:1,b:[2,3]})->b->1 => 2
754
+ * Alaserver - server for Alasql
755
+
756
+ ### 0.0.24 (23.11.2014 - 23.11.2014)
757
+
758
+ * Fixed LIKE operator (added ^ and $)
759
+ * Changed LOAD to SOURCE (like in MySQL)
760
+ * ASSERT operator
761
+ * JSON parser for ASSERT operator
762
+ * Fixed LIKE bug (need more attention)
763
+ * Fixed bug with default column names
764
+
765
+ ### 0.0.23 (22.11.2014 - 22.11.2014)
766
+
767
+ * LOAD 'url.sql' - load and execute sql statements
768
+ * HELP - help on Alasql commands
769
+
770
+ ### 0.0.22 (20.11.2014 - 22.11.2014)
771
+
772
+ * SELECT UNIQUE
773
+ * SELECT MINUS SELECT
774
+ * RENAME TABLE table TO literal
775
+ * ALTER TABLE table RENAME COLUMN column TO column
776
+ * ALTER TABLE table DROP COLUMN column
777
+ * Double quoter sign '' and \\' translates into '
778
+ * Test with World and Neptuno databases for compatibility
779
+ * alasql.test(), alasql.log(), alasql.write(), alasql.writep()
780
+ * Console
781
+
782
+ ### 0.0.21 (19.11.2014 - 20.11.2014)
783
+
784
+ * SELECT a AS q, b w FROM one - AS is not required
785
+ * Comments '--' and '/* */' - single line
786
+ * Double quote sign in the string 'Bon''appetite'
787
+ * Compatibility with World Database (http://dev.mysql.com/doc/world-setup/en/index.html)
788
+ * `literal` in backquotes like literal in square brackets [literal]
789
+ * Additional grammar for ENGINE, CHARSET, etc. and other keywords for World database
790
+
791
+ ### 0.0.20 (19.11.2014)
792
+
793
+ * SHOW DATABASES
794
+ * SHOW TABLES
795
+ * SHOW COLUMNS
796
+ * SHOW INDIEX (not fully)
797
+ * CREATE VIEW syntax
798
+ * Case-sensivity
799
+
800
+ ### 0.0.19 (19.11.2014 - 19.11.2014)
801
+
802
+ * User-defined functions are database specific.
803
+ * Names in [brackets]
804
+
805
+ ### 0.0.18 (15.11.2014 - 18.11.2014)
806
+
807
+ * Added more tests
808
+ * Some minor bugs
809
+
810
+ ### 0.0.17 (13.11.2014 - 14.11.2014)
811
+
812
+ * Changed approach to execute and compilations
813
+ * Broke transactions (to be reviewed)
814
+
815
+ ### 0.0.16 (11.11.2014 - 12.11.2014)
816
+
817
+ * PRIMARY KEY and FOREIGN KEY parser
818
+ * Use array of arrays as parameter value for FROM clause, column names like \[2\] or table\[0\]
819
+ * alasql.queryArrayOfArrays(), utils.arrayOfArrays()
820
+ * PRIMARY KEY ON inseert, delete, update with one or multiple keys
821
+ * Fixed Uppercase and LowerCase problem
822
+ * CREATE DATABASE, USE DATABASE, DROP DATABASE
823
+ * CROSS and NATURAL JOINs
824
+ * RANDOM
825
+ * INSERT INTO table DEFAULT VALUES
826
+ * CREATE TABLE table (column type DEFAULT value)
827
+
828
+
829
+ ### 0.0.15 (10.11.2014)
830
+
831
+ * alasql.userlib replaces with alasql.fn
832
+ * Fixed gulpfile.js
833
+ * CommonJS/AMD/UMD and require.js test
834
+ * alasql(sql, params, callback) function
835
+ * SELECT * FROM one AS t
836
+ * alasql('SELECT * FROM ? AS t', [data]); - array as subquery
837
+
838
+
839
+ ### 0.0.14.5 (10.11.2014)
840
+
841
+ * valueOf() instead +Date();
842
+ * Date tests added
843
+ * INSERT date
844
+
845
+ ### 0.0.14.4 (10.11.2014)
846
+
847
+ * Negative numbers
848
+ * Float numbers
849
+ * Strings with single and double quaters
850
+ * CASE WHEN THEN END
851
+ * ROUND, MID
852
+
853
+ ### 0.0.14.3 (09.11.2014)
854
+
855
+ * RIGHT / OUTER / SEMI / ANTI Joins!
856
+
857
+ ### 0.0.14.2 (07.11.2014-08.11.2014)
858
+
859
+ * Added more tests
860
+
861
+ ### 0.0.14.1 (07.11.2014-08.11.2014)
862
+
863
+ * Added more tests
864
+ * Minor bugs fixed
865
+ * Database.queryArray method()
866
+
867
+ ### 0.0.14 (07.11.2014-08.11.2014)
868
+
869
+ * SELECT INTERSECT, EXCEPT
870
+ * BETWEEN, NOT BETWEEN
871
+ * Fixed problem wuth source.srcwherefn and query.wherefn
872
+ * IN (Subquery), NOT IN(Subquery) - IN(array)
873
+ * alasql.parser.parse renamed to alasql.parse
874
+ * Reduced AST tree in case of srcwherefn and wherefn optimizations in joins
875
+ * % (MODULO) operator (9%7 == 2)
876
+ * Fix 'undefined' column if alias is not exists
877
+ * x > ALL (subquery), x > SOME/ANY (subquery)
878
+ * Check if table exists in the database
879
+ * Multiple user defined functions arguments, like TRIPLE(a,b,c)
880
+ * SELECT TOP (as well as SELECT query LIMIT OFFSET)
881
+ * Fixed ALTER TABLE RENAME TO statement
882
+ * LEN(), UCASE(), LCASE(), UPPER(), LOWER(), NOW()
883
+ * Simple matching with LIKE '%day%'
884
+ * INSERT INTO test VALUES('a'),('10'),('20'),('c'),('30'),('d');
885
+ * SELECT INTO table SELECT query
886
+
887
+ ### 0.0.13 (06.11.2014)
888
+
889
+ * FIRST(), LAST()
890
+ * Minor bugs with EXISTS
891
+
892
+ ### 0.0.12 (06.11.2014)
893
+
894
+ * SELECT * FROM test WHERE EXISTS(SELECT * FROM test2 WHERE test1.a = test2.a)
895
+ * User-defined functions (alasql.usrlib)
896
+
897
+ ### 0.0.11 (06.11.2014)
898
+
899
+ * SELECT * FROM (SELECT * FROM test) t
900
+
901
+ ### 0.0.10 (06.11.2014)
902
+
903
+ * SELECT UNION
904
+ * Started SQL tests
905
+
906
+ ### 0.0.9 (06.11.2014)
907
+
908
+ * ROLLUP, CUBE, GROUPING SETS support
909
+
910
+ ### 0.0.8 (06.11.2014)
911
+
912
+ * Minor bugs
913
+
914
+ ### 0.0.7 (06.11.2014)
915
+
916
+ * WHERE column = expression optmization (creare index)
917
+
918
+ ### 0.0.6 (04.11.2014)
919
+
920
+ * Developed new parser based on Jison
921
+ * Use Gulp for development platform
922
+ * Where optimization
923
+ * New names for fields => columns and recs => data
924
+
925
+ ### 0.0.5 (30.10.2014)
926
+
927
+ * Changed order of LIMIT and ORDER BY processing
928
+
929
+ ### Version 0.0.4 (28.10.2014-29.10.2014)
930
+
931
+ * Added /test/main.html mocha browser tests
932
+ * Added PERFORMANCE.md and perf.html tests
933
+ * StringValue.toJS()
934
+ * Added callback to Database.exec
935
+ * Sieve of Eratosthenes example
936
+ * Remove generation of recs after select in case of group by (for memory optimization)
937
+ * Added conversion for type MONEY for INSERT statement
938
+
939
+ ### Versions 0.0.1 - 0.0.3 (25.10.2014-27.10.2014)
940
+
941
+ * First version of Alasql
942
+