1. 09 Sep, 2014 4 commits
  2. 08 Sep, 2014 3 commits
    • Andres Freund's avatar
      Fix spinlock implementation for some !solaris sparc platforms. · 07968dbf
      Andres Freund authored
      Some Sparc CPUs can be run in various coherence models, ranging from
      RMO (relaxed) over PSO (partial) to TSO (total). Solaris has always
      run CPUs in TSO mode while in userland, but linux didn't use to and
      the various *BSDs still don't. Unfortunately the sparc TAS/S_UNLOCK
      were only correct under TSO. Fix that by adding the necessary memory
      barrier instructions. On sparcv8+, which should be all relevant CPUs,
      these are treated as NOPs if the current consistency model doesn't
      require the barriers.
      
      Discussion: 20140630222854.GW26930@awork2.anarazel.de
      
      Will be backpatched to all released branches once a few buildfarm
      cycles haven't shown up problems. As I've no access to sparc, this is
      blindly written.
      07968dbf
    • Tom Lane's avatar
      Fix psql \s to work with recent libedit, and add pager support. · 750c5ee6
      Tom Lane authored
      psql's \s (print command history) doesn't work at all with recent libedit
      versions when printing to the terminal, because libedit tries to do an
      fchmod() on the target file which will fail if the target is /dev/tty.
      (We'd already noted this in the context of the target being /dev/null.)
      Even before that, it didn't work pleasantly, because libedit likes to
      encode the command history file (to ensure successful reloading), which
      renders it nigh unreadable, not to mention significantly different-looking
      depending on exactly which libedit version you have.  So let's forget using
      write_history() for this purpose, and instead print the data ourselves,
      using logic similar to that used to iterate over the history for newline
      encoding/decoding purposes.
      
      While we're at it, insert the ability to use the pager when \s is printing
      to the terminal.  This has been an acknowledged shortcoming of \s for many
      years, so while you could argue it's not exactly a back-patchable bug fix
      it still seems like a good improvement.  Anyone who's seriously annoyed
      at this can use "\s /dev/tty" or local equivalent to get the old behavior.
      
      Experimentation with this showed that the history iteration logic was
      actually rather broken when used with libedit.  It turns out that with
      libedit you have to use previous_history() not next_history() to advance
      to more recent history entries.  The easiest and most robust fix for this
      seems to be to make a run-time test to verify which function to call.
      We had not noticed this because libedit doesn't really need the newline
      encoding logic: its own encoding ensures that command entries containing
      newlines are reloaded correctly (unlike libreadline).  So the effective
      behavior with recent libedits was that only the oldest history entry got
      newline-encoded or newline-decoded.  However, because of yet other bugs in
      history_set_pos(), some old versions of libedit allowed the existing loop
      logic to reach entries besides the oldest, which means there may be libedit
      ~/.psql_history files out there containing encoded newlines in more than
      just the oldest entry.  To ensure we can reload such files, it seems
      appropriate to back-patch this fix, even though that will result in some
      incompatibility with older psql versions (ie, multiline history entries
      written by a psql with this fix will look corrupted to a psql without it,
      if its libedit is reasonably up to date).
      
      Stepan Rutz and Tom Lane
      750c5ee6
    • Tom Lane's avatar
      Documentation fix: sum(float4) returns float4, not float8. · 0640c1bf
      Tom Lane authored
      The old claim is from my commit d06ebdb8 of
      2000-07-17, but it seems to have been a plain old thinko; sum(float4) has
      been distinct from sum(float8) since Berkeley days.  Noted by KaiGai Kohei.
      
      While at it, mention the existence of sum(money), which is also of
      embarrassingly ancient vintage.
      0640c1bf
  3. 07 Sep, 2014 1 commit
  4. 06 Sep, 2014 2 commits
  5. 05 Sep, 2014 6 commits
  6. 04 Sep, 2014 4 commits
    • Peter Eisentraut's avatar
      doc: Remove dead link · 8b896abe
      Peter Eisentraut authored
      The link to the NIST web page about DES standards leads to nowhere, and
      according to archive.org has been forwarded to an unrelated page for
      many years.  Therefore, just remove that link.  More up to date
      information can be found via Wikipedia, for example.
      8b896abe
    • Fujii Masao's avatar
      Fix segmentation fault that an empty prepared statement could cause. · a73c9dba
      Fujii Masao authored
      Back-patch to all supported branches.
      
      Per bug #11335 from Haruka Takatsuka
      a73c9dba
    • Robert Haas's avatar
      Update comment to reflect commit 1d41739e. · d8d4965d
      Robert Haas authored
      Peter Geoghegan
      d8d4965d
    • Fujii Masao's avatar
      Allow \watch to display query execution time if \timing is enabled. · f6f654ff
      Fujii Masao authored
      Previously \watch could not display the query execution time even
      when \timing was enabled because it used PSQLexec instead of
      SendQuery and that function didn't support \timing. This patch
      introduces PSQLexecWatch and changes \watch so as to use it, instead.
      PSQLexecWatch is the function to run the query, print its results and
      display how long it took (only when \timing is enabled).
      
      This patch also changes --echo-hidden so that it doesn't print
      the query that \watch executes. Since \watch cannot execute
      backslash command queries, they should not be printed even
      when --echo-hidden is set.
      
      Patch by me, review by Heikki Linnakangas and Michael Paquier
      f6f654ff
  7. 03 Sep, 2014 3 commits
  8. 02 Sep, 2014 5 commits
  9. 01 Sep, 2014 4 commits
  10. 31 Aug, 2014 3 commits
  11. 30 Aug, 2014 3 commits
    • Kevin Grittner's avatar
      doc: Various typo/grammar fixes · 05258761
      Kevin Grittner authored
      Errors detected using Topy (https://github.com/intgr/topy), all
      changes verified by hand and some manual tweaks added.
      
      Marti Raudsepp
      
      Individual changes backpatched, where applicable, as far as 9.0.
      05258761
    • Bruce Momjian's avatar
      d5d7d077
    • Andres Freund's avatar
      Make backend local tracking of buffer pins memory efficient. · 4b4b680c
      Andres Freund authored
      Since the dawn of time (aka Postgres95) multiple pins of the same
      buffer by one backend have been optimized not to modify the shared
      refcount more than once. This optimization has always used a NBuffer
      sized array in each backend keeping track of a backend's pins.
      
      That array (PrivateRefCount) was one of the biggest per-backend memory
      allocations, depending on the shared_buffers setting. Besides the
      waste of memory it also has proven to be a performance bottleneck when
      assertions are enabled as we make sure that there's no remaining pins
      left at the end of transactions. Also, on servers with lots of memory
      and a correspondingly high shared_buffers setting the amount of random
      memory accesses can also lead to poor cpu cache efficiency.
      
      Because of these reasons a backend's buffers pins are now kept track
      of in a small statically sized array that overflows into a hash table
      when necessary. Benchmarks have shown neutral to positive performance
      results with considerably lower memory usage.
      
      Patch by me, review by Robert Haas.
      
      Discussion: 20140321182231.GA17111@alap3.anarazel.de
      4b4b680c
  12. 29 Aug, 2014 2 commits