1. 22 7月, 2003 1 次提交
  2. 21 6月, 2002 1 次提交
  3. 20 2月, 2002 1 次提交
    • T
      A bunch of changes aimed at reducing backend startup time... · 78634044
      Tom Lane 提交于
      Improve 'pg_internal.init' relcache entry preload mechanism so that it is
      safe to use for all system catalogs, and arrange to preload a realistic
      set of system-catalog entries instead of only the three nailed-in-cache
      indexes that were formerly loaded this way.  Fix mechanism for deleting
      out-of-date pg_internal.init files: this must be synchronized with transaction
      commit, not just done at random times within transactions.  Drive it off
      relcache invalidation mechanism so that no special-case tests are needed.
      
      Cache additional information in relcache entries for indexes (their pg_index
      tuples and index-operator OIDs) to eliminate repeated lookups.  Also cache
      index opclass info at the per-opclass level to avoid repeated lookups during
      relcache load.
      
      Generalize 'systable scan' utilities originally developed by Hiroshi,
      move them into genam.c, use in a number of places where there was formerly
      ugly code for choosing either heap or index scan.  In particular this allows
      simplification of the logic that prevents infinite recursion between syscache
      and relcache during startup: we can easily switch to heapscans in relcache.c
      when and where needed to avoid recursion, so IndexScanOK becomes simpler and
      does not need any expensive initialization.
      
      Eliminate useless opening of a heapscan data structure while doing an indexscan
      (this saves an mdnblocks call and thus at least one kernel call).
      78634044
  4. 06 11月, 2001 1 次提交
  5. 28 10月, 2001 1 次提交
  6. 25 10月, 2001 1 次提交
  7. 07 10月, 2001 1 次提交
    • T
      Rearrange fmgr.c and relcache so that it's possible to keep FmgrInfo · 85801a4d
      Tom Lane 提交于
      lookup info in the relcache for index access method support functions.
      This makes a huge difference for dynamically loaded support functions,
      and should save a few cycles even for built-in ones.  Also tweak dfmgr.c
      so that load_external_function is called only once, not twice, when
      doing fmgr_info for a dynamically loaded function.  All per performance
      gripe from Teodor Sigaev, 5-Oct-01.
      85801a4d
  8. 22 8月, 2001 1 次提交
    • T
      Restructure pg_opclass, pg_amop, and pg_amproc per previous discussions in · f933766b
      Tom Lane 提交于
      pgsql-hackers.  pg_opclass now has a row for each opclass supported by each
      index AM, not a row for each opclass name.  This allows pg_opclass to show
      directly whether an AM supports an opclass, and furthermore makes it possible
      to store additional information about an opclass that might be AM-dependent.
      pg_opclass and pg_amop now store "lossy" and "haskeytype" information that we
      previously expected the user to remember to provide in CREATE INDEX commands.
      Lossiness is no longer an index-level property, but is associated with the
      use of a particular operator in a particular index opclass.
      
      Along the way, IndexSupportInitialize now uses the syscaches to retrieve
      pg_amop and pg_amproc entries.  I find this reduces backend launch time by
      about ten percent, at the cost of a couple more special cases in catcache.c's
      IndexScanOK.
      
      Initial work by Oleg Bartunov and Teodor Sigaev, further hacking by Tom Lane.
      
      initdb forced.
      f933766b
  9. 01 6月, 2001 1 次提交
    • T
      Clean up some minor problems exposed by further thought about Panon's bug · 0b370ea7
      Tom Lane 提交于
      report on old-style functions invoked by RI triggers.  We had a number of
      other places that were being sloppy about which memory context FmgrInfo
      subsidiary data will be allocated in.  Turns out none of them actually
      cause a problem in 7.1, but this is for arcane reasons such as the fact
      that old-style triggers aren't supported anyway.  To avoid getting burnt
      later, I've restructured the trigger support so that we don't keep trigger
      FmgrInfo structs in relcache memory.  Some other related cleanups too:
      it's not really necessary to call fmgr_info at all while setting up
      the index support info in relcache entries, because those ScanKeyEntry
      structs are never used to invoke the functions.  This should speed up
      relcache initialization a tiny bit.
      0b370ea7
  10. 31 5月, 2001 1 次提交
  11. 22 3月, 2001 1 次提交
  12. 25 1月, 2001 1 次提交
  13. 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
  14. 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
  15. 09 6月, 2000 1 次提交
  16. 30 5月, 2000 1 次提交
  17. 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
  18. 13 4月, 2000 1 次提交
  19. 18 2月, 2000 1 次提交
  20. 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
  21. 15 1月, 2000 1 次提交
  22. 23 11月, 1999 1 次提交
  23. 23 10月, 1999 1 次提交
  24. 19 9月, 1999 1 次提交
    • T
      Mega-commit to make heap_open/heap_openr/heap_close take an · bd272cac
      Tom Lane 提交于
      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
  25. 16 7月, 1999 2 次提交
  26. 19 6月, 1999 1 次提交
  27. 26 5月, 1999 1 次提交
  28. 14 2月, 1999 1 次提交
  29. 04 2月, 1999 1 次提交
  30. 23 9月, 1998 1 次提交
  31. 01 9月, 1998 2 次提交
  32. 19 8月, 1998 1 次提交
    • B
      heap_fetch requires buffer pointer, must be released; heap_getnext · 79715390
      Bruce Momjian 提交于
      no longer returns buffer pointer, can be gotten from scan;
      	descriptor; bootstrap can create multi-key indexes;
      pg_procname index now is multi-key index; oidint2, oidint4, oidname
      are gone (must be removed from regression tests); use System Cache
      rather than sequential scan in many places; heap_modifytuple no
      longer takes buffer parameter; remove unused buffer parameter in
      a few other functions; oid8 is not index-able; remove some use of
      single-character variable names; cleanup Buffer variables usage
      and scan descriptor looping; cleaned up allocation and freeing of
      tuples; 18k lines of diff;
      79715390
  33. 12 8月, 1998 3 次提交
  34. 10 8月, 1998 1 次提交
  35. 28 7月, 1998 1 次提交
  36. 16 6月, 1998 1 次提交