An open source SQL database designed to process time series data, faster

Overview
QuestDB Logo

 

QuestDB community Slack channel QuestDB open source contributors QuestDB on Apache Maven

English | 简体中文 | العربية

QuestDB

QuestDB is a high-performance, open-source SQL database for applications in financial services, IoT, machine learning, DevOps and observability. It includes endpoints for PostgreSQL wire protocol, high-throughput schema-agnostic ingestion using InfluxDB Line Protocol, and a REST API for queries, bulk imports, and exports.

QuestDB implements ANSI SQL with native extensions for time-oriented language features. These extensions make it simple to correlate data from multiple sources using relational and time series joins. QuestDB achieves high performance from a column-oriented storage model, massively-parallelized vector execution, SIMD instructions, and various low-latency techniques. The entire codebase was built from the ground up in Java and C++, with no dependencies, and is 100% free from garbage collection.

Try QuestDB

We provide a live demo provisioned with the latest QuestDB release and a 1.6 billion row dataset with 10 years of NYC taxi trips to query.

To run QuestDB, Docker can be used to get started quickly:

docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 questdb/questdb

macOS users can use Homebrew:

brew install questdb
brew services start questdb

The QuestDB downloads page provides direct downloads for binaries and has details for other installation and deployment methods.

Connect to QuestDB

You can interact with QuestDB using the following interfaces:

How QuestDB compares to other open source TSDBs

Here are high-cardinality Time Series Benchmark Suite results using the cpu-only use case with 6 workers on an AMD Ryzen 3970X:

The following table shows query execution time of a billion rows run on a c5.metal instance using 16 of the 96 threads available:

Query Runtime
SELECT sum(double) FROM 1bn 0.061 secs
SELECT tag, sum(double) FROM 1bn 0.179 secs
SELECT tag, sum(double) FROM 1bn WHERE timestamp in '2019' 0.05 secs

Resources

📚 Read the docs

Get support

🚢 Deploy QuestDB

Contribute

We are always happy to have contributions to the project whether it is source code, documentation, bug reports, feature requests or feedback. To get started with contributing:

As a sign of our gratitude, we also send QuestDB swag to our contributors. Claim your swag here.

A big thanks goes to the following wonderful people who have contributed to QuestDB: (emoji key):


clickingbuttons

💻 🤔 📓

ideoma

💻 📓 ⚠️

tonytamwk

💻 📓

sirinath

🤔

igor-suhorukov

💻 🤔

mick2004

💻 📦

rawkode

💻 🚇

solidnerd

💻 🚇

solanav

💻 📖

shantanoo-desai

📝 💡

alexprut

💻 🚧

lbowman

💻 ⚠️

chankeypathak

📝

upsidedownsmile

💻

Nagriar

💻

piotrrzysko

💻 ⚠️

mpsq

💻

siddheshlatkar

💻

Yitaek

💡

gabor-boros

💡

kovid-r

💡

TimBo93

🐛 📓

zikani03

💻

jaugsburger

💻 🚧

TheTanc

📆 🖋 🤔

davidgs

🐛 🖋

kaishin

💻 💡

bluestreak01

💻 🚧 ⚠️

patrickSpaceSurfer

💻 🚧 ⚠️

chenrui333

🚇

bsmth

📖 🖋

Ugbot

💬 📓 📢

lepolac

💻 🔧

tiagostutz

📓 🐛 📆

Lyncee59

🤔 💻

rrjanbiah

🐛

sarunas-stasaitis

🐛

RiccardoGiro

🐛

duggar

🐛

postol

🐛

petrjahoda

🐛

t00

🐛

snenkov

📓 🐛 🤔

marregui

💻 🤔 🎨

bratseth

💻 🤔 📓

welly87

🤔

fuzzthink

🤔 📓

nexthack

💻

g-metan

🐛

tim2skew

🐛 📓

ospqsp

🐛

SuperFluffy

🐛

nu11ptr

🐛

comunidadio

🐛

mugendi

🤔 🐛 📖

paulwoods222

🐛

mingodad

🤔 🐛 📖

houarizegai

📖

jjsaunier

🐛

zanek

🤔 📆

Geekaylee

📓 🤔

lg31415

🐛 📆

null-dev

🐛 📆

ultd

🤔 📆

ericsun2

🤔 🐛 📆

giovannibonetti

📓 🐛 📆

wavded

📓 🐛

puzpuzpuz

📖 💻 📓

rstreics

💻 🚇 📖

mariusgheorghies

💻 🚇 📖

pswu11

🖋 🤔 🎨

insmac

💻 🤔 🎨

eugenels

💻 🤔 🚧

bziobrowski

💻 📆

Zapfmeister

💻 📓

mkaruza

💻

DylanDKnight

📓 🐛

This project follows the all-contributors specification. Contributions of any kind welcome!

