Movatterモバイル変換


[0]ホーム

URL:



Facebook
Postgres Pro
Facebook
Downloads
E.50. Release 12
Prev UpAppendix E. Release NotesHome Next

E.50. Release 12

Release date: 2019-10-03

E.50.1. Overview

Major enhancements inPostgreSQL 12 include:

The above items are explained in more detail in the sections below.

E.50.2. Migration to Version 12

A dump/restore usingpg_dumpall or use ofpg_upgrade or logical replication is required for those wishing to migrate data from any previous release. SeeSection 17.6 for general information on migrating to new major releases.

Version 12 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

  • Remove the special behavior ofoid columns (Andres Freund, John Naylor)§

    Previously, a normally-invisibleoid column could be specified during table creation usingWITH OIDS; that ability has been removed. Columns can still be explicitly declared as typeoid. Operations on tables that have columns created usingWITH OIDS will need adjustment.

    The system catalogs that previously had hiddenoid columns now have ordinaryoid columns. Hence,SELECT * will now output those columns, whereas previously they would be displayed only if selected explicitly.

  • Remove data typesabstime,reltime, andtinterval (Andres Freund)§

    These are obsoleted by SQL-standard types such astimestamp.

  • Remove thetimetravel extension (Andres Freund)§

  • Moverecovery.conf settings intopostgresql.conf (Masao Fujii, Simon Riggs, Abhijit Menon-Sen, Sergei Kornilov)§

    recovery.conf is no longer used, and the server will not start if that file exists.recovery.signal andstandby.signal files are now used to switch into non-primary mode. Thetrigger_file setting has been renamed topromote_trigger_file. Thestandby_mode setting has been removed.

  • Do not allow multiple conflictingrecovery_target* specifications (Peter Eisentraut)§

    Specifically, only allow one ofrecovery_target,recovery_target_lsn,recovery_target_name,recovery_target_time, andrecovery_target_xid. Previously, multiple different instances of these parameters could be specified, and the last one was honored. Now, only one can be specified, though the same one can be specified multiple times and the last specification is honored.

  • Cause recovery to advance to the latest timeline by default (Peter Eisentraut)§

    Specifically,recovery_target_timeline now defaults tolatest. Previously, it defaulted tocurrent.

  • Refactor code forgeometric functions and operators (Emre Hasegeli)§§§

    This could lead to more accurate, but slightly different, results compared to previous releases. Notably, cases involving NaN, underflow, overflow, and division by zero are handled more consistently than before.

  • Improve performance by using a new algorithm for output ofreal anddouble precision values (Andrew Gierth)§§

    Previously, displayed floating-point values were rounded to 6 (forreal) or 15 (fordouble precision) digits by default, adjusted by the value ofextra_float_digits. Now, wheneverextra_float_digits is more than zero (as it now is by default), only the minimum number of digits required to preserve the exact binary value are output. The behavior is the same as before whenextra_float_digits is set to zero or less.

    Also, formatting of floating-point exponents is now uniform across platforms: two digits are used unless three are necessary. In previous releases, Windows builds always printed three digits.

  • random() andsetseed() now behave uniformly across platforms (Tom Lane)§§

    The sequence ofrandom() values generated following asetseed() call with a particular seed value is likely to be different now than before. However, it will also be repeatable, which was not previously guaranteed because of interference from other uses of random numbers inside the server. The SQLrandom() function now has its own private per-session state to forestall that.

  • Change SQL-stylesubstring() to have standard-compliant greediness behavior (Tom Lane)§

    In cases where the pattern can be matched in more than one way, the initial sub-pattern is now treated as matching the least possible amount of text rather than the greatest; for example, a pattern such as%#"aa*#"% now selects the first group ofa's from the input, not the last group.

  • Do not pretty-print the result ofxpath() or theXMLTABLE construct (Tom Lane)§

    In some cases, these functions would insert extra whitespace (newlines and/or spaces) in nodeset values. This is undesirable since depending on usage, the whitespace might be considered semantically significant.

  • Rename command-line toolpg_verify_checksums topg_checksums (Michaël Paquier)§

  • Inpg_restore, require specification of-f - to send the dump contents to standard output (Euler Taveira)§

    Previously, this happened by default if no destination was specified, but that was deemed to be unfriendly.

  • Disallow non-unique abbreviations inpsql's\pset format command (Daniel Vérité)§§

    Previously, for example,\pset format a chosealigned; it will now fail since that could equally well meanasciidoc.

  • In new btree indexes, the maximum index entry length is reduced by eight bytes, to improve handling of duplicate entries (Peter Geoghegan)§

    This means that aREINDEX operation on an indexpg_upgrade'd from a previous release could potentially fail.

  • CauseDROP IF EXISTS FUNCTION/PROCEDURE/AGGREGATE/ROUTINE to generate an error if no argument list is supplied and there are multiple matching objects (David Rowley)§

    Also improve the error message in such cases.

  • Split thepg_statistic_ext catalog into two catalogs, and add thepg_stats_ext view of it (Dean Rasheed, Tomas Vondra)§§

    This change supports hiding potentially-sensitive statistics data from unprivileged users.

  • Remove obsoletepg_constraint.consrc column (Peter Eisentraut)§

    This column has been deprecated for a long time, because it did not update in response to other catalog changes (such as column renamings). The recommended way to get a text version of a check constraint's expression frompg_constraint ispg_get_expr(conbin, conrelid).pg_get_constraintdef() is also a useful alternative.

  • Remove obsoletepg_attrdef.adsrc column (Peter Eisentraut)§

    This column has been deprecated for a long time, because it did not update in response to other catalog changes (such as column renamings). The recommended way to get a text version of a default-value expression frompg_attrdef ispg_get_expr(adbin, adrelid).

  • Mark table columns of typename as havingC collation by default (Tom Lane, Daniel Vérité)§§

    The comparison operators for data typename can now use any collation, rather than always usingC collation. To preserve the previous semantics of queries, columns of typename are now explicitly marked as havingC collation. A side effect of this is that regular-expression operators onname columns will now use theC collation by default, not the database collation, to determine the behavior of locale-dependent regular expression patterns (such as\w). If you want non-C behavior for a regular expression on aname column, attach an explicitCOLLATE clause. (For user-definedname columns, another possibility is to specify a different collation at table creation time; but that just moves the non-backwards-compatibility to the comparison operators.)

  • Treat object-name columns in theinformation_schema views as being of typename, notvarchar (Tom Lane)§§§

    Per the SQL standard, object-name columns in theinformation_schema views are declared as being of domain typesql_identifier. InPostgreSQL, the underlying catalog columns are really of typename. This change makessql_identifier be a domain overname, rather thanvarchar as before. This eliminates a semantic mismatch in comparison and sorting behavior, which can greatly improve the performance of queries oninformation_schema views that restrict an object-name column. Note however that inequality restrictions, for example

    SELECT ... FROM information_schema.tables WHERE table_name < 'foo';

    will now useC-locale comparison semantics by default, rather than the database's default collation as before. Sorting on these columns will also followC ordering rules. The previous behavior (and inefficiency) can be enforced by adding aCOLLATE "default" clause.

  • Remove the ability to disable dynamic shared memory (Kyotaro Horiguchi)§

    Specifically,dynamic_shared_memory_type can no longer be set tonone.

  • Parse libpq integer connection parameters more strictly (Fabien Coelho)§

    In previous releases, using an incorrect integer value for connection parametersconnect_timeout,keepalives,keepalives_count,keepalives_idle,keepalives_interval andport resulted in libpq either ignoring those values or failing with incorrect error messages.

