1. 30 Oct, 2008 2 commits
  2. 29 Oct, 2008 8 commits
  3. 28 Oct, 2008 5 commits
    • Tom Lane's avatar
      Extend ExecMakeFunctionResult() to support set-returning functions that return · e3e3d2a7
      Tom Lane authored
      via a tuplestore instead of value-per-call.  Refactor a few things to reduce
      ensuing code duplication with nodeFunctionscan.c.  This represents the
      reasonably noncontroversial part of my proposed patch to switch SQL functions
      over to returning tuplestores.  For the moment, SQL functions still do things
      the old way.  However, this change enables PL SRFs to be called in targetlists
      (observe changes in plperl regression results).
      e3e3d2a7
    • Tom Lane's avatar
      Change WorkTableScan to not support backward scan. The apparent support · a80a1224
      Tom Lane authored
      didn't actually work, because nodeRecursiveunion.c creates the underlying
      tuplestore with backward scan disabled; which is a decision that we shouldn't
      reverse because of performance cost.  We could imagine adding signaling from
      WorkTableScan to RecursiveUnion about whether backward scan is needed ...
      but in practice it'd be a waste of effort, because there simply isn't any
      current or plausible future scenario where WorkTableScan would be called on
      to scan backward.  So just dike out the code that claims to support it.
      a80a1224
    • Tom Lane's avatar
      Arrange to squeeze out the MINIMAL_TUPLE_PADDING in the tuple representation · d26bf23f
      Tom Lane authored
      written to temp files by tuplesort.c and tuplestore.c.  This saves 2 bytes per
      row for 32-bit machines, and 6 bytes per row for 64-bit machines, which seems
      worth the slight additional uglification of the tuple read/write routines.
      d26bf23f
    • Peter Eisentraut's avatar
      Add WITH [NO] DATA clause to CREATE TABLE AS, per SQL. · 8ecd5351
      Peter Eisentraut authored
      Also, since WITH is now a reserved word, simplify the token merging code to
      only deal with WITH_TIME.
      
      by Tom Lane and myself
      8ecd5351
    • Magnus Hagander's avatar
      Remove support for (insecure) crypt authentication. · 53a5026b
      Magnus Hagander authored
      This breaks compatibility with pre-7.2 versions.
      53a5026b
  4. 27 Oct, 2008 9 commits
  5. 26 Oct, 2008 1 commit
  6. 25 Oct, 2008 2 commits
    • Tom Lane's avatar
      Be a little smarter about qual handling for semi-joins: a qual that mentions · aa0fb530
      Tom Lane authored
      only the outer side can be pushed down rather than having to be evaluated
      at the join.
      aa0fb530
    • Tom Lane's avatar
      Add a heuristic to transformAExprIn() to make it prefer expanding "x IN (list)" · ddbe8dca
      Tom Lane authored
      into an OR of equality comparisons, rather than x = ANY(ARRAY[...]), when there
      are Vars in the right-hand side.  This avoids a performance regression compared
      to pre-8.2 releases, in cases where the OR form can be optimized into scans
      of multiple indexes.  Limit the possible downside by preferring this form only
      when the list isn't very long (I set the cutoff at 32 elements, which is a
      bit arbitrary but in the right ballpark).  Per discussion with Jim Nasby.
      
      In passing, also make it try the OR form if it cannot select a common type
      for the array elements; we've seen a complaint or two about how the OR form
      worked for such cases and ARRAY doesn't.
      ddbe8dca
  7. 24 Oct, 2008 5 commits
  8. 23 Oct, 2008 7 commits
  9. 22 Oct, 2008 1 commit
    • Tom Lane's avatar
      Dept of better ideas: refrain from creating the planner's placeholder_list · 31468d05
      Tom Lane authored
      until vars are distributed to rels during query_planner() startup.  We don't
      really need it before that, and not building it early has some advantages.
      First, we don't need to put it through the various preprocessing steps, which
      saves some cycles and eliminates the need for a number of routines to support
      PlaceHolderInfo nodes at all.  Second, this means one less unused plan for any
      sub-SELECT appearing in a placeholder's expression, since we don't build
      placeholder_list until after sublink expansion is complete.
      31468d05