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 onesettings.json. Existing installations pick this up by re-runninginstall_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 theOLAP_PORTenvironment 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_MEMBERSsetting, 100,000 by default), member filters are generated as compact SQLIN (...)lists instead ofORchains, and the ClickHouse connector automatically raisesmax_query_sizefor 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_ROWSsetting 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
logfolder, 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_TIMEOUTis 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_drillthroughtag 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,requestand 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-manyrelationships.Connector fixes — multiple fixes across database connectors, including
ILIKEsupport 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-sourceattribute 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.