• D
    Merge with PostgreSQL 8.4 up to 49f001d8 · fa287d01
    Daniel Gustafsson 提交于
    This merge with upstream contained a lot of fixes to the tree, with the
    major pieces of user visible functionality having been previously back-
    ported during the 5-dev cycle. Some noteworthy changes introduced in this
    merge are:
    
    * Allow pass by value on platforms where a Datum is 8 bytes wide.
    
    * plpgsql now supports RETURN QUERY EXECUTE as well as attaching DETAIL
      and HINT fields to user thrown errors. User errors can also specify which
      SQLSTATE to use. plgpsql functions also support CASE statements
    
    * GIN indexes now support partial matches with tsqueries extended to use
      this, as well as multi-column indexes.
    
    * name_pattern_ops and pattern equality ops were removed in 7b8a63c3
      which changes text equality to match bitwise equlity. The corresponding
      change has been made to the GPDB bitmap index code.
    
    * DROP <object> .. ; handling was refactored so that when multiple objects
      are specified they are all dropped in a single call. All GPDB specific
      objects have been updated to match this. The error message output will as
      an effect be more readable for errors involving many partitions. Another
      change here is that DROP FILESPACE is separated into its own command.
    
    * XLogOpenRelation() and XLogReadBuffer() have been refactored for the
      upcoming relation forks.
    
    * Index operator lossiness is now determined at runtime instead of plantime
    
    * EXPLAIN VERBOSE now prints the targetlist of each plan node instead of the
      internal representation of the plan tree.
    
    * A child relation is no longer allowed to not have an inherited CHECK
      constraints from the parent. This adds conislocal and coninhcount to
      pg_constraints to track this.
    
    * The always-on junk filter for INSERT and SELECT INTO which returned raw
      disk tuples was superfluous since ExecInsert() performs a copy anyways.
      In Greenplum, the tuple copying was removed from ExecInsert() to avoid
      double copying as an optimization. This reverts the optimization and
      aligns Greenplum with upstream code
    
    * Type category and preferred category type are no longer hardcoded and
      instead use system catalog lookups. All base types, and user defined
      types, must now set typcategory and typispreferred.
    
    * Keeping track of snapshots has been refactored into a list of registered
      snapshots as well as a stack of active snapshots. Memory management for
      snapshot handling is also done automatically now. Dispatching of distributed
      snapshots with queries was also reworked and optimized as fallout from this.
    
    This has been a joint effort between Heikki Linnakangas, Daniel Gustafsson,
    Jacob Champion, Tom Meyer, Xiwoaran Wang, Max Yang, Jesse Zhang and Omer Arap
    fa287d01
cdbtm.c 109.5 KB