1. 28 12月, 2000 1 次提交
  2. 22 12月, 2000 1 次提交
    • T
      Revise lock manager to support "session level" locks as well as "transaction · 6cc842ab
      Tom Lane 提交于
      level" locks.  A session lock is not released at transaction commit (but it
      is released on transaction abort, to ensure recovery after an elog(ERROR)).
      In VACUUM, use a session lock to protect the master table while vacuuming a
      TOAST table, so that the TOAST table can be done in an independent
      transaction.
      
      I also took this opportunity to do some cleanup and renaming in the lock
      code.  The previously noted bug in ProcLockWakeup, that it couldn't wake up
      any waiters beyond the first non-wakeable waiter, is now fixed.  Also found
      a previously unknown bug of the same kind (failure to scan all members of
      a lock queue in some cases) in DeadLockCheck.  This might have led to failure
      to detect a deadlock condition, resulting in indefinite waits, but it's
      difficult to characterize the conditions required to trigger a failure.
      6cc842ab
  3. 18 12月, 2000 1 次提交
  4. 09 12月, 2000 1 次提交
  5. 04 12月, 2000 1 次提交
  6. 03 12月, 2000 1 次提交
  7. 30 11月, 2000 2 次提交
  8. 29 11月, 2000 1 次提交
    • T
      Significant cleanups in SysV IPC handling (shared mem and semaphores). · c715fdea
      Tom Lane 提交于
      IPC key assignment will now work correctly even when multiple postmasters
      are using same logical port number (which is possible given -k switch).
      There is only one shared-mem segment per postmaster now, not 3.
      Rip out broken code for non-TAS case in bufmgr and xlog, substitute a
      complete S_LOCK emulation using semaphores in spin.c.  TAS and non-TAS
      logic is now exactly the same.
      When deadlock is detected, "Deadlock detected" is now the elog(ERROR)
      message, rather than a NOTICE that comes out before an unhelpful ERROR.
      c715fdea
  9. 22 11月, 2000 1 次提交
  10. 21 11月, 2000 1 次提交
  11. 13 11月, 2000 1 次提交
    • T
      Keep track of the last active slot in the shared ProcState array, so · ebb0a201
      Tom Lane 提交于
      that search loops only have to scan that far and not through all maxBackends
      entries.  This eliminates a performance penalty for setting maxBackends
      much higher than the average number of active backends.  Also, eliminate
      no-longer-used 'backend tag' concept.  Remove setting of environment
      variables at backend start (except for CYR_RECODE), since none of them
      are being examined by the backend any longer.
      ebb0a201
  12. 10 11月, 2000 1 次提交
  13. 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
  14. 29 10月, 2000 1 次提交
  15. 24 10月, 2000 2 次提交
    • T
      Reconsider page size for large objects: rather than stuffing disk pages · a9b6b01e
      Tom Lane 提交于
      as full as possible, seems better to use a tuple size around BLCKSZ/4
      so that less space is wasted when a LO tuple is updated.  Also, this
      lets us use a logical page size that's an exact power of two, avoiding
      partial-page writes when client is sending us stuff in power-of-2
      buffer chunks.
      a9b6b01e
    • T
      Major overhaul of large-object implementation, by Denis Perchine with · 4f44aa04
      Tom Lane 提交于
      kibitzing from Tom Lane.  Large objects are now all stored in a single
      system relation "pg_largeobject" --- no more xinv or xinx files, no more
      relkind 'l'.  This should offer substantial performance improvement for
      large numbers of LOs, since there won't be directory bloat anymore.
      It'll also fix problems like running out of locktable space when you
      access thousands of LOs in one transaction.
      Also clean up cruft in read/write routines.  LOs with "holes" in them
      (never-written byte ranges) now work just like Unix files with holes do:
      a hole reads as zeroes but doesn't occupy storage space.
      INITDB forced!
      4f44aa04
  16. 23 10月, 2000 2 次提交
    • V
      New relcache hash table with RelFileNode as key to be used · 4b65a284
      Vadim B. Mikheev 提交于
      from bufmgr - it would be nice to have separate hash in smgr
      for node <--> fd mappings, but for the moment it's easy to
      add new hash to relcache.
      Fixed small bug in xlog.c:ReadRecord.
      4b65a284
    • P
      Makeover for Unixware 7.1.1 · fba790ad
      Peter Eisentraut 提交于
      * Makefile: Add more standard targets.  Improve shell redirection in GNU
      make detection.
      * src/backend/access/transam/rmgr.c: Fix incorrect(?) C.
      * src/backend/libpq/pqcomm.c (StreamConnection): Work around accept() bug.
      * src/include/port/unixware.h: ...with help from here.
      * src/backend/nodes/print.c (plannode_type): Remove some "break"s after
      "return"s.
      * src/backend/tcop/dest.c (DestToFunction): ditto.
      * src/backend/nodes/readfuncs.c: Add proper prototypes.
      * src/backend/utils/adt/numutils.c (pg_atoi): Cope specially with strtol()
      setting EINVAL. This saves us from creating an extra set of regression test
      output for the affected systems.
      * src/include/storage/s_lock.h (tas): Correct prototype.
      * src/interfaces/libpq/fe-connect.c (parseServiceInfo): Don't use variable
      as dimension in array definition.
      * src/makefiles/Makefile.unixware: Add support for GCC.
      * src/template/unixware: same here
      * src/test/regress/expected/abstime-solaris-1947.out: Adjust whitespace.
      * src/test/regress/expected/horology-solaris-1947.out: Part of this file
      was evidently missing.
      * src/test/regress/pg_regress.sh: Fix shell.  mkdir -p returns non-zero if
      the directory exists.
      * src/test/regress/resultmap: Add entries for Unixware.
      fba790ad
  17. 22 10月, 2000 1 次提交
    • B
      BACKED OUT. · aa23c705
      Bruce Momjian 提交于
      
      > Regression tests opr_sanity and sanity_check are now failing.
      
      Um, Bruce, I've said several times that I didn't think Perchine's large
      object changes should be applied until someone had actually reviewed
      them.
      aa23c705
  18. 21 10月, 2000 2 次提交
    • B
      here it is as requested by Bruce. · 293d1e5f
      Bruce Momjian 提交于
      I tested it restoring my database with > 100000 BLOBS, and dumping it out.
      But unfortunatly I can not restore it back due to problems in pg_dump.
      
      --
      Sincerely Yours,
      Denis Perchine
      293d1e5f
    • V
      WAL · a7fcadd1
      Vadim B. Mikheev 提交于
      a7fcadd1
  19. 20 10月, 2000 1 次提交
  20. 18 10月, 2000 1 次提交
  21. 16 10月, 2000 1 次提交
  22. 08 10月, 2000 3 次提交
    • B
      Tom Lane wrote: · be582825
      Bruce Momjian 提交于
      > > For a while I though it might be because we are using an alpha TAS in
      > > the spinlock rather than the old semaphore. I replaced our spinlock
      > > with the standard one and it made no difference. We have been running
      > > with our spinlock implementation for nearly 2 months on a production
      > > database now without a hitch, so I think it is ok. Did I ever submit
      > > any patches for the Alpha spinlock?
      >
      > Not that I recall.  We did get some advice from some Alpha gurus at DEC
      > who seemed to think the existing TAS code is OK.  What was it that you
      > felt needed to be improved?
      
      The current code uses semaphores, which has the advantage that it works
      well even on multi-processor machines, but the disadvantage that it is not
      the fastest way possible. Writing a spinlock on Alpha for SMP machines is
      very difficult, as you need to deal with memory barriers. A real mess. But
      then one of the people at Compaq pointed out to us that there is a
      ready-made routine on Alpha. We implemented it with the two patches below.
      I ran tests with lots of parallel back-ends and got around a 10% speed
      increase. I include the two patches. Perhaps some of the other people
      running Tru64 can have a look at these as well.
      
      Cheers,
      
      Adriaan Joubert
      be582825
    • B
      Back out: · e5e5de8e
      Bruce Momjian 提交于
      > this is patch v 0.4 to support transactions with BLOBs.
      > All BLOBs are in one table. You need to make initdb.
      >
      > --
      > Sincerely Yours,
      > Denis Perchine
      e5e5de8e
    • B
      Hello, · cf5a950c
      Bruce Momjian 提交于
      this is patch v 0.4 to support transactions with BLOBs.
      All BLOBs are in one table. You need to make initdb.
      
      --
      Sincerely Yours,
      Denis Perchine
      cf5a950c
  23. 07 10月, 2000 1 次提交
    • B
      The beos port in the source tree doesn't even compile. and even · 7ea8403c
      Bruce Momjian 提交于
      after that dynamic loading isn't working and shared memory handling is
      broken.
      
              Attached with this message, there is a Zip file which contain :
      
              * beos.diff = patch file generated with difforig
              * beos = folder with beos support files which need to be moved in /
      src/backend/port
              * expected = foler with three file for message and precision
      difference in regression test
              * regression.diff = rule problem (need to kill the backend manualy)
              * dynloader = dynloader files (they are also in the pacth files,
      but there is so much modification that I have join full files)
      
              Everything works except a problem in 'rules' Is there some problems
      with rules in the current tree ? It used to works with last week tree.
      
      Cyril VELTER
      7ea8403c
  24. 03 10月, 2000 3 次提交
    • B
      New diff that now covers the entire tree. Applying this gets postgresql · 87c0e623
      Bruce Momjian 提交于
      working on the VERY latest version of BeOS.  I'm sure there will be
      alot of comments, but then if there weren't I'd be disappointed!
      
      Thanks for your continuing efforts to get this into your tree.
      
      Haven't bothered with the new files as they haven't changed.
      
      BTW Peter, the compiler is "broken" about the bool define and so on.
      I'm filing a bug report to try and get it addressed.  Hopefully then we
      can tidy up the code a bit.
      
      I await the replies with interest :)
      
      David Reid
      87c0e623
    • P
      416bbbff
    • B
      Here is the first batch of files and diffs for the BeOS port. I've run into · 7a7e0240
      Bruce Momjian 提交于
      problems with some bits of it, but when all the patches are in it'll build
      and we can fix it from there :)  I've got a version that builds and runs and
      that is the basis for these patches.
      
      The first file has the new additional files that are required,
          template/beos
          backend/port/dynloader/beos.c
          backend/port/dynloader/beos.h
          include/port/beos.h
          makefiles/Makefile.beos
      
      The second is a tarball of diffs against a few files.  I've added sys/ipc.h
      to configure and config.h via configure.in and config.h.in and then started
      adding the check as this file isn't needed on BeOS and having loads of
      #ifdef BEOS isn't as obvious as #ifdef HAVE_SYS_IPC_H and isn't as
      autconf'ish :)
      Files touched are
          include/c.h
          configure.in
          include/config.h.in
          include/storage/ipc.h
          include/utils/int8.h
      
      Let me know how these go.  I'll await a response before submitting any more.
      
      Any problems just get in touch.
      
      David Reid
      7a7e0240
  25. 10 9月, 2000 1 次提交
  26. 07 9月, 2000 1 次提交
  27. 08 8月, 2000 1 次提交
    • T
      TOAST mop-up work: update comments for tuple-size-related symbols such · 02241774
      Tom Lane 提交于
      as MaxHeapAttributeNumber.  Increase MaxAttrSize to something more
      reasonable (given what it's used for, namely checking char(n) declarations,
      I didn't make it the full 1G that it could theoretically be --- 10Mb
      seemed a more reasonable number).  Improve calculation of MaxTupleSize.
      02241774
  28. 21 7月, 2000 1 次提交
    • T
      Major overhaul of btree index code. Eliminate special BTP_CHAIN logic for · 9e85183b
      Tom Lane 提交于
      duplicate keys by letting search go to the left rather than right when an
      equal key is seen at an upper tree level.  Fix poor choice of page split
      point (leading to insertion failures) that was forced by chaining logic.
      Don't store leftmost key in non-leaf pages, since it's not necessary.
      Don't create root page until something is first stored in the index, so an
      unused index is now 8K not 16K.  (Doesn't seem to be as easy to get rid of
      the metadata page, unfortunately.)  Massive cleanup of unreadable code,
      fix poor, obsolete, and just plain wrong documentation and comments.
      See src/backend/access/nbtree/README for the gory details.
      9e85183b
  29. 17 7月, 2000 1 次提交
    • T
      Revise aggregate functions per earlier discussions in pghackers. · bec98a31
      Tom Lane 提交于
      There's now only one transition value and transition function.
      NULL handling in aggregates is a lot cleaner.  Also, use Numeric
      accumulators instead of integer accumulators for sum/avg on integer
      datatypes --- this avoids overflow at the cost of being a little slower.
      Implement VARIANCE() and STDDEV() aggregates in the standard backend.
      
      Also, enable new LIKE selectivity estimators by default.  Unrelated
      change, but as long as I had to force initdb anyway...
      bec98a31
  30. 06 7月, 2000 1 次提交
    • B
      attached to this mail is a patch from a colleague that makes · 411cf2da
      Bruce Momjian 提交于
      PostgreSQL-7.0.2 run on Linux for the Intel-IA64 architecture. It also
      fixes a bug in the configure scripts that caused configure to fail on
      the fcntl(F_SETLK) test.
      
      This fix triggered a bug in the fcntl(F_SETLK) code of the Linux
      kernel when used on unix domain sockets resulting in postmaster to
      segfault immediately after startup. There is a fix available and
      included in the kernel that will be on SuSE Linux 7.0, but kernels <=
      2.2.16 still have this bug.
      
      Reinhard Max
      411cf2da
  31. 04 7月, 2000 1 次提交
  32. 03 7月, 2000 1 次提交