Comments
  • [ONGOING] Add contributors to the readme

    [ONGOING] Add contributors to the readme

    We now integrate with all-contributors :tada:.

    We can start adding those who help us a lot to our readme. This is a way for us to recognize really valuable contributions. Those can be commits and code related but also testing, help on finding bugs, new issues, new ideas, documentation improvements, etc.

    You can find the list of emojis here, and pick the right one depending on the type of contribution.

    If you just started looking at QuestDB and want to contribute, please have a look at our CONTRIBUTING.md, there is many ways you can help!

    Documentation 
    opened by mpsq 38
  • fix(sql): rename log() to ln() natural logarithm function

    fix(sql): rename log() to ln() natural logarithm function

    Aligned the use of log() function to sql definition of ln according to issue #2578

    -Replaced all log() into ln() -Renames LogDoubleFunctionFactory class

    SQL Tidy up Hacktoberfest 
    opened by Ln11211 33
  • BETWEEN statement fills up memory

    BETWEEN statement fills up memory

    Describe the bug

    When running queries with WHERE timestamp BETWEEN 'TIMESTAMP A' AND 'TIMESTAMP B' memory consumption spikes and does not return to normal until a restart was performed.

    I am using grafana with dashboard variables which perform some queries on dashboard load.

    e.g. SELECT DISTINCT ID FROM 'testTable' WHERE $__timeFilter(timestamp)

    Grafana replaces the timeFilter with the WHERE timestamp BETWEEN X Y statement and in my case, it uses the current timestamp and the timestamp from one hour ago which results in the query always being different. I guess that some kind of caching leads to this issue.

    To reproduce

    1. Create table as below
    2. Insert some values
    3. Run a few queries with different BETWEEN timestamps
    4. Watch the memory allocation going up

    Expected Behavior

    Memory should not spike that much and should at least be freed again.

    Environment

    - **QuestDB version**: 6.1.2
    - **OS**: Ubuntu 20.04
    

    Additional context

    Memory consumption of QuestDB

    Bildschirmfoto 2021-12-14 um 03 18 53

    My table design:

    CREATE TABLE test(
        ID SYMBOL capacity 1048576 index,
        valueA DOUBLE,
        valueB DOUBLE,
        valueC DOUBLE,
        ts TIMESTAMP
    ) timestamp(ts);
    
    opened by mariusziemke 28
  • questdb.jar is referenced in questdb-6.4.3-rt-linux-amd64 questdb.sh script - questdb.sh script seemingly not working on RHEL 8.4

    questdb.jar is referenced in questdb-6.4.3-rt-linux-amd64 questdb.sh script - questdb.sh script seemingly not working on RHEL 8.4

    Describe the bug

    Downloaded latest release to mistakenly think questdb.jar file is missing:

    /root/questdb-6.4.3/questdb-6.4.3-rt-linux-amd64 #> find . -name questdb.jar

    This is because questdb.sh references questdb.jar, and the first step in looking when the script failed to run led me to that point.

    To reproduce

    1. Download tar file
    2. Extract tar file
    3. Try run ./questdb.sh
    4. Check open ports - Nothing relevant to questdb
    5. Looked in questdb.sh that references questdb.jar
    6. Looked in bin directory of extracted tar

    Expected Behavior

    questdb.jar should... Work out of the box for RHEL 8.4.

    Environment

    - **QuestDB version**:6.4.3
    - **OS**:RHEL8.4
    - **Browser**:
    

    Additional context

    No response

    Bug 
    opened by CJCShadowsan 23
  • High idle CPU usage

    High idle CPU usage

    Describe the bug The idle CPU usage is pretty high at ~3%.

    To Reproduce Follow https://www.questdb.io/docs/installFromDockerImage Run docker stats to measure CPU usage.

    Sometimes the idle cpu usage reaches even 10%, but most of the time it stays stable at ~3%.

    Expected behavior Idle CPU usage is <0.1%.

    Screenshots Screenshot 2020-05-10 at 00 07 01

    Environment (please complete the following information):

    • Ubuntu 18
    • Latest Docker image
    Performance 
    opened by PiotrDabkowski 23
  • first() / last() implementation

    first() / last() implementation

    Is your feature request related to a problem? Please describe. the aggregation function last() only supports certain types (timestamp, long, int). However last(symbol) and last(double) for example are not supported. first() is not implemented.

    Describe the solution you'd like Finish the implementation for last and implement first

    New feature SQL Good first issue 
    opened by TheTanc 20
  • Unique key support

    Unique key support

    Hi Vlad,

    I've recently came across your NFSDB. It looks impressive. I've been playing with it quite a lot and found one potential issue. There is probably a problem with indexing when a column contains too many different values. For such scenario I've tried to use a standard index with the hitcount set to a high number and it made the db very very slow. It seems the db gets slower exponentially with growing number of different items in the indexed column. To reproduce the issue, just set up the index like this and insert 1M items with different unique ids:

    $sym("uniqueId").index().size(15).valueCountHint(1000_000)

    It might be a good idea to have something like UNIQUE KEY index/constraint which creates a special index using a hashtable. This would allow user to find exactly one item based on a unique key.

    Or am I missing something? Please let me know your thoughts.

    Thanks a lot, Jaromir

    Help wanted New feature 
    opened by jaromirs 20
  • Potential memory leak in 6.2

    Potential memory leak in 6.2

    Describe the bug

    We are running QuestDB 6.2 (container) and ingesting data at 14kHz (via ILP, single writer) for a long period. During this period (couple of days), we do not run a single query.

    There, we observed that the memory usage of QuestDB rises over time, finally allocating all available memory. When limiting the memory using cgroups (technically via docker-compose mem_limit setting), we observe that the process is periodically OOMd and restarted. Further we observed the following:

    • we do not overrun the DB (all data ends up on disk until last commit before OOM, checked after restart)
    • when stopping the ingestion, the memory usage does not shrink
    • the JVM heap is limited to 1GB (that could be put into the docs)
    • Restarts happen very periodically

    time between OOMs (restarts)

    • 03:48:02
    • 04:03:43
    • 03:53:27
    • 03:58:54
    • 05:00:44

    docker-compose.yml

    services:
      questdb:
        image: docker.io/questdb/questdb:6.2
        volumes:
          - /mnt/db-storage:/root/.questdb
          # Note: setting log-level via env var did not work
          - ./questdb-conf/log.conf:/root/.questdb/conf/log.conf:ro
        ports:
          - '8812:8812'
          - '9000:9000'
          - '9009:9009'
        environment:
          - QDB_LINE_TCP_MAINTENANCE_JOB_INTERVAL=10000
          - QDB_LINE_TCP_DEFAULT_PARTITION_BY=HOUR
          - QDB_CAIRO_COMMIT_LAG=10000
          - QDB_HTTP_QUERY_CACHE_ENABLED=false
          - QDB_PG_SELECT_CACHE_ENABLED=false
          - QDB_PG_INSERT_CACHE_ENABLED=false
        cpus: 4
        mem_limit: 2G
        restart: unless-stopped
    

    QuestDB output after startup

    2022-02-08T06:36:59.104203Z A server-main Server config : /root/.questdb/conf/server.conf
    2022-02-08T06:36:59.111826Z A server-main Config changes applied:
    2022-02-08T06:36:59.111843Z A server-main   http.enabled : true
    2022-02-08T06:36:59.111870Z A server-main   tcp.enabled  : true
    2022-02-08T06:36:59.111891Z A server-main   pg.enabled   : true
    2022-02-08T06:36:59.111912Z A server-main open database [id=8916382354024914915.-5271762009964388491]
    2022-02-08T06:36:59.111948Z A server-main platform [bit=64]
    2022-02-08T06:36:59.111969Z A server-main OS/Arch: linux/amd64 [AVX2,8]
    2022-02-08T06:36:59.112352Z A server-main available CPUs: 4
    2022-02-08T06:36:59.112388Z A server-main db root: /root/.questdb/db
    2022-02-08T06:36:59.112410Z A server-main backup root: null
    2022-02-08T06:36:59.112482Z A server-main db file system magic: 0x6edc97c2 [BTRFS] SUPPORTED
    2022-02-08T06:36:59.112712Z A server-main SQL JIT compiler mode: off
    2022-02-08T06:36:59.298217Z A i.q.TelemetryJob instance [id=0x05d6f771771573000001f41cdc0163, enabled=true]
    2022-02-08T06:36:59.307648Z A http-server listening on 0.0.0.0:9000 [fd=58 backlog=256]
    2022-02-08T06:36:59.347898Z A pg-server listening on 0.0.0.0:8812 [fd=62 backlog=10]
    2022-02-08T06:36:59.380170Z A tcp-line-server listening on 0.0.0.0:9009 [fd=64 backlog=256]
    2022-02-08T06:36:59.408147Z A server-main enjoy
    2022-02-08T06:36:59.345514Z A http-min-server listening on 0.0.0.0:9003 [fd=60 backlog=4]
    

    To reproduce

    No response

    Expected Behavior

    Fixed upper bound of allocated memory. At least for the containerized version, this limit should be read from the cgroup.

    Environment

    - **QuestDB version**: 6.2 (container)
    - **OS**: Debian Bullseye
    - **container runtime**: podman + crun (rootless)
    - **storage**: BTRFS (for DB), fuse-overlayfs for container rootfs
    

    Additional context

    Without memory limitation:

    questdb-leak

    ILP 
    opened by fmoessbauer 19
  • Unsafe memory access

    Unsafe memory access

    Describe the bug

    We occasionally see our servers embedding QuestDb core with

    java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code\n\tat io.questdb.cairo.IntervalFwdDataFrameCursor.next(IntervalFwdDataFrameCursor.java:68)\n\tat io.questdb.griffin.engine.table.DataFrameRecordCursor.nextFrame(DataFrameRecordCursor.java:102)\n\tat io.questdb.griffin.engine.table.DataFrameRecordCursor.nextRow(DataFrameRecordCursor.java:80)\n\tat io.questdb.griffin.engine.table.DataFrameRecordCursor.hasNext(DataFrameRecordCursor.java:60)\n\tat

    Environment (please complete the following information):

    • OS: Linux - 4.18.0-240.15.1.el8_3.x86_64
    • Jdk: OpenJDK 64-Bit Server VM AdoptOpenJDK (11.0.10+9, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
    • QuestDb version: 5.0.6
    Bug SQL 
    opened by bratseth 19
  • feat(sql): added support for unit microseconds (U) in sample by statements #1984.

    feat(sql): added support for unit microseconds (U) in sample by statements #1984.

    Documentation PR https://github.com/questdb/questdb.io/pull/841

    Adding support of microseconds in timestamp sampler(Fixes #1984 ):

    • createTimestampSampler(long interval, char timeUnit, int position) in TimestampSamplerFactory.java

    Adding test cases for the microsecond in timestamp:

    • testMicros() in TimestampSamplerFactoryTest.java
    • testSampleByMicrosFillNoneNotKeyedEmpty() in SampleByTest.java

    Please let me know whether I write proper test cases. Thanks!

    updates:

    • modifying testMicros() and testSampleByMicrosFillNoneNotKeyedEmpty()
    • adding testMillis() in TimestampSamplerFactoryTest.java
    opened by KevinChen16 18
  • CSV double import bug

    CSV double import bug

    Describe the bug When importing a csv, values of type double are subject to add trailing digits. So value 1.234 in the csv might end up being stored as 1.2340000000004 for example.

    Expected behavior Values should be imported normally without trailing digits being added.

    Environment (please complete the following information):

    • AWS linux
    • Version: 4.2

    Screenshots Screenshot 2020-05-18 at 11 25 19

    Bug Good first issue Hacktoberfest 
    opened by TheTanc 18
  • High Disk usage!?

    High Disk usage!?

    Describe the bug

    Hi

    this is an awesome product, very impressive. I have been trying it out and comparing to some other time series databases as well.

    Quick one: it appears that it can use up a lot of disk space. for instance, I have a OHLCV table with 6052159 rows. I have a date, timestamp, ticker(Symbol) and OHLCV columns. the OHLCV db directory seems to take up close to 20GB disk space.

    • this appears quite high, no? is this expected?
    • is there a way we can reduce disk usage by tables?

    ta!

    To reproduce

    No response

    Expected Behavior

    No response

    Environment

    - **QuestDB version**: 6.6.1
    - **OS**: M1 Mac Monterey
    - **Browser**: Safari
    

    Additional context

    No response

    opened by Roh-codeur 0
  • assertion error on a case issue

    assertion error on a case issue

    Describe the bug

    2023-01-01T18:52:59.236613Z I i.q.g.SqlCompiler batch [text=WITH syms AS (SELECT 'BTCUSDT')
    SELECT tr.ts, tr.sym, AVG(px) px, SUM(qty) qty, SUM(ABS(qty)) absqty, COUNT() cnt, round(AVG(px)*SUM(ABS(qty)),0) usdqty,
           FIRST(A) op, last(A) cl, round(10000*(log(LAST(A))-log(FIRST(A))), 2) bpschg
      FROM (SELECT * FROM trade WHERE sym IN (SELECT * FROM syms)) AS tr
             asof JOIN (SELECT * FROM quote WHERE sym IN (SELECT * FROM syms)) AS qu
                         sample BY 10s
     ORDER BY absqty DESC
     LIMIT 20 ;]
    2023-01-01T18:52:59.251130Z C i.q.c.p.PGWireServer internal error [ex=
    java.lang.AssertionError
            at io.questdb.std.ObjList.getQuick(ObjList.java:173)
            at io.questdb.griffin.SqlOptimiser.rewriteSelectClause0(SqlOptimiser.java:3158)
            at io.questdb.griffin.SqlOptimiser.rewriteSelectClause(SqlOptimiser.java:2975)
            at io.questdb.griffin.SqlOptimiser.optimise(SqlOptimiser.java:3546)
            at io.questdb.griffin.SqlCompiler.compileExecutionModel(SqlCompiler.java:1112)
            at io.questdb.griffin.SqlCompiler.compileUsingModel(SqlCompiler.java:1193)
            at io.questdb.griffin.SqlCompiler.compileInner(SqlCompiler.java:1146)
            at io.questdb.griffin.SqlCompiler.compileBatch(SqlCompiler.java:314)
            at io.questdb.cutlass.pgwire.PGConnectionContext.processQuery(PGConnectionContext.java:2237)
            at io.questdb.cutlass.pgwire.PGConnectionContext.parse(PGConnectionContext.java:1557)
            at io.questdb.cutlass.pgwire.PGConnectionContext.handleClientOperation(PGConnectionContext.java:385)
            at io.questdb.cutlass.pgwire.PGJobContext.handleClientOperation(PGJobContext.java:89)
            at io.questdb.cutlass.pgwire.PGWireServer$1.lambda$$0(PGWireServer.java:83)
            at io.questdb.network.AbstractIODispatcher.processIOQueue(AbstractIODispatcher.java:169)
            at io.questdb.cutlass.pgwire.PGWireServer$1.run(PGWireServer.java:110)
            at io.questdb.mp.Worker.run(Worker.java:118)
    ]
    

    When writing LAST(A) cl instead of last(A) cl, it works fine. last(a) also fails.

    To reproduce

    No response

    Expected Behavior

    No response

    Environment

    - **QuestDB version**: 6.6.1
    - **OS**: Linux
    - **Browser**:
    

    Additional context

    No response

    opened by vbmithr 0
  • filtered `count` function

    filtered `count` function

    Is your feature request related to a problem?

    No response

    Describe the solution you'd like.

    I would like to be able to add a filter argument when counting elements in an aggregate, i.e. count all positive numbers, etc.

    Describe alternatives you've considered.

    No response

    Additional context.

    No response

    New feature 
    opened by vbmithr 0
  • Client gets disconnected when rounding a value in SQL (used `pcli`)

    Client gets disconnected when rounding a value in SQL (used `pcli`)

    Describe the bug

    2022-12-29T17:46:01.841044Z I i.q.g.SqlCompiler batch [text=select trade.ts, trade.sym, first(px) o, max(px) h, min(px) l, last(px) c, log(last(px)) - log(first(px)) logr, round(sum(abs(qty)),2) v, avg(leverage) avglvg, log(last(leverage)) - log(first(leverage)) loglvgchg from trade asof join byb_ltinfo on (sym) where trade.sym = 'BTC3LUSDT' sample by 5m ;]
    2022-12-29T17:46:01.841679Z C i.q.c.p.PGWireServer internal error [ex=
    java.lang.AssertionError
            at io.questdb.std.ObjList.getQuick(ObjList.java:173)
            at io.questdb.griffin.SqlOptimiser.rewriteSelectClause0(SqlOptimiser.java:3158)
            at io.questdb.griffin.SqlOptimiser.rewriteSelectClause(SqlOptimiser.java:2975)
            at io.questdb.griffin.SqlOptimiser.optimise(SqlOptimiser.java:3546)
            at io.questdb.griffin.SqlCompiler.compileExecutionModel(SqlCompiler.java:1112)
            at io.questdb.griffin.SqlCompiler.compileUsingModel(SqlCompiler.java:1193)
            at io.questdb.griffin.SqlCompiler.compileInner(SqlCompiler.java:1146)
            at io.questdb.griffin.SqlCompiler.compileBatch(SqlCompiler.java:314)
            at io.questdb.cutlass.pgwire.PGConnectionContext.processQuery(PGConnectionContext.java:2237)
            at io.questdb.cutlass.pgwire.PGConnectionContext.parse(PGConnectionContext.java:1557)
            at io.questdb.cutlass.pgwire.PGConnectionContext.handleClientOperation(PGConnectionContext.java:385)
            at io.questdb.cutlass.pgwire.PGJobContext.handleClientOperation(PGJobContext.java:89)
            at io.questdb.cutlass.pgwire.PGWireServer$1.lambda$$0(PGWireServer.java:83)
            at io.questdb.network.AbstractIODispatcher.processIOQueue(AbstractIODispatcher.java:169)
            at io.questdb.cutlass.pgwire.PGWireServer$1.run(PGWireServer.java:110)
            at io.questdb.mp.Worker.run(Worker.java:118)
    ]
    

    To reproduce

    No response

    Expected Behavior

    No response

    Environment

    - **QuestDB version**: 6.6.1
    - **OS**: Linux
    - **Browser**:
    

    Additional context

    No response

    opened by vbmithr 7
  • QuestDB NodeJS client library in Node-red

    QuestDB NodeJS client library in Node-red

    Is your feature request related to a problem?

    While you already looking into Auto-insert-retry feature for PostgreSQL wire protocol, I would like to request for the NodeJS Client library in Node-red in case if it is feasible from QuestDB...

    We are using QuestDB as a Data storage in a Prototype solution for the IoT Sensors data, in which the data is being ingested by Home Assistant & Node-red using PostgreSQL wire protocol into QuestDB, node-red is a low code platform that helps in designing event flow.

    Unfortunately, after adding multiple sensors into the node-red flow we are experiencing table-busy error, which seems to be normal while using PostgreSQL wire Protocol, and we do not have an alternative way to ingest the data into QuestDB from node-red.

    Describe the solution you'd like.

    I think it would be great to have a node within node-red platform that can work similar to PostgreSQL-node but use InfluxDB Line protocol or NodeJS client libraries as separate node in node-red platform.

    Describe alternatives you've considered.

    No response

    Additional context.

    No response

    New feature 
    opened by shekarkola 0
  • feat(sql): add trigonometric functions sin, cos, tan, cot, asin, acos, atan, atan2, toRadians, fromRadians, pi

    feat(sql): add trigonometric functions sin, cos, tan, cot, asin, acos, atan, atan2, toRadians, fromRadians, pi

    These functions are useful for trigonometry: sin, cos, tan, toRadians, fromRadians, pi, acos, asin, atan, atan2, cot.

    toRadians and fromRadians are complementary. pi is the constant. sin, cos, tan, cot take the angle in radians as their parameter. atan2 takes two doubles. atan, asin, acos take one double.

    documented by https://github.com/questdb/questdb.io/pull/1245

    New feature Core 
    opened by marregui 2
Releases(6.6.1)
  • 6.6.1(Nov 23, 2022)

    Overview

    This is a follow up release for the 6.6. It fixes a serious data consistency issue, introduced specifically by 6.6.

    ❗ Breaking change

    Unless you're upgrading from versions before 6.6, you will be affected by a minor breaking change: commitLag keyword in SQLs is no longer supported in this release. We recommend you remove these keywords and "lag" values and let the system handle things automatically.

    What we fixed

    CORE

    • fix header detection for csv with single character column names by @bziobrowski in https://github.com/questdb/questdb/pull/2797
    • fix potential corrupt data produced when writing from ILP on partition boundaries by @ideoma in https://github.com/questdb/questdb/pull/2803
    • fix partition directory left on disk when latest dropped by @ideoma in https://github.com/questdb/questdb/pull/2802

    Full Changelog: https://github.com/questdb/questdb/compare/6.6...6.6.1

    Source code(tar.gz)
    Source code(zip)
    questdb-6.6.1-no-jre-bin.tar.gz(6.32 MB)
    questdb-6.6.1-rt-freebsd-amd64.tar(24.78 MB)
    questdb-6.6.1-rt-linux-amd64.tar.gz(27.00 MB)
    questdb-6.6.1-rt-windows-amd64.tar.gz(23.23 MB)
  • 6.6(Nov 22, 2022)

    Overview

    We introduce an automated system, which removes the concept of commit lag thus simplifying capacity planning. Developers don't have to compromise between high ingestion speed and data visibility. Data visibility is instant while ingestion performance is always at its peak.

    Additionally, there is a number of important bug fixes that improve system performance and stability.

    ❗ Breaking change

    commitLag keyword in SQLs is no longer supported in this release. We recommend you remove these keywords and "lag" values and let the system handle things automatically.

    What is new

    CORE

    • add automated "lag", ingestion dealing with bursts without user input by @bluestreak01 in https://github.com/questdb/questdb/pull/2759

    SQL

    • implement ltrim(), rtrim() and trim() functions by @klurpicolo in https://github.com/questdb/questdb/pull/2613
    • optimize LATEST ON with multiple symbol columns by @puzpuzpuz in https://github.com/questdb/questdb/pull/2783

    HTTP

    • implement CSV export with custom delimiter by @stephenspol in https://github.com/questdb/questdb/pull/2746

    What we fixed

    CORE

    • fix spurious I/O errors caused by unhandled EINTR by @jerrinot in https://github.com/questdb/questdb/pull/2739
    • fix segfault due to closed LogFactory instances on start-up by @puzpuzpuz in https://github.com/questdb/questdb/pull/2756
    • fix unhandled error where string resembling long256 could not be parsed by @vgrichina in https://github.com/questdb/questdb/pull/2762
    • fix intermittent could not mmap error by @glasstiger in https://github.com/questdb/questdb/pull/2775
    • fix ignored text_loader.json configuration file by @puzpuzpuz in https://github.com/questdb/questdb/pull/2750
    • fix shutdown errors when HTTP is disabled @bluestreak01 https://github.com/questdb/questdb/pull/2791

    SQL

    • fix possible errors when casting strings to double by @jerrinot in https://github.com/questdb/questdb/pull/2754
    • return error on REINDEX table with no indexed columns by @sreenath-tm in https://github.com/questdb/questdb/pull/2646
    • fix designated timestamp in WhereClauseParser when using epoch by @stephenspol in https://github.com/questdb/questdb/pull/2744
    • improve index selection in query planning by @bziobrowski in https://github.com/questdb/questdb/pull/2778
    • fix internal error in SQL with symbol predicate and empty table or sub-query by @bziobrowski in https://github.com/questdb/questdb/pull/2793
    • make offset and timezone optional in sample-by queries by @jerrinot in https://github.com/questdb/questdb/pull/2785

    ILP

    • fix occasionally damaged metadata in implicitly created tables by @jerrinot in https://github.com/questdb/questdb/pull/2776
    • fix NPE in ILP ingestion during shutdown by @bziobrowski in https://github.com/questdb/questdb/pull/2770

    HTTP

    • fix filtered query performance when limit query parameter is specified by @puzpuzpuz in https://github.com/questdb/questdb/pull/2748

    Contributor's Hall of Fame

    We want to thank our new contributors:

    • @sreenath-tm made their first contribution in https://github.com/questdb/questdb/pull/2646
    • @klurpicolo made their first contribution in https://github.com/questdb/questdb/pull/2613
    • @vgrichina made their first contribution in https://github.com/questdb/questdb/pull/2762

    Full Changelog: https://github.com/questdb/questdb/compare/6.5.5...6.6

    Source code(tar.gz)
    Source code(zip)
    questdb-6.6-no-jre-bin.tar.gz(6.32 MB)
    questdb-6.6-rt-freebsd-amd64.tar(24.77 MB)
    questdb-6.6-rt-linux-amd64.tar.gz(27.00 MB)
    questdb-6.6-rt-windows-amd64.tar.gz(23.23 MB)
  • 6.5.5(Nov 7, 2022)

    Overview

    This release features an improved migration experience when importing CSV files from PostgreSQL and stability improvements for the Core and SQL engine.

    What is new

    CORE

    • add support for ISO weeks in date format and parse by @Belair34 in https://github.com/questdb/questdb/pull/2632
    • add support for U+ - six-digit microsecond format component by @bluestreak01 in https://github.com/questdb/questdb/pull/2688
    • add support for N+ - nine-digit nanosecond format component by @bluestreak01 in https://github.com/questdb/questdb/pull/2709
    • allow attaching partitions from different volumes as symbolic links by @marregui in https://github.com/questdb/questdb/pull/2650

    SQL

    • support insert into table with ... syntax by @bluestreak01 in https://github.com/questdb/questdb/pull/2724

    What we fixed

    CORE

    • fix concurrent table create failures by @ideoma in https://github.com/questdb/questdb/pull/2716
    • fix race in reader pool locking by @puzpuzpuz in https://github.com/questdb/questdb/pull/2722
    • fix the way env variables are picked up for purpose of configuring the logger @bluestreak01 in https://github.com/questdb/questdb/pull/2737

    SQL

    • fix copy from file with raw timestamp by @bziobrowski in https://github.com/questdb/questdb/pull/2683
    • fix spurious ambiguous column name error with sample by and joins by @bluestreak01 in https://github.com/questdb/questdb/pull/2685
    • disallow create table with index on non-symbol column by @puzpuzpuz in https://github.com/questdb/questdb/pull/2706
    • fix NullPointerException in join query over latest on sub-queries by @puzpuzpuz in https://github.com/questdb/questdb/pull/2711
    • fix empty result returned for query with no-op filter by @puzpuzpuz in https://github.com/questdb/questdb/pull/2715
    • fix slow optimisation of queries with many set operations by @bziobrowski in https://github.com/questdb/questdb/pull/2734
    • fix drop index when indexed column added as alter table @ideoma in https://github.com/questdb/questdb/pull/2738

    Contributor's Hall of Fame

    We want to thank our new contributors:

    • @Belair34 made their first contribution in https://github.com/questdb/questdb/pull/2632
    • @VanshajPoonia made their first contribution in https://github.com/questdb/questdb/pull/2629
    • @jsoref made their first contribution in https://github.com/questdb/questdb/pull/2702
    • @Arkaroy147 made their first contribution in https://github.com/questdb/questdb/pull/2699

    Full Changelog: https://github.com/questdb/questdb/compare/6.5.4...6.5.5

    Source code(tar.gz)
    Source code(zip)
    questdb-6.5.5-no-jre-bin.tar.gz(6.23 MB)
    questdb-6.5.5-rt-freebsd-amd64.tar(24.67 MB)
    questdb-6.5.5-rt-linux-amd64.tar.gz(26.90 MB)
    questdb-6.5.5-rt-windows-amd64.tar.gz(23.15 MB)
  • 6.5.4(Oct 24, 2022)

    Overview

    This release includes new SQL features from our amazing Hacktoberfest contributors as well as performance and stability improvements.

    What is new

    SQL

    string functions:

    • add lower() and upper() string functions by @blackstar-baba in https://github.com/questdb/questdb/pull/2582
    • add position() alias for string function strpos() by @DarthBenro008 in https://github.com/questdb/questdb/pull/2599
    • implement starts_with string function by @akki1306 in https://github.com/questdb/questdb/pull/2608
    • add lpad and rpad string functions by @eigengravy in https://github.com/questdb/questdb/pull/2631
    • implement string function split_part() by @daniel-shuy in https://github.com/questdb/questdb/pull/2644

    numeric functions:

    • add math function ceiling with double and float arguments by @bsnxsourav in https://github.com/questdb/questdb/pull/2600
    • add log10 math function to calculate base 10 logarithm of double argument by @blackstar-baba in https://github.com/questdb/questdb/pull/2579
    • rename log() to ln() for natural logarithm function by @Ln11211 in https://github.com/questdb/questdb/pull/2605

    others:

    • support CREATE TABLE LIKE syntax by @akki1306 in https://github.com/questdb/questdb/pull/2580
    • allow ALTER DROP of the last partition by @marregui in https://github.com/questdb/questdb/pull/2606
    • support using row_number() over() and row_number() over(ORDER BY) by @blackstar-baba in https://github.com/questdb/questdb/pull/2656

    Web Console

    • active SQL highlights in the editor by @argshook in https://github.com/questdb/questdb/pull/2661

    What we fixed

    SQL

    • fix OOM handling in vectorized group by implementation by @bziobrowski in https://github.com/questdb/questdb/pull/2562
    • fix unexpected NPE thrown in query with analytical function and filter by @puzpuzpuz in https://github.com/questdb/questdb/pull/2598
    • fix spurious errors with SQL queries when table columns are added extremely frequently in the background by @ideoma in https://github.com/questdb/questdb/pull/2602
    • fix COPY of file with duplicate column names by @bziobrowski in https://github.com/questdb/questdb/pull/2591
    • fix case-insensitivity for ILIKE by @Ln11211 in https://github.com/questdb/questdb/pull/2593
    • change default location of import work directory to avoid extra file copying by @puzpuzpuz in https://github.com/questdb/questdb/pull/2592
    • fix sampling aligned to calendar timezone and ending with semicolon or followed by ORDER BY/LIMIT by @jerrinot in https://github.com/questdb/questdb/pull/2572
    • fix group by hour(ts) query optimization by @bziobrowski in https://github.com/questdb/questdb/pull/2622
    • fix window function row_number() result start with zero if using PARTITION BY by @blackstar-baba in https://github.com/questdb/questdb/pull/2612
    • fix #1916 bug of empty string and null string selection by @Twilight-Shuxin in https://github.com/questdb/questdb/pull/2056
    • apply query timeout to insert statements and improve timeout reliability by @bziobrowski in https://github.com/questdb/questdb/pull/2587
    • spurious duplicate column name errors in joins by @marregui in https://github.com/questdb/questdb/pull/2652
    • force inlining for GROUP BY queries with few aggregates by @puzpuzpuz in https://github.com/questdb/questdb/pull/2621
    • avoid unexpected errors when over() clause for analytic functions is missing @puzpuzpuz in https://github.com/questdb/questdb/pull/2657

    CORE

    • fix SIGSEGV on writing to table with intensive row cancel and rollback operations by @ideoma in https://github.com/questdb/questdb/pull/2596
    • fix commit error when many partitions are added and merged in one transaction by @ideoma in https://github.com/questdb/questdb/pull/2627
    • speeding up CSV lexer by 18-20% on amd64 and JDK17 by @bluestreak01 in https://github.com/questdb/questdb/pull/2576

    PGWire

    • fix incorrect protocol for asyncpg error handling by @bluestreak01 in https://github.com/questdb/questdb/pull/2559

    ILP

    • optimize ILP parser by @puzpuzpuz in https://github.com/questdb/questdb/pull/2635
    • fix degradation of row-by-row commit when commit operation takes longer than commit lag by @ideoma in https://github.com/questdb/questdb/pull/2609
    • fix variability in ILP performance by @bluestreak01 in https://github.com/questdb/questdb/pull/2654

    Web Console

    • fix grid active row disappearing at bottom of table @argshook in https://github.com/questdb/questdb/pull/2661

    Docs

    • bogus TTL values in server.conf by @ShubhamPalriwala in https://github.com/questdb/questdb/pull/2597

    Contributor's Hall of Fame

    We want to thank our new contributors:

    • @ArjunSharda made their first contribution in https://github.com/questdb/questdb/pull/2569
    • @TheZal made their first contribution in https://github.com/questdb/questdb/pull/2589
    • @Ln11211 made their first contribution in https://github.com/questdb/questdb/pull/2593
    • @ShubhamPalriwala made their first contribution in https://github.com/questdb/questdb/pull/2597
    • @blackstar-baba made their first contribution in https://github.com/questdb/questdb/pull/2582
    • @akki1306 made their first contribution in https://github.com/questdb/questdb/pull/2580
    • @DarthBenro008 made their first contribution in https://github.com/questdb/questdb/pull/2599
    • @bsnxsourav made their first contribution in https://github.com/questdb/questdb/pull/2600
    • @sklarsa made their first contribution in https://github.com/questdb/questdb/pull/2628
    • @Twilight-Shuxin made their first contribution in https://github.com/questdb/questdb/pull/2056
    • @eigengravy made their first contribution in https://github.com/questdb/questdb/pull/2631

    Full Changelog: https://github.com/questdb/questdb/compare/6.5.3...6.5.4

    Source code(tar.gz)
    Source code(zip)
    questdb-6.5.4-no-jre-bin.tar.gz(6.23 MB)
    questdb-6.5.4-rt-freebsd-amd64.tar(24.67 MB)
    questdb-6.5.4-rt-linux-amd64.tar.gz(26.89 MB)
    questdb-6.5.4-rt-windows-amd64.tar.gz(23.14 MB)
  • 6.5.3(Sep 27, 2022)

    Overview

    This is a maintenance release, which includes important stability fixes and improvements for the SQL engine and core.

    What is new

    SQL

    • add gauge metrics for current cached query count for Prometheus by @puzpuzpuz in https://github.com/questdb/questdb/pull/2504
    • add column pre-touch for parallel filters by @puzpuzpuz in https://github.com/questdb/questdb/pull/2524
    • add DEALLOCATE statement support for PHP Data Objects by @puzpuzpuz in https://github.com/questdb/questdb/pull/2530
    • enable column pre-touch in parallel filters by default by @puzpuzpuz in https://github.com/questdb/questdb/pull/2531

    CORE

    • add JVM memory and GC metrics for Prometheus by @puzpuzpuz in https://github.com/questdb/questdb/pull/2536
    • benchmarks and examples for JavaZone 2022 by @bluestreak01 in https://github.com/questdb/questdb/pull/2495

    Web console

    • add a widget to show all the keyboard shortcuts by @insmac in https://github.com/questdb/questdb/pull/2545

    What we fixed

    SQL

    • add single quotes escaping within string literals by @bziobrowski in https://github.com/questdb/questdb/pull/2506
    • decrease memory footprint of idle HTTP and PGWire connections by @puzpuzpuz in https://github.com/questdb/questdb/pull/2498
    • fix UnsupportedOperationException on GROUP BY over empty table by @puzpuzpuz in https://github.com/questdb/questdb/pull/2535
    • fix error reporting for missing FROM in SELECT * by @lookharm in https://github.com/questdb/questdb/pull/2516
    • fix UnsupportedOperationException thrown on SAMPLE BY with invalid values by @puzpuzpuz in https://github.com/questdb/questdb/pull/2540
    • clear all fields of execution plan objects to avoid unexpected errors by @puzpuzpuz in https://github.com/questdb/questdb/pull/2528
    • reduce memory utilization of cursor factories by @bziobrowski in https://github.com/questdb/questdb/pull/2539
    • fix getDayOfTheWeekOfEndOfYear correctness by @stephenspol in https://github.com/questdb/questdb/pull/2552
    • fix incorrect data stored when inserting string literals into numeric columns by @bluestreak01 in https://github.com/questdb/questdb/pull/2423

    CORE

    • fixes table rollback() that may lead to incorrect writes or crashes by @ideoma in https://github.com/questdb/questdb/pull/2512
    • port Daniel Lemire's fast double algorithm by @bluestreak01 in https://github.com/questdb/questdb/pull/2527
    • fix O3 table write, which can produce 0 values on column files over 2Gb by @ideoma in https://github.com/questdb/questdb/pull/2542
    • fix database start failure after too many SQL updates @ideoma in https://github.com/questdb/questdb/pull/2518

    PGWire

    • fix log level for SqlException by @puzpuzpuz in https://github.com/questdb/questdb/pull/2537

    Contributor's Hall of Fame

    We want to thank our new contributor:

    • @stephenspol made their first contribution in https://github.com/questdb/questdb/pull/2552
    • @lookharm made their first contribution in https://github.com/questdb/questdb/pull/2516

    Full Changelog: https://github.com/questdb/questdb/compare/6.5.2...6.5.3

    Source code(tar.gz)
    Source code(zip)
    questdb-6.5.3-no-jre-bin.tar.gz(7.56 MB)
    questdb-6.5.3-rt-freebsd-amd64.tar(26.02 MB)
    questdb-6.5.3-rt-linux-amd64.tar.gz(28.24 MB)
    questdb-6.5.3-rt-windows-amd64.tar.gz(23.07 MB)
  • 6.5.2(Sep 5, 2022)

    Overview

    This is a maintenance release focusing on important bug fixes for 6.5.1.

    What is new

    SQL

    • add min/max and regexp_replace functions for string values by @puzpuzpuz in https://github.com/questdb/questdb/pull/2478

    What we fixed

    SQL

    • release on-heap memory when analytic queries are returned to cache by @puzpuzpuz in https://github.com/questdb/questdb/pull/2473
    • fix invalid column error in GROUP BY based on function key by @puzpuzpuz in https://github.com/questdb/questdb/pull/2484
    • fix race condition in WHERE execution logic by @glasstiger in #2492
    • improve ALTER TABLE syntax error message by @puzpuzpuz in #2493

    CORE

    • fix missing native function on FreeBSD by @puzpuzpuz in https://github.com/questdb/questdb/pull/2490
    • fix segfault crash on out-of-order sort of string null values by @puzpuzpuz in https://github.com/questdb/questdb/pull/2488

    PGWire

    • recompile cached Update SQL when table structure changed instead of a failure by @jerrinot #2479

    AMI

    • fix preboot script in AMI by @mariusgheorghies in https://github.com/questdb/questdb/pull/2494

    Full Changelog: https://github.com/questdb/questdb/compare/6.5.1...6.5.2

    Source code(tar.gz)
    Source code(zip)
    questdb-6.5.2-no-jre-bin.tar.gz(7.47 MB)
    questdb-6.5.2-rt-freebsd-amd64.tar(25.95 MB)
    questdb-6.5.2-rt-linux-amd64.tar.gz(28.18 MB)
    questdb-6.5.2-rt-windows-amd64.tar.gz(24.43 MB)
  • 6.5.1(Aug 26, 2022)

    Release overview

    This release adds new SQL statements for detaching and re-attaching partitions to tables, enabling cold storage as a solution to the disk size limitation. In addition, we include several fixes and improvements for the overall reliability of the SQL engine.

    What is new

    SQL

    • implement ALTER TABLE DETACH PARTITION as a complement to ATTACH by @marregui in https://github.com/questdb/questdb/pull/2280
    • support int and long columns in count_distinct() by @puzpuzpuz in https://github.com/questdb/questdb/pull/2439
    • implement table_writer_metrics() and memory_metrics() table functions for better observability by @jerrinot https://github.com/questdb/questdb/pull/2318/

    What we fixed

    SQL

    • fix ORDER BY in over clause not accepting direction by @bziobrowski in https://github.com/questdb/questdb/pull/2406
    • made check case-insensitive for float, month and other keywords by @bziobrowski in https://github.com/questdb/questdb/pull/2407
    • fix inconsistency in worker count configuration for asynchronous filters by @eugenels in https://github.com/questdb/questdb/pull/2401
    • fix case sensivity for certain keywords by @puzpuzpuz in https://github.com/questdb/questdb/pull/2412
    • add support for day of year, week of year and week of month date formatting by @Zahlii in https://github.com/questdb/questdb/pull/2389
    • fix null returned from min() on int/long/date/ts column with max values only by @puzpuzpuz in https://github.com/questdb/questdb/pull/2429
    • fix update or insert after truncate by @bziobrowski in https://github.com/questdb/questdb/pull/2444
    • fix potential resource leak in non-keyed SAMPLE BY with filter by @puzpuzpuz in https://github.com/questdb/questdb/pull/2448
    • fix ORDER BY DESC with async filter by @bziobrowski in https://github.com/questdb/questdb/pull/2451
    • fix Duplicate column exception in INTERSECT query by @eugenels in https://github.com/questdb/questdb/pull/2472

    CORE

    • fix default geohash value to be NULL instead of 0 for existing rows when column added by @ideoma in https://github.com/questdb/questdb/pull/2410
    • improve native memory management of factories, cursors and caches by @bziobrowski in https://github.com/questdb/questdb/pull/2442
    • table writer lock/unlock consults CairoSecurityContext by @jerrinot in https://github.com/questdb/questdb/pull/2467
    • prevent server deadlock when logging too many errors by @ideoma in https://github.com/questdb/questdb/pull/2471

    HTTP

    • fix missing VACUUM and LOCK/UNLOCK statements support by @puzpuzpuz in https://github.com/questdb/questdb/pull/2443

    Full Changelog: https://github.com/questdb/questdb/compare/6.5...6.5.1

    Source code(tar.gz)
    Source code(zip)
    questdb-6.5.1-no-jre-bin.tar.gz(7.50 MB)
    questdb-6.5.1-rt-freebsd-amd64.tar(25.94 MB)
    questdb-6.5.1-rt-linux-amd64.tar.gz(28.16 MB)
    questdb-6.5.1-rt-windows-amd64.tar.gz(24.41 MB)
  • 6.5(Aug 5, 2022)

    Release overview

    This release brings a new algorithm for the SQL COPY statement [Reference], which is specifically designed to enable fast and easy CSV Import for large and unsorted data files. This feature comes in handy when there's a need to migrate a large amount of data from other databases to QuestDB [Guide: CSV import]. In addition, there are several improvements and fixes for the Influx line protocol, Core, and SQL engine.

    Gotchas

    No gotchas when you are upgrading from the start or 6.3, as it is just a software update. If you're upgrading from 6.2.1 or earlier, please refer to the gotchas of 6.3

    What is new

    CORE

    • deterministically deposit hs_err_pid crash logs into db directory with Docker package by @bluestreak01 in https://github.com/questdb/questdb/pull/2346
    • use all available cores by default @puzpuzpuz https://github.com/questdb/questdb/pull/2392

    SQL

    • high-performance implementation of the COPY statement for unordered CSV files by @eugenels, @bziobrowski in https://github.com/questdb/questdb/pull/2155
    • implement the function substring to extract some characters from a string by @HeZean in https://github.com/questdb/questdb/pull/2251
    • add write mode parameter for CREATE TABLE SQL by @ideoma in https://github.com/questdb/questdb/pull/2335
    • improve PostgreSQL compatibility as a base for extending integrations later by @bluestreak01 https://github.com/questdb/questdb/pull/2210

    What we fixed

    CORE

    • fix swallowing of all error and critical log messages by @ideoma in https://github.com/questdb/questdb/pull/2345
    • fix docker entry point exiting prematurely on chown errors by @mariusgheorghies in https://github.com/questdb/questdb/pull/2354
    • fix potential crash on adding column index by @ideoma in https://github.com/questdb/questdb/pull/2362

    SQL

    • incorrect result for negative LIMIT query with indexed symbol filter by @puzpuzpuz in https://github.com/questdb/questdb/pull/2336
    • make aggregate check case-insensitive by @bziobrowski in https://github.com/questdb/questdb/pull/2331
    • fix ORDER BY priority in case of duplicate column names by @jerrinot in https://github.com/questdb/questdb/pull/2339
    • incorrect result in some aggregation functions by @eugenels in https://github.com/questdb/questdb/pull/2342
    • fix incorrect timezone arithmetic in INSERT SQL by @bluestreak01 in https://github.com/questdb/questdb/pull/2366
    • fix keyed group by crashing on int column with high cardinality @bziobrowski https://github.com/questdb/questdb/pull/2353
    • fix error from queries that involve time interval & JIT search @bluestreak01 https://github.com/questdb/questdb/pull/2393
    • fix boolean numeric representation @Zahlii https://github.com/questdb/questdb/pull/2386
    • inconsistency in worker count configuration for asynchronous filters @eugenels https://github.com/questdb/questdb/pull/2399

    ILP

    • change default Sender port by @jerrinot in https://github.com/questdb/questdb/pull/2324

    PGWire

    • fix spurious error when executing "create table" SQL from Rust @bluestreak01 https://github.com/questdb/questdb/pull/2385

    Full Changelog: https://github.com/questdb/questdb/compare/6.4.3...6.5

    Source code(tar.gz)
    Source code(zip)
    questdb-6.5-no-jre-bin.tar.gz(7.42 MB)
    questdb-6.5-rt-freebsd-amd64.tar(25.86 MB)
    questdb-6.5-rt-linux-amd64.tar.gz(28.09 MB)
    questdb-6.5-rt-windows-amd64.tar.gz(24.34 MB)
  • 6.4.3(Jul 15, 2022)

    Release overview

    In this released we focused on delivering quality client libraries as well as stability improvements on the database core. Here is the list of client libraries that support both TLS and ILP authentication:

    Gotchas

    None when you are upgrading from the start or 6.3. It is just software update. If you're upgrading from 6.2.1 or earlier, please refer to the gotchas of 6.3

    What is new

    ILP

    • new Java client API for ILP ingestion, with support for authentication and encryption by @jerrinot in https://github.com/questdb/questdb/pull/2184

    CORE

    • run as questdb user in docker by @mariusgheorghies in https://github.com/questdb/questdb/pull/2281
    • use critical level to log all unhandled errors by @puzpuzpuz in https://github.com/questdb/questdb/pull/2290

    SQL

    • added DROP INDEX for dropping symbol column index by @marregui in https://github.com/questdb/questdb/pull/2183
    • reader pool observability by @jerrinot in https://github.com/questdb/questdb/pull/2315

    What we fixed

    CORE

    • fix issue when SELECTS do not see committed data by @ideoma in https://github.com/questdb/questdb/pull/2299

    SQL

    • fix fd leak in tables() function by @bziobrowski in https://github.com/questdb/questdb/pull/2276
    • fix crash for group by on cross join with aggregate sub-query by @puzpuzpuz in https://github.com/questdb/questdb/pull/2284
    • fix table reader leak in over partition by symbol column queries by @puzpuzpuz in https://github.com/questdb/questdb/pull/2282
    • fix NPE when LATEST ON is combined with a single symbol IN filter by @jerrinot in https://github.com/questdb/questdb/pull/2292
    • parse negative zero by @jerrinot in https://github.com/questdb/questdb/pull/2304
    • fix async filtering returning wrong result when timed out by @ideoma in https://github.com/questdb/questdb/pull/2301
    • fix bugs in string functions; add memory limit to replace() by @bziobrowski in https://github.com/questdb/questdb/pull/2314
    • nulls in concat function args are ignored by @HeZean in https://github.com/questdb/questdb/pull/2320

    Full Changelog: https://github.com/questdb/questdb/compare/6.4.2...6.4.3

    Source code(tar.gz)
    Source code(zip)
    questdb-6.4.3-no-jre-bin.tar.gz(7.16 MB)
    questdb-6.4.3-rt-linux-amd64.tar.gz(27.80 MB)
    questdb-6.4.3-rt-windows-amd64.tar.gz(24.08 MB)
  • 6.4.2(Jun 28, 2022)

    Release overview

    Maintenance release to include important bug fixes and critical features.

    Gotchas

    None when you are upgrading from the start or 6.3. It is just software update. If you're upgrading from 6.2.1 or earlier, please refer to the gotchas of 6.3

    What is new

    ILP

    • accept double values in scientific notation by @ideoma in https://github.com/questdb/questdb/pull/2211

    What we fixed

    ILP

    • consume bytes left in a buffer after a successful authentication by @jerrinot in https://github.com/questdb/questdb/pull/2206

    CORE

    • fixed index left corrupt after o3 commit by @ideoma in https://github.com/questdb/questdb/pull/2209
    • fixed index rebuild with column top in o3 part II by @ideoma in https://github.com/questdb/questdb/pull/2218
    • fixed premature partition deletion by @ideoma in https://github.com/questdb/questdb/pull/2250
    • fixed SQL update index maintenance issues @ideoma in https://github.com/questdb/questdb/pull/2273

    SQL

    • duplicate column names in create table, create from select, insert and update statements result in an error. by @marregui in https://github.com/questdb/questdb/pull/2093
    • fixed aggregation SQL crashing server when table is corrupt by @bluestreak01 in https://github.com/questdb/questdb/pull/2236
    • replaced __int128 type used as a type of sum accumulator with a custom implementation by @eugenels in https://github.com/questdb/questdb/pull/2238
    • fixed potential resource leak on update statement release by @puzpuzpuz in https://github.com/questdb/questdb/pull/2263
    • improved performance of certain SAMPLE BY queries by @puzpuzpuz in https://github.com/questdb/questdb/pull/2277
    • fixed infinite loop in SAMPLE BY month over first or last values and indexed column filter @puzpuzpuz in https://github.com/questdb/questdb/pull/2278

    Web Console

    AMI

    • don't overwrite passwords and setting files on start/reboot by @mariusgheorghies in https://github.com/questdb/questdb/pull/2271

    Contributor's Hall of Fame

    We want to thank our new contributors:

    • @HaleNing made their first contribution in https://github.com/questdb/questdb/pull/2242
    • @amyshwang made their first contribution in https://github.com/questdb/questdb/pull/2243

    Full Changelog: https://github.com/questdb/questdb/compare/6.4.1...6.4.2

    Source code(tar.gz)
    Source code(zip)
    questdb-6.4.2-no-jre-bin.tar.gz(7.06 MB)
    questdb-6.4.2-rt-linux-amd64.tar.gz(27.90 MB)
    questdb-6.4.2-rt-windows-amd64.tar.gz(23.97 MB)
  • 6.4.1(Jun 9, 2022)

    Release overview

    Maintenance release to include important bug fixes and critical features. Fixed CVE-2022-21449.

    Gotchas

    None when you are upgrading from the start or 6.3. It is just software update. If you're upgrading from 6.2.1 or earlier, please refer to the gotchas of 6.3

    What is new

    ILP

    • make ILP implicit schema optional by @ideoma in https://github.com/questdb/questdb/pull/2178

    CORE

    • move from openjdk docker image to debian image and amazon-corretto by @mariusgheorghies in https://github.com/questdb/questdb/pull/2200

    What we fixed

    SQL

    • fix for mixing up TRUE and FALSE while updating BOOLEAN field by @glasstiger in https://github.com/questdb/questdb/pull/2176
    • fix the comparison refer to 'infinity' by @KevinChen16 in https://github.com/questdb/questdb/pull/2160
    • use xxhash hash algorithm to improve join performance by @puzpuzpuz in https://github.com/questdb/questdb/pull/2174
    • reworked UNION, UNION ALL, EXCEPT and INTERSECT implementation to support type widening and sorting by @ideoma in https://github.com/questdb/questdb/pull/2123
    • AVX to SSE downgrade for scalar mode by @eugenels in https://github.com/questdb/questdb/pull/2169
    • fixed occasional double-free during SQL execution by @bluestreak01 in https://github.com/questdb/questdb/pull/2205

    ILP

    • fix failed ILP auth key verification on certain keys by @puzpuzpuz in https://github.com/questdb/questdb/pull/2198

    CORE

    • enforce correct table and columns names on all operations by @ideoma in https://github.com/questdb/questdb/pull/2172
    • move parallel execution jobs registration out of http server by @puzpuzpuz in https://github.com/questdb/questdb/pull/2154

    Contributor's Hall of Fame

    We want to thank our new contributors:

    • @1998code made their first contribution in https://github.com/questdb/questdb/pull/2190

    Full Changelog: https://github.com/questdb/questdb/compare/6.4...6.4.1

    Source code(tar.gz)
    Source code(zip)
    questdb-6.4.1-no-jre-bin.tar.gz(5.87 MB)
    questdb-6.4.1-rt-linux-amd64.tar.gz(26.53 MB)
    questdb-6.4.1-rt-windows-amd64.tar.gz(22.79 MB)
  • 6.4(May 27, 2022)

    Release overview

    This is the long-awaited release with UPDATE functionality. We fully implemented UPDATE syntax, which is compatible with PostgreSQL.

    Gotchas

    None when you are upgrading from the start or 6.3. It is just software update. If you're upgrading from 6.2.1 or earlier, please refer to the gotchas of 6.3

    What is new

    SQL

    • introduce UPDATE SQL statement by @glasstiger and @ideoma in https://github.com/questdb/questdb/pull/1947
    • add new SQL command REINDEX to re-index symbol column by @ideoma in https://github.com/questdb/questdb/pull/2142

    CORE

    • implement the write amplification metric in TableWriter by @amunra in https://github.com/questdb/questdb/pull/2136

    What we fixed

    CORE

    • fix initial connection properties parser by @jerrinot in https://github.com/questdb/questdb/pull/2131
    • fix possible ignore of async table ALTER commands by @ideoma in https://github.com/questdb/questdb/pull/2137

    SQL

    • fix uncommon potential race in parallel filter execution by @puzpuzpuz in https://github.com/questdb/questdb/pull/2134

    HTTP

    • make /exp endpoint only allow SELECT statements by @MatthewLENG2002 in https://github.com/questdb/questdb/pull/2145

    Contributor's Hall of Fame

    We want to thank our new contributors:

    • @MatthewLENG2002 made their first contribution in https://github.com/questdb/questdb/pull/2145
    • @ngnic made their first contribution in https://github.com/questdb/questdb/pull/2150

    Full Changelog: https://github.com/questdb/questdb/compare/6.3.1...6.4

    Source code(tar.gz)
    Source code(zip)
    questdb-6.4-no-jre-bin.tar.gz(5.85 MB)
    questdb-6.4-rt-linux-amd64.tar.gz(26.50 MB)
    questdb-6.4-rt-windows-amd64.tar.gz(22.77 MB)
    questdb-6.4.1-no-jre-bin.tar.gz(5.87 MB)
    questdb-6.4.1-rt-linux-amd64.tar.gz(26.53 MB)
    questdb-6.4.1-rt-windows-amd64.tar.gz(22.79 MB)
  • 6.3.1(May 17, 2022)

    Release overview

    This is a maintenance release driven by our community with new features. We improved SQL usability with external contributors and also fixed a memory leak for SQL execution.

    Gotchas

    None when you are upgrading from the start or 6.3. It is just software update. If you're upgrading from 6.2.1 or earlier, please refer to the gotchas of 6.3

    What is new

    SQL

    • add support for sample standard deviation stddev_samp() aggregate function #2099 by @iridess
    • add support for unit microseconds (U) in SAMPLE BY statements #1984 by @KevinChen16
    • implement extract(part from timestamp) function #2042 by @bluestreak01, @bziobrowski and @marregui

    HTTP

    • support wrapping large numbers into strings to avoid overflow #2115 by @HeZean

    What we fixed

    SQL

    • allow string casts to number by :: keyword #2109 by @HeZean
    • fix potential stack overflow in PG Wire select and insert cache pooling #2103 @puzpuzpuz
    • eliminate reduce counter race in page frame sequence used by parallel filters #2124 by @puzpuzpuz
    • fix memory leak in cross-join cursor by #2126 @bluestreak01

    Migration

    • tolerate missing partition folders in 6.2.1 -> 6.3 migration #2114 by @ideoma

    Contributor's Hall of Fame

    We want to thank our new contributors:

    • @iridess
    • @KevinChen16
    Source code(tar.gz)
    Source code(zip)
    questdb-6.3.1-no-jre-bin.tar.gz(5.80 MB)
    questdb-6.3.1-rt-linux-amd64.tar.gz(26.46 MB)
    questdb-6.3.1-rt-windows-amd64.tar.gz(22.72 MB)
  • 6.3(May 5, 2022)

    Release highlights

    • The JIT compiler is now enabled by default. The compiler aims at significantly improving execution times for queries with simple arithmetic expressions in where statements. This feature can be disabled by setting cairo.sql.jit.mode to off.

    • The where clause is executed concurrently, which include both JIT-based and function framework based filters. Additionally SQL optimiser takes into account limit values to optimise data passes and optimise memory usage

    • Database backup via filesystem snapshot support has been added for cloud environments, e.g. AWS EBS. This enables live database backups to be inexpensive both in terms of effect on ingestion and SQL execution performance as well as cloud cost. Snapshotting is a three prong process. First, cloud administrators issue statement SNAPSHOT PREPARE, which locks all table readers and flushes filesystem caches to disk (through the sync syscall). Second, administrators can at this point invoke the snapshotting procedure, of their cloud vendor, which can be left to run for however long it needs. Third, statement SNAPSHOT COMPLETE is called to release the readers and should be issued as soon as possible even as the snapshot is being produced. This feature can be disabled by setting cairo.snapshot.recovery.enabled to false.

    • Configuration settings validation is now strict. Unsupported settings and typos cause startup failure (logs are produced with appropriate instructions on how to migrate).

    • Add new functionalities in the web console: SQL formatting and autocomplete table names.

    Gotchas

    • If you upgrade 6.2.1 -> 6.3 you cannot go back to 6.2.1 without restoring from backup.

    What is new

    Storage engine

    • Enable JIT compiler by default #2090.
    • Add asynchronous API for chaining SQL execution components and expose concurrent where clause execution results #1732.
    • Add filesystem snapshotting support for cloud environments. Includes statements SNAPSHOT PREPARE|COMPLETE #1907.

    SQL

    • Add cast function to allow casts from string to boolean, e.g. cast('true' as boolean) #2041.
    • Add date_trunc() function to truncate timestamps, e.g.: date_trunc('week', '2022-05-07T02:09:30.111111Z') -> '2022-05-02 00:00:00.0' #2017.
    • Add flush_query_cache() function to clear all Http and PGWire worker caches explicitly by user request #2028.
    • Optimise latest by on symbol column with no index, preventing in many cases a full table scan #2010.
    • Make is null an alias for = null and is not null for != null for null comparisons. This is required to enable integration with 3rd parties, specifically MindsDB #1967.
    • Hide telemetry table from tables() SQL output. This behaviour is governed by setting telemetry.hide.tables #1951.
    • Add sum() function for type long256 #1982.
    • Add comparison operators for type long256 #1943.

    ILP

    • Allow users to change the default column type (done through config settings e.g. line.integer.default.column.type) when ILP adds a new column automatically #2040.

    PGWire

    • Add config setting pg.security.readonly to toggle read-only mode #2021.

    HTTP

    • Use status code 400 to indicate errors. Prior to this change, status 200 would be returned regardless #2039.
    • Add geohash support for CSV import and export #1971.

    Web Console

    • Add SQL formatting feature #1999.
    • Add link to Slack community in web console #1962.
    • Support query and executeQuery URL params for inserting and executing queries in web console #1927.

    Miscellanea

    • Index rebuild, string col index recover utils #1978.
    • Made config settings validation optional, but enabled for new installs #2047.

    What we fixed

    Storage engine

    • Always test the existence of a table by checking the filesystem #2046.
    • Fix metadata validation to avoid occasional errors while adding new column #2054.
    • Fix reader reload after truncate table #2022.
    • Handle buffer overflow in async command queue #2008.
    • Handle Table writer commit error in ILP #1989.
    • Fix alter table queue overflow error #1959.
    • Follow-up fix for o3 commit lag shift #1934.
    • Load text_loader.json as a file when it cannot be found as a resource #1929.
    • Writer supports notification callbacks when table is extended #1961.
    • Solve a race condition that happened in ILP #1908.

    SQL

    • Jit to handle bind sql context change #2053.
    • Fix timestamp designated timestamp column data type validation #2038.
    • Ignore null literals for non-nullable types #2000.
    • Fix brace matching inside cast #2036.
    • Fix ignored where clause (order by hour) #2027.
    • Fix designated timestamp filter with now() function applied incorrectly in some cases #2014.
    • Parsing ALIGN TO CALENDAR; with semicolon at the end #2013.
    • Fixed set operations/distinct and column pushdown #1956.
    • Limit implicit string, symbol -> timestamp cast to constants to fix expressions like symbol = int #1977.

    ILP

    • Log parsing error on disconnect when disconnect on error is enabled #2085.
    • Tolerate space symbol at the line end #1940.
    • Add default values for ILP props #1945.
    • Race between schema inference and schema mutation could corrupt data #2081.

    PGWire

    • Rudimentary support for COPY FROM via pgwire #2061.
    • Fix persistent function parser issue #1997.
    • Passing boolean as 1 and 0 bytes over binary wire protocol #1941.

    HTTP

    • Fix memory leak in REST API #1983.

    Web Console

    • Bump minimist from 1.2.5 to 1.2.6 #1988.
    • Bump node-forge from 1.2.1 to 1.3.1 #2003.
    • Add appendAt option to appendQuery #2024.
    • Another appendQuery erroneous case #1994.
    • QueryPicker to support nested structure #1992.
    • Adjust regex to allow brackets in editor tokens #1985.
    • Fix unresponsive ui on hidden tables #1963.
    • Error highlighting on selections #1965.
    • Fix copy to clipboard for safari #1960.
    • Fixed conditional update of Web Console from RT package #1957.
    • Add help button in web console #1952.
    • Remove redundant console.log #1932.

    Miscellanea

    • Fix trailing digits in double conversions #297, #2055.
    • Added timeout rule to help troubleshoot ci test freezes #2044.
    • Fix flaky query cache flush tests #2035.
    • Remove outdated comment #2033.
    • Add two tests to exemplify use of java.sql.Timestamp with micro precision #1995.
    • Validate server Properties #1998.
    • Stress o3 commit #1990.
    • Assert ts column size #1987.
    • Fixed logging and status reporting for windows service mode #1969.
    • Handing corrupt _txn file in Mig620 #1933.
    • Fixed PG ODBC driver compatibility problems #2031.
    • Fixing code coverage in build #2100.

    Documentation

    • Updated URLs to Web Console docs #2049.
    • Updated try questdb section in readme #2051.
    • Added instructions to build with the web console #2032.
    • Updated CMake build instructions #1922.
    • Remove section about commit squashing #1924.
    • Fix contributor badge #2084.

    Contributor's Hall of Fame

    We want to thank our new contributors:

    Source code(tar.gz)
    Source code(zip)
    questdb-6.3-no-jre-bin.tar.gz(5.79 MB)
    questdb-6.3-rt-linux-amd64.tar.gz(26.42 MB)
    questdb-6.3-rt-windows-amd64.tar.gz(22.71 MB)
  • 6.2.1(Feb 28, 2022)

    What is new

    • ILP: added multi-queue support to accelerate multiple table ingestion (#1869)
    • ILP: added a configuration for ILP to disconnect on error (#1868)
    • HTTP: unhandled errors in health check endpoint influence health status (#1872)
    • HTTP: added a flag to report JIT compilation status in REST API (#1836)
    • UI: added an icon for successful query execution with JIT compiler (#1842)
    • SQL: optimize order by designated timestamp desc with filter (#1852)
    • SQL: added new syntax drop table if exists <table-name> (#1839)

    Bug fixes

    • ILP: ILP type conversions (#1892)
    • ILP: reduced default ILP connection pool capacity (#1903)
    • ILP: removed aggressive ILP TCP read retry mode (#1837)
    • SQL: rnd_str(iiii) ignores null rate setting (#1899)
    • SQL: fixed order by aliased column positions (#1905)
    • SQL: support for null/prev/linear when a list of values is provided after FILL (#1820)
    • SQL: distinct not applying order or limit; order by removal in sub-queries with the limit clause; outer query ordering skipping (#1893)
    • SQL: fixed parsing of timestamps that have 0 micros (#1887)
    • SQL: fixed UnsupportedOperationException on group by geohash column (#1862)
    • SQL: fixed cast with index parse error (#1859)
    • SQL: partitioning without designated timestamp should not be possible (#1844)
    • SQL: reject the latest by table queries over non-designated timestamp (#1850)
    • SQL: fixed not equals filter on indexed symbol column (#1838)
    • O3: fixed memory leak in 6.2 (#1901)
    • CORE: fixed possible long overflow problem in countdown latch(#1909)
    • CORE: fixed crash when row added out of order, cancelled and then added back (#1851)
    • CORE: fixed TableReader double free events (#1878)
    • UI: fixed errors in WebConsole browser console (#1888)
    • UI: removed devtools warning from web console (#1858)
    • PGWIRE: joins cursor leak in PgWire (#1875)
    • PGWIRE: handle SQL statement blocks in PgWire to make asyncpg work (#1788)
    • PGWIRE: fixed NPE for prepared statements with filters on indexed column (#1825)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.2.1-no-jre-bin.tar.gz(5.60 MB)
    questdb-6.2.1-rt-linux-amd64.tar.gz(25.93 MB)
    questdb-6.2.1-rt-windows-amd64.tar.gz(23.07 MB)
  • 6.2(Jan 27, 2022)

    Release highlights

    • Major bugfix release with heavy investment in ILP and Core stability by implementing various fuzz tests
    • We introduce SIMD JIT compiler that is able to significantly accelerate the performance of arbitrary WHERE expressions (JIT is disabled by default and is limited to supporting primitive column types and their expressions, excluding function calls)
    • We significantly optimised LIMIT queries, specifically around fetching the most recent records of time series and aggregating top records
    • We introduced new syntax LATEST BY in SQL with more predictable and easy-to-understand behaviours
    • We simplified the configuration of network connection limits
    • We improved memory management to prevent QuestDB RAM usage from ballooning
    • We support JDK17 and use it in Docker image

    A detailed walk-through of these highlights can be found in this blog post.

    What is new

    • SQL: optimize queries with sort and limit by using fixed-size tree chain (#1736)
    • SQL: new LATEST BY syntax (#1739)
    • SQL: Just-in-time Compilation for simple filter expressions (#1592)
    • SQL: optimize getting last X rows by designated timestamp (#1748)
    • UI: implement Tree component to handle hierarchical views (#1710)
    • UI: table autocomplete in SQL editor (#1744)
    • CORE: allow disabling query caches (#1735)
    • CORE: detect and report file system type for the database location (#1725)
    • CORE: java 17 support (#1674)
    • ILP: removed 30s delay on ILP before data appears in table (#1731)
    • CONF: renamed network configuration properties to make names more intuitive (#1819)
    • CONF: automatically derive IODispatcher configuration from a single parameter (#1810)

    What we fixed

    • SQL: apply filter before latest by when index is present (#1774)
    • SQL: fix incorrect results returned by latest by queries that have a sub-queries in the where clause, such as in (select ...) filters on a symbol column (#1747)
    • SQL: throw exception if order by expression is not in select list (#1743)
    • SQL: bind variable creation wasn't using correct execution context (#1742)
    • SQL: improve error message for o3 insert on non-partitioned table (#1708)
    • SQL: average function overflow for LONG column type (#1824)
    • SQL: support timestamp formats used by python drivers (#1816)
    • SQL: fix assertion for static symbol table (#1799)
    • SQL: support latest by over sub-query (#1796)
    • SQL: fixed crash to do with variable-length columns address/size adjustment (#1782)
    • SQL: fixed possible crash on SQL execution pipeline (#1782)
    • CORE: fixed consistency issues when reloading TableReader under contention (#1800)
    • CORE: check value block offset for sparse keys (#1776)
    • CORE: various failures when column sizes are near page size (#1727)
    • CORE: re-tagging DirectLongList instances with site of their use (#1722)
    • CORE: fix reader and txn scoreboard leak (#1759)
    • CORE: fixed race condition releasing (and potentially leaking) table reader (#1746)
    • CORE: fix o3 commit corrupts data in var columns (#1734)
    • CORE: reduces chances of "table busy" error message (#1695)
    • CORE: convert address to network order to fix tcp/udp binding on windows (#1780)
    • CORE: remove c++ runtime/stdlib dependency (#1761)
    • CORE: remove unnecessary object allocation (#1794)
    • CORE: cleaner algo to resolve race condition between pool return and close (#1821)
    • CORE: fix scoreboard race for new table readers (#1811)
    • CORE: fixed incorrect _txn content to be occasionally written to the file (#1805)
    • CORE: sleep bug (#1801)
    • CORE: remove unnecessary object allocation (#1794)
    • CORE: resolving high CPU utilisation at idle (#1791)
    • CORE: fixed windows dependency on mingw
    • O3: making txn release by TableReader more robust (#1766)
    • O3: partition purge logic (#1778)
    • ILP: fixed potential table corruption for cases with large number of ingested tables (#1767)
    • ILP: default partitioning for tables created by udp ilp (#1827)
    • ILP: case insensitivity for table names via ILP (#1826)
    • ILP: commit pending rows after a timeout if no further ingestion (#1731)
    • ILP: preventing occasional data corruption when input contains duplicated columns (#1696)
    • HTTP: adjusts column order during csv import (#1789)
    • PGWire: added support for asyncpg client (#1751)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.2-no-jre-bin.tar.gz(5.60 MB)
    questdb-6.2-rt-linux-amd64.tar.gz(26.24 MB)
    questdb-6.2-rt-windows-amd64.tar.gz(22.52 MB)
  • 6.1.3(Dec 14, 2021)

    Release highlights

    This release adds Prometheus Alertmanager support, new counters in the Prometheus endpoint for memory information, automatic query timeout, Monaco as the new SQL editor for QuestDB's web interface, and various UI additions. Alongside new features, this release fixes bugs in binary search and improves stability relating to filesystem sync and crashes when using ILP. These features and fixes enhance the system's usability, flexibility, and stability.

    What is new

    • CORE: expose memory counters to Prometheus endpoint (#1630) Bolek Ziobrowski
    • LOG: add critical level to be used for alerting (#1663)
    • LOG: log writer for Prometheus Alertmanager (#1588)
    • SQL: process ALTER TABLE SQL when writer is busy in ILP (#1504)
    • SQL: enhance type compatibility check to extend numeric conversions (#1627) Bolek Ziobrowski
    • SQL: query execution timeout (#1637)
    • SQL: specify index block size in alter table alter column add index (#1628) Bolek Ziobrowski
    • SQL: SQL for bulk insert (#1603) mkaruza
    • UI: change SQL editor to monaco - vscode core (#1610)
    • UI: add column type to grid (#1621)
    • UI: collapsible table schema panel (#1593) Enol

    What we fixed

    • CORE: double and float parsing #1615 (#1626) Bolek Ziobrowski
    • CORE: fixed binary search bugs (#1650)
    • O3: fixed crash, which is to do with incorrectly sizing input data (#1654)
    • ILP: handling of duplicate fields and tags in a message (#1213)
    • ILP: handling of duplicate timestamps (#1608)
    • ILP: race condition between ILP and DDL via HTTP or PG (#1618)
    • ILP: reject null fields when table does not exist (#1686)
    • ILP: sanitize table name to avoid FS corruption (#1605)
    • HTTP: allow single row csv import (#1655)
    • HTTP: fixed serialization of float infinity to json (#1622)
    • SQL: fixed support for UTF8-encoded table names and columns in metadata (#1623)
    • SQL: tweak hash function to speed up FastMap (#1647)
    • SQL: ALTER TABLE ADD COLUMN parse error #1612 (#1634) Bolek Ziobrowski
    • SQL Column alias 'time' is now supported (#1602) mkaruza
    • SQL: allow column names with spaces (#1617)
    • UI: update favicon.ico url (#1606) Eric Schultz
    Source code(tar.gz)
    Source code(zip)
    questdb-6.1.3-no-jre-bin.tar.gz(4.90 MB)
    questdb-6.1.3-rt-freebsd-amd64.tar(23.32 MB)
    questdb-6.1.3-rt-linux-amd64.tar.gz(25.55 MB)
    questdb-6.1.3-rt-windows-amd64.tar.gz(21.82 MB)
  • 6.1.2(Nov 22, 2021)

    Release highlights

    This release includes bug fixes for cases when tables were locked on concurrent reads, and provides stability fixes on transaction file reads. Also included is a new partition by HOUR strategy that offers greater granularity when working with larger data volumes.

    What is new

    • SQL: support count(1) syntax (#1555)
    • CORE: partition by HOUR (#1571)

    What we fixed

    • UI: fix create table schema syntax (#1587)
    • UI: smaller notifications (#1566)
    • UI: editor shortcuts (#1564)
    • SQL: NPE in the latest by with symbol filter (#1586)
    • SQL: correct execution of SQL with multiple LATEST BY columns (#1478)
    • SQL: treat zero char as empty string literal (#1550)
    • CORE: fix table locked on concurrent reads and create table (#1576)
    • CORE: fixed errors with truncate() and addIndex() (#1567)
    • CORE: more stable txn read on reader reload (#1557)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.1.2-no-jre-bin.tar.gz(4.13 MB)
    questdb-6.1.2-rt-freebsd-amd64.tar(22.57 MB)
    questdb-6.1.2-rt-linux-amd64.tar.gz(24.80 MB)
    questdb-6.1.2-rt-windows-amd64.tar.gz(21.06 MB)
  • 6.1.1(Nov 10, 2021)

    Release highlights

    This release focuses on stability and bug fixes through further testing and error prevention. All known stability issues relating to InfluxDB Line Protocol are resolved, with new functionality provided by SQL additions.

    What is new

    • SQL: left()/right() SQL string function implementations (#1479)
    • SQL: ceil() and floor() functions (#1526)
    • SQL: add strpos() function (#1506)
    • SQL: support constant expression in sample by period (#1519)

    What we fixed

    • UI: make refresh button execute correct query (#1524)
    • UI: enable tooltips for charts (#1523)
    • UI: show partition and timestamp info in table schema pane, add to context menu action (#1508)
    • UI: virtual renderer for the table schema pane (#1509)
    • UI: save panel position in console in local storage (#1518)
    • CORE: fix allocate() in Darwin to do absolute size allocation (#1540)
    • CORE: fixed memory order when reading transaction file (#1522)
    • CORE: fixed fanout race condition (#1496)
    • CORE: 6.1 migration issues (#1494)
    • CORE: fix bitmap index writer under-sizing value file (#1488)
    • CORE: remap error on open symbols when 16k page block is filled exactly (#1491)
    • CORE: fixed arithmetic issues calculating row counts during asynchronous O3 ingestion (#1474)
    • CORE: inconsistent reads when column is removed and added back under the same name
    • CORE: fix stack overflow in concurrent FanOut.and() (#1460)
    • CORE: Fix oops compression status (#1463)
    • O3: crash fix (#1516)
    • O3: o3 copy to use index block capacity (#1548)
    • O3: fix mmap offset page alignment (#1542)
    • O3: possible crash when O3 move uncommitted processes columns with tops (#1453)
    • ILP: fix sender encoding, fix parser to handle table name with spaces (#1473)
    • ILP: Boolean to number conversion for TCP (#1418)
    • SQL: Fixed cast as column name (#1502)
    • SQL: fix union all with all literals (#1512)
    • SQL: fixed column index dereference in latest by SQLs (#1501)
    • SQL: fixed error in dump_thread_stacks() (#1546)
    • SQL: fixed column index dereference in latest by SQLs (#1500)
    • SQL: fixed error with count() in non-keyed vector aggregations (#1457)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.1.1-no-jre-bin.tar.gz(4.13 MB)
    questdb-6.1.1-rt-linux-amd64.tar.gz(24.80 MB)
    questdb-6.1.1-rt-windows-amd64.tar.gz(21.06 MB)
  • 6.0.9(Oct 20, 2021)

    Release highlights

    Fixed ILP server crash under high rate of new symbol values. Improved ILP performance by throttling reload of symbol tables and reducing number of system calls.

    What is fixed

    • ILP: refactored UDP and TCP senders to avoid confusing inheritance (#1445)
    • ILP: fixed unsafe memory access error (#1441)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.0.9-no-jre-bin.tar.gz(4.11 MB)
    questdb-6.0.9-rt-freebsd-amd64.tar(21.78 MB)
    questdb-6.0.9-rt-linux-amd64.tar.gz(24.01 MB)
    questdb-6.0.9-rt-windows-amd64.tar.gz(20.27 MB)
  • 6.0.8(Oct 14, 2021)

    Release highlights

    Improved ILP parser based on internal testing and customer feedback. UI improvements to remove query execution pop-ups. Added problem diagnostic methods.

    What we fixed

    • ILP: ILP client to escaped quotes in strings fields (#1433)
    • ILP: ILP parser on string partial parsing edge cases (#1409)
    • ILP: support timestamp in fields (#1358)
    • SQL: implemented bind variable for regex function. Fixed expr parser to report unclosed quotes (#1431)
    • UI: last row is missing from ui (#1436)
    • UI: escape table names on Add (#1414)
    • CORE: handle OS process crash on opening txn file (#1428)
    • CORE: make column memory size configurable (#1373)

    What is new

    • SQL: dump thread stacks function for diagnostics (#1411)
    • HTTP: add support for schema boolean attribute index, to flag a symbol column as indexed (#1352)
    • UI: reload table list on schema changes (#1425)
    • UI: New notification panel, no more popups (#1334)
    • UI: Copy table schema to clipboard (#1323)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.0.8-no-jre-bin.tar.gz(4.11 MB)
    questdb-6.0.8-rt-freebsd-amd64.tar(21.78 MB)
    questdb-6.0.8-rt-linux-amd64.tar.gz(24.01 MB)
    questdb-6.0.8-rt-windows-amd64.tar.gz(20.27 MB)
  • 6.0.7.1(Sep 28, 2021)

    Release highlights

    This release focuses on bug fixes and includes changes relating to out-of-order ingestion, InfluxDB line protocol, backups, and filesystem fixes. These fixes enhance the reliability of the system through error prevention and improved stability.

    What we fixed

    • ILP: check for buffer overflow on writer queue (#1365)
    • ILP: fix various edge cases, behaviour of type parsers tcp/udp is closer, allow empty field value as null, support other types (#1312)
    • O3: fix wrong timestamp when first o3 row cancelled (#1348)
    • O3: fixed o3 crash from ILP usage (#1335)
    • SQL: include configuration files and tab index in backups (#1333)
    • SQL: ignored LATEST BY column filter if it is indexed (#1327)
    • SQL: cast long to GeoHash implementation (#1319)
    • SQL: fix lt join for equal timestamps (#1321)
    • CORE: we no longer map files to the length of file from the filesystem, we map them to the size received through a transaction "message"
    • CORE: we were silently mapping files to filesystem length rather than the required size. We now always map to the required size and report when this is not possible
    • CORE: the structure of the "index" column for variable-size columns has changed. It contains N + 1 entries with the last entry being the size of the variable-length column
    • CORE: truncated column files to OS page size to avoid undefined behaviour on pages used by readers
    • CORE: fixed an issue with truncating symbol.d column on Windows where the order of closing files was incorrect

    What is new

    • SQL: base64 function to encode binary data (#1355)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.0.7.1-no-jre-bin.tar.gz(4.10 MB)
    questdb-6.0.7.1-rt-linux-amd64.tar.gz(24.00 MB)
    questdb-6.0.7.1-rt-windows-amd64.tar.gz(20.26 MB)
  • 6.0.5(Sep 13, 2021)

    Release highlights

    Release version 6.0.5 introduces support for geospatial data in QuestDB via the addition of geohash types. Geohashes encode geographic areas as base-32 strings, and native support for this type allows for fast and efficient querying and storage of geodata. For more information on geospatial support in QuestDB, including examples and references, see the QuestDB geohash documentation.

    Additional features are new timestamp_floor() and timestamp_ceil() functions, improvements on the performance of first() and last() functions, out-of-order parameter support via REST API, and multiple bug fixes. These fixes and features improve application stability and enhance the system's flexibility of use.

    What is new

    • SQL: implement "touch" function, useful to preload the data from disk into system page cache (#1305)
    • SQL: GeoHash type support
    • SQL: within SQL operator - SIMD accelerated GeoHash prefix search with time-slice
    • SQL: accelerated first() and last() aggregation functions for scanning index
    • SQL: GeoHash literal support for character and bitmask
    • SQL: allow comparisons between GeoHash and string, for chars notation (#1310)
    • SQL: accelerated make_geohash() function (#1265)
    • SQL: timestamp_floor() and timestamp_ceil() implementations (#1300)
    • Core: new Row API to store GeoHash values (#1311)
    • PGWire: add geohash support for PGWire protocol (#1270)
    • ILP: add ingest support for type geohash, when schema exists (#1251)
    • HTTP: add parameters commitLag and maxUncommittedRows to /imp (#1203)
    • UI: basic syntax highlighting for geohashes in web console (#1318)

    What we fixed

    • SQL: fixed possible incorrect results in group by queries (#1285)
    • SQL: throw invalid date exception on negative time interval (#1277)
    • SQL: push timestamp required on asof join on both sides (#1225)
    • SQL: support SQL keywords as column names (#1267)
    • SQL: make SQL functions case-insensitive (#1219)
    • O3: fixed race condition that can occur between O3 copy jobs and purge job (#1232)
    • O3: row count on TableWriter is wrong when partition start in lag (#1223)
    • ILP: review ILP/UDP value parser and fix corner cases (#1289)
    • ILP: fixed missing index update when ingesting data over ILP (#1302)
    • HTTP: fix writer left locked after CSV upload (#1218)
    • Core: virtual memory refactoring (#1208)
    • Misc: questdb.sh to work on FreeBSD (#1264)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.0.5-no-jre-bin.tar.gz(4.08 MB)
    questdb-6.0.5-rt-freebsd-amd64.tar(21.75 MB)
    questdb-6.0.5-rt-linux-amd64.tar.gz(23.98 MB)
    questdb-6.0.5-rt-windows-amd64.tar.gz(20.24 MB)
  • 6.0.4(Jul 16, 2021)

    Release highlights

    Release version 6.0.4 focuses on community-driven topics raised with us recently by our users. The features included are performance improvements, increased parallelization of existing code, and calendar alignment for SAMPLE BY queries. Also included is a framework for exposing Prometheus metrics by Piotr Rżysko. The addition of Prometheus metrics is an exciting feature that we expect will be continuously developed with more types of counters and gauges added as we get feedback on its use.

    What is new

    • HTTP: Framework for adding Prometheus metrics #905
    • HTTP: SQL executed via HTTP can make use of full worker pool on machines with over 16 cores #1127
    • SQL: Performance improvements on distinct queries with user-configurable settings #1096
    • SQL: Performance improvements on LATEST BY queries with indexed symbol #1084 #1131
    • SQL: first() and last() functions optimized within SAMPLE BY #1157
    • SQL: SAMPLE BY can be aligned to calendar values #1133
    • ILP: Socket read retry is now user-configurable for InfluxDB line protocol ingestion over TCP #905
    • Core: Improvements to server configuration file and settings on startup #1195
    • Core: Improved error reporting in cases where tables are locked by writers #1129

    What we fixed

    • SQL: Fetch only last values from cursor on LATEST BY queries #1190
    • SQL: Fixed queries which use SAMPLE BY without explicitly selecting timestamp columns #1189
    • SQL: Added explicit insertion of null values into columns #592
    • SQL: symbol types are implicitly cast to strings in string functions #1056
    • SQL: Fixed issue that could cause infinite scan of table #1125
    • SQL: SAMPLE BY queries using JOIN do not need explicit designated timestamp in subquery #867
    • PGWire: Slow clients no longer causes incorrect flow control over Postgres wire #1160
    • PGWire: Fixed corrupt reading of values in PHP/PDO #1059
    • ILP: Varying the number of columns handles timestamps correctly #1182
    • ILP: Buffer underflow when spaces escaped in InfluxDB line protocol messages #1143
    • ILP: Fixed handling of quotes within InfluxDB line protocol field values #1158
    • Core: Fixed a crash that could occur when returning readers to the pool #1097
    • Core: Scoreboard cleaned on exclusive opens to prevent txn-inflight errors #1082
    • Core: Path to executable of Windows service can include spaces #1116
    • Core: Classes are now loaded correctly in embedded and OSGi applications #1168
    • Core: Force query cache expiration on table meta change #1204

    Breaking changes

    The addition of special handling for null in #1179 introduces changes that enforce timestamps having only positive values. This means that timestamps cannot predate epoch 0 in UTC, disallowing pre-1970 values.

    Source code(tar.gz)
    Source code(zip)
    questdb-6.0.4-no-jre-bin.tar.gz(3.94 MB)
    questdb-6.0.4-rt-freebsd-amd64.tar.gz(21.66 MB)
    questdb-6.0.4-rt-linux-amd64.tar.gz(23.88 MB)
    questdb-6.0.4-rt-windows-amd64.tar.gz(20.14 MB)
  • 6.0.3(Jun 1, 2021)

    Release highlights

    This release is focused primarily on stability of newly-implemented features. Particular attention is in the recently-implemented ingestion mechanism designed for out-of-order data. This release enhances the reliability of this feature and enhances the flexibility of the system.

    What is new

    • SQL: unary - (negation) implementation for all numeric types (#1070)
    • SQL: optimised SQL aggregate plan when constants or runtime constant functions are selected (#1055)
    • SQL: to_timezone() and to_utc() timestamp functions (#1062)
    • SQL: using IN with bind variables, i.e. IN ($1) to work as with const literals (#1058)
    • DOC: added JavaDoc to io.questdb.cairo.sql package
    • UI: notification customization (#1049)

    What we fixed

    • ILP: fix NPE on processing InfluxDB line protocol (ILP) data (#1068)
    • SQL: fix commit lag can be set to invalid value on alter table (#1069)
    • O3: fix ability to insert null values in designated timestamp as select (#1066)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.0.3-no-jre-bin.tar.gz(3.90 MB)
    questdb-6.0.3-rt-freebsd-amd64.tar.gz(21.59 MB)
    questdb-6.0.3-rt-linux-amd64.tar.gz(23.79 MB)
    questdb-6.0.3-rt-windows-amd64.tar.gz(20.06 MB)
  • 6.0.2(May 24, 2021)

    Highlights

    This is a maintenance release to improve overall system stability. We also added several requested SQL functions.

    What is new

    • SQL: implementation of 'distinct' algorithm for time series data (#1053)
    • SQL: log and sqrt implementations (#1050)
    • SQL: bitwise ops implementation (#1046)
    • SQL: support Postgres syntax to cast string literal to timestamp and timestamp with timezone (#740)
    • SQL: support Postgres literal cast (#1032)
    • UI: add copy build version link in footer (#1007)

    What we fixed

    • SQL: filter order execution could have been incorrect (#1025)
    • SQL: fix several errors with count() aggregations
    • SQL: fixed isnan() function for SSE2/SSE4 platforms (#1044)
    • SQL: fixed issues in latest by implementation to do with incorrectly calculated column cross-indexes (#1038)
    • SQL: fixed "invalid column" error, which was caused by incorrect top-down column propagation (#1027)
    • SQL: make table column names case insensitive in where (#1045)
    • ILP: handle trying to convert ILP strings into non STRING columns (#1029)
    • DOCKER: removed volume from dockerfile and unified amd64 and arm64 files (#1023)
    • O3: fixed crash when "lag" buffer is overrun
    • O3: added debug logging to be able to understand o3 issues better just from logs (#1024)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.0.2-no-jre-bin.tar.gz(3.88 MB)
    questdb-6.0.2-rt-freebsd-amd64.tar.gz(18.46 MB)
    questdb-6.0.2-rt-linux-amd64.tar.gz(20.66 MB)
    questdb-6.0.2-rt-windows-amd64.tar.gz(16.94 MB)
  • 6.0.1(May 14, 2021)

    Highlights

    Out-of-order (O3) performance is heavily reliant on correctly configured hysteresis values. In 6.0.0, it is very easy to reset these values to 0 with alter table statements, causing ingest performance degradation. This version address fragility of the settings by fixing bugs in all affected alter table variations.

    Additionally we made an effort to make timestamp search more coherent. You will be able to search consistently on timestamp represented by string values.

    What we fixed

    • PG Wire: Postgres JDBC driver cursor mode. Fixes #806 (#1013)
    • REST: allow underscore in CSV imported column names (#1002)
    • O3: fix alter table SQL erasing hysteresis values from table metadata (#1014)
    • EMBEDDED: java 11 maven artifact name was wrong (#1019)

    What is new

    • DOCKER: enable logger configuration for docker container (#1018)
    • SQL: timestamps as strings in selects (#977)
    • SQL: alter table hysteresis (#1015)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.0.1-no-jre-bin.tar.gz(3.85 MB)
    questdb-6.0.1-rt-freebsd-amd64.tar.gz(18.44 MB)
    questdb-6.0.1-rt-linux-amd64.tar.gz(20.63 MB)
    questdb-6.0.1-rt-windows-amd64.tar.gz(16.92 MB)
  • 6.0.0(May 10, 2021)

    The following changes are a delta of version 5.0.6.1 and therefore may include changes announced in 6.0.0 prereleases.

    Release Highlights

    Version 6.0.0 adds support for out-of-order (O3) record ingestion on-the-fly, and as a result, does not enforce that records appear at QuestDB in strict chronological order. O3 support adds flexibility and efficiency of use to the system and provides compatibility with the Time Series Benchmark Suite (TSBS) which is used to reliably measure and compare the performance of time series databases. Also included with this version is a a massive internal revision of InfluxDB Line Protocol (ILP) ingestion which brings significant performance improvements, alongside multiple UI fixes for the Web Console and SQL features.

    What is new

    • Arch: ARM64 and Apple Silicon (M1) support (#878)
    • O3 support for ingestion of records which are out-of-order (O3) by timestamp (#926)
    • REST: fileName parameter can be specified for the /exp endpoint for CSV exports (#830)
    • PG wire: PostgreSQL JDBC driver now supports getSQLKeywords method (#836)
    • UI: UI improvements for results with only one column (#897)
    • UI: Notification element does not obscure returned rows (#896)
    • O3: stable sort, reuse memory during sort (#987)
    • O3: move o3SortVarColumn0 to C++ (#984)

    What we fixed

    • PG wire: fixed server "hang" when clients are slow to read data (#954)
    • SQL: implicit handling of scientific notation for floating-point literals (ex: .12e-20) (#957)
    • SQL: LIMIT -1 returns last row as expected (#831)
    • SQL: Epoch timestamps supported in CSV imports (#876)
    • SQL: Behavior of ORDER BY query returns correct values on non-cached symbol types (#877)
    • SQL: Column names allow minus - underscore _ for compatibility with InfluxDB Line Protocol messages (#859)
    • SQL: latest by query could return data in incorrect timestamp order (#986)
    • ILP: logging of errno and replaced catch(CairoException) with catch(Throwable) (#983)
    • O3: fixed fairness issue in ILP (#981)

    JDK versions for embedded applications

    Users who wish to run QuestDB 6.0 in an embedded capacity in a Maven project may choose between JDK versions.

    JDK11

            <dependency>
                <groupId>org.questdb</groupId>
                <artifactId>questdb</artifactId>
                <version>6.0.0</version>
            </dependency>
    

    JDK8

            <dependency>
                <groupId>org.questdb</groupId>
                <artifactId>questdb-jdk8</artifactId>
                <version>6.0.0</version>
            </dependency>
    
    Source code(tar.gz)
    Source code(zip)
    questdb-6.0.0-no-jre-bin.tar.gz(3.83 MB)
    questdb-6.0.0-rt-freebsd-amd64.tar.gz(21.53 MB)
    questdb-6.0.0-rt-linux-amd64.tar.gz(23.73 MB)
    questdb-6.0.0-rt-windows-amd64.tar.gz(19.99 MB)
  • 6.0.0.b2(May 5, 2021)

    Release Highlights

    Version 6.0.0-beta includes bug fixes relating to ingestion subsystems, SQL execution and type handling. This release adds support for out-of-order (O3) record ingestion on-the-fly and as a result, does not enforce that records appear at QuestDB in strict chronological order. O3 support adds flexibility and efficiency of use to the system and provides compatibility with the Time Series Benchmark Suite (TSBS) which is used to reliably measure and compare the performance of time series databases. Also included with this version is a a massive internal revision of InfluxDB Line Protocol (ILP) ingestion which brings significant performance improvements, alongside multiple UI fixes for the Web Console and SQL features.

    What is new

    • O3 support for ingestion of records which are out-of-order by timestamp (#926)
    • ARM64 and Apple Silicon (M1) support (#878)
    • fileName parameter can be specified for the /exp endpoint for CSV exports (#830)
    • PostgreSQL JDBC driver now supports getSQLKeywords method (#836)
    • UI improvements for results with only one column (#897)
    • Notification element does not obscure returned rows (#896)

    What we fixed

    • PG wire: fixed server "hang" when clients are slow to read data (#954)
    • SQL: implicit handling of scientific notation for floating-point literals (ex: .12e-20) (#957)
    • SQL: LIMIT -1 returns last row as expected (#831)
    • SQL: Epoch timestamps supported in CSV imports (#876)
    • SQL: Behavior of ORDER BY query returns correct values on non-cached symbol types (#877)
    • SQL: Column names allow minus - underscore _ for compatibility with InfluxDB Line Protocol messages (#859)
    Source code(tar.gz)
    Source code(zip)
    questdb-6.0.0.b2-no-jre-bin.tar.gz(3.83 MB)
    questdb-6.0.0.b2-rt-freebsd-amd64.tar.gz(20.83 MB)
    questdb-6.0.0.b2-rt-linux-amd64.tar.gz(23.73 MB)
    questdb-6.0.0.b2-rt-windows-amd64.tar.gz(20.00 MB)
  • 5.0.6.1(Feb 17, 2021)

    What is new

    SQL: timestamp operators support time range with modifier (#802) Piotr Rżysko SQL: coalesce function (#799) Alex Pelagenko - Documentation SQL: function factory cache automatically derives bool operators from '=', '>' etc. (#796) Piotr Rżysko Web Console: remove google tag manager (#803)

    What we fixed

    SQL: make JoinRecordMetadata metadata case insensitive (#800) SQL: wrong results / exception when latest by with filtering (#808) SQL: correctly calculate vector frames when partition interval is used (#804)

    Source code(tar.gz)
    Source code(zip)
    questdb-5.0.6.1-no-jre-bin.tar.gz(3.51 MB)
    questdb-5.0.6.1-rt-freebsd-amd64.tar.gz(20.55 MB)
    questdb-5.0.6.1-rt-linux-amd64.tar.gz(22.34 MB)
    questdb-5.0.6.1-rt-windows-amd64.tar.gz(19.69 MB)
Owner
QuestDB
QuestDB is the fastest open source time-series database
QuestDB
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time.

About CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time. CrateDB offers the

Crate.io 3.6k Jan 2, 2023
The Heroic Time Series Database

DEPRECATION NOTICE This repo is no longer actively maintained. While it should continue to work and there are no major known bugs, we will not be impr

Spotify 842 Dec 20, 2022
Fast scalable time series database

KairosDB is a fast distributed scalable time series database written on top of Cassandra. Documentation Documentation is found here. Frequently Asked

null 1.7k Dec 17, 2022
A scalable, distributed Time Series Database.

___ _____ ____ ____ ____ / _ \ _ __ ___ _ _|_ _/ ___|| _ \| __ ) | | | | '_ \ / _ \ '_ \| | \___ \| | | | _ \

OpenTSDB 4.8k Dec 26, 2022
Accumulo backed time series database

Timely is a time series database application that provides secure access to time series data. Timely is written in Java and designed to work with Apac

National Security Agency 367 Oct 11, 2022
The Prometheus monitoring system and time series database.

Prometheus Visit prometheus.io for the full documentation, examples and guides. Prometheus, a Cloud Native Computing Foundation project, is a systems

Prometheus 46.3k Jan 10, 2023
jdbi is designed to provide convenient tabular data access in Java; including templated SQL, parameterized and strongly typed queries, and Streams integration

The Jdbi library provides convenient, idiomatic access to relational databases in Java. Jdbi is built on top of JDBC. If your database has a JDBC driv

null 1.7k Dec 27, 2022
Scalable Time Series Data Analytics

Time Series Data Analytics Working with time series is difficult due to the high dimensionality of the data, erroneous or extraneous data, and large d

Patrick Schäfer 286 Dec 7, 2022
sql2o is a small library, which makes it easy to convert the result of your sql-statements into objects. No resultset hacking required. Kind of like an orm, but without the sql-generation capabilities. Supports named parameters.

sql2o Sql2o is a small java library, with the purpose of making database interaction easy. When fetching data from the database, the ResultSet will au

Lars Aaberg 1.1k Dec 28, 2022
🚀flink-sql-submit is a custom SQL submission client

??flink-sql-submit is a custom SQL submission client This is a customizable extension of the client, unlike flink's official default client.

ccinn 3 Mar 28, 2022
Time series monitoring and alerting platform.

Argus Argus is a time-series monitoring and alerting platform. It consists of discrete services to configure alerts, ingest and transform metrics & ev

Salesforce 495 Dec 1, 2022
Time Series Metrics Engine based on Cassandra

Hawkular Metrics, a storage engine for metric data About Hawkular Metrics is the metric data storage engine part of Hawkular community. It relies on A

Hawkular 230 Dec 9, 2022
The Most Advanced Time Series Platform

Warp 10 Platform Introduction Warp 10 is an Open Source Geo Time Series Platform designed to handle data coming from sensors, monitoring systems and t

SenX 322 Dec 29, 2022
HasorDB is a Full-featured database access tool, Providing object mapping,Richer type handling than Mybatis, Dynamic SQL

HasorDB is a Full-featured database access tool, Providing object mapping,Richer type handling than Mybatis, Dynamic SQL, stored procedures, more dialect 20+, nested transactions, multiple data sources, conditional constructors, INSERT strategies, multiple statements/multiple results. And compatible with Spring and MyBatis usage.

赵永春 17 Oct 27, 2022
Free universal database tool and SQL client

DBeaver Free multi-platform database tool for developers, SQL programmers, database administrators and analysts. Supports any database which has JDBC

DBeaver 29.8k Jan 1, 2023
Java implementation of Condensation - a zero-trust distributed database that ensures data ownership and data security

Java implementation of Condensation About Condensation enables to build modern applications while ensuring data ownership and security. It's a one sto

CondensationDB 43 Oct 19, 2022