@LeeHampton LeeHampton released this Dec 13, 2018 · 7 commits to master since this release

Assets 3

Our 1.1 release introduces beta support for PG 11, as well as several performance optimizations aimed at improving chunk exclusion for read queries. We are also packaging our new timescale-tune tool (currently in beta) with our Debian and Linux releases. If you encounter any issues with our beta features, please file a Github issue.

Potential breaking changes

In addition to optimizing first() / last() to utilize indices for non-group-by queries, we adjusted its sorting behavior to match that of PostgreSQL’s max() and min() functions. Previously, if the column being sorted had NULL values, a NULL would be returned. First() and last() now instead ignore NULL values.

Notable Commits

  • [71f3a0c] Fix Datum conversion issues
  • [5aa1eda] Refactor compatibility functions and code to support PG11
  • [e4a4f8e] Add support for functions on open (time) dimensions
  • [ed5067c] Fix interval_from_now_to_internal timestamptz handling
  • [019971c] Optimize FIRST/LAST aggregate functions
  • [83014ee] Implement drop_chunks in C
  • [9a34028] Implement show_chunks in C and have drop_chunks use it
  • [d461959] Add view to show hypertable information
  • [35dee48] Remove version-checking from client-side
  • [5b6a5f4] Change size utility and job functions to STRICT
  • [7e55d91] Add checks for NULL arguments to DDL functions
  • [c1db608] Fix upsert TLE translation when mapping variable numbers
  • [55a378e] Check extension exists for DROP OWNED and DROP EXTENSION
  • [0c8c085] Exclude unneeded chunks for IN/ANY/ALL operators
  • [f27c0a3] Move int time_bucket functions with offset to C

Thanks

  • @did-g for some memory improvements

@LeeHampton LeeHampton released this Dec 5, 2018 · 60 commits to master since this release

Assets 3

This commit contains bugfixes and optimizations for 1.0.0

Notable commits

  • [6553aa4] Make a number of size utility functions to STRICT
  • [bb1d748] Add checks for NULL arguments to set_adaptive_chunking, set_number_partitions, set_chunk_time_interval, add_dimension, and create_hypertable
  • [a534ed4] Fix upsert TLE translation when mapping variable numbers
  • [aecd55b] Check extension exists for DROP OWNED and DROP EXTENSION

@LeeHampton LeeHampton released this Oct 30, 2018 · 62 commits to master since this release

Assets 3

This is our 1.0 release!

For notable commits between 0.12.0/0.12.1 and this final 1.0 release, please see previous entries for the release candidates (rc1, rc2, and rc3).

Thanks
To all the external contributors who helped us debug the release candidates, as well as anyone who has contributed bug reports, PRs, or feedback on Slack, GitHub, and other channels. All input has been valuable and helped us create the product we have today!

Potential breaking changes

  • To better align with the ISO standard so that time bucketing starts each week by default on a Monday (rather than Saturday), the time_bucket epoch/origin has been changed from January 1, 2000 to January 3, 2000. The function now includes an origin parameter that can be used to adjust this.
  • Error codes are now prefixed with TS instead of the prior IO prefix. If you were checking for these error codes by name, please update your code.

@RobAtticus RobAtticus released this Oct 18, 2018 · 77 commits to master since this release

Assets 3

This release is our third 1.0 release candidate. We expect to only merge bug fixes between now and our final 1.0 release. This is a big milestone for us and signifies our maturity and enterprise readiness.

PLEASE NOTE that release candidate (rc) builds will only be made available via GitHub and Docker, and not on other release channels. Please help us test these release candidates out if you can!

Potential breaking change: Starting with rc2, we updated our error codes to be prefixed with TS instead of the old IO prefix. If you were checking for these error codes by name, please update your checks.

Notable commits

  • [f7ba13d] Handle and test tablespace changes to and from the default tablespace
  • [9ccda0d] Start stopped workers on restart message
  • [3e3bb0c] Add bool created to create_hypertable and add_dimension return value
  • [53ff656] Add state machine and polling to launcher
  • [d9b2dfe] Change return value of add_dimension to TABLE
  • [19299cf] Make all time_bucket function STRICT
  • [297d885] Add a version of time_bucket that takes an origin
  • [e74be30] Move time_bucket epoch to a Monday
  • [46564c1] Handle ALTER SCHEMA RENAME properly
  • [a83e283] Change return value of create_hypertable to TABLE
  • [aea7c7e] Add GRANTs to update script for pg_dump to work
  • [119963a] Replace hardcoded bash path in shell scripts

