Skip to content
Snippets Groups Projects
  1. Nov 03, 2014
  2. Nov 02, 2014
  3. Nov 01, 2014
  4. Oct 31, 2014
  5. Oct 27, 2014
  6. Oct 21, 2014
  7. Oct 19, 2014
  8. Oct 18, 2014
  9. Oct 16, 2014
    • Tom Lane's avatar
      Support timezone abbreviations that sometimes change. · b2cbced9
      Tom Lane authored
      Up to now, PG has assumed that any given timezone abbreviation (such as
      "EDT") represents a constant GMT offset in the usage of any particular
      region; we had a way to configure what that offset was, but not for it
      to be changeable over time.  But, as with most things horological, this
      view of the world is too simplistic: there are numerous regions that have
      at one time or another switched to a different GMT offset but kept using
      the same timezone abbreviation.  Almost the entire Russian Federation did
      that a few years ago, and later this month they're going to do it again.
      And there are similar examples all over the world.
      
      To cope with this, invent the notion of a "dynamic timezone abbreviation",
      which is one that is referenced to a particular underlying timezone
      (as defined in the IANA timezone database) and means whatever it currently
      means in that zone.  For zones that use or have used daylight-savings time,
      the standard and DST abbreviations continue to have the property that you
      can specify standard or DST time and get that time offset whether or not
      DST was theoretically in effect at the time.  However, the abbreviations
      mean what they meant at the time in question (or most recently before that
      time) rather than being absolutely fixed.
      
      The standard abbreviation-list files have been changed to use this behavior
      for abbreviations that have actually varied in meaning since 1970.  The
      old simple-numeric definitions are kept for abbreviations that have not
      changed, since they are a bit faster to resolve.
      
      While this is clearly a new feature, it seems necessary to back-patch it
      into all active branches, because otherwise use of Russian zone
      abbreviations is going to become even more problematic than it already was.
      This change supersedes the changes in commit 513d06de et al to modify the
      fixed meanings of the Russian abbreviations; since we've not shipped that
      yet, this will avoid an undesirably incompatible (not to mention incorrect)
      change in behavior for timestamps between 2011 and 2014.
      
      This patch makes some cosmetic changes in ecpglib to keep its usage of
      datetime lookup tables as similar as possible to the backend code, but
      doesn't do anything about the increasingly obsolete set of timezone
      abbreviation definitions that are hard-wired into ecpglib.  Whatever we
      do about that will likely not be appropriate material for back-patching.
      Also, a potential free() of a garbage pointer after an out-of-memory
      failure in ecpglib has been fixed.
      
      This patch also fixes pre-existing bugs in DetermineTimeZoneOffset() that
      caused it to produce unexpected results near a timezone transition, if
      both the "before" and "after" states are marked as standard time.  We'd
      only ever thought about or tested transitions between standard and DST
      time, but that's not what's happening when a zone simply redefines their
      base GMT offset.
      
      In passing, update the SGML documentation to refer to the Olson/zoneinfo/
      zic timezone database as the "IANA" database, since it's now being
      maintained under the auspices of IANA.
      b2cbced9
    • Tom Lane's avatar
      Print planning time only in EXPLAIN ANALYZE, not plain EXPLAIN. · 90063a76
      Tom Lane authored
      We've gotten enough push-back on that change to make it clear that it
      wasn't an especially good idea to do it like that.  Revert plain EXPLAIN
      to its previous behavior, but keep the extra output in EXPLAIN ANALYZE.
      Per discussion.
      
      Internally, I set this up as a separate flag ExplainState.summary that
      controls printing of planning time and execution time.  For now it's
      just copied from the ANALYZE option, but we could consider exposing it
      to users.
      90063a76
  10. Oct 14, 2014
  11. Oct 13, 2014
  12. Oct 11, 2014
  13. Oct 09, 2014
  14. Oct 07, 2014
    • Alvaro Herrera's avatar
      Implement SKIP LOCKED for row-level locks · df630b0d
      Alvaro Herrera authored
      This clause changes the behavior of SELECT locking clauses in the
      presence of locked rows: instead of causing a process to block waiting
      for the locks held by other processes (or raise an error, with NOWAIT),
      SKIP LOCKED makes the new reader skip over such rows.  While this is not
      appropriate behavior for general purposes, there are some cases in which
      it is useful, such as queue-like tables.
      
      Catalog version bumped because this patch changes the representation of
      stored rules.
      
      Reviewed by Craig Ringer (based on a previous attempt at an
      implementation by Simon Riggs, who also provided input on the syntax
      used in the current patch), David Rowley, and Álvaro Herrera.
      
      Author: Thomas Munro
      df630b0d
  15. Oct 06, 2014
    • Andres Freund's avatar
      Add support for managing physical replication slots to pg_receivexlog. · d9f38c7a
      Andres Freund authored
      pg_receivexlog already has the capability to use a replication slot to
      reserve WAL on the upstream node. But the used slot currently has to
      be created via SQL.
      
      To allow using slots directly, without involving SQL, add
      --create-slot and --drop-slot actions, analogous to the logical slot
      manipulation support in pg_recvlogical.
      
      Author: Michael Paquier
      Discussion: CABUevEx+zrOHZOQg+dPapNPFRJdsk59b=TSVf30Z71GnFXhQaw@mail.gmail.com
      d9f38c7a
    • Andres Freund's avatar
      Rename pg_recvlogical's --create/--drop to --create-slot/--drop-slot. · c8b6cba8
      Andres Freund authored
      A future patch (9.5 only) adds slot management to pg_receivexlog. The
      verbs create/drop don't seem descriptive enough there. It seems better
      to rename pg_recvlogical's commands now, in beta, than live with the
      inconsistency forever.
      
      The old form (e.g. --drop) will still be accepted by virtue of most
      getopt_long() options accepting abbreviations for long commands.
      
      Backpatch to 9.4 where pg_recvlogical was introduced.
      
      Author: Michael Paquier and Andres Freund
      Discussion: CAB7nPqQtt79U6FmhwvgqJmNyWcVCbbV-nS72j_jyPEopERg9rg@mail.gmail.com
      c8b6cba8
  16. Oct 05, 2014
    • Tom Lane's avatar
      Update 9.4 release notes for commits through today. · f706f2c1
      Tom Lane authored
      Add entries for recent changes, including noting the JSONB format change
      and the recent timezone data changes.  We should remove those two items
      before 9.4 final: the JSONB change will be of no interest in the long
      run, and it's not normally our habit to mention timezone updates in
      major-release notes.  But it seems important to document them temporarily
      for beta testers.
      
      I failed to resist the temptation to wordsmith a couple of existing
      entries, too.
      f706f2c1
  17. Oct 03, 2014
    • Stephen Frost's avatar
      Fix CreatePolicy, pg_dump -v; psql and doc updates · 78d72563
      Stephen Frost authored
      Peter G pointed out that valgrind was, rightfully, complaining about
      CreatePolicy() ending up copying beyond the end of the parsed policy
      name.  Name is a fixed-size type and we need to use namein (through
      DirectFunctionCall1()) to flush out the entire array before we pass
      it down to heap_form_tuple.
      
      Michael Paquier pointed out that pg_dump --verbose was missing a
      newline and Fabrízio de Royes Mello further pointed out that the
      schema was also missing from the messages, so fix those also.
      
      Also, based on an off-list comment from Kevin, rework the psql \d
      output to facilitate copy/pasting into a new CREATE or ALTER POLICY
      command.
      
      Lastly, improve the pg_policies view and update the documentation for
      it, along with a few other minor doc corrections based on an off-list
      discussion with Adam Brightwell.
      78d72563
    • Alvaro Herrera's avatar
      Don't balance vacuum cost delay when per-table settings are in effect · 1021bd6a
      Alvaro Herrera authored
      When there are cost-delay-related storage options set for a table,
      trying to make that table participate in the autovacuum cost-limit
      balancing algorithm produces undesirable results: instead of using the
      configured values, the global values are always used,
      as illustrated by Mark Kirkwood in
      http://www.postgresql.org/message-id/52FACF15.8020507@catalyst.net.nz
      
      Since the mechanism is already complicated, just disable it for those
      cases rather than trying to make it cope.  There are undesirable
      side-effects from this too, namely that the total I/O impact on the
      system will be higher whenever such tables are vacuumed.  However, this
      is seen as less harmful than slowing down vacuum, because that would
      cause bloat to accumulate.  Anyway, in the new system it is possible to
      tweak options to get the precise behavior one wants, whereas with the
      previous system one was simply hosed.
      
      This has been broken forever, so backpatch to all supported branches.
      This might affect systems where cost_limit and cost_delay have been set
      for individual tables.
      1021bd6a
    • Heikki Linnakangas's avatar
      Fix documentation for CREATE SEQUENCE IF NOT EXISTS. · 7a08e21f
      Heikki Linnakangas authored
      The [ IF NOT EXISTS ] was put in wrong place in the syntax.
      
      Pointed out by Marti Raudsepp.
      7a08e21f
  18. Oct 01, 2014
  19. Sep 30, 2014
  20. Sep 29, 2014
    • Stephen Frost's avatar
      Revert 95d737ff to add 'ignore_nulls' · c8a026e4
      Stephen Frost authored
      Per discussion, revert the commit which added 'ignore_nulls' to
      row_to_json.  This capability would be better added as an independent
      function rather than being bolted on to row_to_json.  Additionally,
      the implementation didn't address complex JSON objects, and so was
      incomplete anyway.
      
      Pointed out by Tom and discussed with Andrew and Robert.
      c8a026e4
Loading