Skip to content

Releases: AlaSQL/alasql

2025-12-23

23 Dec 06:36

Choose a tag to compare

What's Changed

  • Add grammar stub for transactions when using IndexedDB to close #1969
  • Fix output when reusing aggregate function to close #1147
  • Fix subqueries for CREATE VIEW to close #1154
  • Fix NULL values for GROUP_CONCAT to close #1259

Full Changelog: v4.15.0...v4.16.0

2025-12-22

21 Dec 23:30

Choose a tag to compare

What's Changed

  • Add support for SEARCH INTO $variable to close #2363
  • Fix key properties for column objects on table-level constraints to close #1643
  • Fix trigger CALL for row data parameters (#2377)
  • Make PATH a context-aware keyword to close #2222
  • Make DELETED and INSERTED context-aware keywords to close #2237
  • Make KEY a context-aware keyword to close #2227
  • Make ORDER a context-aware keyword to close #2223

Full Changelog: v4.14.0...v4.15.0

2026-12-16

15 Dec 13:14

Choose a tag to compare

What's Changed

  • Add support for quoted table alias to close #606
  • Add support for all SQL operations on anonymous data tables to close #2348

Full Changelog: v4.13.0...v4.14.0

2015-12-14

13 Dec 22:41

Choose a tag to compare

What's Changed

  • Add UNNEST function to close #2141
  • Fix DEFAULT values when FILESTORAGE and LOCALSTORAGE to close #1848

Full Changelog: v4.12.0...v4.13.0

2025-12-13

13 Dec 01:44

Choose a tag to compare

What's Changed

  • Add support for comma-separated tables in CROSS JOIN ... USING/ON syntax to close #130
  • Add support for INSERT INTO table SET col = val syntax to close #136
  • Add support for INSERT IGNORE syntax to close #143
  • Add parser support for ON DELETE and ON UPDATE CASCADE to close #897
  • Fix async callback for XLSX export to close #107
  • Fix negative numbers in JSON contexts to close #475
  • Fix joinstar options for inline data to closer #1004
  • Fix SELECT for columns from JOINed inline data to close #1985
  • Fix UPDATE on tables with PK when data is directly assigned to close #1989
  • Fix TypeScript type resolution to close #2317

Full Changelog: v4.11.0...v4.12.0

2025-12-07

06 Dec 14:26

Choose a tag to compare

What's Changed

  • Add BREAK/CONTINUE and LEAVE/ITERATE statements to close #37
  • Add OUTPUT for INSERT/DELETE/UPDATE to close #48
  • Add bitwise operations to close #155
  • Improve implicit JOIN performance to close #188
  • Add support for recursive CTE (Common Table Expression) to close #200
  • Add WITH ROLLUP and WITH CUBE syntax to close #292
  • Fix UNION ALL for HTML tables to close #485
  • Fix XML character escape in XLSXML export to close #525
  • Add support for table-prefixed columns in arithmetic expressions for GROUP BY to close #536
  • Fix ORDER BY in INTERSECT/EXCEPT queries to close #635
  • Improve errors for async IndexedDB operations to close #845
  • Add support for @ symbol in column names with backticks and qualified syntax to close #884
  • Fix GROUP BY across columns with same name to close #941
  • Throw error for invalid column names to close #1173
  • Add support for table names starting with numbers to close #1185
  • Add nested JSON output from arrow notation via INTO OBJECT() to close #1278
  • Add REGEXP support for MySQL style word boundaries to close #1384
  • Fix numbers in REPLACE() to close #1455
  • Fix (NOT) IN for empty sets to close #1529
  • Fix RECORDSET for no rows to close #1547
  • Fix ORDER BY use of quoted column names to close #2039
  • Fix RECORDSET for computed columns after SELECT * to close #2070
  • Add subquery caching with correlation check to close #2280

Full Changelog: v4.10.1...v4.11.0

2025-11-21

20 Nov 15:12

Choose a tag to compare

What's Changed

  • ORDER BY clause for multiple UNIONs to fix #7 after 11 years and 11 days
  • Let SELECT * INTO SQL() handle NULL values to fix #42 after 10 years, 10 months and 7 days
  • ORDER BY with numeric column ref on SELECT * to fix #125 after 10 years, 7 months and 4 days
  • Use DISTINCT with object values in SELECT and SEARCH to fix #167 after 10 years, 6 months and 12 days
  • Support BETWEEN operator in CASE statement to fix #735 after 9 years, 3 months, and 4 days
  • Allow nested subqueries for IN clause to fix #847 after 8 years, 7 months and 29 days
  • Support import of multi-sheet XLSX to fix #848 after 8 years, 7 months and 29 days
  • Let SERIAL columns handle explicitly provided values including NULL to fix #895 after 8 years, 4 months and 28 days
  • Let UNIQUE constraint support JSON properties and expressions to fix #925 after 8 years, 3 months, and 18 days
  • Update indexes when bulk loading data to fix #1027 after 7 years, 4 months and 17 days
  • Support ROW_NUMBER() OVER (PARTITION BY) syntax for row numbering to fix #1126 after 6 years, 3 months and 5 days
  • Let INSERT INTO SELECT FROM overwrite data with defaults to fix #1484 after 6 years, 3 months and 5 days
  • Avoid timezone challenge for test408 to accomodate #1587 after 2 years and 11 months.
  • Extract compiled JS from SQL to fix #2169 7 days
  • Let CREATE INDEX support qualified table names to fix #2184 after 2 days
  • Qualified table names for SHOW COLUMNS and SHOW INDEX to fix #2200 after 16 hours

New Contributors

  • Thank you to Github for sponsoring @Copilot who made their first contributions and helped nail issues with a combined age of 109 years, 1 month and 28 days from guiding it for a few hours. #theFutureIsNow

Full Changelog: v4.9.0...v4.10.1

2025-11-12

12 Nov 10:07

Choose a tag to compare

What's Changed

  • Regression of piping data via txt() in CLI mode to fix #2149

New Contributors

  • Thank you to @ammeek for their first contribution in #2159

Full Changelog: v4.8.0...v4.9.0

2025-11-04

04 Nov 11:04

Choose a tag to compare

What's Changed

  • Support MAX on dates to fix #2147
  • Let ROUND of NULL be undefined to fix #2155

Also

  • Thank you to @t-wy for lots of well documented questions and challenges.

Full Changelog: v4.7.0...v4.8.0

2025-11-03

02 Nov 23:32

Choose a tag to compare

What's Changed

  • Deal with Non-ASCII characters in JSON() import to fix #2112 by @brettz9

Also

  • Thanks to @garyg1 making their first contribution and helping the quality of the readme info.

Full Changelog: v4.6.6...v4.7.0