E.50.3. Changes

Below you will find a detailed account of the changes betweenPostgreSQL 12 and the previous major release.

E.50.3.1. Server

E.50.3.1.1. Partitioning
  • Improve performance of many operations on partitioned tables (Amit Langote, David Rowley, Tom Lane, Álvaro Herrera)§§§§§

    Allow tables with thousands of child partitions to be processed efficiently by operations that only affect a small number of partitions.

  • Allowforeign keys to reference partitioned tables (Álvaro Herrera)§

  • Improve speed ofCOPY into partitioned tables (David Rowley)§

  • Allow partition bounds to be any expression (Kyotaro Horiguchi, Tom Lane, Amit Langote)§

    Such expressions are evaluated at partitioned-table creation time. Previously, only simple constants were allowed as partition bounds.

  • AllowCREATE TABLE's tablespace specification for a partitioned table to affect the tablespace of its children (David Rowley, Álvaro Herrera)§

  • Avoid sorting when partitions are already being scanned in the necessary order (David Rowley)§

  • ALTER TABLE ATTACH PARTITION is now performed with reduced locking requirements (Robert Haas)§

  • Add partition introspection functions (Michaël Paquier, Álvaro Herrera, Amit Langote)§§§

    The new functionpg_partition_root() returns the top-most parent of a partition tree,pg_partition_ancestors() reports all ancestors of a partition, andpg_partition_tree() displays information about partitions.

  • Include partitioned indexes in the system viewpg_indexes (Suraj Kharage)§

  • Addpsql command\dP to list partitioned tables and indexes (Pavel Stehule)§

  • Improvepsql\d and\z display of partitioned tables (Pavel Stehule, Michaël Paquier, Álvaro Herrera)§§§

  • Fix bugs that could causeALTER TABLE DETACH PARTITION to leave behind incorrect dependency state, allowing subsequent operations to misbehave, for example by not dropping a former partition child index when its table is dropped (Tom Lane)§

