1. 06 Aug, 2009 2 commits
  2. 05 Aug, 2009 5 commits
    • Alvaro Herrera's avatar
      Fix manpages related to SPI functions. · 6403c35e
      Alvaro Herrera authored
      This patch adds declaration so that they end up in section 3, and adds
      them to the Makefiles to install them.
      
      Also, some synopses needed reflowing so that they look nice in 80-column
      terminals.
      6403c35e
    • Tom Lane's avatar
      25bd9ce3
    • Heikki Linnakangas's avatar
      Improve error messages in md.c. When a filesystem operation like open() or · 23dc89d2
      Heikki Linnakangas authored
      fsync() fails, say "file" rather than "relation" when printing the filename.
      
      This makes messages that display block numbers a bit confusing. For example,
      in message 'could not read block 150000 of file "base/1234/5678.1"', 150000
      is the block number from the beginning of the relation, ie. segment 0, not
      150000th block within that segment. Per discussion, users aren't usually
      interested in the exact location within the file, so we can live with that.
      
      To ease constructing error messages, add FilePathName(File) function to
      return the pathname of a virtual fd.
      23dc89d2
    • Joe Conway's avatar
      Implement dblink_get_notify(). · f4095b4c
      Joe Conway authored
      Adds the ability to retrieve async notifications using dblink,
      via the addition of the function dblink_get_notify(). Original patch
      by Marcus Kempe, suggestions by Tom Lane and Alvaro Herrera, patch
      review and adjustments by Joe Conway.
      f4095b4c
    • Michael Meskes's avatar
      Fixed copyright notice. · 16f3cf8c
      Michael Meskes authored
      16f3cf8c
  3. 04 Aug, 2009 10 commits
    • Peter Eisentraut's avatar
      Use DocBook XSL stylesheets for man page building · c29d7f02
      Peter Eisentraut authored
      This switches the man page building process to use the DocBook XSL stylesheet
      toolchain.  The previous targets for Docbook2X are removed. configure has been
      updated to look for the new tools.  The Documentation appendix contains the
      new build instructions.  There are also a few isolated tweaks in the
      documentation to improve places that came out strangely in the man pages.
      c29d7f02
    • Tom Lane's avatar
      Fix pg_dump to do the right thing when escaping the contents of large objects. · b1732111
      Tom Lane authored
      The previous implementation got it right in most cases but failed in one:
      if you pg_dump into an archive with standard_conforming_strings enabled, then
      pg_restore to a script file (not directly to a database), the script will set
      standard_conforming_strings = on but then emit large object data as
      nonstandardly-escaped strings.
      
      At the moment the code is made to emit hex-format bytea strings when dumping
      to a script file.  We might want to change to old-style escaping for backwards
      compatibility, but that would be slower and bulkier.  If we do, it's just a
      matter of reimplementing appendByteaLiteral().
      
      This has been broken for a long time, but given the lack of field complaints
      I'm not going to worry about back-patching.
      b1732111
    • Alvaro Herrera's avatar
      Avoid including miscadmin.h into plpgsql.h; instead include it into the two · 50d08346
      Alvaro Herrera authored
      source files that need it.
      50d08346
    • Tom Lane's avatar
      Fix an ecpg test, too. Are we there yet? · 466a4925
      Tom Lane authored
      466a4925
    • Tom Lane's avatar
      Fix some more regression tests (missed these because they're only · c83d1fb1
      Tom Lane authored
      run when built with --with-openssl).
      c83d1fb1
    • Tom Lane's avatar
      Suppress pointer-signedness warning. · 8476f055
      Tom Lane authored
      8476f055
    • Tom Lane's avatar
      Ooops, missed that a couple of contrib modules have calls to byteacmp. · bcba09e2
      Tom Lane authored
      Add bytea.h inclusions as needed.  Some of the contrib regression tests
      need to be de-hexified, too.  Per buildfarm.
      bcba09e2
    • Tom Lane's avatar
      Teach PQescapeByteaConn() to use hex format when the target connection is · 5b8ee5c1
      Tom Lane authored
      to a server >= 8.5.  Per my proposal in discussion of hex-format patch.
      5b8ee5c1
    • Tom Lane's avatar
      Support hex-string input and output for type BYTEA. · a2a8c7a6
      Tom Lane authored
      Both hex format and the traditional "escape" format are automatically
      handled on input.  The output format is selected by the new GUC variable
      bytea_output.
      
      As committed, bytea_output defaults to HEX, which is an *incompatible
      change*.  We will keep it this way for awhile for testing purposes, but
      should consider whether to switch to the more backwards-compatible
      default of ESCAPE before 8.5 is released.
      
      Peter Eisentraut
      a2a8c7a6
    • Tom Lane's avatar
      Cause pg_proc.probin to be declared as text, not bytea. Everything was · f192e4a5
      Tom Lane authored
      already treating it as text anyway, to the point that I couldn't find anything
      to change except the datatype markings in catalog/*.h.  The only effect that
      the bytea declaration had was to cause byteaout() to be invoked when pg_dump
      (or another client program) inspected the column value.  Since pg_dump wasn't
      expecting that, but just treating what it got as text, the net result is that
      dump and reload would mangle any backslashes or non-ASCII characters in the
      filename string for a C-language function.  That is a very long-standing bug,
      but given the lack of field complaints it doesn't seem worth trying to find
      a back-patchable fix.  We'll just make this change to fix it going forward.
      
      This change will also forestall problems after the planned change to let bytea
      emit hex output instead of escaped characters.
      f192e4a5
  4. 03 Aug, 2009 3 commits
    • Joe Conway's avatar
      Implement has_sequence_privilege() · be6bca23
      Joe Conway authored
      Add family of functions that did not exist earlier,
      mainly due to historical omission. Original patch by
      Abhijit Menon-Sen, with review and modifications by
      Joe Conway. catversion.h bumped.
      be6bca23
    • Tom Lane's avatar
    • Tatsuo Ishii's avatar
      Multi-threaded version of pgbench contributed by ITAGAKI Takahiro, · 3da0dfb4
      Tatsuo Ishii authored
      reviewed by Greg Smith and Josh Williams.
      
      Following is the proposal from ITAGAKI Takahiro:
      
      Pgbench is a famous tool to measure postgres performance, but nowadays
      it does not work well because it cannot use multiple CPUs. On the other
      hand, postgres server can use CPUs very well, so the bottle-neck of
      workload is *in pgbench*.
      
      Multi-threading would be a solution. The attached patch adds -j
      (number of jobs) option to pgbench. If the value N is greater than 1,
      pgbench runs with N threads. Connections are equally-divided into
      them (ex. -c64 -j4 => 4 threads with 16 connections each). It can
      run on POSIX platforms with pthread and on Windows with win32 threads.
      
      Here are results of multi-threaded pgbench runs on Fedora 11 with intel
      core i7 (8 logical cores = 4 physical cores * HT). -j8 (8 threads) was
      the best and the tps is 4.5 times of -j1, that is a traditional result.
      
      $ pgbench -i -s10
      $ pgbench -n -S -c64 -j1   =>  tps = 11600.158593
      $ pgbench -n -S -c64 -j2   =>  tps = 17947.100954
      $ pgbench -n -S -c64 -j4   =>  tps = 26571.124001
      $ pgbench -n -S -c64 -j8   =>  tps = 52725.470403
      $ pgbench -n -S -c64 -j16  =>  tps = 38976.675319
      $ pgbench -n -S -c64 -j32  =>  tps = 28998.499601
      $ pgbench -n -S -c64 -j64  =>  tps = 26701.877815
      
      Is it acceptable to use pthread in contrib module?
      If ok, I will add the patch to the next commitfest.
      3da0dfb4
  5. 02 Aug, 2009 1 commit
  6. 01 Aug, 2009 2 commits
  7. 31 Jul, 2009 1 commit
    • Tom Lane's avatar
      Create a multiplexing structure for signals to Postgres child processes. · 2487d872
      Tom Lane authored
      This patch gets us out from under the Unix limitation of two user-defined
      signal types.  We already had done something similar for signals directed to
      the postmaster process; this adds multiplexing for signals directed to
      backends and auxiliary processes (so long as they're connected to shared
      memory).
      
      As proof of concept, replace the former usage of SIGUSR1 and SIGUSR2
      for backends with use of the multiplexing mechanism.  There are still some
      hard-wired definitions of SIGUSR1 and SIGUSR2 for other process types,
      but getting rid of those doesn't seem interesting at the moment.
      
      Fujii Masao
      2487d872
  8. 30 Jul, 2009 2 commits
  9. 29 Jul, 2009 3 commits
    • Tom Lane's avatar
      Fix time_part and timetz_part (ie, EXTRACT() for those datatypes) to · 78aef14c
      Tom Lane authored
      include a fractional part in the output for MILLISECOND and SECOND cases,
      rather than truncating the source value.  This is what the float-timestamp
      code has always done, and it was clearly the code author's intent to do
      the same for integer timestamps, but he forgot about integer division in C.
      The other datatypes supported by EXTRACT() already do this correctly.
      
      Backpatch to 8.4, so that the default (integer) behavior of that branch will
      match the default (float) behavior of older branches.  Arguably we should
      patch further back, but it's possible that applications are expecting the
      broken behavior in older branches.  8.4 is new enough that expectations
      shouldn't be too settled.
      
      Per report from Greg Stark.
      78aef14c
    • Tom Lane's avatar
      Support deferrable uniqueness constraints. · 25d9bf2e
      Tom Lane authored
      The current implementation fires an AFTER ROW trigger for each tuple that
      looks like it might be non-unique according to the index contents at the
      time of insertion.  This works well as long as there aren't many conflicts,
      but won't scale to massive unique-key reassignments.  Improving that case
      is a TODO item.
      
      Dean Rasheed
      25d9bf2e
    • Tom Lane's avatar
      Fix a thinko introduced into CountActiveBackends by a recent patch: · 85049057
      Tom Lane authored
      we should ignore NULL array entries, not non-NULL ones.  This had the
      effect of disabling commit_delay, and could have caused a crash in the
      rare race condition the patch was intended to fix.
      
      Bug report and diagnosis by Jeff Janes, in bug #4952.
      85049057
  10. 28 Jul, 2009 3 commits
  11. 27 Jul, 2009 6 commits
  12. 26 Jul, 2009 1 commit
    • Tom Lane's avatar
      Extend EXPLAIN to allow generic options to be specified. · d4382c4a
      Tom Lane authored
      The original syntax made it difficult to add options without making them
      into reserved words.  This change parenthesizes the options to avoid that
      problem, and makes provision for an explicit (and perhaps non-Boolean)
      value for each option.  The original syntax is still supported, but only
      for the two original options ANALYZE and VERBOSE.
      
      As a test case, add a COSTS option that can suppress the planner cost
      estimates.  This may be useful for including EXPLAIN output in the regression
      tests, which are otherwise unable to cope with cross-platform variations in
      cost estimates.
      
      Robert Haas
      d4382c4a
  13. 25 Jul, 2009 1 commit