1. 03 Mar, 2013 3 commits
    • Tom Lane's avatar
      Fix SQL function execution to be safe with long-lived FmgrInfos. · 2b78d101
      Tom Lane authored
      fmgr_sql had been designed on the assumption that the FmgrInfo it's called
      with has only query lifespan.  This is demonstrably unsafe in connection
      with range types, as shown in bug #7881 from Andrew Gierth.  Fix things
      so that we re-generate the function's cache data if the (sub)transaction
      it was made in is no longer active.
      
      Back-patch to 9.2.  This might be needed further back, but it's not clear
      whether the case can realistically arise without range types, so for now
      I'll desist from back-patching further.
      2b78d101
    • Peter Eisentraut's avatar
      doc: Small tweak for consistency · 891869c3
      Peter Eisentraut authored
      submitted by "Lyle"
      891869c3
    • Peter Eisentraut's avatar
      doc: A few awkward phrasing fixes · 743b73bd
      Peter Eisentraut authored
      Josh Kupershmidt
      743b73bd
  2. 02 Mar, 2013 2 commits
    • Peter Eisentraut's avatar
      Exclude utils/probes.h and pg_trace.h from cpluspluscheck · 1275b88f
      Peter Eisentraut authored
      They can include sys/sdt.h from SystemTap, which itself contains C++
      code and so won't compile with a C++ compiler under extern "C" linkage.
      1275b88f
    • Tom Lane's avatar
      Eliminate memory leaks in plperl's spi_prepare() function. · a4d3a504
      Tom Lane authored
      Careless use of TopMemoryContext for I/O function data meant that repeated
      use of spi_prepare and spi_freeplan would leak memory at the session level,
      as per report from Christian Schröder.  In addition, spi_prepare
      leaked a lot of transient data within the current plperl function's SPI
      Proc context, which would be a problem for repeated use of spi_prepare
      within a single plperl function call; and it wasn't terribly careful
      about releasing permanent allocations in event of an error, either.
      
      In passing, clean up some copy-and-pasteos in query-lookup error messages.
      
      Alex Hunsaker and Tom Lane
      a4d3a504
  3. 28 Feb, 2013 2 commits
  4. 27 Feb, 2013 7 commits
    • Heikki Linnakangas's avatar
      Remove spurious "the", and add a missing one. · 7d6b8f71
      Heikki Linnakangas authored
      Thom Brown and me.
      7d6b8f71
    • Heikki Linnakangas's avatar
      Fix MSVC build. · f70b1b27
      Heikki Linnakangas authored
      The new file in src/port needs to be listed in Mkvcbuild.pm as well.
      f70b1b27
    • Heikki Linnakangas's avatar
      Fix typo in "pg_xlogdump --help" and error message. · 26b45dc5
      Heikki Linnakangas authored
      Fujii Masao and me.
      26b45dc5
    • Heikki Linnakangas's avatar
      Cannot use WL_SOCKET_WRITEABLE without WL_SOCKET_READABLE. · 3a9e64aa
      Heikki Linnakangas authored
      In copy-out mode, the frontend should not send any messages until the
      backend has finished streaming, by sending a CopyDone message. I'm not sure
      if it would be legal for the client to send a new query before receiving the
      CopyDone message from the backend, but trying to support that would require
      bigger changes to the backend code structure.
      
      Fixes an assertion failure reported by Fujii Masao.
      3a9e64aa
    • Heikki Linnakangas's avatar
      5ddf38f2
    • Heikki Linnakangas's avatar
      Add support for piping COPY to/from an external program. · 3d009e45
      Heikki Linnakangas authored
      This includes backend "COPY TO/FROM PROGRAM '...'" syntax, and corresponding
      psql \copy syntax. Like with reading/writing files, the backend version is
      superuser-only, and in the psql version, the program is run in the client.
      
      In the passing, the psql \copy STDIN/STDOUT syntax is subtly changed: if you
      the stdin/stdout is quoted, it's now interpreted as a filename. For example,
      "\copy foo from 'stdin'" now reads from a file called 'stdin', not from
      standard input. Before this, there was no way to specify a filename called
      stdin, stdout, pstdin or pstdout.
      
      This creates a new function in pgport, wait_result_to_str(), which can
      be used to convert the exit status of a process, as returned by wait(3),
      to a human-readable string.
      
      Etsuro Fujita, reviewed by Amit Kapila.
      3d009e45
    • Tom Lane's avatar
      Add missing error check in regexp parser. · 73dc003b
      Tom Lane authored
      parseqatom() failed to check for an error return (NULL result) from its
      recursive call to parsebranch(), and in consequence could crash with a
      null-pointer dereference after an error return.  This bug has been there
      since day one, but wasn't noticed before, probably because most error cases
      in parsebranch() didn't actually lead to returning NULL.  Add the missing
      error check, and also tweak parsebranch() to exit in a less indirect
      fashion after a call to parseqatom() fails.
      
      Report by Tomasz Karlik, fix by me.
      73dc003b
  5. 26 Feb, 2013 4 commits
  6. 25 Feb, 2013 7 commits
  7. 24 Feb, 2013 3 commits
  8. 23 Feb, 2013 3 commits
  9. 22 Feb, 2013 9 commits
    • Alvaro Herrera's avatar
      contrib/Makefile also needs updated · 36f697cb
      Alvaro Herrera authored
      Erik Rijkers
      36f697cb
    • Alvaro Herrera's avatar
      Fix some typos and grammatical mistakes · 45919335
      Alvaro Herrera authored
      ... as well a update copyrights statements to 2013.
      
      Noted by Thom Brown and Peter Geoghegan
      45919335
    • Alvaro Herrera's avatar
      Fix copy-and-pasteo · f03a7797
      Alvaro Herrera authored
      Harmless, but it's certainly better like this.
      
      Noticed by Andres Freund
      f03a7797
    • Alvaro Herrera's avatar
      Add pg_xlogdump contrib program · 639ed4e8
      Alvaro Herrera authored
      This program relies on rm_desc backend routines and the xlogreader
      infrastructure to emit human-readable rendering of WAL records.
      
      Author: Andres Freund, with many reworks by Álvaro
      Reviewed (in a much earlier version) by Peter Eisentraut
      639ed4e8
    • Tom Lane's avatar
      Fix some planning oversights in postgres_fdw. · c0c6acdf
      Tom Lane authored
      Include eval costs of local conditions in remote-estimate mode, and don't
      assume the remote eval cost is zero in local-estimate mode.  (The best
      we can do with that at the moment is to assume a seqscan, which may well
      be wildly pessimistic ... but zero won't do at all.)
      
      To get a reasonable local estimate, we need to know the relpages count
      for the remote rel, so improve the ANALYZE code to fetch that rather
      than just setting the foreign table's relpages field to zero.
      c0c6acdf
    • Alvaro Herrera's avatar
      Blind attempt at fixing the non-MSVC Windows builds · af0a4c59
      Alvaro Herrera authored
      Apparently, they need -DBUILDING_DLL for the Assert() declarations to
      work correctly.
      af0a4c59
    • Tom Lane's avatar
      Fix whole-row references in postgres_fdw. · 6da378db
      Tom Lane authored
      The optimization to not retrieve unnecessary columns wasn't smart enough.
      Noted by Thom Brown.
      6da378db
    • Tom Lane's avatar
      Change postgres_fdw to show casts as casts, not underlying function calls. · 211e157a
      Tom Lane authored
      On reflection this method seems to be exposing an unreasonable amount of
      implementation detail.  It wouldn't matter when talking to a remote server
      of the identical Postgres version, but it seems likely to make things worse
      not better if the remote is a different version with different casting
      infrastructure.  Instead adopt ruleutils.c's policy of regurgitating the
      cast as it was originally specified; including not showing it at all, if
      it was implicit to start with.  (We must do that because for some datatypes
      explicit and implicit casts have different semantics.)
      211e157a
    • Tom Lane's avatar
      Get rid of postgres_fdw's assumption that remote type OIDs match ours. · 5fd386bb
      Tom Lane authored
      The only place we depended on that was in sending numeric type OIDs in
      PQexecParams; but we can replace that usage with explicitly casting
      each Param symbol in the query string, so that the types are specified
      to the remote by name not OID.  This makes no immediate difference but
      will be essential if we ever hope to support use of non-builtin types.
      5fd386bb