1. 11 Sep, 2014 2 commits
  2. 10 Sep, 2014 7 commits
  3. 09 Sep, 2014 8 commits
    • Tom Lane's avatar
      Preserve AND/OR flatness while extracting restriction OR clauses. · 1b4cc493
      Tom Lane authored
      The code I added in commit f343a880 was
      careless about preserving AND/OR flatness: it could create a structure with
      an OR node directly underneath another one.  That breaks an assumption
      that's fairly important for planning efficiency, not to mention triggering
      various Asserts (as reported by Benjamin Smith).  Add a trifle more logic
      to handle the case properly.
      1b4cc493
    • Andres Freund's avatar
      Add new psql help topics, accessible to both --help and \?. · 07c8651d
      Andres Freund authored
      Add --help=<topic> for the commandline, and \? <topic> as a backslash
      command, to show more help than the invocations without parameters
      do. "commands", "variables" and "options" currently exist as help
      topics describing, respectively, backslash commands, psql variables,
      and commandline switches. Without parameters the help commands show
      their previous topic.
      
      Some further wordsmithing or extending of the added help content might
      be needed; but there seems little benefit delaying the overall feature
      further.
      
      Author: Pavel Stehule, editorialized by many
      
      Reviewed-By: Andres Freund, Petr Jelinek, Fujii Masao, MauMau, Abhijit
          Menon-Sen and Erik Rijkers.
      
      Discussion: CAFj8pRDVGuC-nXBfe2CK8vpyzd2Dsr9GVpbrATAnZO=2YQ0s2Q@mail.gmail.com,
          CAFj8pRA54AbTv2RXDTRxiAd8hy8wxmoVLqhJDRCwEnhdd7OUkw@mail.gmail.com
      07c8651d
    • Robert Haas's avatar
      Change the spinlock primitives to function as compiler barriers. · 0709b7ee
      Robert Haas authored
      Previously, they functioned as barriers against CPU reordering but not
      compiler reordering, an odd API that required extensive use of volatile
      everywhere that spinlocks are used.  That's error-prone and has negative
      implications for performance, so change it.
      
      In theory, this makes it safe to remove many of the uses of volatile
      that we currently have in our code base, but we may find that there are
      some bugs in this effort when we do.  In the long run, though, this
      should make for much more maintainable code.
      
      Patch by me.  Review by Andres Freund.
      0709b7ee
    • Tom Lane's avatar
      Add width_bucket(anyelement, anyarray). · e80252d4
      Tom Lane authored
      This provides a convenient method of classifying input values into buckets
      that are not necessarily equal-width.  It works on any sortable data type.
      
      The choice of function name is a bit debatable, perhaps, but showing that
      there's a relationship to the SQL standard's width_bucket() function seems
      more attractive than the other proposals.
      
      Petr Jelinek, reviewed by Pavel Stehule
      e80252d4
    • Peter Eisentraut's avatar
      doc: Reflect renaming of Mac OS X to OS X · 220bb39d
      Peter Eisentraut authored
      bug #10528
      220bb39d
    • Peter Eisentraut's avatar
      Allow empty content in xml type · 57b1085d
      Peter Eisentraut authored
      The xml type previously rejected "content" that is empty or consists
      only of spaces.  But the SQL/XML standard allows that, so change that.
      The accepted values for XML "documents" are not changed.
      Reviewed-by: default avatarAli Akbar <the.apaan@gmail.com>
      57b1085d
    • Stephen Frost's avatar
      Move ALTER ... ALL IN to ProcessUtilitySlow · f0051c1a
      Stephen Frost authored
      Now that ALTER TABLE .. ALL IN TABLESPACE has replaced the previous
      ALTER TABLESPACE approach, it makes sense to move the calls down in
      to ProcessUtilitySlow where the rest of ALTER TABLE is handled.
      
      This also means that event triggers will support ALTER TABLE .. ALL
      (which was the impetus for the original change, though it has other
      good qualities also).
      
      Álvaro Herrera
      
      Back-patch to 9.4 as the original rework was.
      f0051c1a
    • Andres Freund's avatar
      Fix typo in solaris spinlock fix. · 50881036
      Andres Freund authored
      07968dbf missed part of the S_UNLOCK define when building for
      sparcv8+.
      50881036
  4. 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
  5. 07 Sep, 2014 1 commit
  6. 06 Sep, 2014 2 commits
  7. 05 Sep, 2014 6 commits
  8. 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
  9. 03 Sep, 2014 3 commits
  10. 02 Sep, 2014 4 commits