1. 03 Sep, 2012 2 commits
    • 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
  2. 02 Sep, 2012 2 commits
  3. 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
  4. 31 Aug, 2012 7 commits
  5. 30 Aug, 2012 21 commits
    • Bruce Momjian's avatar
      Clarify FreeBSD instructions in pg_test_timing. · c36b06a7
      Bruce Momjian authored
      Josh Kupershmidt
      c36b06a7
    • Bruce Momjian's avatar
      Properly document that SIGTERM is OK for users to use on a postgres · b5dc7612
      Bruce Momjian authored
      session, now that pg_terminate_backend() uses it.
      
      Josh Kupershmidt
      b5dc7612
    • Bruce Momjian's avatar
      Revert 1fbc30f1 because the · 39d0653d
      Bruce Momjian authored
      --enable-shared is about Plyton's configure, not ours.
      39d0653d
    • Bruce Momjian's avatar
      1fbc30f1
    • Bruce Momjian's avatar
      Document that max_locks_per_transaction might need to be increased for · 39b42ecb
      Bruce Momjian authored
      queries on parent tables, per suggestion from Josh Berkus.
      39b42ecb
    • Alvaro Herrera's avatar
      Split tuple struct defs from htup.h to htup_details.h · c219d9b0
      Alvaro Herrera authored
      This reduces unnecessary exposure of other headers through htup.h, which
      is very widely included by many files.
      
      I have chosen to move the function prototypes to the new file as well,
      because that means htup.h no longer needs to include tupdesc.h.  In
      itself this doesn't have much effect in indirect inclusion of tupdesc.h
      throughout the tree, because it's also required by execnodes.h; but it's
      something to explore in the future, and it seemed best to do the htup.h
      change now while I'm busy with it.
      c219d9b0
    • Bruce Momjian's avatar
      Remove configure flag --disable-shared, as it is no longer used by any · 381a9ed6
      Bruce Momjian authored
      port.  The last use was QNX, per Peter Eisentraut.
      381a9ed6
    • Robert Haas's avatar
      9bedfbd0
    • Bruce Momjian's avatar
      Document that log_autovacuum_min_duration can be used to monitor · 83fbfec3
      Bruce Momjian authored
      autovacuum activity.
      
      Per report from Marc Mamin
      83fbfec3
    • Tom Lane's avatar
      Suppress creation of backwardly-indexed paths for LATERAL join clauses. · 77387f0a
      Tom Lane authored
      Given a query such as
      
      SELECT * FROM foo JOIN LATERAL (SELECT foo.var1) ss(x) ON ss.x = foo.var2
      
      the existence of the join clause "ss.x = foo.var2" encourages indxpath.c to
      build a parameterized path for foo using any index available for foo.var2.
      This is completely useless activity, though, since foo has got to be on the
      outside not the inside of any nestloop join with ss.  It's reasonably
      inexpensive to add tests that prevent creation of such paths, so let's do
      that.
      77387f0a
    • Robert Haas's avatar
      Document how to prevent PostgreSQL itself from exhausting memory. · 35738b59
      Robert Haas authored
      The existing documentation in Linux Memory Overcommit seemed to
      assume that PostgreSQL itself could never be the problem, or at
      least it didn't tell you what to do about it.
      
      Per discussion with Craig Ringer and Kevin Grittner.
      35738b59
    • Heikki Linnakangas's avatar
      Fix division by zero in the new range type histogram creation. · 3e6eb0dd
      Heikki Linnakangas authored
      Report and analysis by Matthias.
      3e6eb0dd
    • Robert Haas's avatar
      Add missing period to detail message. · a66fca3f
      Robert Haas authored
      Per note from Peter Eisentraut.
      a66fca3f
    • Robert Haas's avatar
      Document that COPY OUT requires an absolute pathname. · b9ea8d20
      Robert Haas authored
      As suggested by Etsuro Fujita, but with somewhat different wording.
      b9ea8d20
    • Bruce Momjian's avatar
    • Robert Haas's avatar
      Fix logic bug in gistchoose and gistRelocateBuildBuffersOnSplit. · c8ba697a
      Robert Haas authored
      Every time the best-tuple-found-so-far changes, we need to reset all
      the penalty values in which_grow[] to the penalties for the new best
      tuple.  The old code failed to do this, resulting in inferior index
      quality.
      
      The original patch from Alexander Korotkov was just two lines; I took
      the liberty of fleshing that out by adding a bunch of comments that I
      hope will make this logic easier for others to understand than it was
      for me.
      c8ba697a
    • Tom Lane's avatar
      Improve EXPLAIN's ability to cope with LATERAL references in plans. · d1a4db8d
      Tom Lane authored
      push_child_plan/pop_child_plan didn't bother to adjust the "ancestors"
      list of parent plan nodes when descending to a child plan node.  I think
      this was okay when it was written, but it's not okay in the presence of
      LATERAL references, since a subplan node could easily be returning a
      LATERAL value back up to the same nestloop node that provides the value.
      Per changed regression test results, the omission led to failure to
      interpret Param nodes that have perfectly good interpretations.
      d1a4db8d
    • Robert Haas's avatar
      Comment fixes. · e1a6375d
      Robert Haas authored
      Jeff Davis, somewhat edited by me
      e1a6375d
    • Robert Haas's avatar
    • Peter Eisentraut's avatar
      Also check for Python platform-specific include directory · 9cffb187
      Peter Eisentraut authored
      Python can be built to have two separate include directories: one for
      platform-independent files and one for platform-specific files.  So
      far, this has apparently never mattered for a PL/Python build.  But
      with the new multi-arch Python packages in Debian and Ubuntu, this is
      becoming the standard configuration on these platforms, so we must
      check these directories separately to be able to build there.
      
      Also add a bit of reporting in configure to be able to see better what
      is going on with this.
      9cffb187
    • Tom Lane's avatar
      Adjust definition of cheapest_total_path to work better with LATERAL. · e83bb10d
      Tom Lane authored
      In the initial cut at LATERAL, I kept the rule that cheapest_total_path
      was always unparameterized, which meant it had to be NULL if the relation
      has no unparameterized paths.  It turns out to work much more nicely if
      we always have *some* path nominated as cheapest-total for each relation.
      In particular, let's still say it's the cheapest unparameterized path if
      there is one; if not, take the cheapest-total-cost path among those of
      the minimum available parameterization.  (The first rule is actually
      a special case of the second.)
      
      This allows reversion of some temporary lobotomizations I'd put in place.
      In particular, the planner can now consider hash and merge joins for
      joins below a parameter-supplying nestloop, even if there aren't any
      unparameterized paths available.  This should bring planning of
      LATERAL-containing queries to the same level as queries not using that
      feature.
      
      Along the way, simplify management of parameterized paths in add_path()
      and friends.  In the original coding for parameterized paths in 9.2,
      I tried to minimize the logic changes in add_path(), so it just treated
      parameterization as yet another dimension of comparison for paths.
      We later made it ignore pathkeys (sort ordering) of parameterized paths,
      on the grounds that ordering isn't a useful property for the path on the
      inside of a nestloop, so we might as well get rid of useless parameterized
      paths as quickly as possible.  But we didn't take that reasoning as far as
      we should have.  Startup cost isn't a useful property inside a nestloop
      either, so add_path() ought to discount startup cost of parameterized paths
      as well.  Having done that, the secondary sorting I'd implemented (in
      add_parameterized_path) is no longer needed --- any parameterized path that
      survives add_path() at all is worth considering at higher levels.  So this
      should be a bit faster as well as simpler.
      e83bb10d