Version History

Stay up to date with the latest releases by following us on Telegram or X.


Version 2.0.16 — 2026-07-10

  • DuckDB Connector — added support for DuckDB as a data source. DuckDB is embedded: the whole database is a single file next to XLTable — no database server to install, which makes it the fastest way to try XLTable or to serve small and medium datasets. Cubes can also be built directly on top of Parquet/CSV files via read_parquet() / read_csv() in the cube definition. See DuckDB Sample Data.

Version 2.0.15 — 2026-07-04

  • Parallel worker processes on Linux (concurrency) — the Ubuntu installer now starts several server processes behind nginx load balancing (one per CPU core, up to 4 by default; configurable with XLTABLE_INSTANCES). Heavy reports from many concurrent users are built in parallel instead of queueing on a single CPU core; all processes share one cache and one settings.json. Existing installations pick this up by re-running install_xltable.sh.

  • Worker threads and port settings (SERVER_THREADS, SERVER_PORT) — the number of worker threads of one server process is now configurable (default raised from 8 to 16, so more database queries stay in flight simultaneously), as is the listening port (SERVER_PORT, or the OLAP_PORT environment variable used by the multi-process setup).

  • Result cache size cap (RESULT_CACHE_MAX_MB) — query results larger than the configured size (16 MB by default) are no longer stored in the shared result cache: under concurrent load, writing huge cached responses made all worker processes queue on the cache database; such results are cheaper to rebuild. Also sped up the assembly of very large XMLA responses.

  • Collapse / Expand Entire Field — the Pivot Table context-menu commands Expand/Collapse → Collapse Entire Field and Expand Entire Field are now supported in all combinations, verified against SSAS traces, both for separate nested fields and for levels of a multi-level hierarchy: collapsing a whole nested field, expanding an entire field or hierarchy level (all items at once), expanding a single item of a collapsed field back (only that item shows the nested field) and collapsing single items of an expanded field. A collapsed field is not queried at all — its table is not scanned or joined until the field is expanded again.

  • Keep Only / Hide Selected Items — the Pivot Table context-menu commands Filter → Keep Only Selected Items and Hide Selected Items are now supported, including items of multi-level hierarchies. Excel’s service query for the hierarchy position of the selected items (__XlItemPath / __XlSiblingCount / __XlChildCount) is answered the same way as by SSAS.

  • Large dimension filters — Keep Only / Hide Selected Items works on dimensions with tens of thousands of members, verified against an SSAS trace with 20,000 items: the full member list is returned to Excel (capped by the new MAX_FILTER_MEMBERS setting, 100,000 by default), member filters are generated as compact SQL IN (...) lists instead of OR chains, and the ClickHouse connector automatically raises max_query_size for oversized queries (the default 256 KB parser limit rejected large filter lists).

  • Result limit in cells (MAX_CELLS) — the result size limit is now measured in cells of the pivoted table (row combinations × column combinations × measures) instead of rows, with a default of 1,000,000 — the same way SSAS limits oversized results. The legacy MAX_ROWS setting is still accepted. A separate, clear message is returned when the columns area exceeds the Excel sheet limit of 16,384 columns.

  • XMLA diagnostics (DUMP_XMLA) — new setting that dumps every raw XMLA request and response to the log folder, for diagnosing Excel/XMLA protocol issues.

  • Automatic log cleanup (LOG_RETENTION_DAYS) — log files older than the configured number of days (14 by default) are now removed automatically.

  • Overload protection (OVERLOAD_GUARD) — when the server host runs out of memory, CPU or disk space (configurable thresholds), data queries are rejected with a clear “Server is overloaded” message in Excel instead of being forwarded to the database. Metadata requests still pass, so cube connections stay alive.

  • Metadata cache TTL (METADATA_CACHE_TTL) — cached cube definitions, schema lists and query results now expire after a configurable period (600 seconds by default), so an edited cube is picked up automatically without clearing the cache.

  • Hot reload of settings.json — configuration changes are picked up automatically within a few seconds of saving the file, without a service restart. A file with a JSON syntax error is ignored (the previous configuration keeps working) and logged.

  • Cache follows settings.json — database credentials are no longer stored in the cache (they are read from the live configuration on every request), and the cache is cleared automatically whenever the configuration content changes — on hot reload or on service start. A service started with an incorrect configuration no longer requires a manual cache clear after the fix.

  • Authorization cache timeout (AUTH_CACHE_TIMEOUT) — cached authorizations of local users now expire the same way as Active Directory ones; the new setting applies to both (LDAP_CACHE_TIMEOUT is kept as a legacy fallback).

  • Admin panel: cache management — new per-user cache overview with last-activity times, a Sign out button for a single user, and a Clear Metadata Cache action that applies cube changes without signing users out.

Version 2.0.14 — 2026-07-01

  • Drillthrough — double-clicking a Pivot Table cell now returns the underlying detail rows. Detail columns are configured per measure group with the new olap_drillthrough tag in the cube definition.

  • New Jinja context — expanded the Jinja rendering context available in cube definitions with additional variables for building dynamic query logic.

  • Debug console — new debug console for inspecting rendered SQL, Jinja context and query execution, making cube development and troubleshooting easier.

Version 2.0.13 — 2026-06-18

  • Extended Jinja context — Jinja templates now receive additional context variables (user, now, request and per-source SQL fragments) for row-level security and dynamic query logic.

  • SQL and XML escaping — hardened escaping of user names, member values and identifiers across all connectors to prevent SQL injection and malformed XMLA responses.

  • Many-to-many fix — corrected SQL generation for many-to-many relationships.

  • Connector fixes — multiple fixes across database connectors, including ILIKE support for BigQuery.

  • MCP connector (in development) — early support for an MCP connector, currently under active development.

Version 2.0.12 — 2026-05-22

  • Greenplum Connector — added support for Greenplum as a data source.

  • HTTP gzip compression — server HTTP responses now support gzip compression, reducing the amount of data transferred.

  • Faster XMLA response building — significantly improved performance when generating XMLA responses with a large number of rows.

Version 2.0.11 — 2026-04-01

  • Databricks Connector — added support for Databricks as a data source.

  • OLAP cube syntax validation — new function for validating cube definition syntax before loading.

  • Windows 10 and 11 support — added the ability to run on Windows 10 and 11 operating systems.

Version 2.0.10 — 2026-03-19

  • StarRocks Connector — added support for StarRocks as a data source.

  • Admin Panel — new web-based interface for managing server configuration.

  • Part-source parameter — added part-source attribute for defining tag relationships in cube configuration.

  • Jinja context variables — cube definitions now support Jinja templating with context variables.

  • Improved logging — enhanced diagnostic output across all supported connectors for easier troubleshooting.