1. 01 Jul, 2008 6 commits
  2. 30 Jun, 2008 5 commits
  3. 29 Jun, 2008 1 commit
  4. 28 Jun, 2008 1 commit
  5. 27 Jun, 2008 7 commits
    • Tom Lane's avatar
      Consider a clause to be outerjoin_delayed if it references the nullable side · dcc23347
      Tom Lane authored
      of any lower outer join, even if it also references the non-nullable side and
      so could not get pushed below the outer join anyway.  We need this in case
      the clause is an OR clause: if it doesn't get marked outerjoin_delayed,
      create_or_index_quals() could pull an indexable restriction for the nullable
      side out of it, leading to wrong results as demonstrated by today's bug
      report from toruvinn.  (See added regression test case for an example.)
      
      In principle this has been wrong for quite a while.  In practice I don't
      think any branch before 8.3 can really show the failure, because
      create_or_index_quals() will only pull out indexable conditions, and before
      8.3 those were always strict.  So though we might have improperly generated
      null-extended rows in the outer join, they'd get discarded from the result
      anyway.  The gating factor that makes the failure visible is that 8.3
      considers "col IS NULL" to be indexable.  Hence I'm not going to risk
      back-patching further than 8.3.
      dcc23347
    • Magnus Hagander's avatar
      Fix standalone libpq build on win32. · f6c1dece
      Magnus Hagander authored
      Hiroshi Saito
      f6c1dece
    • Tom Lane's avatar
      Improve planner's estimation of the size of an append relation: rather than · 2c2161a4
      Tom Lane authored
      taking the maximum of any child rel's width, we should weight the widths
      proportionally to the number of rows expected from each child.  In hindsight
      this is obviously correct because row width is really a proxy for the total
      physical size of the relation.  Per discussion with Scott Carey (bug #4264).
      2c2161a4
    • Bruce Momjian's avatar
      Mention actual function names in documentation of how to pass binary · f95b5334
      Bruce Momjian authored
      values to libpq.
      f95b5334
    • Bruce Momjian's avatar
      Add to TODO: · 5d747ddd
      Bruce Momjian authored
      >
      > * Fix system views like pg_stat_all_tables to use set-returning
      >   functions, rather than views of per-column functions
      5d747ddd
    • Tom Lane's avatar
      Clarify plpgsql documentation by not treating IF THEN ELSE IF ... as a · 8530c82f
      Tom Lane authored
      truly distinct version of IF.  Per suggestion from Marko Kreen.
      8530c82f
    • Tom Lane's avatar
      Modify the recently-added probe for -Wl,--as-needed some more, because RHEL-4 · 623f8a09
      Tom Lane authored
      vintage Linux is even more broken than we realized: a link to libreadline
      will succeed, and fail only at runtime.  It seems that an AC_TRY_RUN test
      is the only reliable way to check whether this is really safe.  Per report
      from Tatsuo.
      623f8a09
  6. 26 Jun, 2008 13 commits
  7. 24 Jun, 2008 3 commits
    • Tom Lane's avatar
      Reduce the alignment requirement of type "name" from int to char, and arrange · 5f6f840e
      Tom Lane authored
      to suppress zero-padding of "name" entries in indexes.
      
      The alignment change is unlikely to save any space, but it is really needed
      anyway to make the world safe for our widespread practice of passing plain
      old C strings to functions that are declared as taking Name.  In the previous
      coding, the C compiler was entitled to assume that a Name pointer was
      word-aligned; but we were failing to guarantee that.  I think the reason
      we'd not seen failures is that usually the only thing that gets done with
      such a pointer is strcmp(), which is hard to optimize in a way that exploits
      word-alignment.  Still, some enterprising compiler guy will probably think
      of a way eventually, or we might change our code in a way that exposes
      more-obvious optimization opportunities.
      
      The padding change is accomplished in one-liner fashion by declaring the
      "name" index opclasses to use storage type "cstring" in pg_opclass.h.
      Normally btree and hash don't allow a nondefault storage type, because they
      don't have any provisions for converting the input datum to another type.
      However, because name and cstring are effectively the same thing except for
      padding, no conversion is needed --- we only need index_form_tuple() to treat
      the datum as being cstring not name, and this is sufficient.  This seems to
      make for about a one-third reduction in the typical sizes of system catalog
      indexes that involve "name" columns, of which we have many.
      
      These two changes are only weakly related, but the alignment change makes
      me feel safer that the padding change won't introduce problems, so I'm
      committing them together.
      5f6f840e
    • Bruce Momjian's avatar
      TODO item done: · 3dc59bea
      Bruce Momjian authored
      < 	o Prevent pg_dump/pg_restore from being affected by
      > 	o -Prevent pg_dump/pg_restore from being affected by
      3dc59bea
    • Tom Lane's avatar
      Oops, make the MSVC build put fmgroids.h where it needs to be. · 320c7eb8
      Tom Lane authored
      Per buildfarm results.
      320c7eb8
  8. 23 Jun, 2008 4 commits