Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

postgres-lambda-diff

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Tom Lane authored
    Commits 74286994 et al turn out to be a couple bricks shy of a load.
    We were dumping the stored values of GUC_LIST_QUOTE variables as they
    appear in proconfig or setconfig catalog columns.  However, although that
    quoting rule looks a lot like SQL-identifier double quotes, there are two
    critical differences: empty strings ("") are legal, and depending on which
    variable you're considering, values longer than NAMEDATALEN might be valid
    too.  So the current technique fails altogether on empty-string list
    entries (as reported by Steven Winfield in bug #15248) and it also risks
    truncating file pathnames during dump/reload of GUC values that are lists
    of pathnames.
    
    To fix, split the stored value without any downcasing or truncation,
    and then emit each element as a SQL string literal.
    
    This is a tad annoying, because we now have three copies of the
    comma-separated-string splitting logic in varlena.c as well as a fourth
    one in dumputils.c.  (Not to mention the randomly-different-from-those
    splitting logic in libpq...)  I looked at unifying these, but it would
    be rather a mess unless we're willing to tweak the API definitions of
    SplitIdentifierString, SplitDirectoriesString, or both.  That might be
    worth doing in future; but it seems pretty unsafe for a back-patched
    bug fix, so for now accept the duplication.
    
    Back-patch to all supported branches, as the previous fix was.
    
    Discussion: https://postgr.es/m/7585.1529435872@sss.pgh.pa.us
    31b29b1b
    History
    PostgreSQL Database Management System
    =====================================
    
    This directory contains the source code distribution of the PostgreSQL
    database management system.
    
    PostgreSQL is an advanced object-relational database management system
    that supports an extended subset of the SQL standard, including
    transactions, foreign keys, subqueries, triggers, user-defined types
    and functions.  This distribution also contains C language bindings.
    
    PostgreSQL has many language interfaces, many of which are listed here:
    
    	https://www.postgresql.org/download
    
    See the file INSTALL for instructions on how to build and install
    PostgreSQL.  That file also lists supported operating systems and
    hardware platforms and contains information regarding any other
    software packages that are required to build or run the PostgreSQL
    system.  Copyright and license information can be found in the
    file COPYRIGHT.  A comprehensive documentation set is included in this
    distribution; it can be read as described in the installation
    instructions.
    
    The latest version of this software may be obtained at
    https://www.postgresql.org/download/.  For more information look at our
    web site located at https://www.postgresql.org/.