Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
questdb-9.0.2-no-jre-bin.tar.gz | 2025-08-15 | 26.5 MB | |
questdb-9.0.2-rt-linux-x86-64.tar.gz | 2025-08-15 | 70.4 MB | |
questdb-9.0.2-rt-windows-x86-64.tar.gz | 2025-08-15 | 62.6 MB | |
9.0.2 source code.tar.gz | 2025-08-15 | 56.1 MB | |
9.0.2 source code.zip | 2025-08-15 | 60.9 MB | |
README.md | 2025-08-15 | 5.8 kB | |
Totals: 6 Items | 276.5 MB | 0 |
QuestDB 9.0.2 Release Summary
9.0.2 is a performance and stability release. It accelerates common query patterns, reduces resource usage, and adds quality-of-life features across SQL, the PostgreSQL wire protocol (PGWire), ingestion, and operations.
Highlights
ORDER BY … LIMIT, now parallelised. Sort-and-limit queries execute much faster on large datasets — up to 10× in internal tests.
Dedicated thread pools. Reads, writes, and network operations run on separate pools for better isolation and predictable latency under load.
Array improvements. New functions array_stddev()
, array_min()
, and array_max()
; support for negative indexing (e.g., array[-1]
for the last element); and improved Parquet compatibility for array columns.
Lower resource footprint. File descriptors and memory maps are cached more aggressively. CSV import is faster (especially for VARCHAR
), and materialized views do less I/O with small SAMPLE BY
intervals.
SQL & Ingestion Protocol
TRUNCATE IF EXISTS
avoids errors when truncating a table that may not be present.
PostgreSQL wire protocol (PGWire): improved handling of bind variables for more predictable prepared-statement behaviour.
Ingestion clients for ILP: helpers reshape()
and clear()
make array reuse simpler and reduce allocations.
Performance
Parallel ORDER BY + LIMIT delivers markedly lower end-to-end latency for top‑N queries.
Thread-pool separation prevents read workloads from contending with writers or network services during spikes.
Faster CSV import for VARCHAR
-heavy payloads via improved parsing and reuse.
Reliability & Operations
CPU spike resolved in specific concurrent workloads.
Window functions: intermittent failures addressed.
Index lookups: corrected edge cases that could yield wrong results.
WAL lag metrics now persist across restarts for continuous observability.
Native libraries are no longer placed under /tmp
, aligning better with hardened security policies.
Contributors
Thanks to first‑time contributors:
@TaniyaKatigar, @aleksandarskrbic, @akashadsare, @gauravjain0377
Thank you to everyone who reported issues and shared production insights — your feedback powers QuestDB.
Changelist
- perf(http): speed up varchar parsing in CSV import by @puzpuzpuz in https://github.com/questdb/questdb/pull/5985
- feat(docs): Added beginner-friendly video tutorial on setting up QuestDB – by Taniya Katigar by @TaniyaKatigar in https://github.com/questdb/questdb/pull/6000
- fix(sql): fix spurious 'undeclared variable' error by @jerrinot in https://github.com/questdb/questdb/pull/6003
- fix(sql): fix possible constant increase in CPU usage from SQL text parser by @bluestreak01 in https://github.com/questdb/questdb/pull/6004
- fix(sql): reduce write amplification for materialized views with small SAMPLE BY interval by @puzpuzpuz in https://github.com/questdb/questdb/pull/5995
- feat(sql): support negative index in array access by @mtopolnik in https://github.com/questdb/questdb/pull/5997
- chore(core): allow TableToken lookups by CharSequence by @amunra in https://github.com/questdb/questdb/pull/6011
- feat(sql): array_stddev(), array_min(), array_max() functions by @mtopolnik in https://github.com/questdb/questdb/pull/5992
- fix(build): load native libs from distribution lib dir, not /tmp by @jerrinot in https://github.com/questdb/questdb/pull/5932
- perf(core): introduce three shared thread pools - Query, Write and Network by @ideoma in https://github.com/questdb/questdb/pull/5805
- perf(sql): optimise query performance through lazy size calculation by @bluestreak01 in https://github.com/questdb/questdb/pull/5939
- fix(core): make WAL apply lag metrics persistent across restarts by @mtopolnik in https://github.com/questdb/questdb/pull/6017
- feat(sql): truncate if exists by @bluestreak01 in https://github.com/questdb/questdb/pull/6020
- fix(sql): fix the
SAMPLE BY
fill values alignment issue when column projection is present. by @kafka1991 in https://github.com/questdb/questdb/pull/6028 - fix(core): fix potential table suspended when replace commit is used on a table with a column top by @ideoma in https://github.com/questdb/questdb/pull/6026
- perf(sql): parallel execution of ORDER BY + LIMIT queries (up to 10x speed-up) by @puzpuzpuz in https://github.com/questdb/questdb/pull/5957
- feat(core): cache file descriptors and mmaps to reduce kernel resource usage by @ideoma in https://github.com/questdb/questdb/pull/5960
- fix(sql): fix intermittent failures with SQL window functions by @jerrinot in https://github.com/questdb/questdb/pull/6030
- fix(core): incorrect year rounding in case of leap years by @puzpuzpuz in https://github.com/questdb/questdb/pull/6038
- fix(ilp): UnsupportedOperationException when writing to non-WAL table via ILP/TCP by @kafka1991 in https://github.com/questdb/questdb/pull/5742
- fix(sql): fix wrong result returned from index lookup query by @bluestreak01 in https://github.com/questdb/questdb/pull/6050
- feat(ilp): add reshape() and clear() methods for array reusability by @jerrinot in https://github.com/questdb/questdb/pull/5996
- feat(sql): support array column type in parquet partitions by @puzpuzpuz in https://github.com/questdb/questdb/pull/5925
- fix(sql): memory leak when querying a table which is being ALTERed concurrently by @jerrinot in https://github.com/questdb/questdb/pull/6055
- fix(core): fix potential File Descriptor leak on table drop by @ideoma in https://github.com/questdb/questdb/pull/6053
Full Changelog: https://github.com/questdb/questdb/compare/9.0.1...9.0.2