1. 26 Sep, 1999 2 commits
    • Tom Lane's avatar
      Modify nodeAgg.c so that no rows are returned for a GROUP BY · be09bc9f
      Tom Lane authored
      with no input rows, per pghackers discussions around 7/22/99.  Clean up
      a bunch of ugly coding while at it; remove redundant re-lookup of
      aggregate info at start of each new GROUP.  Arrange to pfree intermediate
      values when they are pass-by-ref types, so that aggregates on pass-by-ref
      types no longer eat memory.  This takes care of a couple of TODO items...
      be09bc9f
    • Tom Lane's avatar
      Implement constant-expression simplification per Bernard · 40f65241
      Tom Lane authored
      Frankpitt, plus some improvements from yours truly.  The simplifier depends
      on the proiscachable field of pg_proc to tell it whether a function is
      safe to pre-evaluate --- things like nextval() are not, for example.
      Update pg_proc.h to contain reasonable cacheability information; as of
      6.5.* hardly any functions were marked cacheable.  I may have erred too
      far in the other direction; see recent mail to pghackers for more info.
      This update does not force an initdb, exactly, but you won't see much
      benefit from the simplifier until you do one.
      40f65241
  2. 24 Sep, 1999 2 commits
    • Hiroshi Inoue's avatar
      · 95d3d468
      Hiroshi Inoue authored
      This is a patch for cygipc library provided by Yutaka Tanida.
      This is necessary to prevent freezing in cygwin port.
      95d3d468
    • Tom Lane's avatar
      Several changes here, not very related but touching some of the same files. · e812458b
      Tom Lane authored
      * Buffer refcount cleanup (per my "progress report" to pghackers, 9/22).
      * Add links to backend PROC structs to sinval's array of per-backend info,
      and use these links for routines that need to check the state of all
      backends (rather than the slow, complicated search of the ShmemIndex
      hashtable that was used before).  Add databaseOID to PROC structs.
      * Use this to implement an interlock that prevents DESTROY DATABASE of
      a database containing running backends.  (It's a little tricky to prevent
      a concurrently-starting backend from getting in there, since the new
      backend is not able to lock anything at the time it tries to look up
      its database in pg_database.  My solution is to recheck that the DB is
      OK at the end of InitPostgres.  It may not be a 100% solution, but it's
      a lot better than no interlock at all...)
      * In ALTER TABLE RENAME, flush buffers for the relation before doing the
      rename of the physical files, to ensure we don't get failures later from
      mdblindwrt().
      * Update TRUNCATE patch so that it actually compiles against current
      sources :-(.
      You should do "make clean all" after pulling these changes.
      e812458b
  3. 23 Sep, 1999 14 commits
  4. 21 Sep, 1999 7 commits
  5. 20 Sep, 1999 11 commits
  6. 19 Sep, 1999 1 commit
  7. 18 Sep, 1999 3 commits
    • Tom Lane's avatar
      Fix CASE bug identified by Keith Parks: CASE didn't reliably · e1a8b0f2
      Tom Lane authored
      treat a NULL condition result as FALSE.  Clean up some bogus comments
      here and there, too.
      e1a8b0f2
    • Tom Lane's avatar
      Update regress test expected outputs for small changes in · f9f5dfbf
      Tom Lane authored
      error message wording, due to most cases of no-such-relation now being
      detected in central heap_open code rather than on an ad-hoc basis.
      f9f5dfbf
    • Tom Lane's avatar
      Mega-commit to make heap_open/heap_openr/heap_close take an · bd272cac
      Tom Lane authored
      additional argument specifying the kind of lock to acquire/release (or
      'NoLock' to do no lock processing).  Ensure that all relations are locked
      with some appropriate lock level before being examined --- this ensures
      that relevant shared-inval messages have been processed and should prevent
      problems caused by concurrent VACUUM.  Fix several bugs having to do with
      mismatched increment/decrement of relation ref count and mismatched
      heap_open/close (which amounts to the same thing).  A bogus ref count on
      a relation doesn't matter much *unless* a SI Inval message happens to
      arrive at the wrong time, which is probably why we got away with this
      sloppiness for so long.  Repair missing grab of AccessExclusiveLock in
      DROP TABLE, ALTER/RENAME TABLE, etc, as noted by Hiroshi.
      Recommend 'make clean all' after pulling this update; I modified the
      Relation struct layout slightly.
      Will post further discussion to pghackers list shortly.
      bd272cac