1. 14 Jul, 2013 3 commits
    • Peter Eisentraut's avatar
      pg_isready: Message improvement · 1f75a5f9
      Peter Eisentraut authored
      1f75a5f9
    • Stephen Frost's avatar
      pg_receivexlog - Exit on failure to parse · d368a301
      Stephen Frost authored
      In streamutil.c:GetConnection(), upgrade failure to parse the
      connection string to an exit(1) instead of simply returning NULL.
      Most callers already immediately exited, but pg_receivexlog would
      loop on this case, continually trying to re-parse the connection
      string (which can't be changed after pg_receivexlog has started).
      
      GetConnection() was already expected to exit(1) in some cases
      (eg: failure to allocate memory or if unable to determine the
      integer_datetimes flag), so this change shouldn't surprise anyone.
      
      Began looking at this due to the Coverity scanner complaining that
      we were leaking err_msg in this case- no longer an issue since we
      just exit(1) immediately.
      d368a301
    • Stephen Frost's avatar
      During parallel pg_dump, free commands from master · 234e4cf6
      Stephen Frost authored
      The command strings read by the child processes during parallel
      pg_dump, after being read and handled, were not being free'd.
      This patch corrects this relatively minor memory leak.
      
      Leak found by the Coverity scanner.
      
      Back patch to 9.3 where parallel pg_dump was introduced.
      234e4cf6
  2. 13 Jul, 2013 1 commit
    • Peter Eisentraut's avatar
      Add session_preload_libraries configuration parameter · 070518dd
      Peter Eisentraut authored
      This is like shared_preload_libraries except that it takes effect at
      backend start and can be changed without a full postmaster restart.  It
      is like local_preload_libraries except that it is still only settable by
      a superuser.  This can be a better way to load modules such as
      auto_explain.
      
      Since there are now three preload parameters, regroup the documentation
      a bit.  Put all parameters into one section, explain common
      functionality only once, update the descriptions to reflect current and
      future realities.
      Reviewed-by: default avatarDimitri Fontaine <dimitri@2ndQuadrant.fr>
      070518dd
  3. 12 Jul, 2013 3 commits
  4. 11 Jul, 2013 2 commits
  5. 10 Jul, 2013 2 commits
  6. 09 Jul, 2013 3 commits
  7. 08 Jul, 2013 5 commits
    • Alvaro Herrera's avatar
      Fix mention of htup.h in pageinspect docs · 12fbe2b3
      Alvaro Herrera authored
      It's htup_details.h now.
      
      Jeff Janes
      12fbe2b3
    • Heikki Linnakangas's avatar
      Fix Windows build. · f489470f
      Heikki Linnakangas authored
      Was broken by my xloginsert scaling patch. XLogCtl global variable needs
      to be initialized in each process, as it's not inherited by fork() on
      Windows.
      f489470f
    • Heikki Linnakangas's avatar
      Fix pg_test_fsync, broken by xloginsert scaling patch. · b5ed2199
      Heikki Linnakangas authored
      I didn't realize that ALIGNOF_XLOG_BUFFER was used in pg_test_fsync.
      b5ed2199
    • Heikki Linnakangas's avatar
      Improve scalability of WAL insertions. · 9a20a9b2
      Heikki Linnakangas authored
      This patch replaces WALInsertLock with a number of WAL insertion slots,
      allowing multiple backends to insert WAL records to the WAL buffers
      concurrently. This is particularly useful for parallel loading large amounts
      of data on a system with many CPUs.
      
      This has one user-visible change: switching to a new WAL segment with
      pg_switch_xlog() now fills the remaining unused portion of the segment with
      zeros. This potentially adds some overhead, but it has been a very common
      practice by DBA's to clear the "tail" of the segment with an external
      pg_clearxlogtail utility anyway, to make the WAL files compress better.
      With this patch, it's no longer necessary to do that.
      
      This patch adds a new GUC, xloginsert_slots, to tune the number of WAL
      insertion slots. Performance testing suggests that the default, 8, works
      pretty well for all kinds of worklods, but I left the GUC in place to allow
      others with different hardware to test that easily. We might want to remove
      that before release.
      
      Reviewed by Andres Freund.
      9a20a9b2
    • Tom Lane's avatar
      Fix planning of parameterized appendrel paths with expensive join quals. · 5372275b
      Tom Lane authored
      The code in set_append_rel_pathlist() for building parameterized paths
      for append relations (inheritance and UNION ALL combinations) supposed
      that the cheapest regular path for a child relation would still be cheapest
      when reparameterized.  Which might not be the case, particularly if the
      added join conditions are expensive to compute, as in a recent example from
      Jeff Janes.  Fix it to compare child path costs *after* reparameterizing.
      We can short-circuit that if the cheapest pre-existing path is already
      parameterized correctly, which seems likely to be true often enough to be
      worth checking for.
      
      Back-patch to 9.2 where parameterized paths were introduced.
      5372275b
  8. 07 Jul, 2013 6 commits
  9. 06 Jul, 2013 4 commits
    • Jeff Davis's avatar
      Handle posix_fallocate() errors. · 5b571bb8
      Jeff Davis authored
      On some platforms, posix_fallocate() is available but may still return
      EINVAL if the underlying filesystem does not support it.  So, in case
      of an error, fall through to the alternate implementation that just
      writes zeros.
      
      Per buildfarm failure and analysis by Tom Lane.
      5b571bb8
    • Michael Meskes's avatar
      43c3aab1
    • Tom Lane's avatar
      Rename a function to avoid naming conflict in parallel regression tests. · 0cd78780
      Tom Lane authored
      Commit 31a89185 added some tests in
      plpgsql.sql that used a function rather unthinkingly named "foo()".
      However, rangefuncs.sql has some much older tests that create a function
      of that name, and since these test scripts run in parallel, there is a
      chance of failures if the timing is just right.  Use another name to
      avoid that.  Per buildfarm (failure seen today on "hamerkop", but
      probably it's happened before and not been noticed).
      0cd78780
    • Peter Eisentraut's avatar
      PL/Python: Convert numeric to Decimal · 7919398b
      Peter Eisentraut authored
      The old implementation converted PostgreSQL numeric to Python float,
      which was always considered a shortcoming.  Now numeric is converted to
      the Python Decimal object.  Either the external cdecimal module or the
      standard library decimal module are supported.
      
      From: Szymon Guz <mabewlun@gmail.com>
      From: Ronan Dunklau <rdunklau@gmail.com>
      Reviewed-by: default avatarSteve Singer <steve@ssinger.info>
      7919398b
  10. 05 Jul, 2013 7 commits
  11. 04 Jul, 2013 4 commits
    • Fujii Masao's avatar
      Fix typo in comment. · 7842d41d
      Fujii Masao authored
      Michael Paquier
      7842d41d
    • Bruce Momjian's avatar
      Add C comment about \copy bug in CSV mode · 361b94c4
      Bruce Momjian authored
      Comment: This code erroneously assumes '\.' on a line alone inside a
      quoted CSV string terminates the \copy.
      http://www.postgresql.org/message-id/E1TdNVQ-0001ju-GO@wrigleys.postgresql.org
      361b94c4
    • Bruce Momjian's avatar
      Add contrib function references in the doc index · 20a1b9e7
      Bruce Momjian authored
      Backpatch to 9.3.
      Idea from Craig Ringer
      20a1b9e7
    • Robert Haas's avatar
      Add new GUC, max_worker_processes, limiting number of bgworkers. · 6bc8ef0b
      Robert Haas authored
      In 9.3, there's no particular limit on the number of bgworkers;
      instead, we just count up the number that are actually registered,
      and use that to set MaxBackends.  However, that approach causes
      problems for Hot Standby, which needs both MaxBackends and the
      size of the lock table to be the same on the standby as on the
      master, yet it may not be desirable to run the same bgworkers in
      both places.  9.3 handles that by failing to notice the problem,
      which will probably work fine in nearly all cases anyway, but is
      not theoretically sound.
      
      A further problem with simply counting the number of registered
      workers is that new workers can't be registered without a
      postmaster restart.  This is inconvenient for administrators,
      since bouncing the postmaster causes an interruption of service.
      Moreover, there are a number of applications for background
      processes where, by necessity, the background process must be
      started on the fly (e.g. parallel query).  While this patch
      doesn't actually make it possible to register new background
      workers after startup time, it's a necessary prerequisite.
      
      Patch by me.  Review by Michael Paquier.
      6bc8ef0b