E.50.3.1.2. Indexes
  • Improve performance and space utilization of btree indexes with many duplicates (Peter Geoghegan, Heikki Linnakangas)§§§

    Previously, duplicate index entries were stored unordered within their duplicate groups. This caused overhead during index inserts, wasted space due to excessive page splits, and it reducedVACUUM's ability to recycle entire pages. Duplicate index entries are now sorted in heap-storage order.

    Indexespg_upgrade'd from previous releases will not have these benefits.

  • Allow multi-column btree indexes to be smaller (Peter Geoghegan, Heikki Linnakangas)

    Internal pages and min/max leaf page indicators now only store index keys until the change key, rather than all indexed keys. This also improves the locality of index access.

    Indexespg_upgrade'd from previous releases will not have these benefits.

  • Improve speed of btree index insertions by reducing locking overhead (Alexander Korotkov)§

  • SupportINCLUDE columns inGiST indexes (Andrey Borodin)§

  • Add support for nearest-neighbor (KNN) searches ofSP-GiST indexes (Nikita Glukhov, Alexander Korotkov, Vlad Sterzhanov)§

  • Reduce theWAL write overhead ofGiST,GIN, andSP-GiST index creation (Anastasia Lubennikova, Andrey V. Lepikhov)§

  • Allow index-only scans to be more efficient on indexes with many columns (Konstantin Knizhnik)§

  • Improve the performance of vacuum scans of GiST indexes (Andrey Borodin, Konstantin Kuznetsov, Heikki Linnakangas)§

  • Delete empty leaf pages duringGiSTVACUUM (Andrey Borodin)§

  • Reduce locking requirements for index renaming (Peter Eisentraut)§

E.50.3.1.3. Optimizer
E.50.3.1.4. General Performance
E.50.3.1.5. Monitoring
  • Allow logging of statements from only a percentage of transactions (Adrien Nayrat)§

    The parameterlog_transaction_sample_rate controls this.

  • Add progress reporting toCREATE INDEX andREINDEX operations (Álvaro Herrera, Peter Eisentraut)§§

    Progress is reported in thepg_stat_progress_create_index system view.

  • Add progress reporting toCLUSTER andVACUUM FULL (Tatsuro Yamada)§

    Progress is reported in thepg_stat_progress_cluster system view.

  • Add progress reporting topg_checksums (Michael Banck, Bernd Helmle)§

    This is enabled with the option--progress.

  • Add counter of checksum failures topg_stat_database (Magnus Hagander)§

  • Add tracking of global objects in system viewpg_stat_database (Julien Rouhaud)§

    Global objects are shown with apg_stat_database.datid value of zero.

  • Add the ability to list the contents of the archive directory (Christoph Moench-Tegeder)§

    The function ispg_ls_archive_statusdir().

  • Add the ability to list the contents of temporary directories (Nathan Bossart)§

    The function,pg_ls_tmpdir(), optionally allows specification of a tablespace.

  • Add information about the client certificate to the system viewpg_stat_ssl (Peter Eisentraut)§

    The new columns areclient_serial andissuer_dn. Columnclientdn has been renamed toclient_dn for clarity.

  • Restrict visibility of rows inpg_stat_ssl for unprivileged users (Peter Eisentraut)§

  • At server start, emit a log message including the server version number (Christoph Berg)§

  • Prevent loggingincomplete startup packet if a new connection is immediately closed (Tom Lane)§

    This avoids log spam from certain forms of monitoring.

  • Include theapplication_name, if set, inlog_connections log messages (Don Seiler)§

  • Make the walreceiver set its application name to the cluster name, if set (Peter Eisentraut)§

  • Add the timestamp of the last received standby message topg_stat_replication (Lim Myungkyu)§

  • Add await event for fsync ofWAL segments (Konstantin Knizhnik)§

E.50.3.1.6. Authentication
  • AddGSSAPI encryption support (Robbie Harwood, Stephen Frost)§

    This feature allows TCP/IP connections to be encrypted when using GSSAPI authentication, without having to set up a separate encryption facility such as SSL. In support of this, addhostgssenc andhostnogssenc record types inpg_hba.conf for selecting connections that do or do not use GSSAPI encryption, corresponding to the existinghostssl andhostnossl record types. There is also a newgssencmode libpq option, and apg_stat_gssapi system view.

  • Allow theclientcertpg_hba.conf option to check that the database user name matches the client certificate's common name (Julian Markwort, Marius Timmer)§

    This new check is enabled withclientcert=verify-full.

  • Allow discovery of anLDAP server usingDNS SRV records (Thomas Munro)§

    This avoids the requirement of specifyingldapserver. It is only supported ifPostgreSQL is compiled withOpenLDAP.

