1. 04 Sep, 2012 8 commits
  2. 03 Sep, 2012 5 commits
    • Andrew Dunstan's avatar
      Use correct path separator for Windows builtin commands. · 504aeea6
      Andrew Dunstan authored
      pg_upgrade produces a platform-specific script to remove the old
      directory, but on Windows it has not been making sure that the
      paths it writes as arguments for rmdir and del use the backslash
      path separator, which will cause these scripts to fail.
      
      The fix is backpatched to Release 9.0.
      504aeea6
    • Tom Lane's avatar
      Replace memcpy() calls in xlog.c critical sections with struct assignments. · 2a2352e0
      Tom Lane authored
      This gets rid of a dangerous-looking use of the not-volatile XLogCtl
      pointer in a couple of spinlock-protected sections, where the normal
      coding rule is that you should only access shared memory through a
      pointer-to-volatile.  I think the risk is only hypothetical not actual,
      since for there to be a bug the compiler would have to move the spinlock
      acquire or release across the memcpy() call, which one sincerely hopes
      it will not.  Still, it looks cleaner this way.
      
      Per comment from Daniel Farina and subsequent discussion.
      2a2352e0
    • Andrew Dunstan's avatar
      Fix bugs in exec.c that prevented pg_upgrade working in Windows. · 6259678f
      Andrew Dunstan authored
      Backpatch to 9.2 - code before that is quite different and should
      not have these defects.
      6259678f
    • Tom Lane's avatar
      Fix pg_upgrade to cope with non-default unix_socket_directory scenarios. · f763b771
      Tom Lane authored
      When starting either an old or new postmaster, force it to place its Unix
      socket in the current directory.  This makes it even harder for accidental
      connections to occur during pg_upgrade, and also works around some
      scenarios where the default socket location isn't usable.  (For example,
      if the default location is something other than "/tmp", it might not exist
      during "make check".)
      
      When checking an already-running old postmaster, find out its actual socket
      directory location from postmaster.pid, if possible.  This dodges problems
      with an old postmaster having a configured location different from the
      default built into pg_upgrade's libpq.  We can't find that out if the old
      postmaster is pre-9.1, so also document how to cope with such scenarios
      manually.
      
      In support of this, centralize handling of the connection-related command
      line options passed to pg_upgrade's subsidiary programs, such as pg_dump.
      This should make future changes easier.
      
      Bruce Momjian and Tom Lane
      f763b771
    • Tom Lane's avatar
      Make psql's \d+ show reloptions for all relkinds. · c1f3c045
      Tom Lane authored
      Formerly it would only show them for relkinds 'r' and 'f' (plain tables
      and foreign tables).  However, as of 9.2, views can also have reloptions,
      namely security_barrier.  The relkind restriction seems pointless and
      not at all future-proof, so just print reloptions whenever there are any.
      
      In passing, make some cosmetic improvements to the code that pulls the
      "tableinfo" fields out of the PGresult.
      
      Noted and patched by Dean Rasheed, with adjustment for all relkinds by me.
      c1f3c045
  3. 02 Sep, 2012 2 commits
  4. 01 Sep, 2012 8 commits
    • Tom Lane's avatar
      Drop cheap-startup-cost paths during add_path() if we don't need them. · 6d2c8c0e
      Tom Lane authored
      We can detect whether the planner top level is going to care at all about
      cheap startup cost (it will only do so if query_planner's tuple_fraction
      argument is greater than zero).  If it isn't, we might as well discard
      paths immediately whose only advantage over others is cheap startup cost.
      This turns out to get rid of quite a lot of paths in complex queries ---
      I saw planner runtime reduction of more than a third on one large query.
      
      Since add_path isn't currently passed the PlannerInfo "root", the easiest
      way to tell it whether to do this was to add a bool flag to RelOptInfo.
      That's a bit redundant, since all relations in a given query level will
      have the same setting.  But in the future it's possible that we'd refine
      the control decision to work on a per-relation basis, so this seems like
      a good arrangement anyway.
      
      Per my suggestion of a few months ago.
      6d2c8c0e
    • Tom Lane's avatar
      Fix mark_placeholder_maybe_needed to handle LATERAL references. · 4da6439b
      Tom Lane authored
      If a PlaceHolderVar contains a pulled-up LATERAL reference, its minimum
      possible evaluation level might be higher in the join tree than its
      original syntactic location.  That in turn affects the ph_needed level for
      any contained PlaceHolderVars (that is, those PHVs had better propagate up
      the join tree at least to the evaluation level of the outer PHV).  We got
      this mostly right, but mark_placeholder_maybe_needed() failed to account
      for the effect, and in consequence could leave the inner PHVs with
      ph_may_need less than what their ultimate ph_needed value will be.  That's
      bad because it could lead to failure to select a join order that will allow
      evaluation of the inner PHV at a valid location.  Fix that, and add an
      Assert that checks that we don't ever set ph_needed to more than
      ph_may_need.
      4da6439b
    • Bruce Momjian's avatar
      Revert doc patch 30555798 as the values · 53fa0c6d
      Bruce Momjian authored
      are sometimes signed, sometimes unsigned.
      53fa0c6d
    • Tom Lane's avatar
      Fix broken link in installation.sgml. · b8a4093b
      Tom Lane authored
      Linking to other parts of the manual doesn't work when building the
      standalone INSTALL document.
      b8a4093b
    • Robert Haas's avatar
      e8d6c98c
    • Tom Lane's avatar
      More documentation updates for LATERAL. · 06310178
      Tom Lane authored
      Extend xfunc.sgml's discussion of set-returning functions to show an
      example of using LATERAL, and recommend that over putting SRFs in the
      targetlist.
      
      In passing, reword func.sgml's section on set-returning functions so
      that it doesn't claim that the functions listed therein are all the
      built-in set-returning functions.  That hasn't been true for a long
      time, and trying to make it so doesn't seem like it would be an
      improvement.  (Perhaps we should rename that section?)
      
      Both per suggestions from Merlin Moncure.
      06310178
    • Peter Eisentraut's avatar
      psql: Reduce compatibility warning · 5cad0245
      Peter Eisentraut authored
      Only warn when connecting to a newer server, since connecting to older
      servers works pretty well nowadays.  Also update the documentation a
      little about current psql/server compatibility expectations.
      5cad0245
    • Andrew Dunstan's avatar
      Restore setting of _USE_32BIT_TIME_T to 32 bit MSVC builds. · ef58b87d
      Andrew Dunstan authored
      This was removed in commit cd004067,
      we're not quite sure why, but there have been reports of crashes due
      to AS Perl being built with it when we are not, and it certainly
      seems like the right thing to do. There is still some uncertainty
      as to why it sometimes fails and sometimes doesn't.
      
      Original patch from Owais Khani, substantially reworked and
      extended by Andrew Dunstan.
      ef58b87d
  5. 31 Aug, 2012 7 commits
  6. 30 Aug, 2012 10 commits