Update dependency org.questdb:questdb to v8 #194
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
6.2
->8.1.2
Release Notes
questdb/questdb (org.questdb:questdb)
v8.1.2
Compare Source
October has arrived, and with it the fall. According to an interesting character, it's also Libra ♎ season, a phase of balance. It works for us, as this release restores the balance within QuestDB's production reliability. Chasing maximum performance and cutting-edge features is our favourite game. But every now and then, it's essential to double-back and smooth out the edges so that the overall experience presents consistent excellence. And, well, we'll keep improving performance too.
Download, upgrade, and prepare for the seasonal feasts. 🎃
Breaking Changes 💥
INFO
level have been changed toDEBUG
. This reduction in log verbosity may impact monitoring systems relying on these messages. Adjust logging configurations as necessary.New features 🐣
Web Console UI tabs: The QuestDB Web Console features tabs for better query management. Tabs are archived upon closing and can be brought back from the history section as needed.
ILP client row cancellation: The ILP client now supports cancelling the current row during data ingestion. This allows for greater control when writing data and helps prevent incomplete or erroneous data from being committed.
New financial function
spread_bps
: Computes the spread in basis points between two numerical values.greatest
andleast
functions: Determine the maximum or minimum value from a list of expressions. These functions simplify comparisons across multiple columns or expressions.Interval functions for date filters: Implemented new interval functions
today()
,tomorrow()
, andyesterday()
that return intervals representing the entire day. These functions make it easier to filter queries based on whole-day periods without manually specifying time ranges.New aggregate function
string_distinct_agg
: Aggregates unique string values into a single, concatenated string with a specified delimiter. This is useful for creating summaries of distinct values in a dataset.ILP traffic to Prometheus: Introduced metrics to monitor ILP (Influx Line Protocol) traffic volumes over both TCP and HTTP. These metrics help in tracking data ingestion rates and diagnosing network-related issues.
RedHat OpenShift Compatible Docker Image: Beginning with this release, QuestDB Docker images with a
-rhel
suffix are now compatible with RedHat's OpenShift container orchestration platform.New integrations
Bento by Warpstream Labs: In the words of Bento they provide: Fancy stream processing made operationally mundane. Indeed, and now even fancier with a fresh QuestDB component.
Redpanda Connect: Formerly Benthos. Comes with a QuestDB output component that can be used as a sink for your stream processing data. Read our docs for more information.
Performance improvements 🚀
Static metadata cache: Implemented a static metadata cache to improve performance by reducing the overhead associated with frequent metadata access. This enhancement speeds up query compilation and execution.
Optimized partition reloads: Reduced unnecessary reloads of
TableReader
partitions, which enhances query performance, especially in environments with high data ingestion rates and frequent queries.Improved parallel
GROUP BY
execution: Optimized parallelGROUP BY
operations by eliminating redundant bytecode generation. This results in faster execution times for complex aggregation queries.Faster Web Console queries: You'll notice improved performance during the highligh and execution of queries with SQL comments in the editor.
Improvements 🛠️
Enhanced log compatibility: Added a configuration option to control verbose log levels, improving compatibility with log readers and monitoring tools that require specific log formats or verbosity levels.
Detailed ILP error messages: Enhanced the server logs to include specific error messages indicating the exact line that caused a receive buffer overflow during ILP ingestion. This aids in troubleshooting and correcting data formatting issues.
Bug fixes 🐛
ILP client retry behaviour: Fixed an issue where ILP clients would retry data insertion when encountering invalid UUID values. The client now correctly handles bad UUIDs without unnecessary retries, improving ingestion stability.
Server crash with
first(varchar)
andlast(varchar)
: Resolved a critical issue where usingfirst(varchar)
orlast(varchar)
functions could cause the server to crash. These functions now operate reliably withVARCHAR
data types.Deduplication key crash fix: Addressed a potential crash when writing data with deduplication enabled on
VARCHAR
orSTRING
columns as keys.Parquet
byte
column support: Added support forRleDictionary
encoding ofBYTE
columns in theread_parquet()
function. This enhances compatibility with Parquet files that use this encoding scheme.Handling comment-only queries: Fixed an issue where SQL queries containing only comments were not properly processed. The server now correctly handles such queries without errors.
UUID and IPv4 in
coalesce
andswitch
: Corrected the lack of support forUUID
andIPv4
literals in thecoalesce()
function andSWITCH
statements. These functions now fully support these data types.Parallel
GROUP BY
race condition: Fixed a race condition that could occur during parallelGROUP BY
operations involving a large number of groups.Symbol to integer comparison fix: Resolved a
NullPointerException
that occurred when comparingSYMBOL
columns to integer values. Comparisons between these data types now function correctly.Responsive health check endpoint: Improved the responsiveness of the health check HTTP endpoint when the server reaches its memory limit. This ensures that health checks remain reliable under memory pressure.
List of PRs
New Contributors
Full Changelog: questdb/questdb@8.1.1...8.1.2
v8.1.1
Compare Source
QuestDB 8.1.1
Back to school... Baaack to school...
Lunch? Check. Pants? Check (phew!) New QuestDB release? Oh yeah.
Let's go! 📚 ✏️ 🥪
Breaking changes 💥
We have changed the language in our
SNAPSHOT
related SQL statements. We introduceCHECKPOINT
.Apply it before taking a backup.
Instead of executing:
You will now execute:
When the backup is complete, instead of executing:
You will execute:
Both commands are supported for now, but we encourage you to migrate to the new system.
We have also introduced a fix for integer overflow, which now widens the type of the result.
For example, the following will be automatically widened to
LONG
(64bit) to avoid numeric overflow:Improvements 🚀
ORBER BY <long>
, and GROUP BY with virtual columns such asnow()
ASOF
SQL queries have improved their performance by orders of magnitudeVARCHAR
andSTRING
as deduplication keys.Pull requests
SNAPSHOT
SQL withCHECKPOINT
to reduce confusion by @bluestreak01 in https://github.com/questdb/questdb/pull/4821New Contributors
Full Changelog: questdb/questdb@8.1.0...8.1.1
v8.1.0
Compare Source
QuestDB 8.1.0 has arrived.
In this release, QuestDB's foundation takes a second step towards our next generation architecture.
Our prior release introduced JSON extraction.
And now, by popular demand, QuestDB meets Apache Parquet.
New Features 🐣
read_parquet()
function to read Apache Parquet files.FILL(VALUE)
andFILL(NULL)
.Performance 🚀
like/ilike
operator on symbol columns.regexp_replace(varchar)
with simple patterns.Bug Fixes 🐛
SQL:
WHERE
andGROUP BY
for some function keys.GROUP BY
with a single varchar function key.Core:
Pull requests
New Contributors
Full Changelog: questdb/questdb@8.0.3...8.1.0
v8.0.3
Compare Source
Summer time! 🌞 For some, that's sunshine, beaches, lotion, all that fun stuff. Or, well, hiding inside near the air conditioner. It's hot! For QuestDB, it's another set of improvements. This release contains a bundle of smaller improvements, with new features laying down major groundwork. And - of course - the usual motion of performance improvements. Hot indeed. 🔥
Upgrade! Apply liberal amounts of sun screen!
Breaking Changes 💥
QuestDB no longer supports FreeBSD. We test major browser versions on each release. That means everything we write needs to account for multiple OS paradigms. FreeBSD has very small market share, and more often than not we'd trip over edge cases. To speed things up, we've made the decision to drop support. This means FreeBSD is no longer tested during development.
NFS is an unsupported file system. NFS has been unsupported for some time, but only warnings were presented to the user. QuestDB will now refuse to start if running on an NFS disk. We recommend using ZFS. For a full list of supported filesystems, check out the Capacity Planning documentation.
New Features 🐣
JSON Support: The json_extract() function is our first step towards robust JSON support. This function leverages the wonderful simdjson library written by Daniel Lemire. Simply store documents in a
VARCHAR
column, and then use the function to extract JSON fields into values. There is some performance overhead versus our native format, so we recommend using it to as a way to test a schema before putting the data into native columns. Read more in the documentation.New financial SQL Functions: mid price function and spread function for financial calculations. Simple. But effective.
Smarter Web Console: Vague errors aren't helpful. The Web Console will now help you to troubleshoot common database configuration problems, with clear visual indicators to help you identify and resolve issues.
More parallel execution: Enhanced
GROUP BY
operations and parallel execution, particularly benefiting queries with aggregate functions such asavg()
andsum()
.HTTP Basic Authentication: QuestDB Open Source now offers Basic Auth to protect its HTTP endpoints. See how to configure this here.
Performance 🚀
JIT-optimized IN(numeric values) operator for faster query execution.
Optimized aggregate queries with the LAST function on designated timestamps.
Speed improvements for self-join queries on symbol columns and more efficient pattern lookups for short ASCII patterns.
Bug Fixes 🐛
Fixes for various issues including VARCHAR column queries via sqlx::postgres, invalid column errors in GROUP BY with JOIN, and more.
Improved error handling, such as preventing ugly error messages when the log directory does not exist and ensuring REST interface returns HTTP 408 on timeouts.
Ensured consistent escaping of VARCHAR fields in CSV exports.
Improved compatibility with InfluxDB clients and integrations, by supporting Basic Authentication.
Pull requests
IN(numeric values)
operator by @zebs97 in https://github.com/questdb/questdb/pull/4661json_extract
function to extract JSON fields from varchars by @amunra in https://github.com/questdb/questdb/pull/4633New Contributors
Full Changelog: questdb/questdb@8.0.1...8.0.3
v8.0.2
Compare Source
v8.0.1
Compare Source
What's Changed
nm=true
query parameter in text export (/exp) to exclude metadata by @jerrinot in https://github.com/questdb/questdb/pull/4639Full Changelog: questdb/questdb@8.0.0...8.0.1
v8.0.0
Compare Source
This one's a big one!
In brief, to get you to the goods quicker:
And more...
Upgrade as soon as you can. Or start fresh and build out your use case.
If you're still reading, onwards for more detail, breaking changes, plus the PR breakdown.
New features 🐣
VARCHAR
data type and a new type driver API.VARCHAR
offers UTF8 encoded strings of variable length as opposed to the UTF16 and fixed length encoding found inSTRING
, for better compression and significantly improved performance.VARCHAR
field size is 268 MB.VARCHAR
column in a single partition is limited by 218 TB or disk size, whichever is smaller.STRING
is now considered a legacy type.STRING
,SYMBOL
, andVARCHAR
data types.Breaking changes 💥
VARCHAR
instead ofSTRING
columns.Performance 🚀
Bug fixes 🥾
Pull requests
ddl:ok
response for insert query by @siddharth0815 in https://github.com/questdb/questdb/pull/4472New Contributors
Full Changelog: questdb/questdb@7.4.2...8.0.0
v7.4.2
Compare Source
Choice is essential. But isn't it nice when a clear, happy path emerges?
To that tune, we're pleased to announce QuestDB 7.4.2, with the usual mix of features, fixes and improvements.
In focus this week is the refinement of our updated ingestion clients. Built atop the InfluxDB Line Protocol (ILP) and leveraging HTTP instead of TCP, our clients and core database now offer a primary ingestion path that is robust, responsive and fast. They're available in popular languages, including Rust, Python, Java, Go, C & C++, and more.
It is quicker, cleaner and clearer to both get started and refine.
New Features 🐣
Fresh goods.
Added bind variable support for long256 and IPv4 operators, milliseconds and microseconds support to datediff and dateadd.
Enabled FILL(LINEAR) to support ALIGN TO CALENDAR.
Performance 🚀
Always a category unto its own.
ILP: Optimized data ingestion for tables with a large number of columns.
Core: Improved hash table lookup for small string keys and optimized memory usage to reduce OS kills.
SQL: Faster SQL COPY and REST API CSV import, optimized binary search corner cases, and fixed the stuck parallel GROUP BY queries via better query timeout handling.
Bug Fixes 🥾
Squished, squashed & kiboshed.
ILP: Addressed 'maximum buffer size exceeded' in ILP client and made config adjustments to disable individual flush types and support auto_flush_bytes. also corrected client processing of data received before TLS close_notification.
SQL: Fixed incorrect results from lower, upper, substring functions when executed in parallel, erroneous SAMPLE BY behavior mixing asterisks, errors in CASE statements when ELSE branch is missing, incorrect results in GROUP BY queries, and SAMPLE BY queries with functions in the SELECT clause.
Also fixed a bug for negative upper bound in BETWEEN operator, issues with null string insertions as designated timestamps, and inaccurate double comparisons. Finally, resolved stuck parallel group by queries due to incorrect timeout handling.
Core: Addressed a rare segmentation fault during o3 commit of a non-WAL table, potential error rebuilding nascent data index, and incorrect partition size after an update.
New Contributors 🎉
@hoangsvit and @sivukhin made their first contributions. Thanks, both of you. 🙏
Pull requests
New Contributors
Full Changelog: questdb/questdb@7.4.0...7.4.2
[
v7.4.0
](https://redirConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.