1. 21 Jun, 2015 1 commit
  2. 20 Jun, 2015 4 commits
    • Noah Misch's avatar
      Fix failure to copy setlocale() return value. · f0a264a3
      Noah Misch authored
      POSIX permits setlocale() calls to invalidate any previous setlocale()
      return values, but commit 5f538ad0
      neglected to account for setlocale(LC_CTYPE, NULL) doing so.  The effect
      was to set the LC_CTYPE environment variable to an unintended value.
      pg_perm_setlocale() sets this variable to assist PL/Perl; without it,
      Perl would undo PostgreSQL's locale settings.  The known-affected
      configurations are 32-bit, release builds using Visual Studio 2012 or
      Visual Studio 2013.  Visual Studio 2010 is unaffected, as were all
      buildfarm-attested configurations.  In principle, this bug could leave
      the wrong LC_CTYPE in effect after PL/Perl use, which could in turn
      facilitate problems like corrupt tsvector datums.  No known platform
      experiences that consequence, because PL/Perl on Windows does not use
      this environment variable.
      
      The bug has been user-visible, as early postmaster failure, on systems
      with Windows ANSI code page set to CP936 for "Chinese (Simplified, PRC)"
      and probably on systems using other multibyte code pages.
      (SetEnvironmentVariable() rejects values containing character data not
      valid under the Windows ANSI code page.)  Back-patch to 9.4, where the
      faulty commit first appeared.
      
      Reported by Didi Hu and 林鹏程.  Reviewed by Tom Lane, though this fix
      strategy was not his first choice.
      f0a264a3
    • Noah Misch's avatar
      Revert "Detect setlocale(LC_CTYPE, NULL) clobbering previous return values." · 1f2a378d
      Noah Misch authored
      This reverts commit b76e76be.  The
      buildfarm yielded no related failures.
      1f2a378d
    • Alvaro Herrera's avatar
      Fix BRIN supported operators table · 1443a165
      Alvaro Herrera authored
      Some of the entries in the inclusion opclasses where missing operators,
      and we had an entry for inet_inclusion_ops instead of
      network_inclusion_ops.  Sort the operators within each opclass by
      strategy number, just to make it easier to spot mistakes.
      
      Also sort the rows by data type name, rather than OID.
      1443a165
    • Alvaro Herrera's avatar
      3c400a3f
  3. 19 Jun, 2015 6 commits
    • Tom Lane's avatar
      In immediate shutdown, postmaster should not exit till children are gone. · 48913db8
      Tom Lane authored
      This adjusts commit 82233ce7 so that the
      postmaster does not exit until all its child processes have exited, even
      if the 5-second timeout elapses and we have to send SIGKILL.  There is no
      great value in having the postmaster process quit sooner, and doing so can
      mislead onlookers into thinking that the cluster is fully terminated when
      actually some child processes still survive.
      
      This effect might explain recent test failures on buildfarm member hamster,
      wherein we failed to restart a cluster just after shutting it down with
      "pg_ctl stop -m immediate".
      
      I also did a bit of code review/beautification, including fixing a faulty
      use of the Max() macro on a volatile expression.
      
      Back-patch to 9.4.  In older branches, the postmaster never waited for
      children to exit during immediate shutdowns, and changing that would be
      too much of a behavioral change.
      48913db8
    • Alvaro Herrera's avatar
      Clamp autovacuum launcher sleep time to 5 minutes · da1a9d0f
      Alvaro Herrera authored
      This avoids the problem that it might go to sleep for an unreasonable
      amount of time in unusual conditions like the server clock moving
      backwards an unreasonable amount of time.
      
      (Simply moving the server clock forward again doesn't solve the problem
      unless you wake up the autovacuum launcher manually, say by sending it
      SIGHUP).
      
      Per trouble report from Prakash Itnal in
      https://www.postgresql.org/message-id/CAHC5u79-UqbapAABH2t4Rh2eYdyge0Zid-X=Xz-ZWZCBK42S0Q@mail.gmail.com
      
      Analyzed independently by Haribabu Kommi and Tom Lane.
      da1a9d0f
    • Tom Lane's avatar
      Fix bogus range_table_mutator() logic for RangeTblEntry.tablesample. · be87143f
      Tom Lane authored
      Must make a copy of the TableSampleClause node; the previous coding
      modified the input data structure in-place.
      
      Petr Jelinek
      be87143f
    • Robert Haas's avatar
      Fix corner case in autovacuum-forcing logic for multixact wraparound. · ed16f73c
      Robert Haas authored
      Since find_multixact_start() relies on SimpleLruDoesPhysicalPageExist(),
      and that function looks only at the on-disk state, it's possible for it
      to fail to find a page that exists in the in-memory SLRU that has not
      been written yet.  If that happens, SetOffsetVacuumLimit() will
      erroneously decide to force emergency autovacuuming immediately.
      
      We should probably fix find_multixact_start() to consider the data
      cached in memory as well as on the on-disk state, but that's no excuse
      for SetOffsetVacuumLimit() to be stupid about the case where it can
      no longer read the value after having previously succeeded in doing so.
      
      Report by Andres Freund.
      ed16f73c
    • Robert Haas's avatar
      Add PASSWORD to tab completions for CREATE/ALTER ROLE/USER/GROUP. · 86e47517
      Robert Haas authored
      Jeevan Chalke
      86e47517
    • Robert Haas's avatar
      Change TAP test framework to not rely on having a chmod executable. · ca3f43aa
      Robert Haas authored
      This might not work at all on Windows, and is not ever efficient.
      
      Michael Paquier
      ca3f43aa
  4. 17 Jun, 2015 1 commit
  5. 16 Jun, 2015 1 commit
  6. 15 Jun, 2015 2 commits
  7. 14 Jun, 2015 7 commits
  8. 13 Jun, 2015 6 commits
  9. 12 Jun, 2015 9 commits
    • Andrew Dunstan's avatar
      Fix "path" infrastructure bug affecting jsonb_set() · 2271d002
      Andrew Dunstan authored
      jsonb_set() and other clients of the setPathArray() utility function
      could get spurious results when an array integer subscript is provided
      that is not within the range of int.
      
      To fix, ensure that the value returned by strtol() within setPathArray()
      is within the range of int;  when it isn't, assume an invalid input in
      line with existing, similar cases.  The path-orientated operators that
      appeared in PostgreSQL 9.3 and 9.4 do not call setPathArray(), and
      already independently take this precaution, so no change there.
      
      Peter Geoghegan
      2271d002
    • Tom Lane's avatar
      Fix failure to cover scalar-vs-rowtype cases in exec_stmt_return(). · ae58f143
      Tom Lane authored
      In commit 9e3ad1aa I modified plpgsql
      to use exec_stmt_return's simple-variables fast path in more cases.
      However, I overlooked that there are really two different return
      conventions in use here, depending on whether estate->retistuple is true,
      and the existing fast-path code had only bothered to handle one of them.
      So trying to return a scalar in a function returning composite, or vice
      versa, could lead to unexpected error messages (typically "cache lookup
      failed for type 0") or to a null-pointer-dereference crash.
      
      In the DTYPE_VAR case, we can just throw error if retistuple is true,
      corresponding to what happens in the general-expression code path that was
      being used previously.  (Perhaps someday both of these code paths should
      attempt a coercion, but today is not that day.)
      
      In the REC and ROW cases, just hand the problem to exec_eval_datum()
      when not retistuple.  Also clean up the ROW coding slightly so it looks
      more like exec_eval_datum().
      
      The previous commit also caused exec_stmt_return_next() to be used in
      more cases, but that code seems to be OK as-is.
      
      Per off-list report from Serge Rielau.  This bug is new in 9.5 so no need
      to back-patch.
      ae58f143
    • Tom Lane's avatar
      Improve error message and hint for ALTER COLUMN TYPE can't-cast failure. · b0098234
      Tom Lane authored
      We already tried to improve this once, but the "improved" text was rather
      off-target if you had provided a USING clause.  Also, it seems helpful
      to provide the exact text of a suggested USING clause, so users can just
      copy-and-paste it when needed.  Per complaint from Keith Rarick and a
      suggestion from Merlin Moncure.
      
      Back-patch to 9.2 where the current wording was adopted.
      b0098234
    • Fujii Masao's avatar
      Make postmaster restart archiver soon after it dies, even during recovery. · b5fe6203
      Fujii Masao authored
      After the archiver dies, postmaster tries to start a new one immediately.
      But previously this could happen only while server was running normally
      even though archiving was enabled always (i.e., archive_mode was set to
      always). So the archiver running during recovery could not restart soon
      after it died. This is an oversight in commit ffd37740.
      
      This commit changes reaper(), postmaster's signal handler to cleanup
      after a child process dies, so that it tries to a new archiver even during
      recovery if necessary.
      
      Patch by me. Review by Alvaro Herrera.
      b5fe6203
    • Michael Meskes's avatar
      Fixed some memory leaks in ECPG. · 96ad72d1
      Michael Meskes authored
      Patch by Michael Paquier
      96ad72d1
    • Michael Meskes's avatar
      Fix intoasc() in Informix compat lib. This function used to be a noop. · 82be1bf5
      Michael Meskes authored
      Patch by Michael Paquier
      82be1bf5
    • Fujii Masao's avatar
      Fix alphabetization in catalogs.sgml. · 091c02a9
      Fujii Masao authored
      System catalogs and views should be listed alphabetically
      in catalog.sgml, but only pg_file_settings view not.
      
      This patch also fixes typos in pg_file_settings comments.
      091c02a9
    • Fujii Masao's avatar
      Clean up useless mention of RMGRDESCSOURCES in pg_rewind Makefile. · cd3cff47
      Fujii Masao authored
      RMGRDESCSOURCES is defined and used only in pg_xlogdump Makefile,
      but pg_rewind Makefile mentioned it as extra files to remove in "make clean".
      This patch removes that useless mention from pg_rewind Makefile.
      
      Michael Paquier
      cd3cff47
    • Bruce Momjian's avatar
      release notes: add links to doc sections · 66447916
      Bruce Momjian authored
      66447916
  10. 11 Jun, 2015 3 commits