Bruce Momjian [Fri, 5 Sep 2014 23:22:31 +0000 (19:22 -0400)]     Report timezone offset in pg_dump/pg_dumpall
 
 Use consistent format for all such displays.
 
 Report by Gavin Flower
 
 
    Bruce Momjian [Fri, 5 Sep 2014 23:19:41 +0000 (19:19 -0400)]     pg_upgrade:  preserve the timestamp epoch
 
 This is useful for replication tools like Slony and Skytools.
 
 Report by Sergey Konoplev
 
 
    Bruce Momjian [Fri, 5 Sep 2014 22:59:41 +0000 (18:59 -0400)]     Clarify documentation about "peer" rows in window functions
 
 Peer rows are matching rows when ORDER BY is specified.
 
 Report by arnaud.mouronval@gmail.com, David G Johnston
 
 
    Bruce Momjian [Fri, 5 Sep 2014 13:52:31 +0000 (09:52 -0400)]     Rename C variables in formatting.c, for clarity
 
 Also add C comments.  This should help future debugging of this
 notorious file.
 
 
    Peter Eisentraut [Fri, 5 Sep 2014 05:20:33 +0000 (01:20 -0400)]     Assorted message fixes and improvements
 
 
    Fujii Masao [Fri, 5 Sep 2014 02:40:08 +0000 (11:40 +0900)]     Add tab-completion for reloptions like user_catalog_table.
 
 Back-patch to 9.4 where user_catalog_table was added.
 
 Review by Michael Paquier
 
 
    Peter Eisentraut [Thu, 4 Sep 2014 18:11:23 +0000 (14:11 -0400)]     doc: Remove dead link
 
 The link to the NIST web page about DES standards leads to nowhere, and
 according to archive.org has been forwarded to an unrelated page for
 many years.  Therefore, just remove that link.  More up to date
 information can be found via Wikipedia, for example.
 
 
    Fujii Masao [Thu, 4 Sep 2014 17:17:57 +0000 (02:17 +0900)]     Fix segmentation fault that an empty prepared statement could cause.
 
 Back-patch to all supported branches.
 
 Per bug #11335 from Haruka Takatsuka
 
 
    Robert Haas [Thu, 4 Sep 2014 16:17:10 +0000 (12:17 -0400)]     Update comment to reflect commit 
1d41739e5a04b0e93304d24d864b6bfa3efc45f2. 
 Peter Geoghegan  
  Fujii Masao [Thu, 4 Sep 2014 03:31:48 +0000 (12:31 +0900)]     Allow \watch to display query execution time if \timing is enabled.
 
 Previously \watch could not display the query execution time even
 when \timing was enabled because it used PSQLexec instead of
 SendQuery and that function didn't support \timing. This patch
 introduces PSQLexecWatch and changes \watch so as to use it, instead.
 PSQLexecWatch is the function to run the query, print its results and
 display how long it took (only when \timing is enabled).
 
 This patch also changes --echo-hidden so that it doesn't print
 the query that \watch executes. Since \watch cannot execute
 backslash command queries, they should not be printed even
 when --echo-hidden is set.
 
 Patch by me, review by Heikki Linnakangas and Michael Paquier
 
 
    Bruce Momjian [Wed, 3 Sep 2014 21:22:20 +0000 (17:22 -0400)]     Update URL reference material in /contrib/isn docs
 
 Report by Peter Eisentraut
 
 
    Bruce Momjian [Wed, 3 Sep 2014 18:32:57 +0000 (14:32 -0400)]     Document use of partial indexes for partial unique constraints
 
 Report by Tomáš Greif
 
 Backpatch through 9.4
 
 
    Bruce Momjian [Wed, 3 Sep 2014 15:54:31 +0000 (11:54 -0400)]     Issue clearer notice when inherited merged columns are moved
 
 CREATE TABLE INHERIT moves user-specified columns to the location of the
 inherited column.
 
 Report by Fatal Majid
 
 
    Heikki Linnakangas [Tue, 2 Sep 2014 12:53:06 +0000 (15:53 +0300)]     Check number of parameters in RAISE statement at compile time.
 
 The number of % parameter markers in RAISE statement should match the number
 of parameters given. We used to check that at execution time, but we have
 all the information needed at compile time, so let's check it at compile
 time instead. It's generally better to find mistakes earlier.
 
 Marko Tiikkaja, reviewed by Fabien Coelho
 
 
    Heikki Linnakangas [Wed, 13 Aug 2014 12:39:08 +0000 (15:39 +0300)]     Refactor per-page logic common to all redo routines to a new function.
 
 Every redo routine uses the same idiom to determine what to do to a page:
 check if there's a backup block for it, and if not read, the buffer if the
 block exists, and check its LSN. Refactor that into a common function,
 XLogReadBufferForRedo, making all the redo routines shorter and more
 readable.
 
 This has no user-visible effect, and makes no changes to the WAL format.
 
 Reviewed by Andres Freund, Alvaro Herrera, Michael Paquier.
 
 
    Heikki Linnakangas [Tue, 2 Sep 2014 11:22:42 +0000 (14:22 +0300)]     Silence warning on new versions of clang.
 
 Andres Freund
 
 
    Andres Freund [Tue, 2 Sep 2014 11:05:48 +0000 (13:05 +0200)]     Add psql PROMPT variable showing which line of a statement is being edited.
 
 The new %l substitution shows the line number inside a (potentially
 multi-line) statement starting from one.
 
 Author: Sawada Masahiko, heavily editorialized by me.
 Reviewed-By: Jeevan Chalke, Alvaro Herrera
 
    Fujii Masao [Tue, 2 Sep 2014 07:06:58 +0000 (16:06 +0900)]     Support ALTER SYSTEM RESET command.
 
 This patch allows us to execute ALTER SYSTEM RESET command to
 remove the configuration entry from postgresql.auto.conf.
 
 Vik Fearing, reviewed by Amit Kapila and me.
 
 
    Tom Lane [Mon, 1 Sep 2014 22:37:45 +0000 (18:37 -0400)]     Fix unportable use of isspace().
  Introduced in commit 
