1. 14 1月, 2001 1 次提交
  2. 13 1月, 2001 1 次提交
    • T
      Add more critical-section calls: all code sections that hold spinlocks · 6162432d
      Tom Lane 提交于
      are now critical sections, so as to ensure die() won't interrupt us while
      we are munging shared-memory data structures.  Avoid insecure intermediate
      states in some code that proc_exit will call, like palloc/pfree.  Rename
      START/END_CRIT_CODE to START/END_CRIT_SECTION, since that seems to be
      what people tend to call them anyway, and make them be called with () like
      a function call, in hopes of not confusing pg_indent.
      I doubt that this is sufficient to make SIGTERM safe anywhere; there's
      just too much code that could get invoked during proc_exit().
      6162432d
  3. 07 1月, 2001 1 次提交
  4. 21 12月, 2000 1 次提交
    • T
      Prevent freshly-started backend from ignoring SIGUSR1, per race condition · 39b547f4
      Tom Lane 提交于
      observed by Inoue.  Also, don't call ProcRemove() from postmaster if we
      have detected a backend crash --- too risky if shared memory is corrupted.
      It's not needed anyway, considering we are going to reinitialize shared
      memory and semaphores as soon as the last child is dead.
      39b547f4
  5. 19 12月, 2000 2 次提交
    • B
      >> Here is a patch for the beos port (All regression tests are OK). · 1f159e56
      Bruce Momjian 提交于
      >>     xlog.c : special case for beos to avoid 'link' which does not work yet
      >>     beos/sem.c : implementation of new sem_ctl call (GETPID) and a new
      >sem_op
      >> flag (IPCNOWAIT)
      >>     dynloader/beos.c : add a verification of symbol validity (seem that
      the
      >> loader sometime return OK with an invalid symbol)
      >>     postmaster.c :  add beos forking support for the new checkpoint
      process
      >>     postgres.c : remove beos special case for getrusage
      >>     beos.h : Correction of a bas definition of AF_UNIX, misc defnitions
      >>
      >>
      >>     thanks
      >>
      >>
      >>             cyril
      
      Cyril VELTER
      1f159e56
    • T
      Ensure that 'errno' is saved and restored by all signal handlers that · 5491233f
      Tom Lane 提交于
      might change it.  Experimentation shows that the signal handler call
      mechanism does not save/restore errno for you, at least not on Linux
      or HPUX, so this is definitely a real risk.
      5491233f
  6. 18 12月, 2000 1 次提交
  7. 03 12月, 2000 1 次提交
  8. 30 11月, 2000 2 次提交
    • V
      all options are allowed if not under postmaster: · 9f20852f
      Vadim B. Mikheev 提交于
         SetConfigOption(name, value,
              (IsUnderPostmaster) ? PGC_BACKEND : PGC_POSTMASTER);
      9f20852f
    • T
      Get rid of not-very-portable fcntl(F_SETLK) mechanism for locking the Unix · 792b0f46
      Tom Lane 提交于
      socket file, in favor of having an ordinary lockfile beside the socket file.
      Clean up a few robustness problems in the lockfile code.  If postmaster is
      going to reject a connection request based on database state, it will now
      tell you so before authentication exchange not after.  (Of course, a failure
      after is still possible if conditions change meanwhile, but this makes life
      easier for a yet-to-be-written pg_ping utility.)
      792b0f46
  9. 26 11月, 2000 2 次提交
  10. 22 11月, 2000 1 次提交
  11. 15 11月, 2000 1 次提交
  12. 09 11月, 2000 1 次提交
  13. 07 11月, 2000 1 次提交
  14. 04 11月, 2000 1 次提交
  15. 29 10月, 2000 1 次提交
  16. 28 10月, 2000 1 次提交
  17. 27 10月, 2000 1 次提交
  18. 25 10月, 2000 1 次提交
  19. 07 10月, 2000 3 次提交
    • 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
    • T
      94952948
    • T
      Arrange that no database accesses are attempted during parser() --- this · fbd26d69
      Tom Lane 提交于
      took some rejiggering of typename and ACL parsing, as well as moving
      parse_analyze call out of parser().  Restructure postgres.c processing
      so that parse analysis and rewrite are skipped when in abort-transaction
      state.  Only COMMIT and ABORT statements will be processed beyond the raw
      parser() phase.  This addresses problem of parser failing with database access
      errors while in aborted state (see pghackers discussions around 7/28/00).
      Also fix some bugs with COMMIT/ABORT statements appearing in the middle of
      a single query input string.
      Function, operator, and aggregate arguments/results can now use full
      TypeName production, in particular foo[] for array types.
      DROP OPERATOR and COMMENT ON OPERATOR were broken for unary operators.
      Allow CREATE AGGREGATE to accept unquoted numeric constants for initcond.
      fbd26d69
  20. 03 10月, 2000 2 次提交
  21. 06 9月, 2000 1 次提交
    • P
      Code cleanup of user name and user id handling in the backend. The current · 6dc24961
      Peter Eisentraut 提交于
      user is now defined in terms of the user id, the user name is only computed
      upon request (for display purposes). This is kind of the opposite of the
      previous state, which would maintain the user name and compute the user id
      for permission checks.
      
      Besides perhaps saving a few cycles (integer vs string), this now creates a
      single point of attack for changing the user id during a connection, for
      purposes of "setuid" functions, etc.
      6dc24961
  22. 31 8月, 2000 1 次提交
  23. 29 8月, 2000 1 次提交
  24. 28 8月, 2000 1 次提交
  25. 12 8月, 2000 1 次提交
    • T
      copyObject() and equal() now know about all parse-time node types, · 4951a882
      Tom Lane 提交于
      including utility statements.  Still can't copy or compare executor
      state, but at present that doesn't seem to be necessary.  This makes
      it possible to execute most (all?) utility statements in plpgsql.
      Had to change parsetree representation of CreateTrigStmt so that it
      contained only legal Nodes, and not bare string constants.
      4951a882
  26. 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
  27. 13 7月, 2000 1 次提交
  28. 11 7月, 2000 1 次提交
    • B
      Here is the patch with memory leak checker. This checker allow detect · 46fb9c29
      Bruce Momjian 提交于
      in-chunk leaks, overwrite-next-chunk leaks and overwrite block-freeptr leaks.
      
      A in-chunk leak --- if something overwrite space after wanted (via palloc()
      size, but it is still inside chunk. For example
      
              x = palloc(12);         /* create 16b chunk */
              memset(x, '#', 13);
      
      this leak is in the current source total invisible, because chunk is 16b and
      leak is in the "align space".
      
       For this feature I add data_size to StandardChunk, and all memory which go
      from AllocSetAlloc() is marked as 0x7F.
      
       The MemoryContextCheck() is compiled '#ifdef USE_ASSERT_CHECKING'.
      
      I add this checking to 'tcop/postgres.c' and is active after each backend
      query, but it is probably not sufficient, because some MemoryContext exist
      only during memory processing --- will good if someone who known where
      it is needful (Tom:-) add it for others contexts;
       A problem in the current source is that we have still some malloc()
      allocation that is not needful and this allocation is total invisible for
      all context routines. For example Dllist in backend (pretty dirty it is in
      catcache where values in Dllist are palloc-ed, but list is malloc-ed).
      --- and BTW. this Dllist design stand in the way for query cache :-)
      
       Tom, if you agree I start replace some mallocs.
      
       BTW. --- Tom, have you idea for across transaction presistent allocation for
                SQL functions? (like regex - now it is via malloc)
      
      
       I almost forget. I add one if() to AllocSetAlloc(), for 'size' that are
      greater than ALLOC_BIGCHUNK_LIMIT is not needful check AllocSetFreeIndex(),
      because 'fidx' is always 'ALLOCSET_NUM_FREELISTS - 1'. It a little brisk up
      allocation for very large chunks. Right?
      
                                                      Karel
      46fb9c29
  29. 08 7月, 2000 1 次提交
  30. 04 7月, 2000 3 次提交
  31. 29 6月, 2000 1 次提交
  32. 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