Releases: timescale/timescaledb-toolkit
1.12.1
Bug fixes
- #624: Remove partial aggregation for Candlestick aggregates. We've determined that the cause for the bad results lives somewhere in the functions that are used to support partial aggregation. We can at least prevent folks from running the candlestick aggregates in parallel mode and hitting this bug by dropping support for partial aggregation until we've resolved the issue.
1.12.0
New experimental features
-
#596: Introduce Candlestick Aggregate.
Users can use either thetoolkit_experimental.candlestick_agg(timestamp, price, volume)aggregate or thetoolkit_experimental.candlestick(timestamp, open, high, low, close, volume)function, depending on whether they are starting from tick data or already aggregated data.
Both the aggregate form and the function form ofCandlesticksupport the following (experimental) accessors (in addition to being re-aggregated viarollup):
open,high,low,close,open_time,high_time,low_time,close_time,volume,vwap(Volume Weighted Average Price)NOTE:
- This functionality improves upon and replaces the need for
toolkit_experimental.ohlcwhich might be removed in the next release. - This functionality is not safe to run in parallel mode yet.
- This functionality improves upon and replaces the need for
-
#590: New
min_n/max_nfunctions and relatedmin_n_by/max_n_by.
The former is used to get the top N values from a column while the later will also track some additional data, such as another column or even the entire row.
These should give the same results as aSELECT ... ORDER BY ... LIMIT n, except they can be composed and combined like other toolkit aggregates.
Bug fixes
- #568: Allow
approx_countaccessor function to take NULL inputs. - #574: Add default unit to interpolated_integral.
Other notable changes
- RPM packages for CentOS 7 have returned.
- New Homebrew formula available for macOS installation:
brew install timescale/tap/timescaledb-toolkit. - #547: Update pgx to 0.5.0. This is necessary for adding Postgres 15 support coming soon.
- #571: Update CI docker image for pgx 0.5.0.
- #599: Reduce floating point error when using
stats_aggin moving aggregate mode. - #589: Update pgx to 0.5.4.
- #594: Verify that pgx doesn't generate CREATE OR REPLACE FUNCTION.
- #592: Add build script option to install in release mode.
Shout-outs
- @zyro for reporting null handling issue on
count_min_sketch.
Full Changelog: 1.11.0...1.12.0
1.11.0
New Experimental Features:
- arm64/aarch64 DEB packages are now available for Ubuntu 20.04 (focal) & 22.04 (jammy), and Debian 10 (buster) & 11 (bulleye). @epgts
- #526: Add
integralandinterpolated_integralfunctions for the time_weight aggregate. Makestrapezoidalan alias forlinearintime_weightas it might be a more familiar numeric integral method for some. @Smittyvb - #517: Add a gap preserving
lttbnamedgp_lttbto handle downsampling of data with large gaps. @WireBaron - #513: Add
first_val,last_val,first_timeandlast_timetotime_weightandcounter_aggto access the first and the last data points within the aggregate data structures. @rtwalker - #527: Rename
{open, high, low, close}_atas{open, high, low, close}_timeto be consistent with newly addedfirst_timeandlast_timeaccessor functions. @rtwalker
Stabilizing Features:
- #498: Stabilize
asap_smoothaggregate. @WireBaron
Bug Fixes:
- #509, #531: Fix bugs in
hyperloglog. Error rates are now significantly more consistent when the number of buckets are close to the actual cardinality. @BenSandeen @davidkohn88 @WireBaron @jerryxwu - #514: Fix a bug in
toolkit_experimental.interpolated_delta@WireBaron - #503: Fix bitwise logic in timevector combine @WireBaron
- #507: Fix a typo in
approx_count_distinct@jeremyhaberman
Other Notable Changes:
- DEB packages for Ubuntu 18.04 (Bionic) on amd64 are now available.
- #536: Document requirement to use same compiler for cargo-pgx and Toolkit
- #535: Make tests pass in Canadian locales @Smittyvb
- #537: Enforce
cargo fmtin CI @Smittyvb - #524: Updating Toolkit To Start Using Cargo Fmt @thatzopoulos
- #522: Move update-tester tests to markdown files @thatzopoulos
Shout-outs:
- @BenSandeen for fixing typos and errors in the hyperloglog++ implementation
- @jaskij for reporting security advisories and suggestion on documenting support for PG14
- @jeremyhaberman for fixing a typo in
APPROX_COUNT_DISTINCT_DEFAULT_SIZE - @jledentu for reporting an error on
interpolated_delta - @stevedrip for a very detailed bug report on hyperloglog++ and suggestions for fixing it
Full Changelog: 1.10.1...1.11.0
1.10.1
What's Changed
- Use pg14 as an example for instructions instead of pg13. Add reference to deb and rpm packages by @jerryxwu in #463
- Document supported platforms. by @epgts in #467
- Fixing off by one error in state_agg interpolate by @WireBaron in #465
- Stabilize timevector by @WireBaron in #488
- Stabilize LTTB by @WireBaron in #495
- Stabilize accessors. by @epgts in #491
- Monthly Normalization by @thatzopoulos in #490
- Create OHLC aggregate and accompanying accessors by @rtwalker in #496
Note that the 1.10.1 patch release is to fix an issue where the 1.9.0 release unintentionally identified the toolkit extension version as 1.10.0-dev in the postgresql control file.
Full Changelog: 1.8.0...1.10.1
1.9.0
What's Changed - Known Issues. Use 1.10.1 instead!
- Use pg14 as an example for instructions instead of pg13. Add reference to deb and rpm packages by @jerryxwu in #463
- Document supported platforms. by @epgts in #467
- Fixing off by one error in state_agg interpolate by @WireBaron in #465
- Stabilize timevector by @WireBaron in #488
- Stabilize LTTB by @WireBaron in #495
- Stabilize accessors. by @epgts in #491
- Monthly Normalization by @thatzopoulos in #490
- Create OHLC aggregate and accompanying accessors by @rtwalker in #496
Full Changelog: 1.8.0...1.9.0
1.8.0
TimescaleDB Toolkit v1.8.0
Merged Pull Requests
Features
- Support explicit NULL values in timevectors by @WireBaron in #429
- Fix default collation deserialization by @JLockerman in #444
- Improve error message for HyperLogLog by @JLockerman in #451
- Saturating Math for i32/integers by @thatzopoulos in #454
- Adding interpolating accessors by @WireBaron in #456
- Create Count-Min Sketch crate by @rtwalker in #388
- approx count distinct by @thatzopoulos in #459
- Add
count_min_sketchaggregate andapprox_countaccessor by @rtwalker in #458 - Make some changes to support aarch64-unknown-linux-gnu by @epgts in #434
Bug Fixes
Internal Improvements
- Include both pgx 0.2.x and pgx 0.4.x in CI image by @rtwalker in #417
- Prepare for the
1.8.0cycle by @rtwalker in #416 update-testerrequires two versions ofcargo-pgxby @rtwalker in #418- Don't install pgx as root or under
/by @rtwalker in #421 - Fix failing update-tester in CI by @rtwalker in #427
- Update github cache keys. by @epgts in #428
- Lock pgx versions all the way. by @epgts in #430
- Upgrade to pgx 0.4.5 by @rtwalker in #408
- change which cargo-pgx subcommand is added to PATH in CI image. by @rtwalker in #436
- remove PATH hack in
tools/buildscript by @rtwalker in #432 - GitHub Actions Improvements by @rtwalker in #437
- Run clippy GitHub Actions job without qualification by @rtwalker in #448
- Update README.md by @rtviii in #446
- Specify Ubuntu 20.04 instead of 'latest' in github configuration. by @epgts in #414
Others
- Paused building RPM packages because of the failure to build pgx on CentOS 7
Full Changelog: 1.7.0...1.8.0
1.7.0
TimescaleDB Toolkit v1.7.0
Merged Pull Requests
- Switch stabilization tests to new info by @JLockerman in #367
- Handle NULL output from our aggregates by @JLockerman in #379
- Prepare for the
1.7.0cycle by @JLockerman in #380 - Return INTERVAL from duration_in(TEXT, StateAgg). by @epgts in #378
- Improve tools/build flexibility for local builds. by @epgts in #372
- Create typed specialization for freq_agg and topn_agg by @WireBaron in #389
- Copy almost all the counter_agg functions for gauge_agg. by @epgts in #394
- Remove GUC by @JLockerman in #395
- Allow manual packaging by @JLockerman in #399
- Use main branch by @JLockerman in #400
- Updating CI to rust 1.60 by @WireBaron in #405
- Updating postgres versions in ci Dockerfile by @WireBaron in #407
- Explicit version in our CI image by @JLockerman in #409
- Refactor TimeVector to greatly simplify structure by @WireBaron in #404
- Allow building CI image in Actions by @JLockerman in #412
- Create reportpackagingfailures.yml by @jerryxwu in #411
- Rename reportpackagingfailures.yml to report_packaging_failures.yml by @jerryxwu in #413
Closed Issues
- Incorrect NULL handling in hyperloglog #362
- percentile_agg throws "returned Datum was NULL" error since version 2.5.1 #383
- Refactor and simplify TimeVector #384
- substantial decline in performance of percentile_agg #397
- Specialize freq_agg and topn_agg for bigints and text rather than supporting AnyElement #376
- Using deprecated functionality in Rust 1.59.0 #353
- Refactor and simplify TimeVector #384
1.6.0
This release includes new and updated experimental functionality, as well as some internal updates.
Experimental Features
- #370 Implement a TopN (
topn_agg) variant of ourfreq_agg - #375 Add prototype
gauge_aggand associated functionsdelta,idelta_left,idelta_right,rollup - #368 Add
into_valuesfunction forstate_agg - #330 improvements to
freq_agg - #351 Make serialize functions strict to handle NULL values in partitioned aggregates
Internal Improvements
1.5.2
This release contains bug fixes since the 1.5.0 release.
This release is high priority for upgrade. We strongly recommend that you
upgrade as soon as possible.
Bug Fixes
- PR #351 - Make serialize functions strict
- There's a vulnerability in Toolkit 1.5 and earlier due to the fact that it creates a PLPGSQL function using
CREATE OR REPLACEand without properly locking down the search path. This means that a user could pre-create the trigger function to run arbitrary code. To fix this we remove the trigger entirely; it no longer pulls its weight. This fix locks down our update scripts to only useCREATE OR REPLACEwhen actually necessary; while we don't yet have an exploit for the other functions, it would be unsurprising if one exists.
1.5.0
This release includes new experimental functionality, as well as some internal updates.
Experimental Features
freq_aggfor estimating the most common elements in a columnstate_aggfor measuring the total time spent in different states
Internal Improvements
- Updated rust to 1.57
- Enforce clippy linting