E.50.3.1.7. Server Configuration

E.50.3.2. Streaming Replication and Recovery

E.50.3.3. Utility Commands

  • AddREINDEXCONCURRENTLY option to allow reindexing without locking out writes (Michaël Paquier, Andreas Karlsson, Peter Eisentraut)§

    This is also controlled by thereindexdb application's--concurrently option.

  • Add support forgenerated columns (Peter Eisentraut)§

    The content of generated columns are computed from expressions (including references to other columns in the same table) rather than being specified byINSERT orUPDATE commands.

  • Add aWHERE clause toCOPY FROM to control which rows are accepted (Surafel Temesgen)§

    This provides a simple way to filter incoming data.

  • Allow enumerated values to be added more flexibly (Andrew Dunstan, Tom Lane, Thomas Munro)§

    Previously,ALTER TYPE ... ADD VALUE could not be called in a transaction block, unless it was part of the same transaction that created the enumerated type. Now it can be called in a later transaction, so long as the new enumerated value is not referenced until after it is committed.

  • Add commands to end a transaction and start a new one (Peter Eisentraut)§

    The commands areCOMMIT AND CHAIN andROLLBACK AND CHAIN.

  • AddVACUUM andCREATE TABLE options to preventVACUUM from truncating trailing empty pages (Takayuki Tsunakawa)§§

    These options arevacuum_truncate andtoast.vacuum_truncate. Use of these options reducesVACUUM's locking requirements, but prevents returning disk space to the operating system.

  • AllowVACUUM to skip index cleanup (Masahiko Sawada)§§

    This change adds aVACUUM command optionINDEX_CLEANUP as well as a table storage optionvacuum_index_cleanup. Use of this option reduces the ability to reclaim space and can lead to index bloat, but it is helpful when the main goal is to freeze old tuples.

  • Add the ability to skipVACUUM andANALYZE operations on tables that cannot be locked immediately (Nathan Bossart)§

    This option is calledSKIP_LOCKED.

  • AllowVACUUM andANALYZE to take optional Boolean argument specifications (Masahiko Sawada)§

  • PreventTRUNCATE,VACUUM andANALYZE from requesting a lock on tables for which the user lacks permission (Michaël Paquier)§§

    This prevents unauthorized locking, which could interfere with user queries.

  • AddEXPLAIN optionSETTINGS to output non-default optimizer settings (Tomas Vondra)§

    This output can also be obtained when usingauto_explain by settingauto_explain.log_settings.

  • AddOR REPLACE option toCREATE AGGREGATE (Andrew Gierth)§

  • Allow modifications of system catalogs' options usingALTER TABLE (Peter Eisentraut)§

    Modifications of catalogs'reloptions and autovacuum settings are now supported. (Settingallow_system_table_mods is still required.)

  • Use all key columns' names when selecting default constraint names for foreign keys (Peter Eisentraut)§

    Previously, only the first column name was included in the constraint name, resulting in ambiguity for multi-column foreign keys.

E.50.3.4. Data Types

  • Update assorted knowledge about Unicode to match Unicode 12.1.0 (Peter Eisentraut)§§

    This fixes, for example, cases wherepsql would misformat output involving combining characters.

  • Update Snowball stemmer dictionaries with support for new languages (Arthur Zakirov)§

    This adds word stemming support for Arabic, Indonesian, Irish, Lithuanian, Nepali, and Tamil tofull text search.

  • Allow creation ofcollations that report string equality for strings that are not bit-wise equal (Peter Eisentraut)§

    This feature supportsnondeterministic collations that can define case- and accent-agnostic equality comparisons. Thus, for example, a case-insensitive uniqueness constraint on a text column can be made more easily than before. This is only supported forICU collations.

  • Add support forICU collation attributes on older ICU versions (Peter Eisentraut)§

    This allows customization of the collation rules in a consistent way across all ICU versions.

  • Allow data typename to more seamlessly be compared to other text types (Tom Lane)§

    Typename now behaves much like a domain over typetext that has default collationC. This allows cross-type comparisons to be processed more efficiently.