Thanks

  • @jesperpedersen for several PRs that help improve documentation and some rough edges
  • @did-g for improvements to our build process
  • @skebanga for reporting an issue with ALTER SCHEMA RENAME
  • @p-alik for suggesting a way to improve our bash scripts' portability
  • @mx781 and @HeikoOnnebrink for reporting an issues with permission GRANTs and ownership when using pg_dump

@RobAtticus RobAtticus released this Sep 28, 2018 · 104 commits to master since this release

Assets 3

This release is our second 1.0 release candidate. We expect to only merge bug fixes between now and our final 1.0 release. This is a big milestone for us and signifies our maturity and enterprise readiness.

PLEASE NOTE that release candidate (rc) builds will only be made available via GitHub and Docker, and not on other release channels. Please help us test these release candidates out if you can!

Potential breaking change: We updated our error codes to be prefixed with TS instead of the old IO prefix. If you were checking for these error codes by name, please update your checks.

Notable commits

  • [b43574f] Switch 'IO' error prefix to 'TS'
  • [9747885] Prefix public C functions with ts_
  • [39510c3] Block unknown alter table commands on hypertables
  • [2408a83] Add support for ALTER TABLE SET TABLESPACE on hypertables
  • [41d9846] Enclose macro replacement list and arguments in parentheses
  • [cc59d51] Replace macro LEAST_TIMESTAMP by a static function
  • [281f363] Modify telemetry BGW to run every hour the first 12 hours
  • [a09b3ec] Add pg_isolation_regress support to the timescale build system
  • [2c267ba] Handle SIGTERM/SIGINT asynchronously
  • [5377e2d] Fix use-after-free bug for connections in the telemetry BGW
  • [248f662] Fix pg_dump for unprivileged users
  • [193fa4a] Stop background workers when extension is DROP OWNED
  • [625e3fa] Fix negative value handling in int time_bucket
  • [a33224b] Add loader API version function
  • [18b8068] Remove unnecessary index on dimension metadata table
  • [d09405d] Fix adaptive chunking when hypertables have multiple dimensions
  • [a81dc18] Block signals when writing to the log table in tests
  • [d5a6392] Fix adaptive chunking so it chooses correct index
  • [3489cca] Fix sigterm handling in background jobs
  • [2369ae9] Remove !WIN32 for sys/time.h and sys/socket.h, pg provides fills
  • [ebbb4ae] Also add sys/time.h for NetBSD. Fixes #700
  • [1a9ae17] Fix build on FreeBSD wrt sockets
  • [8225cd2] Remove (redefined) macro PG_VERSION and replace with PACKAGE_VERSION
  • [2a07cf9] Release SpinLock even when we're about to Error due to over-decrementing
  • [b2a15b8] Make sure DB schedulers are not decremented if they were never incremented
  • [6731c86] Add support for pre-release version checks

Thanks

  • @did-g for an improvement to our macros to make compiliers happy
  • @mx781 and @HeikoOnnebrink for reporting issues with working with pg_dump fully
  • @znbang and @timolson for reporting a bug that was causing telemetry to fail
  • @alanhamlett for reporting an issue with spinlocks when handling SIGTERMs
  • @oldgreen for reporting an issue with building on NetBSD
  • @kev009 for fixing build issues on FreeBSD and NetBSD
  • All the others who have helped us test and used these RCs!

@LeeHampton LeeHampton released this Sep 19, 2018 · 154 commits to master since this release

Assets 3

High-level changes

  • Fixes for a few issues related to the new scheduler and background worker framework.
  • Fixed bug in adaptive chunking where the incorrect index could be used for determining the current interval.
  • Improved testing, code cleanup, and other housekeeping.

