1. 03 Jan, 2013 1 commit
  2. 02 Jan, 2013 7 commits
  3. 01 Jan, 2013 5 commits
  4. 31 Dec, 2012 3 commits
    • Tom Lane's avatar
      Fix ruleutils to cope with conflicts from adding/dropping/renaming columns. · 2ffa740b
      Tom Lane authored
      In commit 11e13185, we improved the
      rule/view dumping code so that it would produce valid query representations
      even if some of the tables involved in a query had been renamed since the
      query was parsed.  This patch extends that idea to fix problems that occur
      when individual columns are renamed, or added or dropped.  As before, the
      core of the fix is to assign unique new aliases when a name conflict has
      been created.  This is complicated by the JOIN USING feature, which
      requires the same column alias to be used in both input relations, but we
      can handle that with a sufficiently complex approach to assigning aliases.
      
      A fortiori, this patch takes care of situations where the query didn't have
      unique column names to begin with, such as in a recent complaint from Bryan
      Nuse.  (Because of expansion of "SELECT *", re-parsing a dumped query can
      require column name uniqueness even though the original text did not.)
      2ffa740b
    • Peter Eisentraut's avatar
      doc: Correct description of ldapurl · 7eb559a8
      Peter Eisentraut authored
      The ldapurl option doesn't actually support specifying a user name and
      password.
      
      Albe Laurenz
      7eb559a8
    • Peter Eisentraut's avatar
      0e690209
  5. 30 Dec, 2012 2 commits
    • Heikki Linnakangas's avatar
      Keep timeline history files restored from archive in pg_xlog. · 60df192a
      Heikki Linnakangas authored
      The cascading standby patch in 9.2 changed the way WAL files are treated
      when restored from the archive. Before, they were restored under a temporary
      filename, and not kept in pg_xlog, but after the patch, they were copied
      under pg_xlog. This is necessary for a cascading standby to find them, but
      it also means that if the archive goes offline and a standby is restarted,
      it can recover back to where it was using the files in pg_xlog. It also
      means that if you take an offline backup from a standby server, it includes
      all the required WAL files in pg_xlog.
      
      However, the same change was not made to timeline history files, so if the
      WAL segment containing the checkpoint record contains a timeline switch, you
      will still get an error if you try to restart recovery without the archive,
      or recover from an offline backup taken from the standby.
      
      With this patch, timeline history files restored from archive are copied
      into pg_xlog like WAL files are, so that pg_xlog contains all the files
      required to recover. This is a corner-case pre-existing issue in 9.2, but
      even more important in master where it's possible for a standby to follow a
      timeline switch through streaming replication. To make that possible, the
      timeline history files must be present in pg_xlog.
      60df192a
    • Peter Eisentraut's avatar
      doc: Correct description of LDAP authentication · 103cc893
      Peter Eisentraut authored
      Parts of the description had claimed incorrect pg_hba.conf option names
      for LDAP authentication.
      
      Albe Laurenz
      103cc893
  6. 29 Dec, 2012 1 commit
    • Robert Haas's avatar
      Adjust more backend functions to return OID rather than void. · 82b1b213
      Robert Haas authored
      This is again intended to support extensions to the event trigger
      functionality.  This may go a bit further than we need for that
      purpose, but there's some value in being consistent, and the OID
      may be useful for other purposes also.
      
      Dimitri Fontaine
      82b1b213
  7. 28 Dec, 2012 1 commit
    • Alvaro Herrera's avatar
      Remove obsolete XLogRecPtr macros · 5ab3af46
      Alvaro Herrera authored
      This gets rid of XLByteLT, XLByteLE, XLByteEQ and XLByteAdvance.
      These were useful for brevity when XLogRecPtrs were split in
      xlogid/xrecoff; but now that they are simple uint64's, they are just
      clutter.  The only downside to making this change would be ease of
      backporting patches, but that has been negated by other substantive
      changes to the involved code anyway.  The clarity of simpler expressions
      makes the change worthwhile.
      
      Most of the changes are mechanical, but in a couple of places, the patch
      author chose to invert the operator sense, making the code flow more
      logical (and more in line with preceding comments).
      
      Author: Andres Freund
      Eyeballed by Dimitri Fontaine and Alvaro Herrera
      5ab3af46
  8. 27 Dec, 2012 4 commits
  9. 24 Dec, 2012 5 commits
  10. 23 Dec, 2012 2 commits
    • Robert Haas's avatar
      Adjust many backend functions to return OID rather than void. · c504513f
      Robert Haas authored
      Extracted from a larger patch by Dimitri Fontaine.  It is hoped that
      this will provide infrastructure for enriching the new event trigger
      functionality, but it seems possibly useful for other purposes as
      well.
      c504513f
    • Tom Lane's avatar
      Prevent failure when RowExpr or XmlExpr is parse-analyzed twice. · 31bc8397
      Tom Lane authored
      transformExpr() is required to cope with already-transformed expression
      trees, for various ugly-but-not-quite-worth-cleaning-up reasons.  However,
      some of its newer subroutines hadn't gotten the memo.  This accounts for
      bug #7763 from Norbert Buchmuller: transformRowExpr() was overwriting the
      previously determined type of a RowExpr during CREATE TABLE LIKE INCLUDING
      INDEXES.  Additional investigation showed that transformXmlExpr had the
      same kind of problem, but all the other cases seem to be safe.
      
      Andres Freund and Tom Lane
      31bc8397
  11. 22 Dec, 2012 1 commit
    • Tom Lane's avatar
      Fix documentation typo. · eb035068
      Tom Lane authored
      "GetForeignTableColumnOptions" should be "GetForeignColumnOptions".
      Noted by Metin Döşlü.
      eb035068
  12. 21 Dec, 2012 5 commits
  13. 20 Dec, 2012 3 commits
    • Tom Lane's avatar
      Fix pg_extension_config_dump() to handle update cases more sanely. · 343c2a86
      Tom Lane authored
      If pg_extension_config_dump() is executed again for a table already listed
      in the extension's extconfig, the code was blindly making a new array entry.
      This does not seem useful.  Fix it to replace the existing array entry
      instead, so that it's possible for extension update scripts to alter the
      filter conditions for configuration tables.
      
      In addition, teach ALTER EXTENSION DROP TABLE to check for an extconfig
      entry for the target table, and remove it if present.  This is not a 100%
      solution because it's allowed for an extension update script to just
      summarily DROP a member table, and that code path doesn't go through
      ExecAlterExtensionContentsStmt.  We could probably make that case clean
      things up if we had to, but it would involve sticking a very ugly wart
      somewhere in the guts of dependency.c.  Since on the whole it seems quite
      unlikely that extension updates would want to remove pre-existing
      configuration tables, making the case possible with an explicit command
      seems sufficient.
      
      Per bug #7756 from Regina Obe.  Back-patch to 9.1 where extensions were
      introduced.
      343c2a86
    • Heikki Linnakangas's avatar
      Fix recycling of WAL segments after switching timeline during recovery. · 343ee00b
      Heikki Linnakangas authored
      This was broken before, we would recycle old WAL segments on wrong timeline
      after the recovery target timeline had changed, but my recent commit to
      not initialize ThisTimeLineID at all in a standby's checkpointer process
      broke this completely.
      
      The problem is that when installing a recycled WAL segment as a future one,
      ThisTimeLineID is used to construct the filename. To fix, always update
      ThisTimeLineID to the current timeline being recovered, before recycling
      WAL segments at a restartpoint.
      
      This still leaves a small window where we might install WAL segments under
      wrong timeline ID, if the timeline is changed just as we're about to start
      recycling. Also, even if we're replaying timeline X at the momnent, there's
      no guarantee that we'll need as many WAL segments on that timeline as we
      recycle. We might be just about to reach the point where we switch to next
      timeline, so might only need one more WAL segment on the current timeline.
      We'll live with the waste in that situation.
      
      Bug pointed out by Fujii Masao. 9.1 and 9.2 had the same issue, when
      recovery target timeline was changed, but I committed a slightly different
      version of this patch on those branches.
      343ee00b
    • Bruce Momjian's avatar
      Avoid using NAMEDATALEN in pg_upgrade · dc9896a2
      Bruce Momjian authored
      Because the client encoding might not match the server encoding,
      pg_upgrade can't allocate NAMEDATALEN bytes for storage of database,
      relation, and namespace identifiers.  Instead pg_strdup() the memory and
      free it.
      
      Also add C comment in initdb.c about safe NAMEDATALEN usage.
      dc9896a2