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
    Stephen Frost authored
    When performing a pg_upgrade, we copy the files behind pg_largeobject
    and pg_largeobject_metadata, allowing us to avoid having to dump out and
    reload the actual data for large objects and their ACLs.
    
    Unfortunately, that isn't all of the information which can be associated
    with large objects.  Currently, we also support COMMENTs and SECURITY
    LABELs with large objects and these were being silently dropped during a
    pg_upgrade as pg_dump would skip everything having to do with a large
    object and pg_upgrade only copied the tables mentioned to the new
    cluster.
    
    As the file copies happen after the catalog dump and reload, we can't
    simply include the COMMENTs and SECURITY LABELs in pg_dump's binary-mode
    output but we also have to include the actual large object definition as
    well.  With the definition, comments, and security labels in the pg_dump
    output and the file copies performed by pg_upgrade, all of the data and
    metadata associated with large objects is able to be successfully pulled
    forward across a pg_upgrade.
    
    In 9.6 and master, we can simply adjust the dump bitmask to indicate
    which components we don't want.  In 9.5 and earlier, we have to put
    explciit checks in in dumpBlob() and dumpBlobs() to not include the ACL
    or the data when in binary-upgrade mode.
    
    Adjustments made to the privileges regression test to allow another test
    (large_object.sql) to be added which explicitly leaves a large object
    with a comment in place to provide coverage of that case with
    pg_upgrade.
    
    Back-patch to all supported branches.
    
    Discussion: https://postgr.es/m/20170221162655.GE9812@tamriel.snowman.net
    ff992c07
    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:
    
    	http://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
    http://www.postgresql.org/download/.  For more information look at our
    web site located at http://www.postgresql.org/.