Notable commits

  • [0f6f7fc] Fix adaptive chunking so it chooses correct index
  • [3ed79ed] Fix sigterm handling in background jobs
  • [bea098f] Remove !WIN32 for sys/time.h and sys/socket.h, pg provides fills
  • [9f62a1a] Also add sys/time.h for NetBSD. Fixes #700
  • [95a982f] Fix build on FreeBSD wrt sockets
  • [fcb4a79] Remove (redefined) macro PG_VERSION and replace with PACKAGE_VERSION
  • [2634897] Release SpinLock even when we're about to Error due to over-decrementing
  • [1f30dbb] Make sure DB schedulers are not decremented if they were never incremented
  • [f518cd0] Add support for pre-release version checks
  • [acebaea] Don't start schedulers for template databases.
  • [f221a12] Fix use-after-free bug in telemetry test
  • [0dc5bbb] Use pg_config bindir directory for pg executables

Thanks

  • @did-g for reporting a use-after-free bug in a test and for improving the robustness of another test
  • @kev009 for fixing build issues on FreeBSD and NetBSD

@RobAtticus RobAtticus released this Sep 12, 2018 · 153 commits to master since this release

Assets 3

This release is our 1.0 release candidate! We expect to only merge bug fixes between now and our final 1.0 release. This is a big milestone for us and signifies our maturity and enterprise readiness.

PLEASE NOTE that release candidate (rc) builds will only be made available via GitHub and Docker, and not on other release channels. Please help us test these release candidates out if you can!

Notable commits

  • [acebaea] Don't start schedulers for template databases.
  • [f221a12] Fix use-after-free bug in telemetry test
  • [2092b2a] Fix unused variable warning in Release build
  • [0dc5bbb] Use pg_config bindir directory for pg executables

Thanks

  • @did-g for reporting a use-after-free bug in a test and for improving the robustness of another test

@RobAtticus RobAtticus released this Sep 10, 2018 · 164 commits to master since this release

Assets 3

High-level changes

  • Scheduler framework: This release introduces a background job framework and scheduler. Each database running within a PostgreSQL instance has a scheduler that schedules recurring jobs from a new jobs table while maintaining statistics that inform the scheduler's policy. Future releases will leverage this scheduler framework for more automated management of data retention, archiving, analytics, and the like.

  • Telemetry: Using this new scheduler framework, TimescaleDB databases now send anonymized usage information to a telemetry server via HTTPS, as well as perform version checking to notify users if a newer version is available. For transparency, a new get_telemetry_report function details the exact JSON that is sent, and users may also opt out of this telemetry and version check.

  • Continued hardening: This release addresses several issues around more robust backup and recovery, handling large numbers of chunks, and additional test coverage.

Notable commits

  • [efab2aa] Fix net lib functionality on Windows and improve error handling
  • [71589c4] Fix issues when OpenSSL is not available
  • [a43cd04] Call the main telemetry function inside BGW executor
  • [faf481b] Add telemetry functionality
  • [45a2b76] Add new Connection and HTTP libraries
  • [b6fe657] Fix max_background_workers guc, errors on EXEC_BACKEND and formatting
  • [5d8c7cc] Add a scheduler for background jobs
  • [55a7141] Implement a cluster-wide launcher for background workers
  • [5bc705f] Update bootstrap to check for cmake and exit if not found
  • [98e56dd] Improve show_indexes test func to be more platform agnostic
  • [b928caa] Note how to recreate templated files
  • [8571e41] Use AttrNumberGetAttrOffset instead of Anum_name - 1 for array indexing
  • [d1710ef] Improve regression test script to cleanup more thoroughly
  • [fc3677f] Reduce number of open chunks per insert
  • [027b7b2] Hide extension symbols by default on Unix platforms
  • [6a3abe5] Fix SubspaceStore to ensure max_open_chunks_per_insert is obeyed

Thanks

@EvanCarroll for updates to the bootstrap script to check for cmake

@LeeHampton LeeHampton released this Aug 8, 2018 · 192 commits to master since this release

Assets 3