11a020eb6.  
  Andres Freund [Mon, 1 Sep 2014 11:42:43 +0000 (13:42 +0200)]     Add skip-empty-xacts option to test_decoding for use in the regression tests.
  The regression tests for contrib/test_decoding regularly failed on
 postgres instances that were very slow. Either because the hardware
 itself was slow or because very expensive debugging options like
 CLOBBER_CACHE_ALWAYS were used. 
 The reason they failed was just that some additional transactions were
 decoded. Analyze and vacuum, triggered by autovac. 
 To fix just add a option to test_decoding to only display transactions
 in which a change was actually displayed. That's not pretty because it
 removes information from the tests; but better than constantly failing
 tests in very likely harmless ways. 
 Backpatch to 9.4 where logical decoding was introduced. 
 Discussion: 
20140629142511.GA26930@awork2.anarazel.de  
  Andres Freund [Mon, 1 Sep 2014 10:19:00 +0000 (12:19 +0200)]     Add valgrind suppression for padding bytes in twophase records.
 
 
    Andres Freund [Mon, 1 Sep 2014 10:01:29 +0000 (12:01 +0200)]     Fix s/pluggins/plugins/ typo in two comments.
 
 Michael Paquier
 
 
    Andres Freund [Sun, 31 Aug 2014 22:16:55 +0000 (00:16 +0200)]     Declare lwlock.c's LWLockAcquireCommon() as a static inline.
  68a2e52bbaf98f136 has introduced LWLockAcquireCommon() containing the
 previous contents of LWLockAcquire() plus added functionality. The
 latter then calls it, just like LWLockAcquireWithVar(). Because the
 majority of callers don't need the added functionality, declare the
 common code as inline. The compiler then can optimize away the unused
 code. Doing so is also useful when looking at profiles, to
 differentiate the users. 
 Backpatch to 9.4, the first branch to contain LWLockAcquireCommon().  
  Andres Freund [Sun, 31 Aug 2014 22:03:53 +0000 (00:03 +0200)]     Protect definition of SpinlockSemaArray, just like its declaration.
 
 Found via clang's -Wmissing-variable-declarations.
 
 
    Andres Freund [Sun, 31 Aug 2014 21:53:12 +0000 (23:53 +0200)]     Declare two variables in snapbuild.c as static.
 
 Neither is accessed externally, I just seem to have missed the static
 when writing the code.
 
 
    Kevin Grittner [Sat, 30 Aug 2014 15:52:36 +0000 (10:52 -0500)]     doc: Various typo/grammar fixes
 
 Errors detected using Topy (https://github.com/intgr/topy), all
 changes verified by hand and some manual tweaks added.
 
 Marti Raudsepp
 
 Individual changes backpatched, where applicable, as far as 9.0.
 
 
    Bruce Momjian [Sat, 30 Aug 2014 14:24:34 +0000 (10:24 -0400)]     Again update C comments for pg_attribute.attislocal
 
 
    Andres Freund [Sat, 30 Aug 2014 12:03:21 +0000 (14:03 +0200)]     Make backend local tracking of buffer pins memory efficient.
  Since the dawn of time (aka Postgres95) multiple pins of the same
 buffer by one backend have been optimized not to modify the shared
 refcount more than once. This optimization has always used a NBuffer
 sized array in each backend keeping track of a backend's pins. 
 That array (PrivateRefCount) was one of the biggest per-backend memory
 allocations, depending on the shared_buffers setting. Besides the
 waste of memory it also has proven to be a performance bottleneck when
 assertions are enabled as we make sure that there's no remaining pins
 left at the end of transactions. Also, on servers with lots of memory
 and a correspondingly high shared_buffers setting the amount of random
 memory accesses can also lead to poor cpu cache efficiency. 
 Because of these reasons a backend's buffers pins are now kept track
 of in a small statically sized array that overflows into a hash table
 when necessary. Benchmarks have shown neutral to positive performance
 results with considerably lower memory usage. 
 Patch by me, review by Robert Haas. 
 Discussion: 
20140321182231.GA17111@alap3.anarazel.de  
  Bruce Momjian [Fri, 29 Aug 2014 23:01:04 +0000 (19:01 -0400)]     Update C comment for pg_attribute.attislocal
 
 Indicates if column has ever been local/non-inherited
 
 
    Bruce Momjian [Fri, 29 Aug 2014 13:05:35 +0000 (09:05 -0400)]     pg_is_xlog_replay_paused():  remove super-user-only restriction
 
 Also update docs to mention which function are super-user-only.
 
 Report by sys-milan@statpro.com
 
 Backpatch through 9.4
 
 
    Heikki Linnakangas [Fri, 29 Aug 2014 11:19:34 +0000 (14:19 +0300)]     Fix bug in compressed GIN data leaf page splitting code.
 
 The list of posting lists it's dealing with can contain placeholders for
 deleted posting lists. The placeholders are kept around so that they can
 be WAL-logged, but we must be careful to not try to access them.
 
 This fixes bug #11280, reported by Mårten Svantesson. Backpatch to 9.4,
 where the compressed data leaf page code was added.
 
 
    Peter Eisentraut [Fri, 29 Aug 2014 04:01:34 +0000 (00:01 -0400)]     Assorted message improvements
 
 
    Peter Eisentraut [Fri, 29 Aug 2014 03:59:03 +0000 (23:59 -0400)]     doc: Revert ALTER TABLESPACE summary line
 
 It was changed when ALTER TABLESPACE / MOVE was added but then not
 updated when that was moved back out.
 
 
    Tom Lane [Fri, 29 Aug 2014 02:37:58 +0000 (22:37 -0400)]     Add min and max aggregates for inet/cidr data types.
 
 Haribabu Kommi, reviewed by Muhammad Asif Naeem
 
 
    Noah Misch [Fri, 29 Aug 2014 00:36:27 +0000 (20:36 -0400)]     Always use our getaddrinfo.c on Windows.
  Commit 
a16bac36eca8158cbf78987e95376f610095f792 let "configure" detect
 the system getaddrinfo() when building under 64-bit MinGW-w64.  However,
 src/include/port/win32/sys/socket.h assumes all native Windows
 configurations use our replacement.  This change placates buildfarm
 member jacana until we establish a plan for getaddrinfo() on Windows.  
  Tom Lane [Thu, 28 Aug 2014 22:21:05 +0000 (18:21 -0400)]     Fix citext upgrade script for disallowance of oidvector element assignment.
  In commit 
45e02e3232ac7cc5ffe36f7986159b5e0b1f6fdc, we intentionally
 disallowed updates on individual elements of oidvector columns.  While that
 still seems like a sane idea in the abstract, we (I) forgot that citext's
 "upgrade from unpackaged" script did in fact perform exactly such updates,
 in order to fix the problem that citext indexes should have a collation
 but would not in databases dumped or upgraded from pre-9.1 installations. 
 Even if we wanted to add casts to allow such updates, there's no practical
 way to do so in the back branches, so the only real alternative is to make
 citext's kluge even klugier.  In this patch, I cast the oidvector to text,
 fix its contents with regexp_replace, and cast back to oidvector.  (Ugh!) 
 Since the aforementioned commit went into all active branches, we have to
 fix this in all branches that contain the now-broken update script. 
 Per report from Eric Malm.  
  Fujii Masao [Thu, 28 Aug 2014 20:10:47 +0000 (05:10 +0900)]     Revert "Allow units to be specified in relation option setting value."
  This reverts commit 
e23014f3d40f7d2c23bc97207fd28efbe5ba102b. 
 As the side effect of the reverted commit, when the unit is
 specified, the reloption was stored in the catalog with the unit.
 This broke pg_dump (specifically, it prevented pg_dump from
 outputting restorable backup regarding the reloption) and
 turned the buildfarm red. Revert the commit until the fixed
 version is ready.  
  Andres Freund [Thu, 28 Aug 2014 11:59:29 +0000 (13:59 +0200)]     Allow escaping of option values for options passed at connection start.
  This is useful to allow to set GUCs to values that include spaces;
 something that wasn't previously possible. The primary case motivating
 this is the desire to set default_transaction_isolation to 'repeatable
 read' on a per connection basis, but other usecases like seach_path do
 also exist. 
 This introduces a slight backward incompatibility: Previously a \ in
 an option value would have been passed on literally, now it'll be
 taken as an escape. 
 The relevant mailing list discussion starts with 
20140204125823.GJ12016@awork2.anarazel.de.  
  Fujii Masao [Thu, 28 Aug 2014 06:55:50 +0000 (15:55 +0900)]     Allow units to be specified in relation option setting value.
 
 This introduces an infrastructure which allows us to specify the units
 like ms (milliseconds) in integer relation option, like GUC parameter.
 Currently only autovacuum_vacuum_cost_delay reloption can accept
 the units.
 
 Reviewed by Michael Paquier
 
 
    Jeff Davis [Thu, 28 Aug 2014 04:07:36 +0000 (21:07 -0700)]     Allow multibyte characters as escape in SIMILAR TO and SUBSTRING.
 
 Previously, only a single-byte character was allowed as an
 escape. This patch allows it to be a multi-byte character, though it
 still must be a single character.
 
 Reviewed by Heikki Linnakangas and Tom Lane.
 
 
    Alvaro Herrera [Wed, 27 Aug 2014 23:15:18 +0000 (19:15 -0400)]     Fix FOR UPDATE NOWAIT on updated tuple chains
  If SELECT FOR UPDATE NOWAIT tries to lock a tuple that is concurrently
 being updated, it might fail to honor its NOWAIT specification and block
 instead of raising an error. 
 Fix by adding a no-wait flag to EvalPlanQualFetch which it can pass down
 to heap_lock_tuple; also use it in EvalPlanQualFetch itself to avoid
 blocking while waiting for a concurrent transaction. 
 Authors: Craig Ringer and Thomas Munro, tweaked by Álvaro
 http://www.postgresql.org/message-id/
51FB6703.
9090801@2ndquadrant.com 
 Per Thomas Munro in the course of his SKIP LOCKED feature submission,
 who also provided one of the isolation test specs. 
 Backpatch to 9.4, because that's as far back as it applies without
 conflicts (although the bug goes all the way back).  To that branch also
 backpatch Thomas Munro's new NOWAIT test cases, committed in master by
 Heikki as commit 
9ee16b49f0aac819bd4823d9b94485ef608b34e8 .  
  Fujii Masao [Wed, 27 Aug 2014 10:31:48 +0000 (19:31 +0900)]     Add header comments to receivelog.h and streamutil.h.
 
 This commit also adds the include guards to those header files.
 
 Michael Paquier
 
 
    Stephen Frost [Wed, 27 Aug 2014 03:08:41 +0000 (23:08 -0400)]     Fix Var handling for security barrier views
 
 In some cases, not all Vars were being correctly marked as having been
 modified for updatable security barrier views, which resulted in invalid
 plans (eg: when security barrier views were created over top of
 inheiritance structures).
 
 In passing, be sure to update both varattno and varonattno, as _equalVar
 won't consider the Vars identical otherwise.  This isn't known to cause
 any issues with updatable security barrier views, but was noticed as
 missing while working on RLS and makes sense to get fixed.
 
 Back-patch to 9.4 where updatable security barrier views were
 introduced.
 
 
    Peter Eisentraut [Wed, 27 Aug 2014 02:43:37 +0000 (22:43 -0400)]     doc: Document valid checkpoint_timeout range
 
 Author: Fabien COELHO <coelho@cri.ensmp.fr>
 
 
    Peter Eisentraut [Tue, 26 Aug 2014 21:26:45 +0000 (17:26 -0400)]     Fix whitespace
 
 
    Robert Haas [Tue, 26 Aug 2014 19:58:50 +0000 (15:58 -0400)]     Fix typo in 
b34e37bfefbed1bf9396dde18f308d8b96fd176c. 
 Spotted by Peter Geoghegan.  
  Kevin Grittner [Tue, 26 Aug 2014 14:56:26 +0000 (09:56 -0500)]     Fix superuser concurrent refresh of matview owned by another.
 
 Use SECURITY_LOCAL_USERID_CHANGE while building temporary tables;
 only escalate to SECURITY_RESTRICTED_OPERATION while potentially
 running user-supplied code.  The more secure mode was preventing
 temp table creation.  Add regression tests to cover this problem.
 
 This fixes Bug #11208 reported by Bruno Emanuel de Andrade Silva.
 
 Backpatch to 9.4, where the bug was introduced.
 
 
    Andres Freund [Tue, 26 Aug 2014 13:25:18 +0000 (15:25 +0200)]     Mark IsBinaryUpgrade as PGDLLIMPORT to fix windows builds after 
a7ae1dc. 
 Author: David Rowley  
  Heikki Linnakangas [Tue, 26 Aug 2014 13:05:18 +0000 (16:05 +0300)]     Implement IF NOT EXISTS for CREATE SEQUENCE.
 
 Fabrízio de Royes Mello
 
 
    Andres Freund [Tue, 26 Aug 2014 10:21:06 +0000 (12:21 +0200)]     Specify the port in dblink and postgres_fdw tests.
 
 That allows to run those tests against a postmaster listening on a
 nonstandard port without requiring to export PGPORT in postmaster's
 environment.
 
 This still doesn't support connecting to a nondefault host without
 configuring it in postmaster's environment. That's harder and less
 frequently used though. So this is a useful step.
 
 
    Andres Freund [Tue, 26 Aug 2014 00:54:53 +0000 (02:54 +0200)]     Don't hardcode contrib_regression dbname in postgres_fdw and dblink tests.
 
 That allows parallel installcheck to succeed inside contrib/. The
 output is not particularly pretty unless make's -O option to
 synchronize the output is used.
 
 There's other tests, outside contrib, that use a hardcoded,
 non-unique, database name. Those prohibit paralell installcheck to be
 used across more directories; but that's something for a separate
 patch.
 
 
    Heikki Linnakangas [Tue, 26 Aug 2014 08:50:48 +0000 (11:50 +0300)]     Show schema names in pg_dump verbose output.
 
 Fabrízio de Royes Mello, reviewed by Michael Paquier
 
 
    Bruce Momjian [Tue, 26 Aug 2014 02:19:05 +0000 (22:19 -0400)]     pg_upgrade:  prevent automatic oid assignment
 
 Prevent automatic oid assignment when in binary upgrade mode.  Also
 throw an error when contrib/pg_upgrade_support functions are called when
 not in binary upgrade mode.
 
 This prevent automatically-assigned oids from conflicting with later
 pre-assigned oids coming from the old cluster.  It also makes sure oids
 are preserved in call important cases.
 
 
    Bruce Momjian [Tue, 26 Aug 2014 01:28:19 +0000 (21:28 -0400)]     rename macro isTempOrToastNamespace to isTempOrTempToastNamespace
 
 Done for clarity
 
 
    Bruce Momjian [Tue, 26 Aug 2014 01:22:08 +0000 (21:22 -0400)]     pg_upgrade:  use CTE query rather than temp table
 
 Now that 8.3 is not supported, we can use a CTE and not temp tables.
 This allows for auto-oid assignment protection in a future patch.
 
 
    Bruce Momjian [Tue, 26 Aug 2014 00:11:48 +0000 (20:11 -0400)]     pg_upgrade docs:  update docs for 8.3 support removal
 
 
    Bruce Momjian [Tue, 26 Aug 2014 00:07:37 +0000 (20:07 -0400)]     revert "Throw error for ALTER TABLE RESET of an invalid option"
  Reverts commits 
73d78e11a0f7183c80b93eefbbb6026fe9664015 and 
b0488e5c4fbfdce8acc989bdc17d9f0ec09ac281.  Also reverts pg_upgrade
 changes.  
  Bruce Momjian [Tue, 26 Aug 2014 00:05:07 +0000 (20:05 -0400)]     pg_upgrade:  remove support for 8.3 old clusters
 
 This trims down the code, and is in preparation for hardening pg_upgrade
 against auto-oid assignment.
 
 
    Bruce Momjian [Mon, 25 Aug 2014 21:24:33 +0000 (17:24 -0400)]     pg_upgrade:  add SET log_min_error_statement = warning
  Add to commit 
73d78e11a0f7183c80b93eefbbb6026fe9664015    Bruce Momjian [Mon, 25 Aug 2014 21:06:40 +0000 (17:06 -0400)]     Throw error for ALTER TABLE RESET of an invalid option
 
 Also adjust pg_upgrade to not use this method for optional TOAST table
 creation.
 
 Patch by Fabrízio de Royes Mello
 
 
    Bruce Momjian [Mon, 25 Aug 2014 20:30:26 +0000 (16:30 -0400)]     pg_ctl, pg_upgrade:  allow multiple -o/-O options, append them
 
 Report by Pavel Raiskup
 
 
    Bruce Momjian [Mon, 25 Aug 2014 19:34:51 +0000 (15:34 -0400)]     upgrade docs:  highlight pg_upgrade, warn about globals preservation
 
 Also, remove OID preservation mention, mention non-text dump formats
 
 Backpatch through 9.4
 
 
    Alvaro Herrera [Mon, 25 Aug 2014 19:33:17 +0000 (15:33 -0400)]     Revert XactLockTableWait context setup in conditional multixact wait
 
 There's no point in setting up a context error callback when doing
 conditional lock acquisition, because we never actually wait and so the
 user wouldn't be able to see the context message anywhere.  In fact,
 this is more in line with what ConditionalXactLockTableWait is doing.
 
 Backpatch to 9.4, where this was added.
 
 
    Alvaro Herrera [Mon, 25 Aug 2014 19:32:30 +0000 (15:32 -0400)]     Use newly added InvalidCommandId instead of 0
  The symbol was added by 
71901ab6d; the original code was introduced by 
6868ed749.  Development of both overlapped which is why we apparently
 failed to notice. 
 This is a (very slight) behavior change, so I'm not backpatching this to
 9.4 for now, even though the symbol does exist there.  
  Alvaro Herrera [Mon, 25 Aug 2014 19:32:26 +0000 (15:32 -0400)]     DefineType: return base type OID, not its array
 
 Event triggers want to know the OID of the interesting object created,
 which is the main type.  The array created as part of the operation is
 just a subsidiary object which is not of much interest.
 
 
    Alvaro Herrera [Mon, 25 Aug 2014 19:32:18 +0000 (15:32 -0400)]     Have CREATE TABLE AS and REFRESH return an OID
 
 Other DDL commands are already returning the OID, which is required for
 future additional event trigger work.  This is merely making these
 commands in line with the rest of utility command support.
 
 
    Alvaro Herrera [Mon, 25 Aug 2014 19:32:15 +0000 (15:32 -0400)]     More psprintf goodness
 
 
    Alvaro Herrera [Mon, 25 Aug 2014 19:32:06 +0000 (15:32 -0400)]     Oops, forgot to "git add" one last change
 
 
    Alvaro Herrera [Mon, 25 Aug 2014 17:50:19 +0000 (13:50 -0400)]     Editorial review of SET UNLOGGED
 
 Add a succint comment explaining why it's correct to change the
 persistence in this way.  Also s/loggedness/persistence/ because native
 speakers didn't like the latter term.
 
 Fabrízio and Álvaro
 
 
    Heikki Linnakangas [Mon, 25 Aug 2014 17:12:01 +0000 (20:12 +0300)]     Add regression tests for SELECT FOR UPDATE/SHARE NOWAIT.
 
 Thomas Munro
 
 
    Andres Freund [Mon, 25 Aug 2014 16:30:37 +0000 (18:30 +0200)]     Fix typos in some error messages thrown by extension scripts when fed to psql.
  Some of the many error messages introduced in 
458857cc missed 'FROM
 unpackaged'. Also 
e016b724 and 
45ffeb7e forgot to quote extension
 version numbers. 
 Backpatch to 9.1, just like 
458857cc which introduced the messages. Do
 so because the error messages thrown when the wrong command is copy &
 pasted aren't easy to understand.  
  Heikki Linnakangas [Mon, 25 Aug 2014 16:13:24 +0000 (19:13 +0300)]     Don't track DEALLOCATE in pg_stat_statements.
 
 We also don't track PREPARE, nor do we track planning time in general, so
 let's ignore DEALLOCATE as well for consistency.
 
 Backpatch to 9.4, but not further than that. Although it seems unlikely that
 anyone is relying on the current behavior, this is a behavioral change.
 
 Fabien Coelho
 
 
    Tom Lane [Sun, 24 Aug 2014 15:56:52 +0000 (11:56 -0400)]     Fix another ancient memory-leak bug in relcache.c.
  CheckConstraintFetch() leaked a cstring in the caller's context for each
 CHECK constraint expression it copied into the relcache.  Ordinarily that
 isn't problematic, but it can be during CLOBBER_CACHE testing because so
 many reloads can happen during a single query; so complicate the code
 slightly to allow freeing the cstring after use.  Per testing on buildfarm
 member barnacle. 
 This is exactly like the leak fixed in AttrDefaultFetch() by commit 
078b2ed291c758e7125d72c3a235f128d40a232b.  (Yes, this time I did look for
 other instances of the same coding pattern :-(.)  Like that patch, no
 back-patch, since it seems unlikely that there's any problem except under
 very artificial test conditions. 
 BTW, it strikes me that both of these places would require further work
 comparable to commit 
ab8c84db2f7af008151b848cf1d6a4672a39eecd, if we ever
 supported defaults or check constraints on system catalogs: they both
 assume they are copying into an empty relcache data structure, and that
 conceivably wouldn't be the case during recursive reloading of a system
 catalog.  This does not seem worth worrying about for the moment, since
 there is no near-term prospect of supporting any such thing.  So I'll
 just note the possibility for the archives' sake.  
  Peter Eisentraut [Sat, 23 Aug 2014 04:23:34 +0000 (00:23 -0400)]     doc: Improve pg_restore help output
 
 Add a note that some options can be specified multiple times to select
 multiple objects to restore.  This replaces the somewhat confusing use
 of plurals in the option descriptions themselves.
 
 
    Alvaro Herrera [Fri, 22 Aug 2014 18:27:00 +0000 (14:27 -0400)]     Implement ALTER TABLE .. SET LOGGED / UNLOGGED
 
 This enables changing permanent (logged) tables to unlogged and
 vice-versa.
 
 (Docs for ALTER TABLE / SET TABLESPACE got shuffled in an order that
 hopefully makes more sense than the original.)
 
 Author: Fabrízio de Royes Mello
 Reviewed by: Christoph Berg, Andres Freund, Thom Brown
 Some tweaking by Álvaro Herrera
 
 
    Alvaro Herrera [Fri, 22 Aug 2014 17:55:34 +0000 (13:55 -0400)]     Fix outdated comment
 
 
    Tom Lane [Fri, 22 Aug 2014 17:17:58 +0000 (13:17 -0400)]     Fix corner-case behaviors in JSON/JSONB field extraction operators.
 
 Cause the path extraction operators to return their lefthand input,
 not NULL, if the path array has no elements.  This seems more consistent
 since the case ought to correspond to applying the simple extraction
 operator (->) zero times.
 
 Cause other corner cases in field/element/path extraction to return NULL
 rather than failing.  This behavior is arguably more useful than throwing
 an error, since it allows an expression index using these operators to be
 built even when not all values in the column are suitable for the
 extraction being indexed.  Moreover, we already had multiple
 inconsistencies between the path extraction operators and the simple
 extraction operators, as well as inconsistencies between the JSON and
 JSONB code paths.  Adopt a uniform rule of returning NULL rather than
 throwing an error when the JSON input does not have a structure that
 permits the request to be satisfied.
 
 Back-patch to 9.4.  Update the release notes to list this as a behavior
 change since 9.3.
 
 
    Andres Freund [Fri, 22 Aug 2014 07:25:47 +0000 (09:25 +0200)]     Fix newly introduced misspelling of existence in pg_buffercache.
 
 Peter Geoghegan
 
 
    Heikki Linnakangas [Fri, 22 Aug 2014 10:45:38 +0000 (13:45 +0300)]     Fix comment in pg_basebackup.
 
 The option is called --tablespace-mapping, not --tablespace.
 
 Amit Kapila
 
 
    Heikki Linnakangas [Fri, 22 Aug 2014 07:16:26 +0000 (10:16 +0300)]     Change the way pg_basebackup's tablespace mapping is implemented.
 
 Previously, we would first create the symlinks the way they are in the
 original system, and at the end replace them with the mapped symlinks.
 That never really made much sense, so now we create the symlink pointing
 to the correct location to begin with, so that there's no need to fix
 them at the end.
 
 The old coding didn't work correctly on Windows, because Windows junction
 points look more like directories than files, and ought to be removed with
 rmdir rather than unlink. Also, it incorrectly used "%d" rather than "%u"
 to print an Oid, but that's gone now.
 
 Report and patch by Amit Kapila, with minor changes by me. Reviewed by
 MauMau. Backpatch to 9.4, where the --tablespace feature was added.
 
 
    Peter Eisentraut [Fri, 22 Aug 2014 01:37:41 +0000 (21:37 -0400)]     Fix whitespace
 
 
    Stephen Frost [Thu, 21 Aug 2014 23:06:17 +0000 (19:06 -0400)]     Rework 'MOVE ALL' to 'ALTER .. ALL IN TABLESPACE'
 
 As 'ALTER TABLESPACE .. MOVE ALL' really didn't change the tablespace
 but instead changed objects inside tablespaces, it made sense to
 rework the syntax and supporting functions to operate under the
 'ALTER (TABLE|INDEX|MATERIALIZED VIEW)' syntax and to be in
 tablecmds.c.
 
 Pointed out by Alvaro, who also suggested the new syntax.
 
 Back-patch to 9.4.
 
 
    Andres Freund [Thu, 21 Aug 2014 22:28:37 +0000 (00:28 +0200)]     Add pinning_backends column to the pg_buffercache extension.
 
 The new column shows how many backends have a buffer pinned. That can
 be useful during development or to diagnose production issues
 e.g. caused by vacuum waiting for cleanup locks.
 
 To handle upgrades transparently - the extension might be used in
 views - deal with callers expecting the old number of columns.
 
 Reviewed by Fujii Masao and Rajeev rastogi.
 
 
    Heikki Linnakangas [Thu, 21 Aug 2014 06:56:44 +0000 (09:56 +0300)]     Add #define INT64_MODIFIER for the printf length modifier for 64-bit ints.
 
 We have had INT64_FORMAT and UINT64_FORMAT for a long time, but that's not
 good enough if you want something more exotic, like "%20lld".
 
 Abhijit Menon-Sen, per Andres Freund's suggestion.
 
 
    Tom Lane [Wed, 20 Aug 2014 23:05:05 +0000 (19:05 -0400)]     More regression test cases for json/jsonb extraction operators.
 
 Cover some cases I omitted before, such as null and empty-string
 elements in the path array.  This exposes another inconsistency:
 json_extract_path complains about empty path elements but
 jsonb_extract_path does not.
 
 
    Tom Lane [Wed, 20 Aug 2014 20:48:35 +0000 (16:48 -0400)]     Fix core dump in jsonb #> operator, and add regression test cases.
 
 jsonb's #> operator segfaulted (dereferencing a null pointer) if the RHS
 was a zero-length array, as reported in bug #11207 from Justin Van Winkle.
 json's #> operator returns NULL in such cases, so for the moment let's
 make jsonb act likewise.
 
 Also add a bunch of regression test queries memorializing the -> and #>
 operators' behavior for this and other corner cases.
 
 There is a good argument for changing some of these behaviors, as they
 are not very consistent with each other, and throwing an error isn't
 necessarily a desirable behavior for operators that are likely to be
 used in indexes.  However, everybody can agree that a core dump is the
 Wrong Thing, and we need test cases even if we decide to change their
 expected output later.
 
 
    Bruce Momjian [Wed, 20 Aug 2014 17:03:58 +0000 (13:03 -0400)]     pg_upgrade:  adjust logging to use QUERY_ALLOC lengths
 
 Allows the logging to print the entire text of failed queries, rather
 than a truncated version.
 
 
    Heikki Linnakangas [Wed, 20 Aug 2014 09:04:32 +0000 (12:04 +0300)]     Use comma+space as the separator in the default search_path.
 
 While the space is optional, it seems nicer to be consistent with what
 you get if you do "SET search_path=...". SET always normalizes the
 separator to be comma+space.
 
 Christoph Martin
 
 
    Fujii Masao [Tue, 19 Aug 2014 09:30:38 +0000 (18:30 +0900)]     Revert "Fix bug in checking of IDENTIFY_SYSTEM result."
  This reverts commit 
083d29c65b7897f90c70e6dc0a4240a5fa75c8f2. 
 The commit changed the code so that it causes an errors when
 IDENTIFY_SYSTEM returns three columns. But which prevents us
 from using the replication-related utilities against the server
 with older version. This is not what we want. For that
 compatibility, we allow the utilities to receive three columns
 as the result of IDENTIFY_SYSTEM eventhough it actually returns
 four columns in 9.4 or later. 
 Pointed out by Andres Freund.  
  Fujii Masao [Tue, 19 Aug 2014 08:26:07 +0000 (17:26 +0900)]     Fix bug in checking of IDENTIFY_SYSTEM result.
  5a991ef8692ed0d170b44958a81a6bd70e90585 added new column into
 the result of IDENTIFY_SYSTEM command. But it was not reflected into
 several codes checking that result. Specifically though the number of
 columns in the result was increased to 4, it was still compared with 3
 in some replication codes. 
 Back-patch to 9.4 where the number of columns in IDENTIFY_SYSTEM
 result was increased. 
 Report from Michael Paquier  
  Noah Misch [Tue, 19 Aug 2014 03:00:38 +0000 (23:00 -0400)]     Install libpq DLL with $(INSTALL_SHLIB).
 
 Programs need execute permission on a DLL file to load it.  MSYS
 "install" ignores the mode argument, and our Cygwin build statically
 links libpq into programs.  That explains the lack of buildfarm trouble.
 Back-patch to 9.0 (all supported versions).
 
 
    Noah Misch [Tue, 19 Aug 2014 02:59:53 +0000 (22:59 -0400)]     Finish adding file version information to installed Windows binaries.
 
 In support of this, have the MSVC build follow GNU make in preferring
 GNUmakefile over Makefile when a directory contains both.
 
 Michael Paquier, reviewed by MauMau.
 
 
    Noah Misch [Tue, 19 Aug 2014 02:59:31 +0000 (22:59 -0400)]     Replace a few strncmp() calls with strlcpy().
 
 strncmp() is a specialized API unsuited for routine copying into
 fixed-size buffers.  On a system where the length of a single filename
 can exceed MAXPGPATH, the pg_archivecleanup change prevents a simple
 crash in the subsequent strlen().  Few filesystems support names that
 long, and calling pg_archivecleanup with untrusted input is still not a
 credible use case.  Therefore, no back-patch.
 
 David Rowley
 
 
    Noah Misch [Tue, 19 Aug 2014 02:58:57 +0000 (22:58 -0400)]     Make pg_service.conf sample LDIF more portable.
 
 The aboriginal sample placed connection parameters in
 groupOfUniqueNames/uniqueMember.  OpenLDAP, at least as early as version
 2.4.23, rejects uniqueMember entries that do not conform to the syntax
 for a distinguished name.  Use device/description, which is free-form.
 Back-patch to 9.4 for web site visibility.
 
 
    Noah Misch [Tue, 19 Aug 2014 02:58:25 +0000 (22:58 -0400)]     Document new trigger-related forms of ALTER FOREIGN TABLE.
  Oversight in commit 
7cbe57c34dec4860243e6d0f81738cfbb6e5d069.
 Back-patch to 9.4, where that commit first appeared.  In passing,
 release-note the FDW API postcondition change from the same commit.  
  Greg Stark [Mon, 18 Aug 2014 22:12:59 +0000 (23:12 +0100)]     Adjust Release Notes to reflect holding off wrapped expanded mode until 9.5 (thanks Michael Paquier)
 
 
    Greg Stark [Mon, 18 Aug 2014 11:06:11 +0000 (12:06 +0100)]     Fix further concerns about psql wrapping in expanded mode having
 collateral damage on other formats, by Sergey Muraviov.
 
 
    Heikki Linnakangas [Mon, 18 Aug 2014 10:04:47 +0000 (13:04 +0300)]     Reorganize functions in be-secure-openssl.c
 
 Move the functions within the file so that public interface functions come
 first, followed by internal functions. Previously, be_tls_write was first,
 then internal stuff, and finally the rest of the public interface, which
 clearly didn't make much sense.
 
 Per Andres Freund's complaint.
 
 
    Tom Lane [Mon, 18 Aug 2014 05:17:49 +0000 (01:17 -0400)]     Fix obsolete mention of non-int64 support in CREATE SEQUENCE documentation.
 
 The old text explained what happened if we didn't have working int64
 arithmetic.  Since that case has been explicitly rejected by configure
 since 8.4.3, documenting it in the 9.x branches can only produce confusion.
 
 
    Tom Lane [Mon, 18 Aug 2014 02:57:15 +0000 (22:57 -0400)]     Use ISO 8601 format for dates converted to JSON, too.
  Commit 
f30015b6d794c15d52abbb3df3a65081fbefb1ed made this happen for
 timestamp and timestamptz, but it seems pretty inconsistent to not
 do it for simple dates as well. 
 (In passing, I re-pgindent'd json.c.)