1. 14 Oct, 2014 5 commits
  2. 13 Oct, 2014 11 commits
  3. 12 Oct, 2014 2 commits
    • Peter Eisentraut's avatar
      pg_recvlogical: Improve --help output · a0fb59d8
      Peter Eisentraut authored
      List the actions first, as they are the most important options.  Group
      the other options more sensibly, consistent with the man page.  Correct
      a few typographical errors, clarify some things.
      
      Also update the pg_receivexlog --help output to make it a bit more
      consistent with that of pg_recvlogical.
      a0fb59d8
    • Peter Eisentraut's avatar
      Message improvements · b7a08c80
      Peter Eisentraut authored
      b7a08c80
  4. 11 Oct, 2014 5 commits
  5. 10 Oct, 2014 2 commits
    • Heikki Linnakangas's avatar
      Remove unnecessary initialization of local variables. · 733be2a5
      Heikki Linnakangas authored
      Oops, forgot these in the prveious commit.
      733be2a5
    • Heikki Linnakangas's avatar
      Change the way encoding and locale checks are done in pg_upgrade. · 33755e8e
      Heikki Linnakangas authored
      Lc_collate and lc_ctype have been per-database settings since server version
      8.4, but pg_upgrade was still treating them as cluster-wide options. It
      fetched the values for the template0 databases in old and new cluster, and
      compared them. That's backwards; the encoding and locale of the template0
      database doesn't matter, as template0 is guaranteed to contain only ASCII
      characters. But if there are any other databases that exist on both clusters
      (in particular template1 and postgres databases), their encodings and
      locales must be compatible.
      
      Also, make the locale comparison more lenient. If the locale names are not
      equal, try to canonicalize both of them by passing them to setlocale(). We
      used to do that only when upgrading from 9.1 or below, but it seems like a
      good idea even with newer versions. If we change the canonical form of a
      locale, this allows pg_upgrade to still work. I'm about to do just that to
      fix bug #11431, by mapping a locale name that contains non-ASCII characters
      to a pure-ASCII alias of the same locale.
      
      No backpatching, because earlier versions of pg_upgrade still support
      upgrading from 8.3 servers. That would be more complicated, so it doesn't
      seem worth it, given that we haven't received any complaints about this
      from users.
      33755e8e
  6. 09 Oct, 2014 1 commit
  7. 08 Oct, 2014 2 commits
    • Alvaro Herrera's avatar
      Split builtins.h to a new header ruleutils.h · 7b1c2a0f
      Alvaro Herrera authored
      The new header contains many prototypes for functions in ruleutils.c
      that are not exposed to the SQL level.
      
      Reviewed by Andres Freund and Michael Paquier.
      7b1c2a0f
    • Robert Haas's avatar
      Extend shm_mq API with new functions shm_mq_sendv, shm_mq_set_handle. · 7bb0e974
      Robert Haas authored
      shm_mq_sendv sends a message to the queue assembled from multiple
      locations.  This is expected to be used by forthcoming patches to
      allow frontend/backend protocol messages to be sent via shm_mq, but
      might be useful for other purposes as well.
      
      shm_mq_set_handle associates a BackgroundWorkerHandle with an
      already-existing shm_mq_handle.  This solves a timing problem when
      creating a shm_mq to communicate with a newly-launched background
      worker: if you attach to the queue first, and the background worker
      fails to start, you might block forever trying to do I/O on the queue;
      but if you start the background worker first, but then die before
      attaching to the queue, the background worrker might block forever
      trying to do I/O on the queue.  This lets you attach before starting
      the worker (so that the worker is protected) and then associate the
      BackgroundWorkerHandle later (so that you are also protected).
      
      Patch by me, reviewed by Stephen Frost.
      7bb0e974
  8. 07 Oct, 2014 3 commits
    • 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
    • Robert Haas's avatar
      Fix typo in elog message. · c421efd2
      Robert Haas authored
      c421efd2
    • Tom Lane's avatar
      Fix array overrun in ecpg's version of ParseDateTime(). · 55bfdd1c
      Tom Lane authored
      The code wrote a value into the caller's field[] array before checking
      to see if there was room, which of course is backwards.  Per report from
      Michael Paquier.
      
      I fixed the equivalent bug in the backend's version of this code way back
      in 630684d3, but failed to think about ecpg's copy.  Fortunately
      this doesn't look like it would be exploitable for anything worse than a
      core dump: an external attacker would have no control over the single word
      that gets written.
      55bfdd1c
  9. 06 Oct, 2014 4 commits
    • Stephen Frost's avatar
      Clean up Create/DropReplicationSlot query buffer · 273b29db
      Stephen Frost authored
      CreateReplicationSlot() and DropReplicationSlot() were not cleaning up
      the query buffer in some cases (mostly error conditions) which meant a
      small leak.  Not generally an issue as the error case would result in an
      immediate exit, but not difficult to fix either and reduces the number
      of false positives from code analyzers.
      
      In passing, also add appropriate PQclear() calls to RunIdentifySystem().
      
      Pointed out by Coverity.
      273b29db
    • 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
    • Peter Eisentraut's avatar
      Translation updates · 1ec4a970
      Peter Eisentraut authored
      1ec4a970
  10. 05 Oct, 2014 2 commits
    • 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
    • Robert Haas's avatar
      Eliminate one background-worker-related flag variable. · d0410d66
      Robert Haas authored
      Teach sigusr1_handler() to use the same test for whether a worker
      might need to be started as ServerLoop().  Aside from being perhaps
      a bit simpler, this prevents a potentially-unbounded delay when
      starting a background worker.  On some platforms, select() doesn't
      return when interrupted by a signal, but is instead restarted,
      including a reset of the timeout to the originally-requested value.
      If signals arrive often enough, but no connection requests arrive,
      sigusr1_handler() will be executed repeatedly, but the body of
      ServerLoop() won't be reached.  This change ensures that, even in
      that case, background workers will eventually get launched.
      
      This is far from a perfect fix; really, we need select() to return
      control to ServerLoop() after an interrupt, either via the self-pipe
      trick or some other mechanism.  But that's going to require more
      work and discussion, so let's do this for now to at least mitigate
      the damage.
      
      Per investigation of test_shm_mq failures on buildfarm member anole.
      d0410d66
  11. 04 Oct, 2014 1 commit
    • Tom Lane's avatar
      Update time zone data files to tzdata release 2014h. · 513d06de
      Tom Lane authored
      Most zones in the Russian Federation are subtracting one or two hours
      as of 2014-10-26.  Update the meanings of the abbreviations IRKT, KRAT,
      MAGT, MSK, NOVT, OMST, SAKT, VLAT, YAKT, YEKT to match.
      
      The IANA timezone database has adopted abbreviations of the form AxST/AxDT
      for all Australian time zones, reflecting what they believe to be current
      majority practice Down Under.  These names do not conflict with usage
      elsewhere (other than ACST for Acre Summer Time, which has been in disuse
      since 1994).  Accordingly, adopt these names into our "Default" timezone
      abbreviation set.  The "Australia" abbreviation set now contains only
      CST,EAST,EST,SAST,SAT,WST, all of which are thought to be mostly historical
      usage.  Note that SAST has also been changed to be South Africa Standard
      Time in the "Default" abbreviation set.
      
      Add zone abbreviations SRET (Asia/Srednekolymsk) and XJT (Asia/Urumqi),
      and use WSST/WSDT for western Samoa.
      
      Also a DST law change in the Turks & Caicos Islands (America/Grand_Turk),
      and numerous corrections for historical time zone data.
      513d06de
  12. 03 Oct, 2014 2 commits
    • Tom Lane's avatar
      Update time zone abbreviations lists. · 4f499eee
      Tom Lane authored
      This updates known_abbrevs.txt to be what it should have been already,
      were my -P patch not broken; and updates some tznames/ entries that
      missed getting any love in previous timezone data updates because zic
      failed to flag the change of abbreviation.
      
      The non-cosmetic updates:
      
      * Remove references to "ADT" as "Arabia Daylight Time", an abbreviation
      that's been out of use since 2007; therefore, claiming there is a conflict
      with "Atlantic Daylight Time" doesn't seem especially helpful.  (We have
      left obsolete entries in the files when they didn't conflict with anything,
      but that seems like a different situation.)
      
      * Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, FJST
      (Fiji); we didn't even have them on the proper side of the date line.
      (Seems to have been aboriginal errors in our tznames data; there's no
      evidence anything actually changed recently.)
      
      * FKST (Falkland Islands Summer Time) is now used all year round, so
      don't mark it as a DST abbreviation.
      
      * Update SAKT (Sakhalin) to mean GMT+11 not GMT+10.
      
      In cosmetic changes, I fixed a bunch of wrong (or at least obsolete)
      claims about abbreviations not being present in the zic files, and
      tried to be consistent about how obsolete abbreviations are labeled.
      
      Note the underlying timezone/data files are still at release 2014e;
      this is just trying to get us in sync with what those files actually
      say before we go to the next update.
      4f499eee
    • 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