E.50.3.5. Functions

  • Add support for theSQL/JSONpath language (Nikita Glukhov, Teodor Sigaev, Alexander Korotkov, Oleg Bartunov, Liudmila Mantrova)§§§

    This allows execution of complex queries onJSON values using anSQL-standard language.

  • Add support forhyperbolic functions (Lætitia Avrot)§

    Also addlog10() as an alias forlog(), for standards compliance.

  • Improve the accuracy of statistical aggregates likevariance() by using more precise algorithms (Dean Rasheed)§

  • Allowdate_trunc() to have an additional argument to control the time zone (Vik Fearing, Tom Lane)§

    This is faster and simpler than using theAT TIME ZONE clause.

  • Adjustto_timestamp()/to_date() functions to be more forgiving of template mismatches (Artur Zakirov, Alexander Korotkov, Liudmila Mantrova)§

    This new behavior more closely matches theOracle functions of the same name.

  • Fix assorted bugs inXML functions (Pavel Stehule, Markus Winand, Chapman Flack)§

    Specifically, inXMLTABLE,xpath(), andxmlexists(), fix some cases where nothing was output for a node, or an unexpected error was thrown, or necessary escaping of XML special characters was omitted.

  • Allow theBY VALUE clause inXMLEXISTS andXMLTABLE (Chapman Flack)§

    This SQL-standard clause has no effect inPostgreSQL's implementation, but it was unnecessarily being rejected.

  • Preventcurrent_schema() andcurrent_schemas() from being run by parallel workers, as they are not parallel-safe (Michaël Paquier)§

  • AllowRECORD andRECORD[] to be used as column types in a query's column definition list for atable function that is declared to returnRECORD (Elvis Pranskevichus)§

E.50.3.6. PL/pgSQL

E.50.3.7. Client Interfaces

  • Add connection parametertcp_user_timeout to controllibpq'sTCP timeout (Ryohei Nagaura)§

  • Allowlibpq (and thuspsql) to report only theSQLSTATE value in error messages (Didier Gautheron)§

  • Addlibpq functionPQresultMemorySize() to report the memory used by a query result (Lars Kanis, Tom Lane)§

  • Remove the no-display/debug flag fromlibpq'soptions connection parameter (Peter Eisentraut)§

    This allows this parameter to be set bypostgres_fdw.

  • Allowecpg to create variables of data typebytea (Ryo Matsumura)§

    This allows ECPG clients to interact withbytea data directly, rather than using an encoded form.

  • AddPREPARE AS support toECPG (Ryo Matsumura)§

E.50.3.8. Client Applications

  • Allowvacuumdb to select tables for vacuum based on their wraparound horizon (Nathan Bossart)§

    The options are--min-xid-age and--min-mxid-age.

  • Allowvacuumdb to disable waiting for locks or skipping all-visible pages (Nathan Bossart)§

    The options are--skip-locked and--disable-page-skipping.

  • Add colorization to the output of command-line utilities (Peter Eisentraut)§

    This is enabled by setting the environment variablePG_COLOR toalways orauto. The specific colors used can be adjusted by setting the environment variablePG_COLORS, using ANSI escape codes for colors. For example, the default behavior is equivalent toPG_COLORS="error=01;31:warning=01;35:locus=01".

E.50.3.8.1. psql
E.50.3.8.2. pgbench
  • Allow values produced by queries to be assigned topgbench variables (Fabien Coelho, Álvaro Herrera)§§

    The command for this is\gset.

  • Improve precision ofpgbench's--rate option (Tom Lane)§

  • Improvepgbench's error reporting with clearer messages and return codes (Peter Eisentraut)§

E.50.3.9. Server Applications

  • Allow control of log file rotation viapg_ctl (Kyotaro Horiguchi, Alexander Kuzmenkov, Alexander Korotkov)§

    Previously, this was only possible via anSQL function or a process signal.

  • Properly detach the new server process duringpg_ctl start (Paul Guo)§

    This prevents the server from being shut down if the shell script that invokedpg_ctl is interrupted later.

  • Allowpg_upgrade to use the file system's cloning feature, if there is one (Peter Eisentraut)§

    The--clone option has the advantages of--link, while preventing the old cluster from being changed after the new cluster has started.

  • Allow specification of the socket directory to use inpg_upgrade (Daniel Gustafsson)§

    This is controlled by--socketdir; the default is the current directory.

  • Allowpg_checksums to disable fsync operations (Michaël Paquier)§

    This is controlled by the--no-sync option.

  • Allowpg_rewind to disable fsync operations (Michaël Paquier)§

  • Fixpg_test_fsync to report accurateopen_datasync durations onWindows (Laurenz Albe)§§

  • Whenpg_dump emits data withINSERT commands rather thanCOPY, allow more than one data row to be included in eachINSERT (Surafel Temesgen, David Rowley)§§

    The option controlling this is--rows-per-insert.

  • Allowpg_dump to emitINSERT ... ON CONFLICT DO NOTHING (Surafel Temesgen)§

    This avoids conflict failures during restore. The option is--on-conflict-do-nothing.

  • Decouple the order of operations in a parallelpg_dump from the order used by a subsequent parallelpg_restore (Tom Lane)§

    This allowspg_restore to perform more-fully-parallelized parallel restores, especially in cases where the original dump was not done in parallel. Scheduling of a parallelpg_dump is also somewhat improved.

  • Allow theextra_float_digits setting to be specified forpg_dump andpg_dumpall (Andrew Dunstan)§

    This is primarily useful for making dumps that are exactly comparable across different source server versions. It is not recommended for normal use, as it may result in loss of precision when the dump is restored.

  • Add--exclude-database option topg_dumpall (Andrew Dunstan)§

