-
由 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