PostgreSQL 14 Open Items

== Open Issues ==
NOTE: Please place new open items at the end of the list.
None!
== Decisions to Recheck Mid-Beta ==
== Older bugs affecting stable branches ==
=== Live issues ===
* REINDEX on a system catalog can leave index with two index tuples whose heap TIDs match
** In other words, there is a rare case where the HOT invariant is violated. Same HOT chain is indexed twice due to confusion about which precise heap tuple should be indexed.
** Unclear what the user impact is.
** Affects all stable branches.
* CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers
** tgenabled lost on CREATE TABLE .. PARTITION OF, and on pg_dump, and comments on child triggers lost during pg_dump;
** Those are resolved by f0e21f2f6 and df80fa2ee, but there's another issue with psql \d of non-inherited triggers
* memory leak with JIT inlining
** Another report of (same?) issue and reproducer
** Another report
** Another report
* could not rename temporary statistics file on Windows
** See that has fixed a similar symptom for WAL segments. Most reporters of the WAL segment problem complained about this renaming issue as well.
* Incorrect snapshot calculation when 2PC is in use
** Seems to be an old problem.
=== Fixed issues ===
* hashagg broken by failing to spill grouping columns
** Fixed at: 
* PITR promote bug: Checkpointer writes to older timeline
** Fixed at: 
* Permission failures with WAL files in 13~ on Windows
** Fixed at: 
* CLOBBER_CACHE Server crashed with segfault 11 while executing clusterdb
** Fixed at: 
* Reference leak with tupledescs in plpgsql simple expressions
** Fixed at: 
* extract(julian) is undocumented and gives wrong result
** Fixed by documentation change at: 
* lwlock dtrace probes do unnecessary work if dtrace is compiled in but disabled
** Fixed at: 
* Detoast failures after commit/rollback in plpgsql
** Fixed at: and 
* Subscription tests fail under CLOBBER_CACHE_ALWAYS
** Fixed at: 
* XX000: unknown type of jsonb container.
** Fixed at: 
* Buildfarm does not test pg_stat_statements
** Fixed by buildfarm client change
* Parallel VACUUM operations cause the error "global/pg_filenode.map contains incorrect checksum"
** Fixed at: and 
* Assertion failure in HEAD and 13 after calling COMMIT in a stored proc
** Fixed at: 
* Add PortalDrop in exec_execute_message
** Fixed at: and 
* snapshot-scalability logic fails after pg_upgrade, due to pg_resetwal issue
** Now seems likely that this is an old issue affecting every release, and that the snapshot-scalability work is not at fault
** Pending fix for pg_upgrade + pg_resetwal
** Fixed at: 
* Logical Decoding of relation rewrite with toast does not reset toast_hash
** Problem exists since v11.
** Fixed at: 
* Consider back-patching typmod casting behavior change to stable branches
** Fixed at: 
== Non-bugs ==
* progress reporting for partitioned REINDEX
* pg_regress and tablespace removal
** Some patch
== Resolved Issues ==
=== resolved before 14rc1 ===
* EXPLAIN VERBOSE fails on query with SEARCH BREADTH FIRST
** Fixed at: 
* pgstat_send_connstats() introduces unnecessary timestamp and UDP overhead
** Fixed at: 
* Should we undo libpq change that leaves PQerrorMessage() nonempty after successful connect?
** Fixed at: 
* default setting of enable_memoize
** No change required. (Discussed on Releases list)
** Owner: David Rowley
* extended statistics: reject single-var expressions
** Fixed at: - Extra parenthesis
** Fixed at: - reject single-var expressions
** Owner: Tomas Vondra
* pg_stats includes partitioned tables, but always shows analyze_count=0
** Fixed at: 
* Issues around autovacuum for partitioned tables
** Feature reverted: 
* DECLARE STATEMENT and DEALLOCATE/DESCRIBE
** Fixed at: 
** Fixed at: 
* Performance regression with hex refactoring code
** Fixed at: 
* elog.c query_id support vs shutdown
** Fixed at: 
* wrong refresh when ALTER SUBSCRIPTION ADD/DROP PUBLICATION
** Fixed at: 
* BUG #17158 (type RECORD is not always hashable)
** Fixed at: 
=== resolved before 14beta3 ===
* \dX doesn't check pg_statistics_obj_is_visible()
** Fixed at: 
* remove_temp_files_after_crash should be a DEVELOPER GUC
** Fixed at: 
* recovery_init_sync_method should be PGC_SIGHUP?
** Fixed at: 
* OOM on palloc() when parsing service file would cause libpq to exit() without reporting a failure
** Fixed at: 
** Additional defenses added at: 
* incorrect code for reporting the hash partition associated with a particular modulus
** Fixed at: 
* Bug in multirange selectivity estimation
** Fixed at: 
* autoanalyze of partitioned table causes it to lose its relhasindex
** Fixed at: 
* Incorrect time maths in pgbench and second thread
** Fixed at: 
* unnesting multirange data types
** Fixed at: 
* Cache lookup failed when null (unknown) is passed as anycompatiblemultirange
** Fixed at: 
* Degraded out-of-memory handling in libpq
** Fixed at: 
* Crash in regexp with {0}
** Fixed at: 
=== resolved before 14beta2 ===
* Snapshot scalability OldestXmin issue (can cause infinite loop during system catalog VACUUM)
** Fixed at: 
* Generalize INDEX_CLEANUP to allow the user to disable the optimization that has VACUUM skip indexes in marginal cases with very few LP_DEAD items/deletable TIDs.
** Fixed at: 
* Questions about pg_stat_wal also 
** Fixed at: 
** Fixed at: 
* pg_dumpall misses --no-toast-compression
** Fixed at: 
* portability issue with pgbench's permute() function
** Fixed at: 
* compute_query_id and pg_stat_statements
** Fixed at and 
* Result Cache works incorrectly with unique joins
** Fixed at 
* Move pg_attribute.attcompression to earlier in struct for reduced size?
** Fixed at 
* EXPLAIN can suffer from cannot decompile join alias var in plan tree
** Fixed at 
* Memory leak when rewriting tuples with recompressed toast values
** Fixed at 
* Redefine pg_attribute.attcompression
** Fixed at 
* Undo bump of FirstBootstrapObjectId
** Fixed at 
* Assertion failure while streaming toasted data
** Fixed at 
* Join pushdown issue in postgres_fdw updates
** Fixed at 
* Performance degradation of REFRESH MATERIALIZED VIEW
** Fixed at 
* Rescan of async Appends is broken when do_exec_prune=false
** Fixed at 
* libpq dumps core while making an SSL connection to a server specified by hostaddr
** Fixed at 
* logical replication of truncate command with trigger causes Assert
** Fixed at 
* Reconsider catalog representation and uniqueness rules for procedures with output-only arguments
** Fixed at 
* Performance regression of VACUUM FULL with the addition of recompression path in tuple rewrite
** Fixed at 
* Document incompatibility with aggregates using system functions using anycompatiblearray
** Fixed at 
=== resolved before 14beta1 ===
* FailedAssertion reported in lazy_scan_heap() when running logical replication
** Fixed at: 
* Assertion fail with window function and nested partitioned tables
** Older report
** Fixed at: 
* Atomic initialization of waitStart done at backend startup
** Fixed at: 
* pg_collation_actual_version() ERROR: cache lookup failed for collation 123
** Fixed at: 
* cryptohash: missing locking functions for OpenSSL <= 1.0.2?
** Fixed at: 
* pg_subscription - substream column?
** Fixed at: 
* TOAST compression method of index columns
** Fixed at: 
* Crash with encoding conversion functions
** Fixed at: 
* Crash with extended stats on expressions
** Fixed at: 
* Update TOAST documentation for LZ4 compression
** Fixed at: 
* Behavior of pg_dump --extension with schemas
** Fixed at: 
* psql query cancellation is broken, as are autocommit, and error reporting
** Reverted by: 
* On Windows, collation version lookup (sometimes?) fails for names like "English_United States.1252", but works for names like "en-US".
** Fixed at: -- this commit tolerates failure so at least we don't raise an error, but unfortunately we have no version information
** Fixed at: -- this commit documents the limitation
* Handling of querystring inconsistent for parallel execution of SQL function bodies
** Fixed at: 
* Problems around compute_query_id
** Fixed at: 
* Table reference leak in logical replication
** Fixed at: 
* DETACH PARTITION CONCURRENTLY: Avoid adding redundant constraint
** Fixed at: 
* Issues in PostgresNode and older major versions with multi-install
** Fixed at and 
* DETACH PARTITION CONCURRENTLY tests fail under CLOBBER_CACHE_ALWAYS
** Fixed at: 
* TRUNCATE on foreign tables and ONLY clause
** Fixed at: 
* handling of character continuation in psql broken by sql body patch
** Fixed at: 
* cache lookup failed for statistics object 123
** Fixed at: 
* batch fdw insert bug
** Fixed at: 
* Bogus collation version recording in recordMultipleDependencies
** Fixed at: (Feature revert)
* Corruption issues with WAL prefetch?
** Fixed at: (Feature revert)
* Small issues with CREATE TABLE COMPRESSION
** MSVC scripts don't support builds with lz4: fixed at 
** pg_dump includes no tests with compression methods of attributes and --no-toast-compression: fixed at 
** Documentation missing for --with-lz4 in installation instructions: fixed at 
* Replication slot stats misgivings
** Fixed at: 
** Fixed at: 
** Fixed at: 
** Fixed at: 
* FDW: crash with DDL and async/batch option
** Fixed at: 
* should autoanalyze for partitioned tables handle ATTACH/DETACH/DROP?
** Fixed at: (docs)
* OOM in spgist insert
** Fixed at: 
== Won't Fix ==
* SQL-standard function body: pg_dump should handle circular dependencies
** Owner: Peter Eisentraut
* SEARCH BREADTH FIRST produces a composite column whose fields can't be accessed
** Owner: Peter Eisentraut
== Important Dates ==
Current schedule:
* Feature Freeze: April 7, 2021 (Last Day to Commit Features)
* Beta 1: May 20, 2021
* Beta 2: June 24, 2021
* Beta 3: August 12, 2021
* RC 1: September 23, 2021
* GA: tentatively September 30, 2021
Category:Open_Items