E.50.3.10. Source Code

  • AddCREATE ACCESS METHOD command to create new table types (Andres Freund, Haribabu Kommi, Álvaro Herrera, Alexander Korotkov, Dmitry Dolgov)§§§§§§§§§

    This enables the development of newtable access methods, which can optimize storage for different use cases. The existingheap access method remains the default.

  • Addplanner support function interfaces to improve optimizer estimates, inlining, and indexing for functions (Tom Lane)§§§

    This allows extensions to create planner support functions that can provide function-specific selectivity, cost, and row-count estimates that can depend on the function's arguments. Support functions can also supply simplified representations and index conditions, greatly expanding optimization possibilities.

  • Simplify renumbering manually-assigned OIDs, and establish a new project policy for management of such OIDs (John Naylor, Tom Lane)§§

    Patches that manually assign OIDs for new built-in objects (such as new functions) should now randomly choose OIDs in the range 8000—9999. At the end of a development cycle, the OIDs used by committed patches will be renumbered down to lower numbers, currently somewhere in the 4xxx range, using the newrenumber_oids.pl script. This approach should greatly reduce the odds of OID collisions between different in-process patches.

    While there is no specific policy reserving any OIDs for external use, it is recommended that forks and other projects needing private manually-assigned OIDs use numbers in the high 7xxx range. This will avoid conflicts with recently-merged patches, and it should be a long time before the core project reaches that range.

  • BuildCygwin binaries using dynamic instead of static libraries (Marco Atzeri)§

  • Removeconfigure switch--disable-strong-random (Michaël Paquier)§

    A strong random-number source is now required.

  • printf-family functions, as well asstrerror andstrerror_r, now behave uniformly across platforms within Postgres code (Tom Lane)§§§§

    Notably,printf understands%m everywhere; on Windows,strerror copes with Winsock error codes (it used to do so in backend but not frontend code); andstrerror_r always follows the GNU return convention.

  • Require a C99-compliant compiler, andMSVC 2013 or later onWindows (Andres Freund)§

  • Usepandoc, notlynx, for generating plain-text documentation output files (Peter Eisentraut)§§

    This affects only theINSTALL file generated duringmake dist and the seldom-used plain-textpostgres.txt output file. Pandoc produces better output than lynx and avoids some locale/encoding issues. Pandoc version 1.13 or later is required.

  • Support use of images in thePostgreSQL documentation (Jürgen Purtz)§

E.50.3.11. Additional Modules

  • AllowORDER BY sorts andLIMIT clauses to be pushed topostgres_fdw foreign servers in more cases (Etsuro Fujita)§§

  • Improve optimizer cost accounting forpostgres_fdw queries (Etsuro Fujita)§§§

  • Properly honorWITH CHECK OPTION on views that referencepostgres_fdw tables (Etsuro Fujita)§

    WhileCHECK OPTIONs onpostgres_fdw tables are ignored (because the reference is foreign), views on such tables are considered local, so this change enforcesCHECK OPTIONs on them. Previously, onlyINSERTs andUPDATEs withRETURNING clauses that returnedCHECK OPTION values were validated.

  • Allowpg_stat_statements_reset() to be more granular (Haribabu Kommi, Amit Kapila)§

    The function now allows reset of statistics for specific databases, users, and queries.

  • Allow control of theauto_explain log level (Tom Dunstan, Andrew Dunstan)§

    The default isLOG.

  • Updateunaccent rules with new punctuation and symbols (Hugh Ranalli, Michaël Paquier)§

  • Allowunaccent to handle some accents encoded as combining characters (Hugh Ranalli)§

  • Allowunaccent to remove accents from Greek characters (Tasos Maschalidis)§

  • Add a parameter toamcheck'sbt_index_parent_check() function to check each index tuple from the root of the tree (Peter Geoghegan)§

  • Improveoid2name andvacuumlo option handling to match other commands (Tatsuro Yamada)§§

E.50.4. Acknowledgments

The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.

