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