Major Features

  • Adaptive chunking: This feature, currently in beta, allows the database to automatically adapt a chunk's time interval, so that users do not need to manually set (and possibly manually change) this interval size. In this release, users can specify either a target chunk data size (in terms of MB or GB), and the chunk's time intervals will be automatically adapted. Alternatively, users can ask the database to just estimate a target size itself based on the platform's available memory and other parameters, and the system will adapt accordingly. This type of automation can simplify initial database testing and operations. This feature is default off. Note: The default time interval for non-adaptive chunking has also been changed from 1 month to 1 week.

  • Continued hardening: This release addresses a number of less frequently used schema modifications, functions, or constraints. Unsupported functions are safely blocked, while we have added support for a number of new types of table alterations. This release also adds additional test coverage.

Notable commits

  • [9ba2e81] Fix segfault with custom partition types
  • [7e9bf25] Change default chunk size to one week
  • [506fa18] Add tests for custom types
  • [1d9ade7] add support for other types as timescale column
  • [570f2f8] Validate parameters when creating partition info
  • [148f2da] Use shared_buffers as the available cache memory
  • [e0a15c1] Add additional comments to explain algorithm
  • [d81dccb] Set the default chunk_time_interval to 1 day with adaptive chunking enabled
  • [2e7b32c] Add WARNING when doing min-max heap scan for adaptive chunking
  • [6b452a8] Update adaptive chunk algorithm to handle very small chunks.
  • [9c9cdca] Add support for adaptive chunk sizing
  • [7f8d17d] Handle DEFERRED and VALID options for constraints
  • [0c5c21b] Block using rules with hypertables
  • [37142e9] Block INSERTs on a hypertable's root table
  • [4daf087] Fix some ALTER TABLE corner case bugs on hypertables
  • [122f5f1] Block replica identity usage with hypertables
  • [8bf552e] Block unlogged tables from being used as hypertables
  • [a8c637e] Create aggregate functions only once to avoid dependency issues
  • [a97f2af] Add support for custom hypertable dimension types
  • [dfe026c] Refactor create_hypertable rel access.
  • [ed379c3] Validate existing indexes before adding a new dimension
  • [1f2d276] Fix and improve show_indexes test support function
  • [77b0035] Enforce IMMUTABLE partitioning functions
  • [cbc5e60] Block NO INHERIT constraints on hypertables
  • [e362e9c] Block mixing hypertables with postgres inheritance
  • [011f12b] Add support for CLUSTER ON and SET WITHOUT CLUSTER
  • [e947c6b] Improve handling of column settings
  • [fc4957b] Update statistics on parent table when doing ANALYZE
  • [82942bf] Enable backwards compatibility for loader for 0.9.0 and 0.9.1

Thanks

  • @Ngalstyan4 and @hjsuh18, our interns, for all of the PRs this summer
  • @fvannee for a PR adding support for binary compatible custom types as a time column
  • @fmacelw for reporting a bug where first() and last() hold reference across extension update
  • @soccerdroid for reporting a corner case bug in ALTER TABLE

@RobAtticus RobAtticus released this Jul 12, 2018 · 236 commits to master since this release

Assets 3

High-level changes

  • Improved memory management for long-lived connections.
  • Fixed handling of dropping triggers that would lead to orphaned references in pg_depend.
  • Fixed pruning in CustomScan when the subplan is not a Scan type that caused a crash with LATERALs.
  • Corrected size reporting that was not accurately counting TOAST size
  • Updated error messages that more closely conform to PG style.
  • Corrected handling of table and schema name changes to chunks; TimescaleDB metadata catalogs are now properly updated

Notable commits

  • [8b58500] Fix bug where dropping triggers caused dangling references in pg_depend, disallow disabling triggers on hypertables
  • [745b8ab] Fixing CustomScan pruning whenever the subplan is NOT of a Scan type.
  • [67a8a41] Make chunk identifiers formatting safe using format
  • [41af6ff] Fix misreported toast_size in chunk_relation_size funcs
  • [4f2f1a6] Update the error messages to conform with the style guide; Fix tests
  • [3c28f65] Release cache pin memory
  • [abe76fc] Add support for changing chunk schema and name

Thanks

  • @mfuterko for updating our error messages to conform with PG error message style
  • @fvannee for reporting a crash when using certain LATERAL joins with aggregates
  • @linba708 for reporting a memory leak with long lived connections
  • @phlsmk for reporting an issue where dropping triggers prevented drop_chunks from working due to orphaned dependencies