Abhijit Menon-Sen
Achilleas Mantzios
Adam Berlin
Adam Bielanski
Aditya Toshniwal
Adrien Nayrat
Alan Jackson
Albert Schabhuetl
Aleksander Alekseev
Alex Aktsipetrov
Alex Kliukin
Alex Macy
Alexander Korotkov
Alexander Kukushkin
Alexander Kuzmenkov
Alexander Lakhin
Alexandra Ryzhevich
Alexey Bashtanov
Alexey Ermakov
Alexey Kondratov
Alexey Kryuchkov
Alexey Stepanov
Allison Kaptur
Álvaro Herrera
Alyssa Ross
Amit Kapila
Amit Khandekar
Amit Langote
Amul Sul
Anastasia Lubennikova
André Hänsel
Andrea Gelmini
Andreas Joseph Krogh
Andreas Karlsson
Andreas Kunert
Andreas Scherbaum
Andreas Seltenreich
Andrei Yahorau
Andres Freund
Andrew Dunstan
Andrew Fletcher
Andrew Gierth
Andrew Krasichkov
Andrey Borodin
Andrey Klychkov
Andrey Lepikhov
Andy Abelisto
Anthony Greene
Anthony Skorski
Antonin Houska
Arne Roland
Arseny Sher
Arthur Zakirov
Ash Marath
Ashutosh Bapat
Ashutosh Sharma
Ashwin Agrawal
Aya Iwata
Bartosz Polnik
Basil Bourque
Bernd Helmle
Brad DeJong
Brigitte Blanc-Lafay
Bruce Klein
Bruce Momjian
Bruno Wolff
Chapman Flack
Chen Huajun
Chris Travers
Chris Wilson
Christian Hofstaedtler
Christoph Berg
Christoph Moench-Tegeder
Clemens Ladisch
Colm McHugh
Corey Huinker
Craig Ringer
Dagfinn Ilmari Mannsåker
Daisuke Higuchi
Daniel Fiori
Daniel Gustafsson
Daniel Vérité
Daniel Westermann
Daniel Wilches
Darafei Praliaskouski
Daryl Waycott
Dave Cramer
David Binderman
David Fetter
David G. Johnston
David Rowley
David Steele
Davy Machado
Dean Rasheed
Derek Hans
Derek Nelson
Devrim Gündüz
Dian Fay
Didier Gautheron
Dilip Kumar
Dmitry Dolgov
Dmitry Marakasov
Dmitry Molotkov
Dmitry Shalashov
Don Seiler
Donald Dong
Doug Rady
Edmund Horner
Eduards Bezverhijs
Elvis Pranskevichus
Emanuel Araújo
Emre Hasegeli
Eric Cyr
Erik Rijkers
Ertugrul Kahveci
Etsuro Fujita
Eugen Konkov
Euler Taveira
Fabien Coelho
Fabrízio de Royes Mello
Feike Steenbergen
Filip Rembialkowski
Gaby Schilders
Geert Lobbestael
George Tarasov
Georgios Kokolatos
Gianni Ciolli
Gilles Darold
Greg Stark
Grigory Smolkin
Guillaume Lelarge
Gunnlaugur Thor Briem
Gurjeet Singh
Hadi Moshayedi
Hailong Li
Hans Buschmann
Haribabu Kommi
Haruka Takatsuka
Hayato Kuroda
Heikki Linnakangas
Hironobu Suzuki
Hubert Lubaczewski
Hugh Ranalli
Ian Barwick
Ibrar Ahmed
Ildar Musin
Insung Moon
Ioseph Kim
Isaac Morland
Ivan Panchenko
Jack Kelly
Jacob Champion
Jaime Casanova
Jakob Egger
Jakub Glapa
Jakub Janecek
James Coleman
James Inform
James Robinson
James Sewell
James Tomson
Jan Chochol
Jaroslav Sivy
Jean-Christophe Arnu
Jean-Marc Voillequin
Jean-Pierre Pelletier
Jeevan Chalke
Jeevan Ladhe
Jeff Davis
Jeff Janes
Jeremy Evans
Jeremy Schneider
Jeremy Smith
Jerry Jelinek
Jesper Pedersen
Jianing Yang
Jie Zhang
Jim Nasby
Jimmy Yih
Joe Conway
Joe Wildish
Joerg Sonnenberger
John Klann
John Naylor
Jonah Harris
Jonathan S. Katz
Jorge Gustavo Rocha
José Arthur Benetasso Villanova
Joshua D. Drake
Juan José Santamaría Flecha
Julian Hsiao
Julian Markwort
Julian Schauder
Julien Rouhaud
Jürgen Purtz
Jürgen Strobel
Justin Pryzby
Kaiting Chen
Karen Huddleston
Karl Czajkowski
Karl O. Pinc
Keiichi Hirobe
Keith Fiske
Ken Tanzer
Kenji Uno
Kevin Grittner
Kevin Hale Boyes
Kieran McCusker
Kirk Jamison
Kohei KaiGai
Konstantin Knizhnik
Konstantin Kuznetsov
Kristjan Tammekivi
Kuntal Ghosh
Kyle Samson
Kyotaro Horiguchi
Lætitia Avrot
Lars Kanis
Laurenz Albe
Lim Myungkyu
Liu Huailing
Liudmila Mantrova
Lloyd Albin
Luca Ferrari
Luis M. Carril
Lukas Eder
Lukas Fittl
Madelaine Thibaut
Madeleine Thompson
Magnus Hagander
Mahendra Singh
Mai Peng
Maksim Milyutin
Maksym Boguk
Malthe Borch
Manuel Rigger
Marco Atzeri
Marco Slot
Marina Polyakova
Mario De Frutos Dieguez
Marius Timmer
Mark Chambers
Mark Dilger
Marko Tiikkaja
Markus Winand
Martín Marqués
Masahiko Sawada
Masao Fujii
Mateusz Guzik
Mathias Brossard
Matt Williams
Matthias Otterbach
Matvey Arye
Melanie Plageman
Mi Tar
Michael Banck
Michael Davidson
Michael Meskes
Michael Paquier
Michael Vitale
Michel Pelletier
Mikalai Keida
Mike Palmiotto
Mithun Cy
Morgan Owens
Murat Kabilov
Nathan Bossart
Nawaz Ahmed
Neeraj Kumar
Nick Barnes
Nico Williams
Nikita Glukhov
Nikolay Shaplov
Ning Yu
Nishant Fnu
Noah Misch
Norbert Benkocs
Noriyoshi Shinoda
Oleg Bartunov
Oleg Samoilov
Oleksii Kliukin
Ondrej Bouda
Oskari Saarenmaa
Pan Bian
Patrick Francelle
Patrick McHardy
Paul A. Jungwirth
Paul Bonaud
Paul Guo
Paul Martinez
Paul Ramsey
Paul Schaap
Paul van der Linden
Pavan Deolasee
Pavel Oskin
Pavel Raiskup
Pavel Stehule
Peifeng Qiu
Peter Billen
Peter Eisentraut
Peter Geoghegan
Peter Neave
Petr Fedorov
Petr Jelínek
Petr Slavov
Petru-Florin Mihancea
Phil Bayer
Phil Florent
Philip Dubé
Pierre Ducroquet
Piotr Gabriel Kosinski
Piotr Stefaniak
Piotr Wlodarczyk
Prabhat Sahu
Quentin Rameau
Rafael Castro
Rafia Sabih
Rahila Syed
Rajkumar Raghuwanshi
Rares Salcudean
Raúl Marín Rodríguez
Regina Obe
Renaud Navarro
Richard Guo
Rick Otten
Rikard Falkeborn
RK Korlapati
Robbie Harwood
Robert Haas
Robert Treat
Robert Vollmert
Roger Curley
Roman Zharkov
Ronan Dunklau
Rui Hai Jiang
Rushabh Lathia
Ryan Lambert
Ryo Matsumura
Ryohei Nagaura
Ryohei Takahashi
Samuel Williams
Sand Stone
Sanyo Capobiango
Satoru Koizumi
Sean Johnston
Serge Latyntsev
Sergei Kornilov
Sergey Pashkov
Sergio Conde Gómez
Shawn Debnath
Shay Rojansky
Sho Kato
Shohei Mochizuki
Shouyu Luo
Simon Riggs
Sivasubramanian Ramasubramanian
Slawomir Chodnicki
Stas Kelvish
Stefan Kadow
Stepan Yankevych
Stephen Amell
Stephen Frost
Steve Rogerson
Steve Singer
Steven Winfield
Surafel Temesgen
Suraj Kharage
Suresh Kumar R
Takayuki Tsunakawa
Takeshi Ideriha
Takuma Hoshiai
Tasos Maschalidis
Tatsuo Ishii
Tatsuro Yamada
Teodor Sigaev
Thom Brown
Thomas Munro
Thomas Poty
Tillmann Schulz
Tim Möhlmann
Timur Birsh
Tobias Bussmann
Tom Cassidy
Tom Dunstan
Tom Gottfried
Tom Lane
Tomas Vondra
Tushar Ahuja
Ulf Adams
Vaishnavi Prabakaran
Victor Petrovykh
Victor Wagner
Victor Yegorov
Vijaykumar Jain
Vik Fearing
Vlad Sterzhanov
Vladimir Baranoff
Vladimir Kriukov
Wu Fei
Yaroslav Schekin
Yi Huang
Yoshikazu Imai
Yugo Nagata
Yulian Khodorkovskiy
Yuming Wang
YunQiang Su
Yuri Kurenkov
Yusuke Egashira
Yuzuko Hosoya
Zhou Digoal

Prev Up Next
E.49. Release 12.1 Home E.51. Prior Releases
epubpdf
Go to Postgres Pro Standard 12
By continuing to browse this website, you agree to the use of cookies. Go toPrivacy Policy.

[8]ページ先頭

©2009-2025 Movatter.jp