1. 24 1月, 2001 1 次提交
  2. 23 1月, 2001 1 次提交
    • T
      Fix all the places that called heap_update() and heap_delete() without · 786f1a59
      Tom Lane 提交于
      bothering to check the return value --- which meant that in case the
      update or delete failed because of a concurrent update, you'd not find
      out about it, except by observing later that the transaction produced
      the wrong outcome.  There are now subroutines simple_heap_update and
      simple_heap_delete that should be used anyplace that you're not prepared
      to do the full nine yards of coping with concurrent updates.  In
      practice, that seems to mean absolutely everywhere but the executor,
      because *noplace* else was checking.
      786f1a59
  3. 18 1月, 2001 2 次提交
  4. 23 12月, 2000 1 次提交
    • T
      Small cleanup of temp-table handling. Disallow creation of a non-temp · 90f42847
      Tom Lane 提交于
      table that inherits from a temp table.  Make sure the right things happen
      if one creates a temp table, creates another temp that inherits from it,
      then renames the first one.  (Previously, system would end up trying to
      delete the temp tables in the wrong order.)
      90f42847
  5. 10 12月, 2000 1 次提交
  6. 08 12月, 2000 1 次提交
  7. 17 11月, 2000 1 次提交
    • T
      Change SearchSysCache coding conventions so that a reference count is · a933ee38
      Tom Lane 提交于
      maintained for each cache entry.  A cache entry will not be freed until
      the matching ReleaseSysCache call has been executed.  This eliminates
      worries about cache entries getting dropped while still in use.  See
      my posting to pg-hackers of even date for more info.
      a933ee38
  8. 09 11月, 2000 1 次提交
    • T
      Make DROP TABLE rollback-able: postpone physical file delete until commit. · 3908473c
      Tom Lane 提交于
      (WAL logging for this is not done yet, however.)  Clean up a number of really
      crufty things that are no longer needed now that DROP behaves nicely.  Make
      temp table mapper do the right things when drop or rename affecting a temp
      table is rolled back.  Also, remove "relation modified while in use" error
      check, in favor of locking tables at first reference and holding that lock
      throughout the statement.
      3908473c
  9. 12 10月, 2000 1 次提交
  10. 06 10月, 2000 1 次提交
  11. 15 7月, 2000 1 次提交
    • T
      Cleanup of code for creating index entries. Functional indexes with · 6bfe6403
      Tom Lane 提交于
      pass-by-ref data types --- eg, an index on lower(textfield) --- no longer
      leak memory during index creation or update.  Clean up a lot of redundant
      code ... did you know that copy, vacuum, truncate, reindex, extend index,
      and bootstrap each basically duplicated the main executor's logic for
      extracting information about an index and preparing index entries?
      Functional indexes should be a little faster now too, due to removal
      of repeated function lookups.
      CREATE INDEX 'opt_type' clause is deimplemented by these changes,
      but I haven't removed it from the parser yet (need to merge with
      Thomas' latest change set first).
      6bfe6403
  12. 12 7月, 2000 1 次提交
  13. 06 7月, 2000 2 次提交
    • T
      Update textin() and textout() to new fmgr style. This is just phase · 40f64064
      Tom Lane 提交于
      one of updating the whole text datatype, but there are so dang many
      calls of these two routines that it seems worth a separate commit.
      40f64064
    • J
      Changed TOAST relations to have relkind RELKIND_TOASTVALUE. · 6534444d
      Jan Wieck 提交于
      Special handling of TOAST relations during VACUUM. TOAST relations
      are vacuumed while the lock on the master table is still active.
      The ANALYZE flag doesn't propagate to their vacuuming because the
      toaster access routines allways use index access ignoring stats, so
      why compute them at all.
      
      Protection of TOAST relations against normal INSERT/UPDATE/DELETE
      while offering SELECT for debugging purposes.
      
      Jan
      6534444d
  14. 04 7月, 2000 1 次提交
    • T
      Make toast-table creation and deletion work somewhat reliably. · cdeca5f5
      Tom Lane 提交于
      Don't go through pg_exec_query_dest(), but directly to the execution
      routines.  Also, extend parameter lists so that there's no need to
      change the global setting of allowSystemTableMods, a hack that was
      certain to cause trouble in the event of any error.
      cdeca5f5
  15. 30 6月, 2000 1 次提交
    • T
      Use a private memory context to store rule information in each relcache · b41f4ab8
      Tom Lane 提交于
      entry that has rules.  This allows us to release the rule parsetrees
      on relcache flush without needing a working freeObject() routine.
      Formerly, the rule trees were leaked permanently at relcache flush.
      Also, clean up handling of rule creation and deletion --- there was
      not sufficient locking of the relation being modified, and there was
      no reliable notification of other backends that a relcache reload
      was needed.  Also, clean up relcache.c code so that scans of system
      tables needed to load a relcache entry are done in the caller's
      memory context, not in CacheMemoryContext.  This prevents any
      un-pfreed memory from those scans from becoming a permanent memory
      leak.
      b41f4ab8
  16. 28 6月, 2000 1 次提交
    • T
      First phase of memory management rewrite (see backend/utils/mmgr/README · 1aebc361
      Tom Lane 提交于
      for details).  It doesn't really do that much yet, since there are no
      short-term memory contexts in the executor, but the infrastructure is
      in place and long-term contexts are handled reasonably.  A few long-
      standing bugs have been fixed, such as 'VACUUM; anything' in a single
      query string crashing.  Also, out-of-memory is now considered a
      recoverable ERROR, not FATAL.
      Eliminate a large amount of crufty, now-dead code in and around
      memory management.
      Fix problem with holding off SIGTRAP, SIGSEGV, etc in postmaster and
      backend startup.
      1aebc361
  17. 19 6月, 2000 1 次提交
    • T
      Reimplement nodeMaterial to use a temporary BufFile (or even memory, if the · 1ee26b77
      Tom Lane 提交于
      materialized tupleset is small enough) instead of a temporary relation.
      This was something I was thinking of doing anyway for performance, and Jan
      says he needs it for TOAST because he doesn't want to cope with toasting
      noname relations.  With this change, the 'noname table' support in heap.c
      is dead code, and I have accordingly removed it.  Also clean up 'noname'
      plan handling in planner --- nonames are either sort or materialize plans,
      and it seems less confusing to handle them separately under those names.
      1ee26b77
  18. 18 6月, 2000 2 次提交
    • T
      Get rid of IndexIsUniqueNoCache() kluge by the simple expedient of · edf0b5f0
      Tom Lane 提交于
      passing the index-is-unique flag to index build routines (duh! ...
      why wasn't it done this way to begin with?).  Aside from eliminating
      an eyesore, this should save a few milliseconds in btree index creation
      because a full scan of pg_index is not needed any more.
      edf0b5f0
    • T
      Fix performance problems with pg_index lookups (see, for example, · d03a933e
      Tom Lane 提交于
      discussion of 5/19/00).  pg_index is now searched for indexes of a
      relation using an indexscan.  Moreover, this is done once and cached
      in the relcache entry for the relation, in the form of a list of OIDs
      for the indexes.  This list is used by the parser and executor to drive
      lookups in the pg_index syscache when they want to know the properties
      of the indexes.  Net result: index information will be fully cached
      for repetitive operations such as inserts.
      d03a933e
  19. 17 6月, 2000 1 次提交
  20. 15 6月, 2000 1 次提交
  21. 09 6月, 2000 1 次提交
  22. 30 5月, 2000 2 次提交
  23. 29 5月, 2000 1 次提交
    • T
      First round of changes for new fmgr interface. fmgr itself and the · 0a7fb4e9
      Tom Lane 提交于
      key call sites are changed, but most called functions are still oldstyle.
      An exception is that the PL managers are updated (so, for example, NULL
      handling now behaves as expected in plperl and plpgsql functions).
      NOTE initdb is forced due to added column in pg_proc.
      0a7fb4e9
  24. 21 5月, 2000 1 次提交
  25. 19 5月, 2000 1 次提交
    • T
      Revise FlushRelationBuffers/ReleaseRelationBuffers per discussion with · f923260e
      Tom Lane 提交于
      Hiroshi.  ReleaseRelationBuffers now removes rel's buffers from pool,
      instead of merely marking them nondirty.  The old code would leave valid
      buffers for a deleted relation, which didn't cause any known problems
      but can't possibly be a good idea.  There were several places which called
      ReleaseRelationBuffers *and* FlushRelationBuffers, which is now
      unnecessary; but there were others that did not.  FlushRelationBuffers
      no longer emits a warning notice if it finds dirty buffers to flush,
      because with the current bufmgr behavior that's not an unexpected
      condition.  Also, FlushRelationBuffers will flush out all dirty buffers
      for the relation regardless of block number.  This ensures that
      pg_upgrade's expectations are met about tuple on-row status bits being
      up-to-date on disk.  Lastly, tweak BufTableDelete() to clear the
      buffer's tag so that no one can mistake it for being a still-valid
      buffer for the page it once held.  Formerly, the buffer would not be
      found by buffer hashtable searches after BufTableDelete(), but it would
      still be thought to belong to its old relation by the routines that
      sequentially scan the shared-buffer array.  Again I know of no bugs
      caused by that, but it still can't be a good idea.
      f923260e
  26. 13 4月, 2000 1 次提交
  27. 01 3月, 2000 1 次提交
  28. 25 2月, 2000 1 次提交
  29. 18 2月, 2000 1 次提交
  30. 26 1月, 2000 1 次提交
    • B
      Add: · 5c25d602
      Bruce Momjian 提交于
        * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
      
      to all files copyright Regents of Berkeley.  Man, that's a lot of files.
      5c25d602
  31. 20 1月, 2000 1 次提交
    • T
      Fix handling of NULL constraint conditions: per SQL92 spec, a NULL result · 6d1efd76
      Tom Lane 提交于
      from a constraint condition does not violate the constraint (cf. discussion
      on pghackers 12/9/99).  Implemented by adding a parameter to ExecQual,
      specifying whether to return TRUE or FALSE when the qual result is
      really NULL in three-valued boolean logic.  Currently, ExecRelCheck is
      the only caller that asks for TRUE, but if we find any other places that
      have the wrong response to NULL, it'll be easy to fix them.
      6d1efd76
  32. 18 1月, 2000 1 次提交
  33. 20 12月, 1999 1 次提交
  34. 17 12月, 1999 1 次提交
  35. 10 12月, 1999 1 次提交
  36. 24 11月, 1999 1 次提交