1. 17 Nov, 2004 2 commits
  2. 05 Nov, 2004 1 commit
  3. 29 Oct, 2004 1 commit
  4. 14 Oct, 2004 1 commit
  5. 12 Oct, 2004 1 commit
  6. 09 Oct, 2004 1 commit
  7. 07 Oct, 2004 1 commit
  8. 16 Sep, 2004 1 commit
    • Tom Lane's avatar
      Restructure subtransaction handling to reduce resource consumption, · 8f9f1986
      Tom Lane authored
      as per recent discussions.  Invent SubTransactionIds that are managed like
      CommandIds (ie, counter is reset at start of each top transaction), and
      use these instead of TransactionIds to keep track of subtransaction status
      in those modules that need it.  This means that a subtransaction does not
      need an XID unless it actually inserts/modifies rows in the database.
      Accordingly, don't assign it an XID nor take a lock on the XID until it
      tries to do that.  This saves a lot of overhead for subtransactions that
      are only used for error recovery (eg plpgsql exceptions).  Also, arrange
      to release a subtransaction's XID lock as soon as the subtransaction
      exits, in both the commit and abort cases.  This avoids holding many
      unique locks after a long series of subtransactions.  The price is some
      additional overhead in XactLockTableWait, but that seems acceptable.
      Finally, restructure the state machine in xact.c to have a more orthogonal
      set of states for subtransactions.
      8f9f1986
  9. 06 Sep, 2004 1 commit
  10. 30 Aug, 2004 1 commit
  11. 29 Aug, 2004 3 commits
  12. 28 Aug, 2004 1 commit
  13. 23 Aug, 2004 1 commit
    • Tom Lane's avatar
      Rearrange pg_subtrans handling as per recent discussion. pg_subtrans · 4dbb880d
      Tom Lane authored
      updates are no longer WAL-logged nor even fsync'd; we do not need to,
      since after a crash no old pg_subtrans data is needed again.  We truncate
      pg_subtrans to RecentGlobalXmin at each checkpoint.  slru.c's API is
      refactored a little bit to separate out the necessary decisions.
      4dbb880d
  14. 12 Aug, 2004 3 commits
  15. 11 Aug, 2004 1 commit
  16. 09 Aug, 2004 1 commit
  17. 08 Aug, 2004 1 commit
  18. 04 Aug, 2004 2 commits
  19. 03 Aug, 2004 1 commit
    • Tom Lane's avatar
      Add functions pg_start_backup, pg_stop_backup to create backup label · 58c41712
      Tom Lane authored
      and history files as per recent discussion.  While at it, remove
      pg_terminate_backend, since we have decided we do not have time during
      this release cycle to address the reliability concerns it creates.
      Split the 'Miscellaneous Functions' documentation section into
      'System Information Functions' and 'System Administration Functions',
      which hopefully will draw the eyes of those looking for such things.
      58c41712
  20. 01 Aug, 2004 1 commit
  21. 22 Jul, 2004 2 commits
  22. 21 Jul, 2004 1 commit
    • Tom Lane's avatar
      Invent WAL timelines, as per recent discussion, to make point-in-time · 2042b342
      Tom Lane authored
      recovery more manageable.  Also, undo recent change to add FILE_HEADER
      and WASTED_SPACE records to XLOG; instead make the XLOG page header
      variable-size with extra fields in the first page of an XLOG file.
      This should fix the boundary-case bugs observed by Mark Kirkwood.
      initdb forced due to change of XLOG representation.
      2042b342
  23. 19 Jul, 2004 2 commits
  24. 01 Jul, 2004 1 commit
  25. 03 Jun, 2004 1 commit
    • Tom Lane's avatar
      Adjust our timezone library to use pg_time_t (typedef'd as int64) in · 921d749b
      Tom Lane authored
      place of time_t, as per prior discussion.  The behavior does not change
      on machines without a 64-bit-int type, but on machines with one, which
      is most, we are rid of the bizarre boundary behavior at the edges of
      the 32-bit-time_t range (1901 and 2038).  The system will now treat
      times over the full supported timestamp range as being in your local
      time zone.  It may seem a little bizarre to consider that times in
      4000 BC are PST or EST, but this is surely at least as reasonable as
      propagating Gregorian calendar rules back that far.
      
      I did not modify the format of the zic timezone database files, which
      means that for the moment the system will not know about daylight-savings
      periods outside the range 1901-2038.  Given the way the files are set up,
      it's not a simple decision like 'widen to 64 bits'; we have to actually
      think about the range of years that need to be supported.  We should
      probably inquire what the plans of the upstream zic people are before
      making any decisions of our own.
      921d749b
  26. 29 May, 2004 1 commit
    • Tom Lane's avatar
      Separate out bgwriter code into a logically separate module, rather · 076a055a
      Tom Lane authored
      than being random pieces of other files.  Give bgwriter responsibility
      for all checkpoint activity (other than a post-recovery checkpoint);
      so this child process absorbs the functionality of the former transient
      checkpoint and shutdown subprocesses.  While at it, create an actual
      include file for postmaster.c, which for some reason never had its own
      file before.
      076a055a
  27. 28 May, 2004 1 commit
    • Tom Lane's avatar
      Code review for EXEC_BACKEND changes. Reduce the number of #ifdefs by · 1a321f26
      Tom Lane authored
      about a third, make it work on non-Windows platforms again.  (But perhaps
      I broke the WIN32 code, since I have no way to test that.)  Fold all the
      paths that fork postmaster child processes to go through the single
      routine SubPostmasterMain, which takes care of resurrecting the state that
      would normally be inherited from the postmaster (including GUC variables).
      Clean up some places where there's no particularly good reason for the
      EXEC and non-EXEC cases to work differently.  Take care of one or two
      FIXMEs that remained in the code.
      1a321f26
  28. 27 May, 2004 1 commit
    • Tom Lane's avatar
      Get rid of the former rather baroque mechanism for propagating the values · 16974ee9
      Tom Lane authored
      of ThisStartUpID and RedoRecPtr into new backends.  It's a lot easier just
      to make them all grab the values out of shared memory during startup.
      This helps to decouple the postmaster from checkpoint execution, which I
      need since I'm intending to let the bgwriter do it instead, and it also
      fixes a bug in the Win32 port: ThisStartUpID wasn't getting propagated at
      all AFAICS.  (Doesn't give me a lot of faith in the amount of testing that
      port has gotten.)
      16974ee9
  29. 21 May, 2004 2 commits
  30. 07 May, 2004 1 commit
    • Tom Lane's avatar
      Solve the 'Turkish problem' with undesirable locale behavior for case · 0bd61548
      Tom Lane authored
      conversion of basic ASCII letters.  Remove all uses of strcasecmp and
      strncasecmp in favor of new functions pg_strcasecmp and pg_strncasecmp;
      remove most but not all direct uses of toupper and tolower in favor of
      pg_toupper and pg_tolower.  These functions use the same notions of
      case folding already developed for identifier case conversion.  I left
      the straight locale-based folding in place for situations where we are
      just manipulating user data and not trying to match it to built-in
      strings --- for example, the SQL upper() function is still locale
      dependent.  Perhaps this will prove not to be what's wanted, but at
      the moment we can initdb and pass regression tests in Turkish locale.
      0bd61548
  31. 19 Apr, 2004 1 commit
    • Bruce Momjian's avatar
      * Most changes are to fix warnings issued when compiling win32 · 31338352
      Bruce Momjian authored
      * removed a few redundant defines
      * get_user_name safe under win32
      * rationalized pipe read EOF for win32 (UPDATED PATCH USED)
      * changed all backend instances of sleep() to pg_usleep
      
          - except for the SLEEP_ON_ASSERT in assert.c, as it would exceed a
      32-bit long [Note to patcher: If a SLEEP_ON_ASSERT of 2000 seconds is
      acceptable, please replace with pg_usleep(2000000000L)]
      
      I added a comment to that part of the code:
      
          /*
           *  It would be nice to use pg_usleep() here, but only does 2000 sec
           *  or 33 minutes, which seems too short.
           */
          sleep(1000000);
      
      Claudio Natoli
      31338352