Skip to content
Snippets Groups Projects
  1. Jul 18, 2013
    • Tom Lane's avatar
      Fix a few problems in barrier.h. · 89779bf2
      Tom Lane authored
      On HPPA, implement pg_memory_barrier() as pg_compiler_barrier(), which
      should be correct since this arch doesn't do memory access reordering,
      and is anyway better than the completely-nonfunctional-on-this-arch
      dummy_spinlock code.  (But note this patch only fixes things for gcc,
      not for builds with HP's compiler.)
      
      Also, fix incorrect default definition of pg_memory_barrier as a macro
      requiring an argument.
      
      Also, fix incorrect spelling of "#elif" as "#else if" in icc code path
      (spotted by pgindent).
      
      This doesn't come close to fixing all of the functional and stylistic
      deficiencies in barrier.h, but at least it un-breaks my personal build.
      Now that we're actually using barriers in the code, this file is going
      to need some serious attention.
      89779bf2
  2. Jul 17, 2013
  3. Jul 16, 2013
    • Kevin Grittner's avatar
      Add support for REFRESH MATERIALIZED VIEW CONCURRENTLY. · cc1965a9
      Kevin Grittner authored
      This allows reads to continue without any blocking while a REFRESH
      runs.  The new data appears atomically as part of transaction
      commit.
      
      Review questioned the Assert that a matview was not a system
      relation.  This will be addressed separately.
      
      Reviewed by Hitoshi Harada, Robert Haas, Andres Freund.
      Merged after review with security patch f3ab5d46.
      cc1965a9
    • Robert Haas's avatar
      Allow background workers to be started dynamically. · 7f7485a0
      Robert Haas authored
      There is a new API, RegisterDynamicBackgroundWorker, which allows
      an ordinary user backend to register a new background writer during
      normal running.  This means that it's no longer necessary for all
      background workers to be registered during processing of
      shared_preload_libraries, although the option of registering workers
      at that time remains available.
      
      When a background worker exits and will not be restarted, the
      slot previously used by that background worker is automatically
      released and becomes available for reuse.  Slots used by background
      workers that are configured for automatic restart can't (yet) be
      released without shutting down the system.
      
      This commit adds a new source file, bgworker.c, and moves some
      of the existing control logic for background workers there.
      Previously, there was little enough logic that it made sense to
      keep everything in postmaster.c, but not any more.
      
      This commit also makes the worker_spi contrib module into an
      extension and adds a new function, worker_spi_launch, which can
      be used to demonstrate the new facility.
      7f7485a0
    • Peter Eisentraut's avatar
      Fix PQconninfoParse error message handling · 233bfe06
      Peter Eisentraut authored
      The returned error message already includes a newline, but the callers
      were adding their own when printing it out.
      233bfe06
  4. Jul 15, 2013
    • Stephen Frost's avatar
      Check get_tle_by_resno() result before deref · 4ed22e89
      Stephen Frost authored
      When creating a sort to support a group by, we need to look up the
      target entry in the target list by the resno using get_tle_by_resno().
      This particular code-path didn't check the result prior to attempting
      to dereference it, while all other callers did.  While I can't see a
      way for this usage of get_tle_by_resno() to fail (you can't ask for
      a column to be sorted on which isn't included in the group by), it's
      probably best to check that we didn't end up with a NULL somehow
      anyway than risk the segfault.
      
      I'm willing to back-patch this if others feel it's necessary, but my
      guess is new features are what might tickle this rather than anything
      existing.
      
      Missing check spotted by the Coverity scanner.
      4ed22e89
    • Robert Haas's avatar
      Tab completion for \lo_import · 4403a9d7
      Robert Haas authored
      Josh Kupershmidt
      4403a9d7
    • Robert Haas's avatar
      Assert that syscache lookups don't happen outside transactions. · 42c80c69
      Robert Haas authored
      Andres Freund
      42c80c69
    • Robert Haas's avatar
      Regression tests for LOCK TABLE. · ac33c7e2
      Robert Haas authored
      Robins Tharakan, reviewed by Szymon Guz, substantially revised by me.
      ac33c7e2
    • Robert Haas's avatar
      vacuumlo: Use a cursor to limit client-side memory usage. · 67ccbb08
      Robert Haas authored
      This prevents the client from gobbling up too much memory when the
      number of large objects to be removed is very large.
      
      Andrew Dunstan, reviewed by Josh Kupershmidt
      67ccbb08
    • Stephen Frost's avatar
      Correct off-by-one when reading from pipe · 03010366
      Stephen Frost authored
      In pg_basebackup.c:reached_end_position(), we're reading from an
      internal pipe with our own background process but we're possibly
      reading more bytes than will actually fit into our buffer due to
      an off-by-one error.  As we're reading from an internal pipe
      there's no real risk here, but it's good form to not depend on
      such convenient arrangements.
      
      Bug spotted by the Coverity scanner.
      
      Back-patch to 9.2 where this showed up.
      03010366
    • Stephen Frost's avatar
      Check version before allocating PQExpBuffer · 3355443f
      Stephen Frost authored
      In pg_dump.c:getEventTriggers, check what major version we are on
      before calling createPQExpBuffer() to avoid leaking that bit of
      memory.
      
      Leak discovered by the Coverity scanner.
      
      Back-patch to 9.3 where support for dumping event triggers was
      added.
      3355443f
    • Noah Misch's avatar
      Document the OVER keyword as being unreserved. · 01337d46
      Noah Misch authored
      It became so in commit 5893ffa7.
      
      David Fetter, extracted from a larger patch.
      01337d46
  5. Jul 14, 2013
    • Stephen Frost's avatar
      Fix resource leak in initdb -X option · 5461d36b
      Stephen Frost authored
      When creating the symlink for the xlog directory, free the string
      which stores the link location.  Not really an issue but it doesn't
      hurt to be good about this- prior cleanups have fixed similar
      issues.
      
      Leak found by the Coverity scanner.
      
      Not back-patching as I don't see it being worth the code churn.
      5461d36b
    • Stephen Frost's avatar
      Be sure to close() file descriptor on error case · cec62efd
      Stephen Frost authored
      In receivelog.c:writeTimeLineHistoryFile(), we were not properly
      closing the open'd file descriptor in error cases.  While this
      wouldn't matter much if we were about to exit due to such an
      error, that's not the case with pg_receivexlog as it can be a
      long-running process and these errors are non-fatal.
      
      This resource leak was found by the Coverity scanner.
      
      Back-patch to 9.3 where this issue first appeared.
      cec62efd
    • Stephen Frost's avatar
      Ensure 64bit arithmetic when calculating tapeSpace · 273dcd16
      Stephen Frost authored
      In tuplesort.c:inittapes(), we calculate tapeSpace by first figuring
      out how many 'tapes' we can use (maxTapes) and then multiplying the
      result by the tape buffer overhead for each.  Unfortunately, when
      we are on a system with an 8-byte long, we allow work_mem to be
      larger than 2GB and that allows maxTapes to be large enough that the
      32bit arithmetic can overflow when multiplied against the buffer
      overhead.
      
      When this overflow happens, we end up adding the overflow to the
      amount of space available, causing the amount of memory allocated to
      be larger than work_mem.
      
      Note that to reach this point, you have to set work mem to at least
      24GB and be sorting a set which is at least that size.  Given that a
      user who can set work_mem to 24GB could also set it even higher, if
      they were looking to run the system out of memory, this isn't
      considered a security issue.
      
      This overflow risk was found by the Coverity scanner.
      
      Back-patch to all supported branches, as this issue has existed
      since before 8.4.
      273dcd16
    • 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
  6. Jul 13, 2013
    • 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
    • Noah Misch's avatar
      Switch user ID to the object owner when populating a materialized view. · f3ab5d46
      Noah Misch authored
      This makes superuser-issued REFRESH MATERIALIZED VIEW safe regardless of
      the object's provenance.  REINDEX is an earlier example of this pattern.
      As a downside, functions called from materialized views must tolerate
      running in a security-restricted operation.  CREATE MATERIALIZED VIEW
      need not change user ID.  Nonetheless, avoid creation of materialized
      views that will invariably fail REFRESH by making it, too, start a
      security-restricted operation.
      
      Back-patch to 9.3 so materialized views have this from the beginning.
      
      Reviewed by Kevin Grittner.
      f3ab5d46
    • Noah Misch's avatar
  7. Jul 12, 2013
  8. Jul 11, 2013
  9. Jul 10, 2013
  10. Jul 09, 2013
  11. Jul 08, 2013
Loading