1# TimescaleDB Changelog 2 3**Please note: When updating your database, you should connect using 4`psql` with the `-X` flag to prevent any `.psqlrc` commands from 5accidentally triggering the load of a previous DB version.** 6 7## 2.5.1 (2021-12-02) 8 9This release contains bug fixes since the 2.5.0 release. 10We deem it medium priority to upgrade. 11 12**Bugfixes** 13* #3706 Test enabling dist compression within a procedure 14* #3734 Rework distributed DDL processing logic 15* #3737 Fix flaky pg_dump 16* #3739 Fix compression policy on tables using INTEGER 17* #3766 Fix segfault in ts_hist_sfunc 18* #3779 Support GRANT/REVOKE on distributed database 19* #3789 Fix time_bucket comparison transformation 20* #3797 Fix DISTINCT ON queries for distributed hyperatbles 21* #3799 Fix error printout on correct security label 22* #3801 Fail size utility functions when data nodes do not respond 23* #3809 Fix NULL pointer evaluation in fill_result_error() 24* #3811 Fix INSERT..SELECT involving dist hypertables 25* #3819 Fix reading garbage value from TSConnectionError 26* #3824 Remove pointers from CAGG lists for 64-bit archs 27* #3846 Eliminate deadlock in recompress chunk policy 28* #3881 Fix SkipScan crash due to pruned unique path 29* #3884 Fix create_distributed_restore_point memory issue 30 31**Thanks** 32* @cbisnett for reporting and fixing a typo in an error message 33* @CaptainCuddleCube for reporting bug on compression policy procedure on tables using INTEGER on time dimension 34* @phemmer for reporting bugs on multi-node 35 36## 2.5.0 (2021-10-28) 37 38This release adds major new features since the 2.4.2 release. 39We deem it moderate priority for upgrading. 40 41This release includes these noteworthy features: 42 43* Continuous Aggregates for Distributed Hypertables 44* Support for PostgreSQL 14 45* Experimental: Support for timezones in `time_bucket_ng()`, including 46the `origin` argument 47 48This release also includes several bug fixes. 49 50**Features** 51* #3034 Add support for PostgreSQL 14 52* #3435 Add continuous aggregates for distributed hypertables 53* #3505 Add support for timezones in `time_bucket_ng()` 54 55**Bugfixes** 56* #3580 Fix memory context bug executing TRUNCATE 57* #3592 Allow alter column type on distributed hypertable 58* #3598 Improve evaluation of stable functions such as now() on access node 59* #3618 Fix execution of refresh_caggs from user actions 60* #3625 Add shared dependencies when creating chunk 61* #3626 Fix memory context bug executing TRUNCATE 62* #3627 Schema qualify UDTs in multi-node 63* #3638 Allow owner change of a data node 64* #3654 Fix index attnum mapping in reorder_chunk 65* #3661 Fix SkipScan path generation with constant DISTINCT column 66* #3667 Fix compress_policy for multi txn handling 67* #3673 Fix distributed hypertable DROP within a procedure 68* #3701 Allow anyone to use size utilities on distributed hypertables 69* #3708 Fix crash in get_aggsplit 70* #3709 Fix ordered append pathkey check 71* #3712 Fix GRANT/REVOKE ALL IN SCHEMA handling 72* #3717 Support transparent decompression on individual chunks 73* #3724 Fix inserts into compressed chunks on hypertables with caggs 74* #3727 Fix DirectFunctionCall crash in distributed_exec 75* #3728 Fix SkipScan with varchar column 76* #3733 Fix ANALYZE crash with custom statistics for custom types 77* #3747 Always reset expr context in DecompressChunk 78 79**Thanks** 80* @binakot and @sebvett for reporting an issue with DISTINCT queries 81* @hardikm10, @DavidPavlicek and @pafiti for reporting bugs on TRUNCATE 82* @mjf for reporting an issue with ordered append and JOINs 83* @phemmer for reporting the issues on multinode with aggregate queries and evaluation of now() 84* @abolognino for reporting an issue with INSERTs into compressed hypertables that have cagg 85* @tanglebones for reporting the ANALYZE crash with custom types on multinode 86* @amadeubarbosa and @felipenogueirajack for reporting crash using JSONB column in compressed chunks 87 88## 2.4.2 (2021-09-21) 89 90This release contains bug fixes since the 2.4.1 release. 91We deem it high priority to upgrade. 92 93**Bugfixes** 94* #3437 Rename on all continuous aggregate objects 95* #3469 Use signal-safe functions in signal handler 96* #3520 Modify compression job processing logic 97* #3527 Fix time_bucket_ng behaviour with origin argument 98* #3532 Fix bootstrap with regresschecks disabled 99* #3574 Fix failure on job execution by background worker 100* #3590 Call cleanup functions on backend exit 101 102**Thanks** 103* @jankatins for reporting a crash with background workers 104* @LutzWeischerFujitsu for reporting an issue with bootstrap 105 106## 2.4.1 (2021-08-19) 107 108This release contains bug fixes since the 2.4.0 release. We deem it 109high priority to upgrade. 110 111The release fixes continous aggregate refresh for postgres 12.8 and 11213.4, a crash with ALTER TABLE commands and a crash with continuous 113aggregates with HAVING clause. 114 115**Bugfixes** 116* #3430 Fix havingqual processing for continuous aggregates 117* #3468 Disable tests by default if tools are not found 118* #3462 Fix crash while tracking alter table commands 119* #3489 Fix continuous agg bgw job failure for PG 12.8 and 13.4 120* #3494 Improve error message when adding data nodes 121 122**Thanks** 123* @brianbenns for reporting a segfault with continuous aggregates 124* @usego for reporting an issue with continuous aggregate refresh on PG 13.4 125 126## 2.4.0 (2021-07-29) 127 128This release adds new experimental features since the 2.3.1 release. 129 130The experimental features in this release are: 131* APIs for chunk manipulation across data nodes in a distributed 132hypertable setup. This includes the ability to add a data node and move 133chunks to the new data node for cluster rebalancing. 134* The `time_bucket_ng` function, a newer version of `time_bucket`. This 135function supports years, months, days, hours, minutes, and seconds. 136 137We’re committed to developing these experiments, giving the community 138 a chance to provide early feedback and influence the direction of 139TimescaleDB’s development. We’ll travel faster with your input! 140 141Please create your feedback as a GitHub issue (using the 142experimental-schema label), describe what you found, and tell us the 143steps or share the code snip to recreate it. 144 145This release also includes several bug fixes. 146 147PostgreSQL 11 deprecation announcement 148Timescale is working hard on our next exciting features. To make that 149possible, we require functionality that is available in Postgres 12 and 150above. Postgres 11 is not supported with TimescaleDB 2.4. 151 152**Experimental Features** 153* #3293 Add timescaledb_experimental schema 154* #3302 Add block_new_chunks and allow_new_chunks API to experimental 155schema. Add chunk based refresh_continuous_aggregate. 156* #3211 Introduce experimental time_bucket_ng function 157* #3366 Allow use of experimental time_bucket_ng function in continuous aggregates 158* #3408 Support for seconds, minutes and hours in time_bucket_ng 159* #3446 Implement cleanup for chunk copy/move. 160 161**Bugfixes** 162* #3401 Fix segfault for RelOptInfo without fdw_private 163* #3411 Verify compressed chunk validity for compressed path 164* #3416 Fix targetlist names for continuous aggregate views 165* #3434 Remove extension check from relcache invalidation callback 166* #3440 Fix remote_tx_heal_data_node to work with only current database 167 168**Thanks** 169* @fvannee for reporting an issue with hypertable expansion in functions 170* @amalek215 for reporting an issue with cache invalidation during pg_class vacuum full 171* @hardikm10 for reporting an issue with inserting into compressed chunks 172* @dberardo-com and @iancmcc for reporting an issue with extension updates after renaming columns of continuous aggregates. 173 174## 2.3.1 (2021-07-05) 175 176This maintenance release contains bugfixes since the 2.3.0 release. We 177deem it moderate priority for upgrading. The release introduces the 178possibility of generating downgrade scripts, improves the trigger 179handling for distributed hypertables, adds some more randomness to 180chunk assignment to avoid thundering herd issues in chunk assignment, 181and fixes some issues in update handling as well as some other bugs. 182 183**Bugfixes** 184* #3279 Add some more randomness to chunk assignment 185* #3288 Fix failed update with parallel workers 186* #3300 Improve trigger handling on distributed hypertables 187* #3304 Remove paths that reference parent relids for compressed chunks 188* #3305 Fix pull_varnos miscomputation of relids set 189* #3310 Generate downgrade script 190* #3314 Fix heap buffer overflow in hypertable expansion 191* #3317 Fix heap buffer overflow in remote connection cache. 192* #3327 Make aggregates in caggs fully qualified 193* #3336 Fix pg_init_privs objsubid handling 194* #3345 Fix SkipScan distinct column identification 195* #3355 Fix heap buffer overflow when renaming compressed hypertable columns. 196* #3367 Improve DecompressChunk qual pushdown 197* #3377 Fix bad use of repalloc 198 199**Thanks** 200* @db-adrian for reporting an issue when accessing cagg view through postgres_fdw 201* @fncaldas and @pgwhalen for reporting an issue accessing caggs when public is not in search_path 202* @fvannee, @mglonnro and @ebreijo for reporting an issue with the upgrade script 203* @fvannee for reporting a performance regression with SkipScan 204 205## 2.3.0 (2021-05-25) 206 207This release adds major new features since the 2.2.1 release. 208We deem it moderate priority for upgrading. 209 210This release adds support for inserting data into compressed chunks 211and improves performance when inserting data into distributed hypertables. 212Distributed hypertables now also support triggers and compression policies. 213 214The bug fixes in this release address issues related to the handling 215of privileges on compressed hypertables, locking, and triggers with transition tables. 216 217**Features** 218* #3116 Add distributed hypertable compression policies 219* #3162 Use COPY when executing distributed INSERTs 220* #3199 Add GENERATED column support on distributed hypertables 221* #3210 Add trigger support on distributed hypertables 222* #3230 Support for inserts into compressed chunks 223 224**Bugfixes** 225* #3213 Propagate grants to compressed hypertables 226* #3229 Use correct lock mode when updating chunk 227* #3243 Fix assertion failure in decompress_chunk_plan_create 228* #3250 Fix constraint triggers on hypertables 229* #3251 Fix segmentation fault due to incorrect call to chunk_scan_internal 230* #3252 Fix blocking triggers with transition tables 231 232**Thanks** 233* @yyjdelete for reporting a crash with decompress_chunk and identifying the bug in the code 234* @fabriziomello for documenting the prerequisites when compiling against PostgreSQL 13 235 236## 2.2.1 (2021-05-05) 237 238This maintenance release contains bugfixes since the 2.2.0 release. We 239deem it high priority for upgrading. 240 241This release extends Skip Scan to multinode by enabling the pushdown 242of `DISTINCT` to data nodes. It also fixes a number of bugs in the 243implementation of Skip Scan, in distributed hypertables, in creation 244of indexes, in compression, and in policies. 245 246**Features** 247* #3113 Pushdown "SELECT DISTINCT" in multi-node to allow use of Skip 248 Scan 249 250**Bugfixes** 251* #3101 Use commit date in `get_git_commit()` 252* #3102 Fix `REINDEX TABLE` for distributed hypertables 253* #3104 Fix use after free in `add_reorder_policy` 254* #3106 Fix use after free in `chunk_api_get_chunk_stats` 255* #3109 Copy recreated object permissions on update 256* #3111 Fix `CMAKE_BUILD_TYPE` check 257* #3112 Use `%u` to format Oid instead of `%d` 258* #3118 Fix use after free in cache 259* #3123 Fix crash while using `REINDEX TABLE CONCURRENTLY` 260* #3135 Fix SkipScan path generation in `DISTINCT` queries with expressions 261* #3146 Fix SkipScan for IndexPaths without pathkeys 262* #3147 Skip ChunkAppend if AppendPath has no children 263* #3148 Make `SELECT DISTINCT` handle non-var targetlists 264* #3151 Fix `fdw_relinfo_get` assertion failure on `DELETE` 265* #3155 Inherit `CFLAGS` from PostgreSQL 266* #3169 Fix incorrect type cast in compression policy 267* #3183 Fix segfault in calculate_chunk_interval 268* #3185 Fix wrong datatype for integer based retention policy 269 270**Thanks** 271* @Dead2, @dv8472 and @einsibjarni for reporting an issue with multinode queries and views 272* @aelg for reporting an issue with policies on integer-based hypertables 273* @hperez75 for reporting an issue with Skip Scan 274* @nathanloisel for reporting an issue with compression on hypertables with integer-based timestamps 275* @xin-hedera for fixing an issue with compression on hypertables with integer-based timestamps 276 277## 2.2.0 (2021-04-13) 278 279This release adds major new features since the 2.1.1 release. 280We deem it moderate priority for upgrading. 281 282This release adds the Skip Scan optimization, which significantly 283improves the performance of queries with DISTINCT ON. This 284optimization is not yet available for queries on distributed 285hypertables. 286 287This release also adds a function to create a distributed 288restore point, which allows performing a consistent restore of a 289multi-node cluster from a backup. 290 291The bug fixes in this release address issues with size and stats 292functions, high memory usage in distributed inserts, slow distributed 293ORDER BY queries, indexes involving INCLUDE, and single chunk query 294planning. 295 296**PostgreSQL 11 deprecation announcement** 297 298Timescale is working hard on our next exciting features. To make that 299possible, we require functionality that is unfortunately absent on 300PostgreSQL 11. For this reason, we will continue supporting PostgreSQL 30111 until mid-June 2021. Sooner to that time, we will announce the 302specific version of TimescaleDB in which PostgreSQL 11 support will 303not be included going forward. 304 305**Major Features** 306* #2843 Add distributed restore point functionality 307* #3000 SkipScan to speed up SELECT DISTINCT 308 309**Bugfixes** 310* #2989 Refactor and harden size and stats functions 311* #3058 Reduce memory usage for distributed inserts 312* #3067 Fix extremely slow multi-node order by queries 313* #3082 Fix chunk index column name mapping 314* #3083 Keep Append pathkeys in ChunkAppend 315 316**Thanks** 317* @BowenGG for reporting an issue with indexes with INCLUDE 318* @fvannee for reporting an issue with ChunkAppend pathkeys 319* @pedrokost and @RobAtticus for reporting an issue with size 320 functions on empty hypertables 321* @phemmer and @ryanbooz for reporting issues with slow 322 multi-node order by queries 323* @stephane-moreau for reporting an issue with high memory usage during 324 single-transaction inserts on a distributed hypertable. 325 326## 2.1.1 (2021-03-29) 327 328This maintenance release contains bugfixes since the 2.1.0 release. We 329deem it high priority for upgrading. 330 331The bug fixes in this release address issues with CREATE INDEX and 332UPSERT for hypertables, custom jobs, and gapfill queries. 333 334This release marks TimescaleDB as a trusted extension in PG13, so that 335superuser privileges are not required anymore to install the extension. 336 337**Minor features** 338* #2998 Mark timescaledb as trusted extension 339 340**Bugfixes** 341* #2948 Fix off by 4 error in histogram deserialize 342* #2974 Fix index creation for hypertables with dropped columns 343* #2990 Fix segfault in job_config_check for cagg 344* #2987 Fix crash due to txns in emit_log_hook_callback 345* #3042 Commit end transaction for CREATE INDEX 346* #3053 Fix gapfill/hashagg planner interaction 347* #3059 Fix UPSERT on hypertables with columns with defaults 348 349**Thanks** 350* @eloyekunle and @kitwestneat for reporting an issue with UPSERT 351* @jocrau for reporting an issue with index creation 352* @kev009 for fixing a compilation issue 353* @majozv and @pehlert for reporting an issue with time_bucket_gapfill 354 355## 2.1.0 (2021-02-22) 356 357This release adds major new features since the 2.0.2 release. 358We deem it moderate priority for upgrading. 359 360This release adds the long-awaited support for PostgreSQL 13 to TimescaleDB. 361The minimum required PostgreSQL 13 version is 13.2 due to a security vulnerability 362affecting TimescaleDB functionality present in earlier versions of PostgreSQL 13. 363 364This release also relaxes some restrictions for compressed hypertables; 365namely, TimescaleDB now supports adding columns to compressed hypertables 366and renaming columns of compressed hypertables. 367 368**Major Features** 369* #2779 Add support for PostgreSQL 13 370 371**Minor features** 372* #2736 Support adding columns to hypertables with compression enabled 373* #2909 Support renaming columns of hypertables with compression enabled 374 375## 2.0.2 (2021-02-19) 376 377This maintenance release contains bugfixes since the 2.0.1 release. We 378deem it high priority for upgrading. 379 380The bug fixes in this release address issues with joins, the status of 381background jobs, and disabling compression. It also includes 382enhancements to continuous aggregates, including improved validation 383of policies and optimizations for faster refreshes when there are a 384lot of invalidations. 385 386**Minor features** 387* #2926 Optimize cagg refresh for small invalidations 388 389**Bugfixes** 390* #2850 Set status for backend in background jobs 391* #2883 Fix join qual propagation for nested joins 392* #2884 Add GUC to control join qual propagation 393* #2885 Fix compressed chunk check when disabling compression 394* #2908 Fix changing column type of clustered hypertables 395* #2942 Validate continuous aggregate policy 396 397**Thanks** 398* @zeeshanshabbir93 for reporting an issue with joins 399* @Antiarchitect for reporting the issue with slow refreshes of 400 continuous aggregates. 401* @diego-hermida for reporting the issue about being unable to disable 402 compression 403* @mtin for reporting the issue about wrong job status 404 405## 1.7.5 (2021-02-12) 406 407This maintenance release contains bugfixes since the 1.7.4 release. 408Most of these fixes were backported from the 2.0.0 and 2.0.1 releases. 409We deem it high priority for upgrading for users on TimescaleDB 1.7.4 410or previous versions. 411 412In particular the fixes contained in this maintenance release address 413issues in continuous aggregates, compression, JOINs with hypertables, 414and when upgrading from previous versions. 415 416**Bugfixes** 417* #2502 Replace check function when updating 418* #2558 Repair dimension slice table on update 419* #2619 Fix segfault in decompress_chunk for chunks with dropped 420 columns 421* #2664 Fix support for complex aggregate expression 422* #2800 Lock dimension slices when creating new chunk 423* #2860 Fix projection in ChunkAppend nodes 424* #2865 Apply volatile function quals at decompresschunk 425* #2851 Fix nested loop joins that involve compressed chunks 426* #2868 Fix corruption in gapfill plan 427* #2883 Fix join qual propagation for nested joins 428* #2885 Fix compressed chunk check when disabling compression 429* #2920 Fix repair in update scripts 430 431**Thanks** 432* @akamensky for reporting several issues including segfaults after 433 version update 434* @alex88 for reporting an issue with joined hypertables 435* @dhodyn for reporting an issue when joining compressed chunks 436* @diego-hermida for reporting an issue with disabling compression 437* @Netskeh for reporting bug on time_bucket problem in continuous 438 aggregates 439* @WarriorOfWire for reporting the bug with gapfill queries not being 440 able to find pathkey item to sort 441* @zeeshanshabbir93 for reporting an issue with joins 442 443## 2.0.1 (2021-01-28) 444 445This maintenance release contains bugfixes since the 2.0.0 release. 446We deem it high priority for upgrading. 447 448In particular the fixes contained in this maintenance release address 449issues in continuous aggregates, compression, JOINs with hypertables 450and when upgrading from previous versions. 451 452**Bugfixes** 453* #2772 Always validate existing database and extension 454* #2780 Fix config enum entries for remote data fetcher 455* #2806 Add check for dropped chunk on update 456* #2828 Improve cagg watermark caching 457* #2838 Fix catalog repair in update script 458* #2842 Do not mark job as started when setting next_start field 459* #2845 Fix continuous aggregate privileges during upgrade 460* #2851 Fix nested loop joins that involve compressed chunks 461* #2860 Fix projection in ChunkAppend nodes 462* #2861 Remove compression stat update from update script 463* #2865 Apply volatile function quals at decompresschunk node 464* #2866 Avoid partitionwise planning of partialize_agg 465* #2868 Fix corruption in gapfill plan 466* #2874 Fix partitionwise agg crash due to uninitialized memory 467 468**Thanks** 469* @alex88 for reporting an issue with joined hypertables 470* @brian-from-quantrocket for reporting an issue with extension update and dropped chunks 471* @dhodyn for reporting an issue when joining compressed chunks 472* @markatosi for reporting a segfault with partitionwise aggregates enabled 473* @PhilippJust for reporting an issue with add_job and initial_start 474* @sgorsh for reporting an issue when using pgAdmin on windows 475* @WarriorOfWire for reporting the bug with gapfill queries not being 476 able to find pathkey item to sort 477 478## 2.0.0 (2020-12-18) 479 480With this release, we are officially moving TimescaleDB 2.0 to GA, 481concluding several release candidates. 482 483TimescaleDB 2.0 adds the much-anticipated support for distributed 484hypertables (multi-node TimescaleDB), as well as new features and 485enhancements to core functionality to give users better clarity and 486more control and flexibility over their data. 487 488Multi-node architecture: In particular, with TimescaleDB 2.0, users 489can now create distributed hypertables across multiple instances of 490TimescaleDB, configured so that one instance serves as an access node 491and multiple others as data nodes. All queries for a distributed 492hypertable are issued to the access node, but inserted data and queries 493are pushed down across data nodes for greater scale and performance. 494 495Multi-node TimescaleDB can be self managed or, for easier operation, 496launched within Timescale's fully-managed cloud services. 497 498This release also adds: 499 500* Support for user-defined actions, allowing users to define, 501 customize, and schedule automated tasks, which can be run by the 502 built-in jobs scheduling framework now exposed to users. 503* Significant changes to continuous aggregates, which now separate the 504 view creation from the policy. Users can now refresh individual 505 regions of the continuous aggregate materialized view, or schedule 506 automated refreshing via policy. 507* Redesigned informational views, including new (and more general) 508 views for information about hypertable's dimensions and chunks, 509 policies and user-defined actions, as well as support for multi-node 510 TimescaleDB. 511* Moving all formerly enterprise features into our Community Edition, 512 and updating Timescale License, which now provides additional (more 513 permissive) rights to users and developers. 514 515Some of the changes above (e.g., continuous aggregates, updated 516informational views) do introduce breaking changes to APIs and are not 517backwards compatible. While the update scripts in TimescaleDB 2.0 will 518upgrade databases running TimescaleDB 1.x automatically, some of these 519API and feature changes may require changes to clients and/or upstream 520scripts that rely on the previous APIs. Before upgrading, we recommend 521reviewing upgrade documentation at docs.timescale.com for more details. 522 523**Major Features** 524 525TimescaleDB 2.0 moves the following major features to GA: 526* #1923 Add support for distributed hypertables 527* #2006 Add support for user-defined actions 528* #2125 #2221 Improve Continuous Aggregate API 529* #2084 #2089 #2098 #2417 Redesign informational views 530* #2435 Move enterprise features to community 531* #2437 Update Timescale License 532 533**Previous Release Candidates** 534 535* #2702 Release Candidate 4 (December 2, 2020) 536* #2637 Release Candidate 3 (November 12, 2020) 537* #2554 Release Candidate 2 (October 20, 2020) 538* #2478 Release Candidate 1 (October 1, 2020) 539 540**Minor Features** 541 542Since the last release candidate 4, there are several minor 543improvements: 544* #2746 Optimize locking for create chunk API 545* #2705 Block tableoid access on distributed hypertable 546* #2730 Do not allow unique index on compressed hypertables 547* #2764 Bootstrap data nodes with versioned extension 548 549**Bugfixes** 550 551Since the last release candidate 4, there are several bugfixes: 552* #2719 Support disabling compression on distributed hypertables 553* #2742 Fix compression status in chunks view for distributed chunks 554* #2751 Fix crash and cancel when adding data node 555* #2763 Fix check constraint on hypertable metadata table 556 557**Thanks** 558 559Thanks to all contributors for the TimescaleDB 2.0 release: 560* @airton-neto for reporting a bug in executing some queries with UNION 561* @nshah14285 for reporting an issue with propagating privileges 562* @kalman5 for reporting an issue with renaming constraints 563* @LbaNeXte for reporting a bug in decompression for queries with 564 subqueries 565* @semtexzv for reporting an issue with continuous aggregates on 566 int-based hypertables 567* @mr-ns for reporting an issue with privileges for creating chunks 568* @cloud-rocket for reporting an issue with setting an owner on 569 continuous aggregate 570* @jocrau for reporting a bug during creating an index with transaction 571 per chunk 572* @fvannee for reporting an issue with custom time types 573* @ArtificialPB for reporting a bug in executing queries with 574 conditional ordering on compressed hypertable 575* @dutchgecko for reporting an issue with continuous aggregate datatype 576 handling 577* @lambdaq for suggesting to improve error message in continuous 578 aggregate creation 579* @francesco11112 for reporting memory issue on COPY 580* @Netskeh for reporting bug on time_bucket problem in continuous 581 aggregates 582* @mr-ns for reporting the issue with CTEs on distributed hypertables 583* @akamensky for reporting an issue with recursive cache invalidation 584* @ryanbooz for reporting slow queries with real-time aggregation on 585 continuous aggregates 586* @cevian for reporting an issue with disabling compression on 587 distributed hypertables 588 589## 2.0.0-rc4 (2020-12-02) 590 591This release candidate contains bugfixes since the previous release 592candidate, as well as additional minor features. It improves 593validation of configuration changes for background jobs, adds support 594for gapfill on distributed tables, contains improvements to the memory 595handling for large COPY, and contains improvements to compression for 596distributed hypertables. 597 598**Minor Features** 599* #2689 Check configuration in alter_job and add_job 600* #2696 Support gapfill on distributed hypertable 601* #2468 Show more information in get_git_commit 602* #2678 Include user actions into job stats view 603* #2664 Fix support for complex aggregate expression 604* #2672 Add hypertable to continuous aggregates view 605* #2662 Save compression metadata settings on access node 606* #2707 Introduce additional db for data node bootstrapping 607 608**Bugfixes** 609* #2688 Fix crash for concurrent drop and compress chunk 610* #2666 Fix timeout handling in async library 611* #2683 Fix crash in add_job when given NULL interval 612* #2698 Improve memory handling for remote COPY 613* #2555 Set metadata for chunks compressed before 2.0 614 615**Thanks** 616* @francesco11112 for reporting memory issue on COPY 617* @Netskeh for reporting bug on time_bucket problem in continuous 618 aggregates 619 620## 2.0.0-rc3 (2020-11-12) 621 622This release candidate contains bugfixes since the previous release 623candidate, as well as additional minor features including support for 624"user-mapping" authentication between access/data nodes and an 625experimental API for refreshing continuous aggregates on individual 626chunks. 627 628**Minor Features** 629* #2627 Add optional user mappings support 630* #2635 Add API to refresh continuous aggregate on chunk 631 632**Bugfixes** 633* #2560 Fix SCHEMA DROP CASCADE with continuous aggregates 634* #2593 Set explicitly all lock parameters in alter_job 635* #2604 Fix chunk creation on hypertables with foreign key constraints 636* #2610 Support analyze of internal compression table 637* #2612 Optimize internal cagg_watermark function 638* #2613 Refresh correct partial during refresh on drop 639* #2617 Fix validation of available extensions on data node 640* #2619 Fix segfault in decompress_chunk for chunks with dropped columns 641* #2620 Fix DROP CASCADE for continuous aggregate 642* #2625 Fix subquery errors when using AsyncAppend 643* #2626 Fix incorrect total_table_pages setting for compressed scan 644* #2628 Stop recursion in cache invalidation 645 646**Thanks** 647* @mr-ns for reporting the issue with CTEs on distributed hypertables 648* @akamensky for reporting an issue with recursive cache invalidation 649* @ryanbooz for reporting slow queries with real-time aggregation on 650 continuous aggregates 651 652## 2.0.0-rc2 (2020-10-21) 653 654This release candidate contains bugfixes since the previous release candidate. 655 656**Minor Features** 657* #2520 Support non-transactional distibuted_exec 658 659**Bugfixes** 660* #2307 Overflow handling for refresh policy with integer time 661* #2503 Remove error for correct bootstrap of data node 662* #2507 Fix validation logic when adding a new data node 663* #2510 Fix outer join qual propagation 664* #2514 Lock dimension slices when creating new chunk 665* #2515 Add if_attached argument to detach_data_node() 666* #2517 Fix member access within misaligned address in chunk_update_colstats 667* #2525 Fix index creation on hypertables with dropped columns 668* #2543 Pass correct status to lock_job 669* #2544 Assume custom time type range is same as bigint 670* #2563 Fix DecompressChunk path generation 671* #2564 Improve continuous aggregate datatype handling 672* #2568 Change use of ssl_dir GUC 673* #2571 Make errors and messages conform to style guide 674* #2577 Exclude compressed chunks from ANALYZE/VACUUM 675 676## 2.0.0-rc1 (2020-10-06) 677 678This release adds major new features and bugfixes since the 1.7.4 release. 679We deem it moderate priority for upgrading. 680 681This release adds the long-awaited support for distributed hypertables to 682TimescaleDB. With 2.0, users can create distributed hypertables across 683multiple instances of TimescaleDB, configured so that one instance serves 684as an access node and multiple others as data nodes. All queries for a 685distributed hypertable are issued to the access node, but inserted data 686and queries are pushed down across data nodes for greater scale and 687performance. 688 689This release also adds support for user-defined actions allowing users to 690define actions that are run by the TimescaleDB automation framework. 691 692In addition to these major new features, the 2.0 branch introduces _breaking_ changes 693to APIs and existing features, such as continuous aggregates. These changes are not 694backwards compatible and might require changes to clients and/or scripts that rely on 695the previous APIs. Please review our updated documentation and do proper testing to 696ensure compatibility with your existing applications. 697 698The noticeable breaking changes in APIs are: 699- Redefined functions for policies 700- A continuous aggregate is now created with `CREATE MATERIALIZED VIEW` 701 instead of `CREATE VIEW` and automated refreshing requires adding a policy 702 via `add_continuous_aggregate_policy` 703- Redesign of informational views, including new (and more general) views for 704 information about policies and user-defined actions 705 706This release candidate is upgradable, so if you are on a previous release (e.g., 1.7.4) 707you can upgrade to the release candidate and later expect to be able to upgrade to the 708final 2.0 release. However, please carefully consider your compatibility requirements 709_before_ upgrading. 710 711**Major Features** 712* #1923 Add support for distributed hypertables 713* #2006 Add support for user-defined actions 714* #2435 Move enterprise features to community 715* #2437 Update Timescale License 716 717**Minor Features** 718* #2011 Constify TIMESTAMPTZ OP INTERVAL in constraints 719* #2105 Support moving compressed chunks 720 721**Bugfixes** 722* #1843 Improve handling of "dropped" chunks 723* #1886 Change ChunkAppend leader to use worker subplan 724* #2116 Propagate privileges from hypertables to chunks 725* #2263 Fix timestamp overflow in time_bucket optimization 726* #2270 Fix handling of non-reference counted TupleDescs in gapfill 727* #2325 Fix rename constraint/rename index 728* #2370 Fix detection of hypertables in subqueries 729* #2376 Fix caggs width expression handling on int based hypertables 730* #2416 Check insert privileges to create chunk 731* #2428 Allow owner change of continuous aggregate 732* #2436 Propagate grants in continuous aggregates 733 734## 2.0.0-beta6 (2020-09-14) 735 736**For beta releases**, upgrading from an earlier version of the 737extension (including previous beta releases) is not supported. 738 739This beta release includes breaking changes to APIs. The most 740notable changes since the beta-5 release are the following, which will 741be reflected in forthcoming documentation for the 2.0 release. 742 743* Existing information views were reorganized. Retrieving information 744about sizes and statistics was moved to functions. New views were added 745to expose information, which was previously available only internally. 746* New ability to create custom jobs was added. 747* Continuous aggregate API was redesigned. Its policy creation is separated 748from the view creation. 749* compress_chunk_policy and drop_chunk_policy were renamed to compression_policy and 750retention_policy. 751 752## 1.7.4 (2020-09-07) 753 754This maintenance release contains bugfixes since the 1.7.3 release. We deem it 755high priority for upgrading if TimescaleDB is deployed with replicas (synchronous 756or asynchronous). 757 758In particular the fixes contained in this maintenance release address an issue with 759running queries on compressed hypertables on standby nodes. 760 761**Bugfixes** 762* #2340 Remove tuple lock on select path 763 764## 1.7.3 (2020-07-27) 765 766This maintenance release contains bugfixes since the 1.7.2 release. We deem it high 767priority for upgrading. 768 769In particular the fixes contained in this maintenance release address issues in compression, 770drop_chunks and the background worker scheduler. 771 772**Bugfixes** 773* #2059 Improve infering start and stop arguments from gapfill query 774* #2067 Support moving compressed chunks 775* #2068 Apply SET TABLESPACE for compressed chunks 776* #2090 Fix index creation with IF NOT EXISTS for existing indexes 777* #2092 Fix delete on tables involving hypertables with compression 778* #2164 Fix telemetry installed_time format 779* #2184 Fix background worker scheduler memory consumption 780* #2222 Fix `negative bitmapset member not allowed` in decompression 781* #2255 Propagate privileges from hypertables to chunks 782* #2256 Fix segfault in chunk_append with space partitioning 783* #2259 Fix recursion in cache processing 784* #2261 Lock dimension slice tuple when scanning 785 786**Thanks** 787* @akamensky for reporting an issue with drop_chunks and ChunkAppend with space partitioning 788* @dewetburger430 for reporting an issue with setting tablespace for compressed chunks 789* @fvannee for reporting an issue with cache invalidation 790* @nexces for reporting an issue with ChunkAppend on space-partitioned hypertables 791* @PichetGoulu for reporting an issue with index creation and IF NOT EXISTS 792* @prathamesh-sonpatki for contributing a typo fix 793* @sezaru for reporting an issue with background worker scheduler memory consumption 794 795## 1.7.2 (2020-07-07) 796 797This maintenance release contains bugfixes since the 1.7.1 release. We deem it medium 798priority for upgrading. 799 800In particular the fixes contained in this maintenance release address bugs in continuous 801aggregates, drop_chunks and compression. 802 803**Features** 804* #1877 Add support for fast pruning of inlined functions 805 806**Bugfixes** 807* #1908 Fix drop_chunks with unique constraints when cascade_to_materializations is false 808* #1915 Check for database in extension_current_state 809* #1918 Unify chunk index creation 810* #1932 Change compression locking order 811* #1938 Fix gapfill locf treat_null_as_missing 812* #1982 Check for disabled telemetry earlier 813* #1984 Fix compression bit array left shift count 814* #1997 Add checks for read-only transactions 815* #2002 Reset restoring gucs rather than explicitly setting 'off' 816* #2028 Fix locking in drop_chunks 817* #2031 Enable compression for tables with compound foreign key 818* #2039 Fix segfault in create_trigger_handler 819* #2043 Fix segfault in cagg_update_view_definition 820* #2046 Use index tablespace during chunk creation 821* #2047 Better handling of chunk insert state destruction 822* #2049 Fix handling of PlaceHolderVar in DecompressChunk 823* #2051 Fix tuple concurrently deleted error with multiple continuous aggregates 824 825**Thanks** 826* @akamensky for reporting an issue with telemetry and an issue with drop_chunks 827* @darko408 for reporting an issue with decompression 828* @dmitri191 for reporting an issue with failing background workers 829* @eduardotsj for reporting an issue with indexes not inheriting tablespace settings 830* @fourseventy for reporting an issue with multiple continuous aggregrates 831* @fvannee for contributing optimizations for pruning inlined functions 832* @jflambert for reporting an issue with failing telemetry jobs 833* @nbouscal for reporting an issue with compression jobs locking referenced tables 834* @nicolai6120 for reporting an issue with locf and treat_null_as_missing 835* @nomanor for reporting an issue with expression index with table references 836* @olernov for contributing a fix for compressing tables with compound foreign keys 837* @werjo for reporting an issue with drop_chunks and unique constraints 838 839## 2.0.0-beta5 (2020-06-08) 840 841This release adds new functionality on distributed hypertables, 842including (but not limited to) basic LIMIT pushdown, manual chunk 843compression, table access methods storage options, SERIAL columns, 844and altering of the replication factor. 845This release only supports PG11 and PG12. Thus, PG9.6 and PG10 846are no longer supported. 847 848Note that the 2.0 major release will introduce breaking changes 849to user functions and APIs. In particular, this beta removes the 850cascade parameter from drop_chunks and changes the names of 851certain GUC parameters. Expect additional breaking changes to be 852introduced up until the 2.0 release. 853 854**For beta releases**, upgrading from an earlier version of the 855extension (including previous beta releases) is not supported. 856 857**Features** 858 859* #1877 Add support for fast pruning of inlined functions 860* #1922 Cleanup GUC names 861* #1923 Add repartition option on detach/delete_data_node 862* #1923 Allow ALTER TABLE SET on distributed hypertable 863* #1923 Allow SERIAL columns for distributed hypertables 864* #1923 Basic LIMIT push down support 865* #1923 Implement altering replication factor 866* #1923 Support compression on distributed hypertables 867* #1923 Support storage options for distributed hypertables 868* #1941 Change default prefix for distributed tables 869* #1943 Support table access methods for distributed hypertables 870* #1952 Remove cascade option from drop_chunks 871* #1955 Remove support for PG9.6 and PG10 872 873**Bugfixes** 874* #1915 Check for database in extension_current_state 875* #1918 Unify chunk index creation 876* #1923 Fix insert batch size calculation for prepared statements 877* #1923 Fix port conversion issue in add_data_node 878* #1932 Change compression locking order 879* #1938 Fix gapfill locf treat_null_as_missing 880 881**Thanks** 882* @dmitri191 for reporting an issue with failing background workers 883* @fvannee for optimizing pruning of inlined functions 884* @nbouscal for reporting an issue with compression jobs locking referenced tables 885* @nicolai6120 for reporting an issue with locf and treat_null_as_missing 886* @nomanor for reporting an issue with expression index with table references 887 888## 1.7.1 (2020-05-18) 889 890This maintenance release contains bugfixes since the 1.7.0 release. We deem it medium 891priority for upgrading and high priority for users with multiple continuous aggregates. 892 893In particular the fixes contained in this maintenance release address bugs in continuous 894aggregates with real-time aggregation and PostgreSQL 12 support. 895 896**Bugfixes** 897* #1834 Define strerror() for Windows 898* #1846 Fix segfault on COPY to hypertable 899* #1850 Fix scheduler failure due to bad next_start_time for jobs 900* #1851 Fix hypertable expansion for UNION ALL 901* #1854 Fix reorder policy job to skip compressed chunks 902* #1861 Fix qual pushdown for compressed hypertables where quals have casts 903* #1864 Fix issue with subplan selection in parallel ChunkAppend 904* #1868 Add support for WHERE, HAVING clauses with real time aggregates 905* #1869 Fix real time aggregate support for multiple continuous aggregates 906* #1871 Don't rely on timescaledb.restoring for upgrade 907* #1875 Fix hypertable detection in subqueries 908* #1884 Fix crash on SELECT WHERE NOT with empty table 909 910**Thanks** 911* @airton-neto for reporting an issue with queries over UNIONs of hypertables 912* @dhodyn for reporting an issue with UNION ALL queries 913* @frostwind for reporting an issue with casts in where clauses on compressed hypertables 914* @fvannee for reporting an issue with hypertable detection in inlined SQL functions and an issue with COPY 915* @hgiasac for reporting missing where clause with real time aggregates 916* @louisth for reporting an issue with real-time aggregation and multiple continuous aggregates 917* @michael-sayapin for reporting an issue with INSERTs and WHERE NOT EXISTS 918* @olernov for reporting and fixing an issue with compressed chunks in the reorder policy 919* @pehlert for reporting an issue with pg_upgrade 920 921## 1.7.0 (2020-04-16) 922 923This release adds major new features and bugfixes since the 1.6.1 release. 924We deem it moderate priority for upgrading. 925 926This release adds the long-awaited support for PostgreSQL 12 to TimescaleDB. 927 928This release also adds a new default behavior when querying continuous 929aggregates that we call real-time aggregation. A query on a continuous 930aggregate will now combine materialized data with recent data that has 931yet to be materialized. 932 933Note that only newly created continuous aggregates will have this 934real-time query behavior, although it can be enabled on existing 935continuous aggregates with a configuration setting as follows: 936 937ALTER VIEW continuous_view_name SET (timescaledb.materialized_only=false); 938 939This release also moves several data management lifecycle features 940to the Community version of TimescaleDB (from Enterprise), including 941data reordering and data retention policies. 942 943**Major Features** 944* #1456 Add support for PostgreSQL 12 945* #1685 Add support for real-time aggregation on continuous aggregates 946 947**Bugfixes** 948* #1665 Add ignore_invalidation_older_than to timescaledb_information.continuous_aggregates view 949* #1750 Handle undefined ignore_invalidation_older_than 950* #1757 Restrict watermark to max for continuous aggregates 951* #1769 Add rescan function to CompressChunkDml CustomScan node 952* #1785 Fix last_run_success value in continuous_aggregate_stats view 953* #1801 Include parallel leader in plan execution 954* #1808 Fix ts_hypertable_get_all for compressed tables 955* #1828 Ignore dropped chunks in compressed_chunk_stats 956 957**Licensing changes** 958* Reorder and policies around reorder and drop chunks are now 959 accessible to community users, not just enterprise 960* Gapfill functionality no longer warns about expired license 961 962**Thanks** 963 964* @t0k4rt for reporting an issue with parallel chunk append plans 965* @alxndrdude for reporting an issue when trying to insert into compressed chunks 966* @Olernov for reporting and fixing an issue with show_chunks and drop_chunks for compressed hypertables 967* @mjb512 for reporting an issue with INSERTs in CTEs in cached plans 968* @dmarsh19 for reporting and fixing an issue with dropped chunks in compressed_chunk_stats 969 970## 1.6.1 (2020-03-18) 971 972This maintenance release contains bugfixes since the 1.6.0 release. We deem it medium 973priority for upgrading. 974 975In particular the fixes contained in this maintenance release address bugs in continuous 976aggregates, time_bucket_gapfill, partial index handling and drop_chunks. 977 978**For this release only**, you will need to restart the database after upgrade before 979restoring a backup. 980 981**Minor Features** 982* #1666 Support drop_chunks API for continuous aggregates 983* #1711 Change log level for continuous aggregate materialization messages 984 985**Bugfixes** 986* #1630 Print notice for COPY TO on hypertable 987* #1648 Drop chunks from materialized hypertable 988* #1668 Cannot add dimension if hypertable has empty chunks 989* #1673 Fix crash when interrupting create_hypertable 990* #1674 Fix time_bucket_gapfill's interaction with GROUP BY 991* #1686 Fix order by queries on compressed hypertables that have char segment by column 992* #1687 Fix issue with disabling compression when foreign keys are present 993* #1688 Handle many BGW jobs better 994* #1698 Add logic to ignore dropped chunks in hypertable_relation_size 995* #1704 Fix bad plan for continuous aggregate materialization 996* #1709 Prevent starting background workers with NOLOGIN 997* #1713 Fix miscellaneous background worker issues 998* #1715 Fix issue with overly aggressive chunk exclusion in outer joins 999* #1719 Fix restoring/scheduler entrypoint to avoid BGW death 1000* #1720 Add scheduler cache invalidations 1001* #1727 Fix compressing INTERVAL columns 1002* #1728 Handle Sort nodes in ConstraintAwareAppend 1003* #1730 Fix partial index handling on hypertables 1004* #1739 Use release OpenSSL DLLs for debug builds on Windows 1005* #1740 Fix invalidation entries from multiple caggs on same hypertable 1006* #1743 Fix continuous aggregate materialization timezone handling 1007* #1748 Fix remove_drop_chunks_policy for continuous aggregates 1008* #1756 Fix handling of dropped chunks in compression background worker 1009 1010**Thanks** 1011* @RJPhillips01 for reporting an issue with drop chunks. 1012* @b4eEx for reporting an issue with disabling compression. 1013* @darko408 for reporting an issue with order by on compressed hypertables 1014* @mrechte for reporting an issue with compressing INTERVAL columns 1015* @tstaehli for reporting an issue with ConstraintAwareAppend 1016* @chadshowalter for reporting an issue with partial index on hypertables 1017* @geoffreybennett for reporting an issue with create_hypertable when interrupting operations 1018* @alxndrdude for reporting an issue with background workers during restore 1019* @zcavaliero for reporting and fixing an issue with dropped columns in hypertable_relation_size 1020* @ismailakpolat for reporting an issue with cagg materialization on hypertables with TIMESTAMP column 1021 1022## 1.6.0 (2020-01-14) 1023 1024This release adds major new features and bugfixes since the 1.5.1 release. 1025We deem it moderate priority for upgrading. 1026 1027The major new feature in this release allows users to keep the aggregated 1028data in a continuous aggregate while dropping the raw data with drop_chunks. 1029This allows users to save storage by keeping only the aggregates. 1030 1031The semantics of the refresh_lag parameter for continuous aggregates has 1032been changed to be relative to the current timestamp instead of the maximum 1033value in the table. This change requires that an integer_now func be set on 1034hypertables with integer-based time columns to use continuous aggregates on 1035this table. 1036 1037We added a timescaledb.ignore_invalidation_older_than parameter for continuous 1038aggregates. This parameter accept a time-interval (e.g. 1 month). If set, 1039it limits the amount of time for which to process invalidation. Thus, if 1040timescaledb.ignore_invalidation_older_than = '1 month', then any modifications 1041for data older than 1 month from the current timestamp at modification time may 1042not cause continuous aggregate to be updated. This limits the amount of work 1043that a backfill can trigger. By default, all invalidations are processed. 1044 1045**Major Features** 1046* #1589 Allow drop_chunks while keeping continuous aggregates 1047 1048**Minor Features** 1049* #1568 Add ignore_invalidation_older_than option to continuous aggs 1050* #1575 Reorder group-by clause for continuous aggregates 1051* #1592 Improve continuous agg user messages 1052 1053**Bugfixes** 1054* #1565 Fix partial select query for continuous aggregate 1055* #1591 Fix locf treat_null_as_missing option 1056* #1594 Fix error in compression constraint check 1057* #1603 Add join info to compressed chunk 1058* #1606 Fix constify params during runtime exclusion 1059* #1607 Delete compression policy when drop hypertable 1060* #1608 Add jobs to timescaledb_information.policy_stats 1061* #1609 Fix bug with parent table in decompression 1062* #1624 Fix drop_chunks for ApacheOnly 1063* #1632 Check for NULL before dereferencing variable 1064 1065**Thanks** 1066* @optijon for reporting an issue with locf treat_null_as_missing option 1067* @acarrera42 for reporting an issue with constify params during runtime exclusion 1068* @ChristopherZellermann for reporting an issue with the compression constraint check 1069* @SimonDelamare for reporting an issue with joining hypertables with compression 1070 1071## 2.0.0-beta4 (2019-12-19) 1072 1073**For beta releases**, upgrading from an earlier version of the 1074extension (including previous beta releases) is not supported. 1075 1076This release includes user experience improvements for managing data 1077nodes, more efficient statistics collection for distributed 1078hypertables, and miscellaneous fixes and improvements. 1079 1080## 1.5.1 (2019-11-12) 1081 1082This maintenance release contains bugfixes since the 1.5.0 release. We deem it low 1083priority for upgrading. 1084 1085In particular the fixes contained in this maintenance release address potential 1086segfaults and no other security vulnerabilities. The bugfixes are related to bloom 1087indexes and updates from previous versions. 1088 1089**Bugfixes** 1090* #1523 Fix bad SQL updates from previous updates 1091* #1526 Fix hypertable model 1092* #1530 Set active snapshots in multi-xact index create 1093 1094**Thanks** 1095* @84660320 for reporting an issue with bloom indexes 1096* @gumshoes @perhamm @jermudgeon @gmisagm for reporting the issue with updates 1097 1098## 2.0.0-beta3 (2019-11-05) 1099 1100**For beta releases**, upgrading from an earlier version of the 1101extension (including previous beta releases) is not supported. 1102 1103This release improves performance for queries executed on distributed 1104hypertables, fixes minor issues and blocks a number of SQL API 1105functions, which are not supported on distributed hypertables. It also 1106adds information about distributed databases in the telemetry. 1107 1108## 2.0.0-beta2 (2019-10-22) 1109 1110This release introduces *distributed hypertables*, a major new 1111feature that allows hypertables to scale out across multiple nodes for 1112increased performance and fault tolerance. Please review the 1113documentation to learn how to configure and use distributed 1114hypertables and what current limitations are. 1115 1116## 1.5.0 (2019-10-31) 1117 1118This release adds major new features and bugfixes since the 1.4.2 release. 1119We deem it moderate priority for upgrading. 1120 1121This release adds compression as a major new feature. 1122Multiple type-specific compression options are available in this release 1123(including DeltaDelta with run-length-encoding for integers and 1124timestamps; Gorilla compression for floats; dictionary-based compression 1125for any data type, but specifically for low-cardinality datasets; 1126and other LZ-based techniques). Individual columns can be compressed with 1127type-specific compression algorithms as Postgres' native row-based format 1128are rolled up into columnar-like arrays on a per chunk basis. 1129The query planner then handles transparent decompression for compressed 1130chunks at execution time. 1131 1132This release also adds support for basic data tiering by supporting 1133the migration of chunks between tablespaces, as well as support for 1134parallel query coordination to the ChunkAppend node. 1135Previously ChunkAppend would rely on parallel coordination in the 1136underlying scans for parallel plans. 1137 1138More information can be found on [our blog](https://blog.timescale.com/blog/building-columnar-compression-in-a-row-oriented-database) 1139or in this [tutorial](https://docs.timescale.com/latest/tutorials/compression-tutorial) 1140 1141**For this release only**, you will need to restart the database before running 1142`ALTER EXTENSION` 1143 1144**Major Features** 1145* #1393 Moving chunks between different tablespaces 1146* #1433 Make ChunkAppend parallel aware 1147* #1434 Introducing native compression, multiple compression algorithms, and hybrid row/columnar projections 1148 1149**Minor Features** 1150* #1471 Allow setting reloptions on chunks 1151* #1479 Add next_start option to alter_job_schedule 1152* #1481 Add last_successful_finish to bgw_job_stats 1153 1154**Bugfixes** 1155* #1444 Prevent LIMIT pushdown in JOINs 1156* #1447 Fix runtime exclusion memory leak 1157* #1464 Fix ordered append with expressions in ORDER BY clause with space partitioning 1158* #1476 Fix logic for BGW rescheduling 1159* #1477 Fix gapfill treat_null_as_missing 1160* #1493 Prevent recursion in invalidation processing 1161* #1498 Fix overflow in gapfill's interpolate 1162* #1499 Fix error for exported_uuid in pg_restore 1163* #1503 Fix bug with histogram function in parallel 1164 1165**Thanks** 1166* @dhyun-obsec for reporting an issue with pg_restore 1167* @rhaymo for reporting an issue with interpolate 1168* @optijon for reporting an issue with locf treat_null_as_missing 1169* @fvannee for reporting an issue with runtime exclusion 1170* @Lectem for reporting an issue with histograms 1171* @rogerdwan for reporting an issue with BGW rescheduling 1172* @od0 for reporting an issue with alter_job_schedule 1173 1174## 1.4.2 (2019-09-11) 1175 1176This maintenance release contains bugfixes since the 1.4.1 release. We deem it medium 1177priority for upgrading. 1178 1179In particular the fixes contained in this maintenance release address 2 potential 1180segfaults and no other security vulnerabilities. The bugfixes are related to 1181background workers, OUTER JOINs, ordered append on space partitioned hypertables 1182and expression indexes. 1183 1184**Bugfixes** 1185* #1327 Fix chunk exclusion with ordered append 1186* #1390 Fix deletes of background workers while a job is running 1187* #1392 Fix cagg_agg_validate expression handling (segfault) 1188* #1408 Fix ChunkAppend space partitioning support for ordered append 1189* #1420 Fix OUTER JOIN qual propagation 1190* #1422 Fix background worker error handling (segfault) 1191* #1424 Fix ChunkAppend LIMIT pushdown 1192* #1429 Fix expression index creation 1193 1194**Thanks** 1195* @shahidhk for reporting an issue with OUTER JOINs 1196* @cossbow and @xxGL1TCHxx for reporting reporting issues with ChunkAppend and space partitioning 1197* @est for reporting an issue with CASE expressions in continuous aggregates 1198* @devlucasc for reporting the issue with deleting a background worker while a job is running 1199* @ryan-shaw for reporting an issue with expression indexes on hypertables with dropped columns 1200 1201## 1.4.1 (2019-08-01) 1202 1203This maintenance release contains bugfixes since the 1.4.0 release. We deem it medium 1204priority for upgrading. 1205 1206In particular the fixes contained in this maintenance release address 2 potential 1207segfaults and no other security vulnerabilities. The bugfixes are related to queries 1208with prepared statements, PL/pgSQL functions and interoperability with other extensions. 1209More details below. 1210 1211**Bugfixes** 1212* #1362 Fix ConstraintAwareAppend subquery exclusion 1213* #1363 Mark drop_chunks as VOLATILE and not PARALLEL SAFE 1214* #1369 Fix ChunkAppend with prepared statements 1215* #1373 Only allow PARAM_EXTERN as time_bucket_gapfill arguments 1216* #1380 Handle Result nodes gracefully in ChunkAppend 1217 1218**Thanks** 1219* @overhacked for reporting an issue with drop_chunks and parallel queries 1220* @fvannee for reporting an issue with ConstraintAwareAppend and subqueries 1221* @rrb3942 for reporting a segfault with ChunkAppend and prepared statements 1222* @mchesser for reporting a segfault with time_bucket_gapfill and subqueries 1223* @lolizeppelin for reporting and helping debug an issue with ChunkAppend and Result nodes 1224 1225## 1.4.0 (2019-07-18) 1226 1227This release contains major new functionality for continuous aggregates 1228and adds performance improvements for analytical queries. 1229 1230In version 1.3.0 we added support for continuous aggregates which 1231was initially limited to one continuous aggregate per hypertable. 1232With this release, we remove this restriction and allow multiple 1233continuous aggregates per hypertable. 1234 1235This release adds a new custom node ChunkAppend that can perform 1236execution time constraint exclusion and is also used for ordered 1237append. Ordered append no longer requires a LIMIT clause and now 1238supports space partitioning and ordering by time_bucket. 1239 1240**Major features** 1241* #1270 Use ChunkAppend to replace Append nodes 1242* #1257 Support for multiple continuous aggregates 1243 1244**Minor features** 1245* #1181 Remove LIMIT clause restriction from ordered append 1246* #1273 Propagate quals to joined hypertables 1247* #1317 Support time bucket functions in Ordered Append 1248* #1331 Add warning message for REFRESH MATERIALIZED VIEW 1249* #1332 Add job statistics columns to timescaledb_information.continuous_aggregate_stats view 1250* #1326 Add architecture and bit size to telemetry 1251 1252**Bugfixes** 1253* #1288 Do not remove Result nodes with one-time filter 1254* #1300 Fix telemetry report return value 1255* #1339 Fix continuous agg catalog table insert failure 1256* #1344 Update continuous agg bgw job start time 1257 1258**Thanks** 1259* @ik9999 for reporting a bug with continuous aggregates and negative refresh lag 1260 1261## 1.3.2 (2019-06-24) 1262 1263This maintenance release contains bug and security fixes since the 1.3.1 release. We deem it moderate-to-high priority for upgrading. 1264 1265This release fixes some security vulnerabilities, specifically related to being able to elevate role-based permissions by database users that already have access to the database. We strongly recommend that users who rely on role-based permissions upgrade to this release as soon as possible. 1266 1267**Security Fixes** 1268* #1311 Fix role-based permission checking logic 1269 1270**Bugfixes** 1271* #1315 Fix potentially lost invalidations in continuous aggs 1272* #1303 Fix handling of types with custom time partitioning 1273* #1299 Arm32: Fix Datum to int cast issue 1274* #1297 Arm32: Fix crashes due to long handling 1275* #1019 Add ARM32 tests on travis 1276 1277**Thanks** 1278* @hedayat for reporting the error with handling of types with custom time partitioning 1279 1280## 1.3.1 (2019-06-10) 1281 1282This maintenance release contains bugfixes since the 1.3.0 release. 1283We deem it low-to-moderate priority for upgrading. 1284 1285In particular, the fixes contained in this maintenance release do not address any 1286security vulnerabilities, while the only one affecting system stability is related 1287to TimescaleDB running on PostgreSQL 11. More details below. 1288 1289**Bugfixes** 1290* #1220 Fix detecting JOINs for continuous aggs 1291* #1221 Fix segfault in VACUUM on PG11 1292* #1228 ARM32 Fix: Pass int64 using Int64GetDatum when a Datum is required 1293* #1232 Allow Param as time_bucket_gapfill arguments 1294* #1236 Stop preventing REFRESH in transaction blocks 1295* #1283 Fix constraint exclusion for OUTER JOIN 1296 1297**Thanks** 1298* @od0 for reporting an error with continuous aggs and JOINs 1299* @rickbatka for reporting an error when using time_bucket_gapfill in functions 1300* @OneMoreSec for reporting the bug with VACUUM 1301* @dvdrozdov @od0 @t0k4rt for reporting the issue with REFRESH in transaction blocks 1302* @mhagander and @devrimgunduz for suggesting adding a CMAKE flag to control the default telemetry level 1303 1304## 1.3.0 (2019-05-06) 1305 1306This release contains major new functionality that we call continuous aggregates. 1307 1308Aggregate queries which touch large swathes of time-series data can take a long 1309time to compute because the system needs to scan large amounts of data on every 1310query execution. Our continuous aggregates continuously calculate the 1311results of a query in the background and materialize the results. Queries to the 1312continuous aggregate view are then significantly faster as they do not need to 1313touch the raw data in the hypertable, instead using the pre-computed aggregates 1314in the view. 1315 1316Continuous aggregates are somewhat similar to PostgreSQL materialized 1317views, but unlike a materialized view, continuous 1318aggregates do not need to be refreshed manually; the view will be refreshed 1319automatically in the background as new data is added, or old data is 1320modified. Additionally, it does not need to re-calculate all of the data on 1321every refresh. Only new and/or invalidated data will be calculated. Since this 1322re-aggregation is automatic, it doesn’t add any maintenance burden to your 1323database. 1324 1325Our continuous aggregate approach supports high-ingest rates by avoiding the 1326high-write amplification associated with trigger-based approaches. Instead, 1327we use invalidation techniques to track what data has changed, and then correct 1328the materialized aggregate the next time that the automated process executes. 1329 1330More information can be found on [our docs overview](http://docs.timescale.com/using-timescaledb/continuous-aggregates) 1331or in this [tutorial](http://docs.timescale.com/tutorials/continuous-aggs-tutorial). 1332 1333**Major Features** 1334* #1184 Add continuous aggregate functionality 1335 1336**Minor Features** 1337* #1005 Enable creating indexes with one transaction per chunk 1338* #1007 Remove hypertable parent from query plans 1339* #1038 Infer time_bucket_gapfill arguments from WHERE clause 1340* #1062 Make constraint aware append parallel safe 1341* #1067 Add treat_null_as_missing option to locf 1342* #1112 Add support for window functions to gapfill 1343* #1130 Add support for cross datatype chunk exclusion for time types 1344* #1134 Add support for partitionwise aggregation 1345* #1153 Add time_bucket support to chunk exclusion 1346* #1170 Add functions for turning restoring on/off and setting license key 1347* #1177 Add transformed time_bucket comparison to quals 1348* #1182 Enable optimizing SELECTs within INSERTs 1349* #1201 Add telemetry for policies: drop_chunk & reorder 1350 1351**Bugfixes** 1352* #1010 Add session locks to CLUSTER 1353* #1115 Fix ordered append optimization for join queries 1354* #1123 Fix gapfill with prepared statements 1355* #1125 Fix column handling for columns derived from GROUP BY columns 1356* #1132 Adjust ordered append path cost 1357* #1155 Limit initial max_open_chunks_per_insert to PG_INT16_MAX 1358* #1167 Fix postgres.conf ApacheOnly license 1359* #1183 Handle NULL in a check constraint name 1360* #1195 Fix cascade in scheduled drop chunks 1361* #1196 Fix UPSERT with prepared statements 1362 1363**Thanks** 1364* @spickman for reporting a segfault with ordered append and JOINs 1365* @comicfans for reporting a performance regression with ordered append 1366* @Specter-Y for reporting a segfault with UPSERT and prepared statements 1367* @erthalion submitting a bugfix for a segfault with validating check constraints 1368 1369## 1.2.2 (2019-03-14) 1370 1371This release contains bugfixes. 1372 1373**Bugfixes** 1374* #1097 Adjust ordered append plan cost 1375* #1079 Stop background worker on ALTER DATABASE SET TABLESPACE and CREATE DATABASE WITH TEMPLATE 1376* #1088 Fix ON CONFLICT when using prepared statements and functions 1377* #1089 Fix compatibility with extensions that define planner_hook 1378* #1057 Fix chunk exclusion constraint type inference 1379* #1060 Fix sort_transform optimization 1380 1381**Thanks** 1382* @esatterwhite for reporting a bug when using timescaledb with zombodb 1383* @eeeebbbbrrrr for fixing compatibility with extensions that also define planner_hook 1384* @naquad for reporting a segfault when using ON conflict in stored procedures 1385* @aaronkaplan for reporting an issue with ALTER DATABASE SET TABLESPACE 1386* @quetz for reporting an issue with CREATE DATABASE WITH TEMPLATE 1387* @nbouscal for reporting an issue with ordered append resulting in bad plans 1388 1389## 1.2.1 (2019-02-11) 1390 1391This release contains bugfixes. 1392 1393**Notable commits** 1394* [2f6b58a] Fix tlist on hypertable inserts inside CTEs 1395* [7973b4a] Stop background worker on rename database 1396* [32cc645] Fix loading the tsl license in parallel workers 1397 1398**Thanks** 1399 1400* @jamessewell for reporting and helping debug a segfault in last() [034a0b0] 1401* @piscopoc for reporting a segfault in time_bucket_gapfill [e6c68f8] 1402 1403## 1.2.0 (2019-01-29) 1404 1405**This is our first release to include Timescale-Licensed features, in addition to new Apache-2 capabilities.** 1406 1407We are excited to be introducing new time-series analytical functions, advanced data lifecycle management capabilities, and improved performance. 1408- **Time-series analytical functions**: Users can now use our `time_bucket_gapfill` function, to write complex gapfilling, last object carried forward, and interpolation queries. 1409- **Advanced data lifecycle management**: We are introducing scheduled policies, which use our background worker framework to manage time-series data. In this release, we support scheduled `drop_chunks` and `reorder`. 1410- **Improved performance**: We added support for ordered appends, which optimize a large range of queries - particularly those that are ordered by time and contain a LIMIT clause. Please note that ordered appends do not support ordering by `time_bucket` at this time. 1411- **Postgres 11 Support**: We added beta support for PG11 in 1.1.0. We're happy to announce that our PG11 support is now out of beta, and fully supported. 1412 1413This release adds code under a new license, LICENSE_TIMESCALE. This code can be found in `tsl`. 1414 1415**For this release only**, you will need to restart the database before running 1416`ALTER EXTENSION` 1417 1418**Notable commits** 1419 1420* [a531733] switch cis state when we switch chunks 1421* [5c6b619] Make a copy of the ri_onConflict object in PG11 1422* [61e524e] Make slot for upserts be update for every chunk switch 1423* [8a7c127] Fix for ExecSlotDescriptor during upserts 1424* [fa61613] Change time_bucket_gapfill argument names 1425* [01be394] Fix bgw_launcher restart when failing during launcher setup 1426* [7b3929e] Add ordered append optimization 1427* [a69f84c] Fix signal processing in background workers 1428* [47b5b7d] Log which chunks are dropped by background workers 1429* [4e1e15f] Add reorder command 1430* [2e4bb5d] Recluster and drop chunks scheduling code 1431* [ef43e52] Add alter_policy_schedule API function 1432* [5ba740e] Add gapfill query support 1433* [be7c74c] Add logic for automatic DB maintenance functions 1434* [4ff6ac7] Initial Timescale-Licensed-Module and License-Key Implementation 1435* [fc42539] Add new top-level licensing information 1436* [31e9c5b] Fix time column handling in get_create_command 1437* [1b8ceca] Avoid loading twice in parallel workers and load only from $libdir 1438* [76d7875] Don't throw errors when extension is loaded but not installed yet 1439* [eecd845] Add Timescale License (TSL) 1440* [4b42b30] Free ChunkInsertStates when the es_per_tuple_exprcontext is freed 1441 1442**Thanks** 1443 1444* @fordred for reporting our docker-run.sh script was out of date 1445* @JpWebster for reporting a deadlock between reads an drop_chunks 1446* @chickenburgers for reporting an issue with our CMake 1447* Dimtrj and Asbjørn D., on slack, for creating a reproducible testcase for an UPSERT bug 1448* @skebanga for reporting a loader bug 1449 1450 1451## 1.1.1 (2018-12-20) 1452 1453This release contains bugfixes. 1454 1455**High-level changes** 1456* Fix issue when upgrading with pg_upgrade 1457* Fix a segfault that sometimes appeared in long COPYs 1458* Other bug and stability fixes 1459 1460**Notable commits** 1461 1462* [f99b540] Avoid loading twice in parallel workers and load only from $libdir 1463* [e310f7d] Don't throw errors when extension is loaded but not installed yet 1464* [8498416] Free ChunkInsertStates when the es_per_tuple_exprcontext is freed 1465* [937eefe] Set C standard to C11 1466 1467**Thanks** 1468 1469* @costigator for reporting the pg_upgrade bug 1470* @FireAndIce68 for reporting the parallel workers issue 1471* @damirda for reporting the copy bug 1472 1473## 1.1.0 (2018-12-13) 1474 1475Our 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. 1476 1477**Potential breaking changes** 1478- 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. 1479 1480**Notable Commits** 1481 1482* [71f3a0c] Fix Datum conversion issues 1483* [5aa1eda] Refactor compatibility functions and code to support PG11 1484* [e4a4f8e] Add support for functions on open (time) dimensions 1485* [ed5067c] Fix interval_from_now_to_internal timestamptz handling 1486* [019971c] Optimize FIRST/LAST aggregate functions 1487* [83014ee] Implement drop_chunks in C 1488* [9a34028] Implement show_chunks in C and have drop_chunks use it 1489* [d461959] Add view to show hypertable information 1490* [35dee48] Remove version-checking from client-side 1491* [5b6a5f4] Change size utility and job functions to STRICT 1492* [7e55d91] Add checks for NULL arguments to DDL functions 1493* [c1db608] Fix upsert TLE translation when mapping variable numbers 1494* [55a378e] Check extension exists for DROP OWNED and DROP EXTENSION 1495* [0c8c085] Exclude unneeded chunks for IN/ANY/ALL operators 1496* [f27c0a3] Move int time_bucket functions with offset to C 1497 1498**Thanks** 1499* @did-g for some memory improvements 1500 1501## 1.0.1 (2018-12-05) 1502 1503This commit contains bugfixes and optimizations for 1.0.0 1504 1505**Notable commits** 1506 1507* [6553aa4] Make a number of size utility functions to `STRICT` 1508* [bb1d748] Add checks for NULL arguments to `set_adaptive_chunking`, `set_number_partitions`, `set_chunk_time_interval`, `add_dimension`, and `create_hypertable` 1509* [a534ed4] Fix upsert TLE translation when mapping variable numbers 1510* [aecd55b] Check extension exists for DROP OWNED and DROP EXTENSION 1511 1512## 1.0.0 (2018-10-30) 1513 1514**This is our 1.0 release!** 1515 1516For 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). 1517 1518**Thanks** 1519To 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! 1520 1521**Potential breaking changes** 1522* 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. 1523* 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. 1524 1525 1526## 1.0.0-rc3 (2018-10-18) 1527 1528This 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. 1529 1530**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! 1531 1532**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. 1533 1534**Notable commits** 1535* [f7ba13d] Handle and test tablespace changes to and from the default tablespace 1536* [9ccda0d] Start stopped workers on restart message 1537* [3e3bb0c] Add bool created to create_hypertable and add_dimension return value 1538* [53ff656] Add state machine and polling to launcher 1539* [d9b2dfe] Change return value of add_dimension to TABLE 1540* [19299cf] Make all time_bucket function STRICT 1541* [297d885] Add a version of time_bucket that takes an origin 1542* [e74be30] Move time_bucket epoch to a Monday 1543* [46564c1] Handle ALTER SCHEMA RENAME properly 1544* [a83e283] Change return value of create_hypertable to TABLE 1545* [aea7c7e] Add GRANTs to update script for pg_dump to work 1546* [119963a] Replace hardcoded bash path in shell scripts 1547 1548**Thanks** 1549* @jesperpedersen for several PRs that help improve documentation and some rough edges 1550* @did-g for improvements to our build process 1551* @skebanga for reporting an issue with ALTER SCHEMA RENAME 1552* @p-alik for suggesting a way to improve our bash scripts' portability 1553* @mx781 and @HeikoOnnebrink for reporting an issues with permission GRANTs and ownership when using pg_dump 1554 1555 1556## 1.0.0-rc2 (2018-09-27) 1557 1558This 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. 1559 1560**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! 1561 1562**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. 1563 1564**Notable commits** 1565* [b43574f] Switch 'IO' error prefix to 'TS' 1566* [9747885] Prefix public C functions with ts_ 1567* [39510c3] Block unknown alter table commands on hypertables 1568* [2408a83] Add support for ALTER TABLE SET TABLESPACE on hypertables 1569* [41d9846] Enclose macro replacement list and arguments in parentheses 1570* [cc59d51] Replace macro LEAST_TIMESTAMP by a static function 1571* [281f363] Modify telemetry BGW to run every hour the first 12 hours 1572* [a09b3ec] Add pg_isolation_regress support to the timescale build system 1573* [2c267ba] Handle SIGTERM/SIGINT asynchronously 1574* [5377e2d] Fix use-after-free bug for connections in the telemetry BGW 1575* [248f662] Fix pg_dump for unprivileged users 1576* [193fa4a] Stop background workers when extension is DROP OWNED 1577* [625e3fa] Fix negative value handling in int time_bucket 1578* [a33224b] Add loader API version function 1579* [18b8068] Remove unnecessary index on dimension metadata table 1580* [d09405d] Fix adaptive chunking when hypertables have multiple dimensions 1581* [a81dc18] Block signals when writing to the log table in tests 1582* [d5a6392] Fix adaptive chunking so it chooses correct index 1583* [3489cca] Fix sigterm handling in background jobs 1584* [2369ae9] Remove !WIN32 for sys/time.h and sys/socket.h, pg provides fills 1585* [ebbb4ae] Also add sys/time.h for NetBSD. Fixes #700 1586* [1a9ae17] Fix build on FreeBSD wrt sockets 1587* [8225cd2] Remove (redefined) macro PG_VERSION and replace with PACKAGE_VERSION 1588* [2a07cf9] Release SpinLock even when we're about to Error due to over-decrementing 1589* [b2a15b8] Make sure DB schedulers are not decremented if they were never incremented 1590* [6731c86] Add support for pre-release version checks 1591 1592**Thanks** 1593* @did-g for an improvement to our macros to make compiliers happy 1594* @mx781 and @HeikoOnnebrink for reporting issues with working with pg_dump fully 1595* @znbang and @timolson for reporting a bug that was causing telemetry to fail 1596* @alanhamlett for reporting an issue with spinlocks when handling SIGTERMs 1597* @oldgreen for reporting an issue with building on NetBSD 1598* @kev009 for fixing build issues on FreeBSD and NetBSD 1599* All the others who have helped us test and used these RCs! 1600 1601 1602## 0.12.1 (2018-09-19) 1603 1604**High-level changes** 1605 1606* Fixes for a few issues related to the new scheduler and background worker framework. 1607* Fixed bug in adaptive chunking where the incorrect index could be used for determining the current interval. 1608* Improved testing, code cleanup, and other housekeeping. 1609 1610**Notable commits** 1611* [0f6f7fc] Fix adaptive chunking so it chooses correct index 1612* [3ed79ed] Fix sigterm handling in background jobs 1613* [bea098f] Remove !WIN32 for sys/time.h and sys/socket.h, pg provides fills 1614* [9f62a1a] Also add sys/time.h for NetBSD. Fixes #700 1615* [95a982f] Fix build on FreeBSD wrt sockets 1616* [fcb4a79] Remove (redefined) macro PG_VERSION and replace with PACKAGE_VERSION 1617* [2634897] Release SpinLock even when we're about to Error due to over-decrementing 1618* [1f30dbb] Make sure DB schedulers are not decremented if they were never incremented 1619* [f518cd0] Add support for pre-release version checks 1620* [acebaea] Don't start schedulers for template databases. 1621* [f221a12] Fix use-after-free bug in telemetry test 1622* [0dc5bbb] Use pg_config bindir directory for pg executables 1623 1624**Thanks** 1625* @did-g for reporting a use-after-free bug in a test and for improving the robustness of another test 1626* @kev009 for fixing build issues on FreeBSD and NetBSD 1627 1628 1629## 1.0.0-rc1 (2018-09-12) 1630 1631This 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. 1632 1633**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! 1634 1635 1636**Notable commits** 1637* [acebaea] Don't start schedulers for template databases. 1638* [f221a12] Fix use-after-free bug in telemetry test 1639* [2092b2a] Fix unused variable warning in Release build 1640* [0dc5bbb] Use pg_config bindir directory for pg executables 1641 1642**Thanks** 1643* @did-g for reporting a use-after-free bug in a test and for improving the robustness of another test 1644 1645 1646## 0.12.0 (2018-09-10) 1647 1648**High-level changes** 1649 1650*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. 1651 1652*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. 1653 1654*Continued hardening:* This release addresses several issues around more robust backup and recovery, handling large numbers of chunks, and additional test coverage. 1655 1656**Notable commits** 1657 1658* [efab2aa] Fix net lib functionality on Windows and improve error handling 1659* [71589c4] Fix issues when OpenSSL is not available 1660* [a43cd04] Call the main telemetry function inside BGW executor 1661* [faf481b] Add telemetry functionality 1662* [45a2b76] Add new Connection and HTTP libraries 1663* [b6fe657] Fix max_background_workers guc, errors on EXEC_BACKEND and formatting 1664* [5d8c7cc] Add a scheduler for background jobs 1665* [55a7141] Implement a cluster-wide launcher for background workers 1666* [5bc705f] Update bootstrap to check for cmake and exit if not found 1667* [98e56dd] Improve show_indexes test func to be more platform agnostic 1668* [b928caa] Note how to recreate templated files 1669* [8571e41] Use AttrNumberGetAttrOffset instead of Anum_name - 1 for array indexing 1670* [d1710ef] Improve regression test script to cleanup more thoroughly 1671* [fc3677f] Reduce number of open chunks per insert 1672* [027b7b2] Hide extension symbols by default on Unix platforms 1673* [6a3abe5] Fix SubspaceStore to ensure max_open_chunks_per_insert is obeyed 1674 1675**Thanks** 1676 1677@EvanCarroll for updates to the bootstrap script to check for cmake 1678 1679 1680## 0.11.0 (2018-08-08) 1681 1682**High-level changes** 1683 1684* **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 test 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. 1685* **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. 1686* Support for additional types of time columns, if they are binary compatible (thanks @fvannee!). 1687 1688**Notable commits** 1689 1690* [9ba2e81] Fix segfault with custom partition types 1691* [7e9bf25] Change default chunk size to one week 1692* [506fa18] Add tests for custom types 1693* [1d9ade7] add support for other types as timescale column 1694* [570f2f8] Validate parameters when creating partition info 1695* [148f2da] Use shared_buffers as the available cache memory 1696* [e0a15c1] Add additional comments to explain algorithm 1697* [d81dccb] Set the default chunk_time_interval to 1 day with adaptive chunking enabled 1698* [2e7b32c] Add WARNING when doing min-max heap scan for adaptive chunking 1699* [6b452a8] Update adaptive chunk algorithm to handle very small chunks. 1700* [9c9cdca] Add support for adaptive chunk sizing 1701* [7f8d17d] Handle DEFERRED and VALID options for constraints 1702* [0c5c21b] Block using rules with hypertables 1703* [37142e9] Block INSERTs on a hypertable's root table 1704* [4daf087] Fix some ALTER TABLE corner case bugs on hypertables 1705* [122f5f1] Block replica identity usage with hypertables 1706* [8bf552e] Block unlogged tables from being used as hypertables 1707* [a8c637e] Create aggregate functions only once to avoid dependency issues 1708* [a97f2af] Add support for custom hypertable dimension types 1709* [dfe026c] Refactor create_hypertable rel access. 1710* [ed379c3] Validate existing indexes before adding a new dimension 1711* [1f2d276] Fix and improve show_indexes test support function 1712* [77b0035] Enforce IMMUTABLE partitioning functions 1713* [cbc5e60] Block NO INHERIT constraints on hypertables 1714* [e362e9c] Block mixing hypertables with postgres inheritance 1715* [011f12b] Add support for CLUSTER ON and SET WITHOUT CLUSTER 1716* [e947c6b] Improve handling of column settings 1717* [fc4957b] Update statistics on parent table when doing ANALYZE 1718* [82942bf] Enable backwards compatibility for loader for 0.9.0 and 0.9.1 1719 1720**Thanks** 1721 1722* @Ngalstyan4 and @hjsuh18, our interns, for all of the PRs this summer 1723* @fvannee for a PR adding support for binary compatible custom types as a time column 1724* @fmacelw for reporting a bug where first() and last() hold reference across extension update 1725* @soccerdroid for reporting a corner case bug in ALTER TABLE 1726 1727 1728## 0.10.1 (2018-07-12) 1729 1730**High-level changes** 1731* Improved memory management for long-lived connections. 1732* Fixed handling of dropping triggers that would lead to orphaned references in pg_depend. 1733* Fixed pruning in CustomScan when the subplan is not a Scan type that caused a crash with LATERALs. 1734* Corrected size reporting that was not accurately counting TOAST size 1735* Updated error messages that more closely conform to PG style. 1736* Corrected handling of table and schema name changes to chunks; TimescaleDB metadata catalogs are now properly updated 1737 1738**Notable commits** 1739* [8b58500] Fix bug where dropping triggers caused dangling references in pg_depend, disallow disabling triggers on hypertables 1740* [745b8ab] Fixing CustomScan pruning whenever the subplan is NOT of a Scan type. 1741* [67a8a41] Make chunk identifiers formatting safe using format 1742* [41af6ff] Fix misreported toast_size in chunk_relation_size funcs 1743* [4f2f1a6] Update the error messages to conform with the style guide; Fix tests 1744* [3c28f65] Release cache pin memory 1745* [abe76fc] Add support for changing chunk schema and name 1746 1747**Thanks** 1748* @mfuterko for updating our error messages to conform with PG error message style 1749* @fvannee for reporting a crash when using certain LATERAL joins with aggregates 1750* @linba708 for reporting a memory leak with long lived connections 1751* @phlsmk for reporting an issue where dropping triggers prevented drop_chunks from working due to orphaned dependencies 1752 1753 1754## 0.10.0 (2018-06-27) 1755 1756**High-level changes** 1757* Planning time improvement (**up to 15x**) when a hypertable has many chunks by only expanding (and taking locks on) chunks that will actually be used in a query, rather than on all chunks (as was the default PostgreSQL behavior). 1758* Smarter use of HashAggregate by teaching the planner to better estimate the number of output rows when using time-based grouping. 1759* New convenience function for getting the approximate number of rows in a hypertable (`hypertable_approximate_row_count`). 1760* Fixed support for installing extension into non-`public` schemas 1761* Other bug fixes and refactorings. 1762 1763**Notable commits** 1764* [12bc117] Fix static analyzer warning when checking for index attributes 1765* [7d9f49b] Fix missing NULL check when creating default indexes 1766* [2e1f3b9] Improve memory allocation during cache lookups 1767* [ca6e5ef] Fix upserts on altered tables. 1768* [2de6b02] Add optimization to use HashAggregate more often 1769* [4b4211f] Fix some external functions when setting a custom schema 1770* [b7257fc] Optimize planning times when hypertables have many chunks 1771* [c660fcd] Add hypertable_approximate_row_count convenience function 1772* [9ce1576] Fix a compilation issue on pre 9.6.3 versions 1773 1774**Thanks** 1775* @viragkothari for suggesting the addition of `hypertable_approximate_row_count` and @fvannee for providing the initial SQL used to build that function 1776* 'mintekhab' from Slack for reporting a segfault when using upserts on an altered table 1777* @mmouterde for reporting an issue where the extension implicitly expected to be installed in the `public` schema 1778* @mfuterko for bringing some potential bugs to our attention via static analysis 1779 1780## 0.9.2 (2018-05-04) 1781 1782**High-level changes** 1783* Fixed handling of `DISCARD ALL` command when parallel workers are involved, which sometimes caused the extension to complain it was not preloaded 1784* User permission bug fix where users locating TRIGGER permissions in a database could not insert data into a hypertable 1785* Fixes for some issues with 32-bit architectures 1786 1787**Notable commits** 1788* [256b394] Fix parsing of GrantRoleStmt 1789* [b78953b] Fix datum conversion typo 1790* [c7283ef] Fix bug with extension loader when DISCARD ALL is executed 1791* [fe20e48] Fix chunk creation with user that lacks TRIGGER permission 1792 1793**Thanks** 1794* @gumshoes, @manigandham, @wallies, & @cjrh for reporting a problem where sometimes the extension would appear to not be preloaded when it actually was 1795* @thaxy for reporting a permissions issue when user creating a hypertable lacks TRIGGER permission 1796* @bertmelis for reporting some bugs with 32-bit architectures 1797 1798## 0.9.1 (2018-03-26) 1799 1800**High-level changes** 1801* **For this release only**, you will need to restart the database before 1802running `ALTER EXTENSION` 1803* Several edge cases regarding CTEs addressed 1804* Updated preloader with better error messaging and fixed edge case 1805* ABI compatibility with latest PostgreSQL to help catch any breaking 1806changes 1807 1808**Notable commits** 1809* [40ce037] Fix crash on explain analyze with insert cte 1810* [8378beb] Enable hypertable inserts within CTEs 1811* [bdfda75] Fix double-loading of extension 1812* [01ea77e] Fix EXPLAIN output for ConstraintAwareAppend inside CTE 1813* [fc05637] Add no preload error to versioned library. 1814* [38f8e0c] Add ABI compatibility tests 1815* [744ca09] Fix Cache Pinning for Subtxns 1816* [39010db] Move more drops into event trigger system 1817* [fc36699] Do not fail add_dimension() on non-empty table with 'if_not_exists' 1818 1819**Thanks** 1820* @The-Alchemist for pointing out broken links in the README 1821* @chaintng for pointing out a broken link in the docs 1822* @jgranstrom for reporting a edge case crash with UPSERTs in CTEs 1823* @saosebastiao for reporting the lack of an error message when the library is not preloaded and trying to delete/modify a hypertable 1824* @jbylund for reporting a cache invalidation issue with the preloader 1825 1826## 0.9.0 (2018-03-05) 1827 1828**High-level changes** 1829* Support for multiple extension versions on different databases in the 1830same PostgreSQL instance. This allows different databases to be updated 1831independently and provides for smoother updates between versions. No 1832more spurious errors in the log as the extension is being 1833updated, and new versions no longer require a restart of the database. 1834* Streamlined update process for smaller binary/package sizes 1835* Significant refactoring to simplify and improve codebase, including 1836improvements to error handling, security/permissions, and more 1837* Corrections to edge-case scenarios involving dropping schemas, 1838hypertables, dimensions, and more 1839* Correctness improvements through propagating reloptions from main 1840table to chunk tables and blocking `ONLY` commands that try to alter 1841hypertables (i.e., changes should be applied to chunks as well) 1842* Addition of a `migrate_data` option to `create_hypertable` to allow 1843non-empty tables to be turned into hypertables without separate 1844creation & insertion steps. Note, this option may take a while if the 1845original table has lots of data 1846* Support for `ALTER TABLE RENAME CONSTRAINT` 1847* Support for adjusting the number of partitions for a space dimension 1848* Improvements to tablespace handling 1849 1850**Notable commits** 1851* [4672719] Fix error in handling of RESET ALL 1852* [9399308] Refactor/simplify update scripts and build process 1853* [0e79df4] Fix handling of custom SQL-based partitioning functions 1854* [f13969e] Fix possible memory safety issue and squash valgrind error. 1855* [ef74491] Migrate table data when creating a hypertable 1856* [2696582] Move index and constraints drop handling to event trigger 1857* [d6baccb] Improve tablespace handling, including blocks for DROP and REVOKE 1858* [b9a6f89] Handle DROP SCHEMA for hypertable and chunk schemas 1859* [b534a5a] Add test case for adding metadata entries automatically 1860* [6adce4c] Handle TRUNCATE without upcall and handle ONLY modifier 1861* [71b1124] Delete orphaned dimension slices 1862* [fa19a54] Handle deletes on metadata objects via native catalog API 1863* [6e011d1] Refactor hypertable-related API functions 1864* [5afd39a] Fix locking for serializing chunk creation 1865* [6dd2c46] Add check for null in ca_append_rescan to prevent segfault 1866* [71962b8] Refactor dimension-related API functions 1867* [cc254a9] Fix CREATE EXTENSION IF NOT EXISTS and error messages 1868* [d135256] Spread chunk indexes across tablespaces like chunks 1869* [e85721a] Block ONLY hypertable on all ALTER TABLE commands. 1870* [78d36b5] Handle subtxn for cache pinning 1871* [26ef77f] Add subtxn abort logic to process_utility.c 1872* [25f3284] Handle cache invalidation during subtxn rollback 1873* [264956f] Block DROP NOT NULL on time-partitioned columns. 1874* [ad7d361] Better accounting for number of items stored in a subspace 1875* [12f92ea] Improve speed of out-of-order inserts 1876* [87f055d] Add support for ALTER TABLE RENAME CONSTRAINT. 1877* [da8cc79] Add support for multiple extension version in one pg instance 1878* [68faddc] Make chunks inherit reloptions set on the hypertable 1879* [4df8f28] Add proper permissions handling for associated (chunk) schemas 1880* [21efcce] Refactor chunk table creation and unify constraint handling 1881 1882**Thanks** 1883* @Anthares for a request to pass reloptions like fill factor to child chunks 1884* @oldgreen for reporting an issue with subtransaction handling 1885* @fvannee for a PR that fixed a bug with `ca_append_rescan` 1886* @maksm90 for reporting an superfluous index being created in an internal catalog table 1887* @Rashid987 for reporting an issue where deleting a chunk, then changing the time interval would not apply the change when a replacement chunk is created 1888* RaedA from Slack for reporting compilation issues on Windows between 18890.8.0 and this release 1890* @haohello for a request to adjust the number of partitions for a given dimension 1891* @LonghronShen and @devereaux for reporting an issue (and submitting a PR) for handling version identification when there is more to the version than just major and minor numbers 1892* @carlospeon for reporting an issue with dropping hypertables 1893* @gumshoes, @simpod, @jbylund, and @ryan-shaw for testing a pre-release version to verify our new update path works as expected 1894* @gumshoes for reporting an issue with `RESET ALL` 1895 1896## 0.8.0 (2017-12-19) 1897 1898**High-level changes** 1899* TimescaleDB now builds and runs on Windows! Now in addition to using 1900Docker, users can choose to build the extension from source and install 1901on 64-bit Windows 1902* Update functions `add_dimension` and `set_chunk_time_interval` to take `INTERVAL` types 1903* Improved tablespace management including detaching tablespaces from hypertables and looking up tablespaces associated with a hypertable 1904* Reduced memory usage for `INSERT`s with out-of-order data 1905* Fixes inserts on 32-bit architectures, in particular ARM 1906* Other correctness improvements including preventing attachment of 1907PG10 partitions to hypertables, improved handling of space dimensions 1908with one partition, and correctly working with `pg_upgrade` 1909* Test and build improvements making those both more robust and easier 1910to do 1911 1912**Notable commits** 1913* [26971d2] Make `tablespace_show` function return Name instead of CString 1914* [2fe447b] Make TimescaleDB work with pg_upgrade 1915* [90c7a6f] Fix logic for one space partition 1916* [6cfdd79] Prevent native partitioning attachment of hypertables 1917* [438d79d] Fix trigger relcache handling for COPY 1918* [cc1ad95] Reduce memory usage for out-of-order inserts 1919* [a0f62c5] Improve bootstrap script's robustness 1920* [00a096f] Modify tests to make more platform agnostic 1921* [0e76b5f] Do not add tablespaces to hypertable objects 1922* [176b75e] Add command to show tablespaces attached to a hypertable 1923* [6e92383] Add function to detach tablespaces from hypertables 1924* [e593876] Refactor tablespace handling 1925* [c4a46ac] Add hypertable cache lookup on ID/pkey 1926* [f38a578] Fix handling of long constraint names 1927* [20c9b28] Unconditionally add pg_config --includedir to src build 1928* [12dff61] Fixes insert for 32bit architecture 1929* [e44e47e] Update add_dimension to take INTERVAL times 1930* [0763e62] Update set_chunk_time_interval to take INTERVAL times 1931* [87c4b4f] Fix test generator to work for PG 10.1 1932* [51854ac] Fix error message to reflect that drop_chunks can take a DATE interval 1933* [66396fb] Add build support for Windows 1934* [e1a0e81] Refactor and fix cache invalidation 1935 1936**Thanks** 1937* @oldgreen for reporting an issue where `COPY` was warning of relcache reference leaks 1938* @campeterson for pointing out some documentation typos 1939* @jwdeitch for the PR to prevent attaching PG10 partitions to hypertables 1940* @vjpr and @sztanpet for reporting bugs and suggesting improvements to the bootstrap script 1941 1942## 0.7.1 (2017-11-29) 1943 1944**High-level changes** 1945* Fix to the migration script for those coming from 0.6.1 (or earlier) 1946* Fix edge case in `drop_chunks` when hypertable uses `TIMESTAMP` type 1947* Query planning improvements & fixes 1948* Permission fixes and support `SET ROLE` functionality 1949 1950**Notable commits** 1951* [717299f] Change time handling in drop_chunks for TIMESTAMP times 1952* [d8ec285] Do not append-optimize plans with result relations (DELETE/UPDATE) 1953* [30b72ec] Handle empty append plans in ConstraintAwareAppend 1954* [b35509b] Permission fixes and allow SET ROLE 1955 1956**Thanks** 1957* @shaneodonnell for reporting a bug with empty append plans in ConstraintAwareAppend 1958* @ryan-shaw for reporting a bug with query plans involving result relations and reporting an issue with our 0.6.1 to 0.7.0 migration script 1959 1960 1961## 0.7.0 (2017-11-21) 1962 1963**Please note: This update may take a long time (minutes, even hours) to 1964complete, depending on the size of your database** 1965 1966**High-level changes** 1967* **Initial PostgreSQL 10 support**. TimescaleDB now should work on both PostgreSQL 9.6 and 10. As this is our first release supporting PG10, we look forward to community feedback and testing. _Some release channels, like Ubuntu & RPM-based distros will remain on 9.6 for now_ 1968* Support for `CLUSTER` on hypertables to recursively apply to chunks 1969* Improve constraint handling of edge cases for `DATE` and `TIMESTAMP` 1970* Fix `range_start` and `range_end` to properly handle the full 32-bit int space 1971* Allow users to specify their desired partitioning function 1972* Enforce `NOT NULL` constraint on time columns 1973* Add testing infrastructure to use Coverity and test PostgreSQL regression tests in TimescaleDB 1974* Switch to the CMake build system for better cross-platform support 1975* Several other bug fixes, cleanups, and improvements 1976 1977**Notable commits** 1978* [13e1cb5] Add reindex function 1979* [6594018] Handle when create_hypertable is invoked on partitioned table 1980* [818bdbc] Add coverity testing 1981* [5d0cbc1] Recurse CLUSTER command to chunks 1982* [9c7191e] Change TIMESTAMP partitioning to be completely tz-independent 1983* [741b256] Mark IMMUTABLE functions as PARALLEL SAFE 1984* [2ffb30d] Make aggregate serialize and deserialize functions STRICT 1985* [c552410] Add build target to run the standard PostgreSQL regression tests 1986* [291050b] Change DATE partitioning to be completely tz-independent 1987* [ca0968a] Make all partitioning functions take anyelement argument 1988* [a4e1e32] Change range_start and range_end semantics 1989* [2dfbc82] Fix off-by-one error on range-end 1990* [500563f] Add support for PostgreSQL 10 1991* [201a948] Check that time dimensions are set as NOT NULL. 1992* [4532650] Allow setting partitioning function 1993* [4a0a0d8] Fix column type change on plain tables 1994* [cf009cc] Avoid string conversion in hash partitioning 1995* [8151098] Improve update testing by adding a rerun test 1996* [c420c11] Create a catalog entry for constraint-backed indexes 1997* [ec746d1] Add ability to run regression test locally 1998* [44f9fec] Add analyze to parallel test for stability 1999* [9e0422a] Fix bug with pointer assignment after realloc 2000* [114fa8d] Refactor functions used to recurse DDL commands to chunks 2001* [b1ec4fa] Refactor build system to use CMake 2002 2003**Thanks** 2004* @jgraichen for reporting an issue with `drop_chunks` not accepting `BIGINT` 2005* @nathansgreen for reporting an edge case with constraints for `TIMESTAMP` 2006* @jonmd for reporting a similar edge case for `DATE` 2007* @jwdeitch for a PR to cover an error case in PG10 2008 2009 2010## 0.6.1 (2017-11-07) 2011 2012**High-level changes** 2013 2014* Fix several memory bugs that caused segfaults 2015* Fix bug when creating expression indexes 2016* Plug a memory leak with constraint expressions 2017* Several other bug fixes and stability improvements 2018 2019**Notable commits** 2020* [2799075] Fix EXPLAIN for ConstraintAware and MergeAppend 2021* [8084594] Use per-chunk memory context for cached chunks 2022* [a13d9de] Do not convert tuples on insert unless needed 2023* [da09f24] Limit growth of range table during chunk inserts 2024* [85dee79] Fix issue with creating expression indexes 2025* [844ff7f] Fix memory leak due to constraint expressions. 2026* [e90d3ee] Consider precvious CIS state in copy FROM file to rel 2027* [56d632f] Fix bug with pointer assignment after realloc 2028* [f97d624] Make event trigger creation idempotent 2029 2030**Thanks** 2031* @jwdeitch for submitting a patch to correct behavior in the COPY operation 2032* @jgraichen for reporting a bug with expression indexes 2033* @zixet for reporting a memory leak 2034* @djk447 for reporting a bug in EXPLAIN with ConstraintAware and MergeAppend 2035 2036## 0.6.0 (2017-10-12) 2037 2038**High-level changes** 2039 2040* Fix bugs where hypertable-specific handlers were affecting normal Postgres tables. 2041* Make it so that all TimescaleDB commands can run as a normal user rather than a superuser. 2042* Updates to the code to make the extension compileable on Windows; future changes will add steps to properly build. 2043* Move `time_bucket` functions out of `public` schema (put in schema where extension is). 2044* Several other bugs fixes. 2045 2046**Notable commits** 2047* [1d73fb8] Fix bug with extension starting too early. 2048* [fd390ec] Fix chunk index attribute mismatch and locking issue 2049* [430ed8a] Fix bug with collected commands in index statement. 2050* [614c2b7] Fix permissions bugs and run tests as normal user 2051* [ce12104] Fix "ON CONFLICT ON CONSTRAINT" on plain PostgreSQL tables 2052* [4c451e0] Fix rename and reindex bugs when objects are not relations 2053* [c3ebc67] Fix permission problems with dropping hypertables and chunks 2054* [040e815] Remove truncate and hypertable metadata triggers 2055* [5c26328] Fix INSERT on hypertables using sub-selects with aggregates 2056* [b57e2bf] Prepare C code for compiling on Windows 2057* [a2bad2b] Fix constraint validation on regular tables 2058* [fb5717f] Remove explicit schema for time_bucket 2059* [04d01ce] Split DDL processing into start and end hooks 2060 2061**Thanks** 2062* @oldgreen for reporting `time_bucket` being incorrectly put in the `public` schema and pointing out permission problems 2063* @qlandman for reporting a bug with INSERT using sub-selects with aggregates 2064* @min-mwei for reporting a deadlock issue during INSERTs 2065* @ryan-shaw for reporting a bug where the extension sometimes used `pg_cache` too soon 2066 2067## 0.5.0 (2017-09-20) 2068 2069**High-level changes** 2070* Improved support for primary-key, foreign-key, unique, and exclusion constraints. 2071* New histogram function added for getting the frequency of a column's values. 2072* Add support for using `DATE` as partition column. 2073* `chunk_time_interval` now supports `INTERVAL` data types 2074* Block several unsupported and/or dangerous operations on hypertables and chunks, including dropping or otherwise altering a chunk directly. 2075* Several bug fixes throughout the code. 2076 2077**Notable commits** 2078* [afcb0b1] Fix NULL handling in first/last functions. 2079* [d53c705] Add script to dump meta data that can be useful for debugging. 2080* [aa904fa] Block adding constraints without a constraint name 2081* [a13039f] Fix dump and restore for tables with triggers and constraints 2082* [8cf8d3c] Improve the size utils functions. 2083* [2767548] Block adding constraints using an existing index 2084* [5cee104] Allow chunk_time_interval to be specified as an INTERVAL type 2085* [6232f98] Add histogram function. 2086* [2380033] Block ALTER TABLE and handle DROP TABLE on chunks 2087* [72d6681] Move security checks for ALTER TABLE ALTER COLUMN to C 2088* [19d3d89] Handle changing the type of dimension columns correctly. 2089* [17c4ba9] Handle ALTER TABLE rename column 2090* [66932cf] Forbid relocating extension after install. 2091* [d2561cc] Add ability to partition by a date type 2092* [48e0a61] Remove triggers from chunk and chunk_constraint 2093* [4dcbe61] Add support for hypertable constraints 2094 2095**Thanks** 2096* @raycheung for reporting a segfault in `first`/`last` 2097* @meotimdihia, @noyez, and @andrew-blake for reporting issues with `UNQIUE` and other types of constraints 2098 2099 2100## 0.4.2 (2017-09-06) 2101 2102**High-level changes** 2103* Provide scripts for backing up and restoring single hypertables 2104 2105**Notable commits** 2106* [683c078] Add backup/restore scripts for single hypertables 2107 2108## 0.4.1 (2017-09-04) 2109 2110**High-level changes** 2111* Bug fix for a segmentation fault in the planner 2112* Shortcut when constraint-aware append excludes all chunks 2113* Fix edge case with negative timestamps when points fell right on the boundary 2114* Fix behavior of `time_bucket` for `DATE` types by not converting to `TIMESTAMPTZ` 2115* Make the output of `chunk_relation_size` consistent 2116 2117**Notable commits** 2118* [50c8c4c] Fix possible segfault in planner 2119* [e49e45c] Fix failure when constraint-aware append excludes all chunks 2120* [c3b6fb9] Fix bug with negative dimension values 2121* [3c69e4f] Fix semantics of time_bucket on DATE input 2122* [0137c92] Fix output order of chunk dimensions and ranges in chunk_relation_size. 2123* [645b530] Convert inserted tuples to the chunk's rowtype 2124 2125**Thanks** 2126* @yadid for reporting a segfault (fixed in 50c8c4c) 2127* @ryan-shaw for reporting tuples not being correctly converted to a chunk's rowtype (fixed in 645b530) 2128 2129## 0.4.0 (2017-08-21) 2130 2131**High-level changes** 2132* Exclude chunks when constraints can be constifyed even if they are 2133considered mutable like `NOW()`. 2134* Support for negative values in the dimension range which allows for pre-1970 dates. 2135* Improve handling of default chunk times for integral date times by forcing it to be explicit rather than guessing the units of the time. 2136* Improve memory usage for long-running `COPY` operations (previously it would grow unbounded). 2137* `VACUUM` and `REINDEX` on hypertables now recurse down to chunks. 2138 2139**Notable commits** 2140* [139fe34] Implement constraint-aware appends to exclude chunks at execution time 2141* [2a51cf0] Add support for negative values in dimension range 2142* [f2d5c3f] Error if add_dimension given both partition number and interval length 2143* [f3df02d] Improve handling of non-TIMESTAMP/TZ timestamps 2144* [6a5a7eb] Reduce memory usage on long-running COPY operations 2145* [953346c] Make VACUUM and REINDEX recurse to chunks 2146* [55bfdf7] Release all cache pins when a transaction ends 2147 2148## 0.3.0 (2017-07-31) 2149 2150**High-level changes** 2151* "Upserts" are now supported via normal `ON CONFLICT DO UPDATE`/`ON CONFLICT DO NOTHING` syntax. However, `ON CONFLICT ON CONSTRAINT` is not yet supported. 2152* Improved support for user-defined triggers on hypertables. Now handles both INSERT BEFORE and INSERT AFTER triggers, and triggers can be named arbitrarily (before, a \_0\_ prefix was required to ensure correct execution priority). 2153* `TRUNCATE` on a hypertable now deletes empty chunks. 2154 2155**Notable commits** 2156* [23f9d3c] Add support for upserts (`ON CONFLICT DO UPDATE`) 2157* [1f3dcd8] Make `INSERT`s use a custom plan instead of triggers 2158* [f23bf58] Remove empty chunks on `TRUNCATE` hypertable. 2159 2160## 0.2.0 (2017-07-12) 2161 2162**High-level changes** 2163* Users can now define their own triggers on hypertables (except for `INSERT AFTER`) 2164* Hypertables can now be renamed or moved to a different schema 2165* Utility functions added so you can examine the size hypertables, chunks, and indices 2166 2167**Notable commits** 2168* [83c75fd] Add support for triggers on hypertables for all triggers except `INSERT AFTER` 2169* [e0eeeb9] Add hypertable, chunk, and indexes size utils functions. 2170* [4d2a65d] Add infrastructure to build update script files. 2171* [a5725d9] Add support to rename and change schema on hypertable. 2172* [142f58c] Cleanup planner and process utility hooks 2173 2174## 0.1.0 (2017-06-28) 2175 2176**IMPORTANT NOTE** 2177 2178Starting with this release, TimescaleDB will now 2179support upgrading between extension versions using the typical 2180`ALTER EXTENSION` command, unless otherwise noted in future release notes. This 2181important step should make it easier to test TimescaleDB and be able 2182to get the latest benefits from new versions of TimescaleDB. If you 2183were previously using a version with the `-beta` tag, you will need 2184to `DROP` any databases currently using TimescaleDB and re-create them 2185in order to upgrade to this new version. To backup and migrate data, 2186use `pg_dump` to save the table schemas and `COPY` to write hypertable 2187data to CSV for re-importing after upgrading is complete. We describe 2188a similar process on [our docs](http://docs.timescale.com/getting-started/setup/migrate-from-postgresql#different-db). 2189 2190**High-level changes** 2191* More refactoring to stabilize and cleanup the code base for supporting upgrades (see above note) 2192* Correct handling of ownership and permission propagation for hypertables 2193* Multiple bug fixes 2194 2195**Notable commits** 2196* [696cc4c] Provide API for adding hypertable dimensions 2197* [97681c2] Fixes permission handling 2198* [aca7f32] Fix extension drop handling 2199* [9b8a447] Limit the SubspaceStore size; Add documentation. 2200* [14ac892] Fix possible segfault 2201* [0f4169c] Fix check constraint on dimension table 2202* [71c5e78] Fix and refactor tablespace support 2203* [5452dc5] Fix partiton functions; bug fixes (including memory) 2204* [e75cd7e] Finer grained memory management 2205* [3c460f0] Fix partitioning, memory, and tests 2206* [fe51d8d] Add native scan for the chunk table 2207* [fc68baa] Separate out subspace_store and add it to the hypertable object as well 2208* [c8124b8] Use hypercube instead of dimension slice list 2209* [f5d7786] Change the semantics of range_end to be exclusive 2210* [700c9c8] Refactor insert path in C. 2211* [0584c47] Created chunk_get_or_create in sql with an SPI connector in C 2212* [7b8de0c] Refactor catalog for new schema and add native data types 2213* [d3bdcba] Start refactoring to support any number of partitioning dimensions 2214 2215## 0.0.12-beta (2017-06-21) 2216 2217**High-level changes** 2218* A major cleanup and refactoring was done to remove legacy code and 2219currently unused code paths. This change is **backwards incompatible** 2220and will require a database to be re-initialized and data re-imported. 2221This refactoring will allow us to provide upgrade paths starting with 2222the next release. 2223* `COPY` and `INSERT` commands now return the correct number of rows 2224* Default indexes no longer duplicate existing indexes 2225* Cleanup of the Docker image and build process 2226* Chunks are now time-aligned across partitions 2227 2228**Notable commits** 2229* [3192c8a] Remove Dockerfile and docker.mk 2230* [2a01ebc] Ensure that chunks are aligned. 2231* [73622bf] Fix default index creation duplication of indexes 2232* [c8872fe] Fix command-tag for COPY and INSERT 2233* [bfe58b6] Refactor towards supporting version upgrades 2234* [db01c84] Make time-bucket function parallel safe 2235* [18db11c] Fix timestamp test 2236* [97bbb59] Make constraint exclusion work with non-text partition keys 2237* [f2b42eb] Fix problems with partitioning logic for padded fields 2238* [997029a] if_not_exist flag to create_hypertable now works on hypertables with data as well 2239* [347a8bd] Reference the correct column when scanning partition epochs 2240* [88a9849] Fix bug with timescaledb.allow_install_without_preload GUC not working 2241 2242## 0.0.11-beta (2017-05-24) 2243 2244**High-level changes** 2245* New `first(value, time)` and `last(value, time)` aggregates 2246* Remove `setup_timescaledb()` function to streamline setup 2247* Allow for use cases where restarting the server is not feasible by force loading the library 2248* Disable time series optimizations on non-hypertables 2249* Add some default indexes for hypertables if they do not exist 2250* Add "if not exists" flag for `create_hypertable` 2251* Several bug fixes and cleanups 2252 2253**Notable commits** 2254* [8ccc8cc] Add if_not_exists flag to create_hypertable() 2255* [2bc60c7] Fix time interval field name in hypertable cache entry 2256* [4638688] Improve GUC handling 2257* [cedcafc] Remove setup_timescaledb() and fix pg_dump/pg_restore. 2258* [34ad9a0] Add error when timescaledb library is not preloaded. 2259* [fc4ddd6] Fix bug with dropping chunks on tables with indexes 2260* [32215ff] Add default indexes for hypertables 2261* [b2900f9] Disable query optimization on regular tables (non-hypertables) 2262* [f227db4] Fixes command tag return for COPY on hypertables. 2263* [eb32081] Fix Invalid database ID error 2264* [662be94] Add the first(value, time),last(value, time) aggregates 2265* [384a8fb] Add regression tests for deleted unit tests 2266* [31ee92a] Remove unit tests and sql/setup 2267* [13d3acb] Fix bug with alter table add/drop column if exists 2268* [f960c24] Fix bug with querying a row as a composite type 2269 2270## 0.0.10-beta (2017-05-04) 2271 2272**High-level changes** 2273* New `time_bucket` functions for doing roll-ups on varied intervals 2274* Change default partition function (thanks @robin900) 2275* Variety of bug fixes 2276 2277**Notable commits** 2278* [1c4868d] Add documentation for chunk_time_interval argument 2279* [55fd2f2] Fixes command tag return for `INSERT`s on hypertables. 2280* [c3f930f] Add `time_bucket` functions 2281* [b128ac2] Fix bug with `INSERT INTO...SELECT` 2282* [e20edf8] Add better error checking for index creation. 2283* [72f754a] use PostgreSQL's own `hash_any` function as default partfunc (thanks @robin900) 2284* [39f4c0f] Remove sample data instructions and point to docs site 2285* [9015314] Revised the `get_general_index_definition` function to handle cases where indexes have definitions other than just `CREATE INDEX` (thanks @bricklen) 2286