• A
    Merge with PostgreSQL 9.1beta2. · 25a90396
    Asim R P 提交于
    This is the final batch of commits from PostgreSQL 9.1 development, up
    to the point where the REL9_1_STABLE branch was created, and 9.2
    development started on the PostgreSQL master branch.
    
    Notable upstream changes:
    
    * Changes to "temporary" vs. "permanent" relation handling. Previously,
      relations were classified as either temporary or not-temporary. Now
      there is a concept of "relation persistence", which includes
      un-WAL-logged (but permanent) tables as a third option.
    
      Additionally, 9.1 adds the backend ID to the relpath of temporary
      tables. Because GPDB does not have a 1:1 relationship between backends
      and temp relations, this has been reverted for now and the concept of
      a special `TempRelBackendId` has been added. We may look into
      backporting pieces of the parallel session support from future
      versions of PostgreSQL to minimize this difference.
    
      There is currently a fatal flaw in our handling of relfilenodes for
      temporary relations: it is possible (though unlikely) for a temporary
      sequence and a permanent relation (or vice-versa) to point to the same
      shared buffer in the buffer cache. This may lead to corruption of that
      buffer. Our current attempt at a fix for this issue isn't good enough
      yet, so the offending code is marked with FIXMEs. We plan to solve this
      problem with a total overhaul of the way temporary relations are
      stored in the shared buffer cache.
    
    * Collation is now supported per-column. Many plan nodes now have their
      own concept of input and output collation IDs. Notably, since this
      change involves heavy changes to generated plans, ORCA does not yet
      support non-default collation.
    
    * The SERIALIZABLE isolation level was added. This is not currently
      supported in GPDB, because we don't have a way to analyze
      serialization conflicts in a distributed manner; we will "fall back"
      to REPEATABLE READ.
    
    * GROUP BY now allows selection of columns in the grouping query without
      mentioning those columns in the GROUP BY clause, as long as those
      columns are from a table that's being grouped by its primary key. This
      requires some modification to the parallel grouping planner in GPDB.
    
    * Support for INSTEAD OF triggers on views. Notably, this would allow
      "modification" of views, but GPDB currently has no support for this
      concept in the planner. This functionality is temporarily disabled for
      now.
    
    * CTEs (WITH ... AS) can now contain data modification statements
      (INSERT/UPDATE/DELETE). This is not yet supported in GPDB.
    
    * `make -k` is now supported for installcheck[-world] and several other
      Makefile targets.
    
    * Foreign tables. Currently, GPDB does not support planning for
      statements made against foreign tables, so CREATE FOREIGN TABLE has
      been disabled.
    
    * SELinux support and integration has been added with the SECURITY LABEL
      command and the associated sepgsql utility. SECURITY LABEL support is
      currently tested in GPDB via the upstream regression tests, but
      sepgsql is not.
    
    * GUC API changes: assignment hooks are now split into two phases
      (check/assign).
    
    Notable GPDB changes:
    
    * Several pieces of the COPY dispatching code have been heavily
      refactored/rewritten to match upstream more closely. For now,
      compatibility with 5.x external table catalog entries has been
      maintained, though this is likely to change.
    Co-authored-by: NAsim Praveen <apraveen@pivotal.io>
    Co-authored-by: NBhuvnesh Chaudhary <bchaudhary@pivotal.io>
    Co-authored-by: NDhanashree Kashid <dkashid@pivotal.io>
    Co-authored-by: NGoutam Tadi <gtadi@pivotal.io>
    Co-authored-by: NHeikki Linnakangas <hlinnakangas@pivotal.io>
    Co-authored-by: NJacob Champion <pchampion@pivotal.io>
    Co-authored-by: NJesse Zhang <sbjesse@gmail.com>
    Co-authored-by: NJinbao Chen <jinchen@pivotal.io>
    Co-authored-by: NLarry Hamel <lhamel@pivotal.io>
    Co-authored-by: NMax Yang <myang@pivotal.io>
    Co-authored-by: NMelanie Plageman <mplageman@pivotal.io>
    Co-authored-by: NOmer Arap <oarap@pivotal.io>
    Co-authored-by: NPaul Guo <paulguo@gmail.com>
    Co-authored-by: NRichard Guo <guofenglinux@gmail.com>
    Co-authored-by: NSambitesh Dash <sdash@pivotal.io>
    Co-authored-by: NShreedhar Hardikar <shardikar@pivotal.io>
    Co-authored-by: NTaylor Vesely <tvesely@pivotal.io>
    Co-authored-by: NVenkatesh Raghavan <vraghavan@pivotal.io>
    25a90396
dpe_optimizer.out 114.5 KB