1. 19 Oct, 2001 1 commit
  2. 29 Sep, 2001 1 commit
    • Tom Lane's avatar
      Implement new 'lightweight lock manager' that's intermediate between · 499abb0c
      Tom Lane authored
      existing lock manager and spinlocks: it understands exclusive vs shared
      lock but has few other fancy features.  Replace most uses of spinlocks
      with lightweight locks.  All remaining uses of spinlocks have very short
      lock hold times (a few dozen instructions), so tweak spinlock backoff
      code to work efficiently given this assumption.  All per my proposal on
      pghackers 26-Sep-01.
      499abb0c
  3. 27 Sep, 2001 1 commit
  4. 08 Sep, 2001 1 commit
    • Peter Eisentraut's avatar
      Make the world somewhat safe for (not from) DELETE FROM pg_shadow; · c0d4d547
      Peter Eisentraut authored
      Assign the fixed user id 1 to the user created by initdb.
      A stand-alone backend will always set the user id to 1.
      (Consequently, the name of that user is no longer important.)
      
      In stand-alone mode, the user id 1 will have implicit superuser
      status, to allow repairs even if there are no users defined.
      
      Print a warning message when starting in stand-alone mode when no
      users are defined.
      
      Disallow dropping the current user and session user.
      
      Granting/revoking superuser status also grants/revokes usecatupd.
      (Previously, it would never grant it back.  This could lead to "deadlocks".)
      
      CREATE USER and CREATE GROUP will start allocating user ids at 100
      (unless explicitly specified), to prevent accidental creation of a
      superuser (plus some room for future extensions).
      c0d4d547
  5. 07 Sep, 2001 1 commit
  6. 06 Sep, 2001 1 commit
    • Tatsuo Ishii's avatar
      Commit Karel's patch. · 22776711
      Tatsuo Ishii authored
      -------------------------------------------------------------------
      Subject: Re: [PATCHES] encoding names
      From: Karel Zak <zakkr@zf.jcu.cz>
      To: Peter Eisentraut <peter_e@gmx.net>
      Cc: pgsql-patches <pgsql-patches@postgresql.org>
      Date: Fri, 31 Aug 2001 17:24:38 +0200
      
      On Thu, Aug 30, 2001 at 01:30:40AM +0200, Peter Eisentraut wrote:
      > > 		- convert encoding 'name' to 'id'
      >
      > I thought we decided not to add functions returning "new" names until we
      > know exactly what the new names should be, and pending schema
      
       Ok, the patch not to add functions.
      
      > better
      >
      >     ...(): encoding name too long
      
       Fixed.
      
       I found new bug in command/variable.c in parse_client_encoding(), nobody
      probably never see this error:
      
      if (pg_set_client_encoding(encoding))
      {
      	elog(ERROR, "Conversion between %s and %s is not supported",
                           value, GetDatabaseEncodingName());
      }
      
      because pg_set_client_encoding() returns -1 for error and 0 as true.
      It's fixed too.
      
       IMHO it can be apply.
      
      		Karel
      PS:
      
          * following files are renamed:
      
      src/utils/mb/Unicode/KOI8_to_utf8.map  -->
              src/utils/mb/Unicode/koi8r_to_utf8.map
      
      src/utils/mb/Unicode/WIN_to_utf8.map  -->
              src/utils/mb/Unicode/win1251_to_utf8.map
      
      src/utils/mb/Unicode/utf8_to_KOI8.map -->
              src/utils/mb/Unicode/utf8_to_koi8r.map
      
      src/utils/mb/Unicode/utf8_to_WIN.map -->
              src/utils/mb/Unicode/utf8_to_win1251.map
      
         * new file:
      
      src/utils/mb/encname.c
      
         * removed file:
      
      src/utils/mb/common.c
      
      --
       Karel Zak  <zakkr@zf.jcu.cz>
       http://home.zf.jcu.cz/~zakkr/
      
       C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
      22776711
  7. 25 Aug, 2001 1 commit
    • Tom Lane's avatar
      Replace implementation of pg_log as a relation accessed through the · 2589735d
      Tom Lane authored
      buffer manager with 'pg_clog', a specialized access method modeled
      on pg_xlog.  This simplifies startup (don't need to play games to
      open pg_log; among other things, OverrideTransactionSystem goes away),
      should improve performance a little, and opens the door to recycling
      commit log space by removing no-longer-needed segments of the commit
      log.  Actual recycling is not there yet, but I felt I should commit
      this part separately since it'd still be useful if we chose not to
      do transaction ID wraparound.
      2589735d
  8. 16 Jun, 2001 1 commit
    • Tom Lane's avatar
      Tweak startup sequence so that running out of PROC array slots is · 2917f0a5
      Tom Lane authored
      detected sooner in backend startup, and is treated as an expected error
      (it gives 'Sorry, too many clients already' now).  This allows us not
      to have to enforce the MaxBackends limit exactly in the postmaster.
      Also, remove ProcRemove() and fold its functionality into ProcKill().
      There's no good reason for a backend not to be responsible for removing
      its PROC entry, and there are lots of good reasons for the postmaster
      not to be touching shared-memory data structures.
      2917f0a5
  9. 30 May, 2001 1 commit
  10. 08 May, 2001 1 commit
  11. 21 Apr, 2001 1 commit
  12. 22 Mar, 2001 2 commits
  13. 16 Feb, 2001 1 commit
  14. 24 Jan, 2001 1 commit
  15. 19 Jan, 2001 1 commit
  16. 14 Jan, 2001 1 commit
  17. 12 Jan, 2001 1 commit
    • Tom Lane's avatar
      Add more critical-section calls: all code sections that hold spinlocks · 6162432d
      Tom Lane authored
      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
  18. 18 Dec, 2000 1 commit
  19. 14 Dec, 2000 1 commit
    • Jan Wieck's avatar
      Bugfix · 4ea746a8
      Jan Wieck authored
      Trying to connect to template0 left a global referenced buffer
      because the scan of pg_database wasn't ended properly before
      elog(FATAL).
      
      Jan
      4ea746a8
  20. 30 Nov, 2000 1 commit
  21. 28 Nov, 2000 1 commit
    • Tom Lane's avatar
      Significant cleanups in SysV IPC handling (shared mem and semaphores). · c715fdea
      Tom Lane authored
      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
  22. 16 Nov, 2000 1 commit
  23. 14 Nov, 2000 1 commit
    • Tom Lane's avatar
      Extend CREATE DATABASE to allow selection of a template database to be · 2cf48ca0
      Tom Lane authored
      cloned, rather than always cloning template1.  Modify initdb to generate
      two identical databases rather than one, template0 and template1.
      Connections to template0 are disallowed, so that it will always remain
      in its virgin as-initdb'd state.  pg_dumpall now dumps databases with
      restore commands that say CREATE DATABASE foo WITH TEMPLATE = template0.
      This allows proper behavior when there is user-added data in template1.
      initdb forced!
      2cf48ca0
  24. 12 Nov, 2000 1 commit
    • Tom Lane's avatar
      Keep track of the last active slot in the shared ProcState array, so · ebb0a201
      Tom Lane authored
      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
  25. 28 Oct, 2000 1 commit
  26. 16 Oct, 2000 1 commit
  27. 02 Oct, 2000 1 commit
  28. 19 Sep, 2000 1 commit
  29. 06 Sep, 2000 1 commit
    • Peter Eisentraut's avatar
      Code cleanup of user name and user id handling in the backend. The current · 6dc24961
      Peter Eisentraut authored
      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
  30. 06 Aug, 2000 1 commit
    • Tom Lane's avatar
      Toast all the system-table columns that seem to need it. It turns out · c3e2a951
      Tom Lane authored
      that giving pg_proc a toast table required solving the same problems
      we'd have to solve for pg_class --- pg_proc is one of the relations
      that gets bootstrapped in relcache.c.  Solution is to go back at the
      end of initialization and read in the *real* pg_class row to replace
      the phony entry created by formrdesc().  This should work as long as
      there's no need to touch any toasted values during initialization,
      which seems a reasonable assumption.
      Although I did not add a toast-table for every single system table
      with a varlena attribute, I believe that it would work to just do
      ALTER TABLE pg_class CREATE TOAST TABLE.  So anyone who's really
      intent on having several thousand ACL entries for a rel could do it.
      NOTE: I didn't force initdb, but you must do one to see the effects
      of this patch.
      c3e2a951
  31. 08 Jul, 2000 1 commit
  32. 03 Jul, 2000 1 commit
  33. 02 Jul, 2000 1 commit
  34. 28 Jun, 2000 1 commit
    • Tom Lane's avatar
      First phase of memory management rewrite (see backend/utils/mmgr/README · 1aebc361
      Tom Lane authored
      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
  35. 30 May, 2000 1 commit
  36. 28 May, 2000 1 commit
    • Tom Lane's avatar
      First round of changes for new fmgr interface. fmgr itself and the · 0a7fb4e9
      Tom Lane authored
      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
  37. 12 Apr, 2000 1 commit
  38. 26 Jan, 2000 1 commit
    • Bruce Momjian's avatar
      Add: · 5c25d602
      Bruce Momjian authored
        * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
      
      to all files copyright Regents of Berkeley.  Man, that's a lot of files.
      5c25d602
  39. 13 Jan, 2000 1 commit