1. 09 Apr, 2006 2 commits
    • Tom Lane's avatar
      Revert my best_inner_indexscan patch of yesterday, which turns out to have · a81e2816
      Tom Lane authored
      had a bad side-effect: it stopped finding plans that involved BitmapAnd
      combinations of indexscans using both join and non-join conditions.  Instead,
      make choose_bitmap_and more aggressive about detecting redundancies between
      BitmapOr subplans.
      a81e2816
    • Bruce Momjian's avatar
      Update: · 83843a44
      Bruce Momjian authored
      > * Allow the creation of indexes with mixed ascending/descending
      >   specifiers
      >
      >   This is possible now by creating an operator class with reversed sort
      >   operators.  One complexity is that NULLs would then appear at the start
      >   of the result set, and this might affect certain sort types, like
      >   merge join.
      >
      83843a44
  2. 08 Apr, 2006 2 commits
    • Tom Lane's avatar
      Fix best_inner_indexscan to actually enforce that an "inner indexscan" use · 898eb254
      Tom Lane authored
      at least one join condition as an indexqual.  Before bitmap indexscans, this
      oversight didn't really cost much except for redundantly considering the
      same join paths twice; but as of 8.1 it could result in silly bitmap scans
      that would do the same BitmapOr twice and then BitmapAnd these together :-(
      898eb254
    • Tom Lane's avatar
      Fix EXPLAIN so that it can drill down through multiple levels of subplan · c6e81aee
      Tom Lane authored
      when trying to locate the referent of a RECORD variable.  This fixes the
      'record type has not been registered' failure reported by Stefan
      Kaltenbrunner about a month ago.  A side effect of the way I chose to
      fix it is that most variable references in join conditions will now be
      properly labeled with the variable's source table name, instead of the
      not-too-helpful 'outer' or 'inner' we used to use.
      c6e81aee
  3. 07 Apr, 2006 3 commits
    • Tom Lane's avatar
      Fix pg_dumpall to do something sane when a pre-8.1 installation has · 74bdf965
      Tom Lane authored
      identically named user and group: we merge these into a single entity
      with LOGIN permission.  Also, add ORDER BY commands to ensure consistent
      dump ordering, for ease of comparing outputs from different installations.
      74bdf965
    • Andrew Dunstan's avatar
      · 39ec43a2
      Andrew Dunstan authored
      Revert getaddrinfo configure changes until we get a solution that is
      properly tested on Tru64 - pre recent discussion (or lack thereof) on -hackers.
      39ec43a2
    • Tom Lane's avatar
      Fix make_restrictinfo_from_bitmapqual() to preserve AND/OR flatness of its · 2f8a7bf2
      Tom Lane authored
      output, ie, no OR immediately below an OR.  Otherwise we get Asserts or
      wrong answers for cases such as
      	select * from tenk1 a, tenk1 b
      	where (a.ten = b.ten and (a.unique1 = 100 or a.unique1 = 101))
      	   or (a.hundred = b.hundred and a.unique1 = 42);
      Per report from Rafael Martinez Guerrero.
      2f8a7bf2
  4. 06 Apr, 2006 2 commits
  5. 05 Apr, 2006 4 commits
  6. 04 Apr, 2006 2 commits
    • Tom Lane's avatar
      Don't use BLCKSZ for the physical length of the pg_control file, but · e6140d90
      Tom Lane authored
      instead a dedicated symbol.  This probably makes no functional difference
      for likely values of BLCKSZ, but it makes the intent clearer.
      Simon Riggs, minor editorialization by Tom Lane.
      e6140d90
    • Tom Lane's avatar
      Modify all callers of datatype input and receive functions so that if these · 147d4bf3
      Tom Lane authored
      functions are not strict, they will be called (passing a NULL first parameter)
      during any attempt to input a NULL value of their datatype.  Currently, all
      our input functions are strict and so this commit does not change any
      behavior.  However, this will make it possible to build domain input functions
      that centralize checking of domain constraints, thereby closing numerous holes
      in our domain support, as per previous discussion.
      
      While at it, I took the opportunity to introduce convenience functions
      InputFunctionCall, OutputFunctionCall, etc to use in code that calls I/O
      functions.  This eliminates a lot of grotty-looking casts, but the main
      motivation is to make it easier to grep for these places if we ever need
      to touch them again.
      147d4bf3
  7. 03 Apr, 2006 9 commits
  8. 02 Apr, 2006 7 commits
  9. 01 Apr, 2006 1 commit
    • Tom Lane's avatar
      Remove the 'slow' path for btree index build, which built the btree · 89bda95d
      Tom Lane authored
      incrementally by successive inserts rather than by sorting the data.
      We were only using the slow path during bootstrap, apparently because
      when first written it failed during bootstrap --- but it works fine now
      AFAICT.  Removing it saves a hundred or so lines of code and produces
      noticeably (~10%) smaller initial states of the system catalog indexes.
      While that won't make much difference for heavily-modified catalogs,
      for the more static ones there may be a useful long-term performance
      improvement.
      89bda95d
  10. 31 Mar, 2006 1 commit
    • Tom Lane's avatar
      Clean up WAL/buffer interactions as per my recent proposal. Get rid of the · a8b8f4db
      Tom Lane authored
      misleadingly-named WriteBuffer routine, and instead require routines that
      change buffer pages to call MarkBufferDirty (which does exactly what it says).
      We also require that they do so before calling XLogInsert; this takes care of
      the synchronization requirement documented in SyncOneBuffer.  Note that
      because bufmgr takes the buffer content lock (in shared mode) while writing
      out any buffer, it doesn't matter whether MarkBufferDirty is executed before
      the buffer content change is complete, so long as the content change is
      completed before releasing exclusive lock on the buffer.  So it's OK to set
      the dirtybit before we fill in the LSN.
      This eliminates the former kluge of needing to set the dirtybit in LockBuffer.
      Aside from making the code more transparent, we can also add some new
      debugging assertions, in particular that the caller of MarkBufferDirty must
      hold the buffer content lock, not merely a pin.
      a8b8f4db
  11. 30 Mar, 2006 3 commits
  12. 29 Mar, 2006 2 commits
  13. 28 Mar, 2006 2 commits