1. 02 Feb, 2010 3 commits
  2. 01 Feb, 2010 7 commits
    • Robert Haas's avatar
      Tighten integrity checks on ALTER TABLE ... ALTER COLUMN ... RENAME. · 63f9282f
      Robert Haas authored
      When a column is renamed, we recursively rename the same column in
      all descendent tables.  But if one of those tables also inherits that
      column from a table outside the inheritance hierarchy rooted at the
      named table, we must throw an error.  The previous coding correctly
      prohibited the rename when the parent had inherited the column from
      elsewhere, but overlooked the case where the parent was OK but a child
      table also inherited the same column from a second, unrelated parent.
      
      For now, not backpatched due to lack of complaints from the field.
      
      KaiGai Kohei, with further changes by me.
      Reviewed by Bernd Helme and Tom Lane.
      63f9282f
    • Bruce Momjian's avatar
      Remove tabs in sgml. · 1526d4e3
      Bruce Momjian authored
      1526d4e3
    • Robert Haas's avatar
      Augment EXPLAIN output with more details on Hash nodes. · 42a8ab0a
      Robert Haas authored
      We show the number of buckets, the number of batches (and also the original
      number if it has changed), and the peak space used by the hash table.  Minor
      executor changes to track peak space used.
      42a8ab0a
    • Robert Haas's avatar
    • Simon Riggs's avatar
    • Itagaki Takahiro's avatar
      Add string_agg aggregate functions. The one argument version concatenates · 9ea9918e
      Itagaki Takahiro authored
      the input values into a string. The two argument version also does the same
      thing, but inserts delimiters between elements.
      
      Original patch by Pavel Stehule, reviewed by David E. Wheeler and me.
      9ea9918e
    • Tom Lane's avatar
      Change regexp engine's ccondissect/crevdissect routines to perform DFA · ee3a81f0
      Tom Lane authored
      matching before recursing instead of after.  The DFA match eliminates
      unworkable midpoint choices a lot faster than the recursive check, in most
      cases, so doing it first can speed things up; particularly in pathological
      cases such as recently exhibited by Michael Glaesemann.
      
      In addition, apply some cosmetic changes that were applied upstream (in the
      Tcl project) at the same time, in order to sync with upstream version 1.15
      of regexec.c.
      
      Upstream apparently intends to backpatch this, so I will too.  The
      pathological behavior could be unpleasant if encountered in the field,
      which seems to justify any risk of introducing new bugs.
      
      Tom Lane, reviewed by Donal K. Fellows of Tcl project
      ee3a81f0
  3. 31 Jan, 2010 7 commits
  4. 30 Jan, 2010 4 commits
    • Tom Lane's avatar
      Avoid performing encoding conversion on command tag strings during EndCommand. · eb889266
      Tom Lane authored
      Since all current and foreseeable future command tags will be pure ASCII,
      there is no need to do conversion on them.  This saves a few cycles and also
      avoids polluting otherwise-pristine subtransaction memory contexts, which
      is the cause of the backend memory leak exhibited in bug #5302.  (Someday
      we'll probably want to have a better method of determining whether
      subtransaction contexts need to be kept around, but today is not that day.)
      
      Backpatch to 8.0.  The cycle-shaving aspect of this would work in 7.4
      too, but without subtransactions the memory-leak aspect doesn't apply,
      so it doesn't seem worth touching 7.4.
      eb889266
    • Tom Lane's avatar
      Fix memory leakage introduced into print_aligned_text by 8.4 changes · 07be293a
      Tom Lane authored
      (failure to free col_lineptrs[] array elements) and exacerbated in the
      current devel cycle (failure to free "wrap").  This resulted in moderate
      bloat of psql over long script runs.  Noted while testing bug #5302,
      although what the reporter was complaining of was backend-side leakage.
      07be293a
    • Tom Lane's avatar
      Fix some comments that got mangled by pgindent. · 3e51ae49
      Tom Lane authored
      3e51ae49
    • Andrew Dunstan's avatar
      Add plperl.on_perl_init setting to provide for initializing the perl library... · 85d67ccd
      Andrew Dunstan authored
      Add plperl.on_perl_init setting to provide for initializing the perl library on load. Also, handle END blocks in plperl.
      Database access is disallowed during both these operations, although it might be allowed in END blocks in future.
      
      Patch from Tim Bunce.
      85d67ccd
  5. 29 Jan, 2010 8 commits
  6. 28 Jan, 2010 9 commits
  7. 27 Jan, 2010 2 commits
    • Heikki Linnakangas's avatar
      Fix bug in wasender's xlogid boundary handling, reported by Erik Rijkers. · 83cb7da7
      Heikki Linnakangas authored
      LogwrtRqst.Write can be set to non-existent FF log segment, we mustn't
      try to send that in XLogSend().
      
      Also fix similar bug in ReadRecord(), which I just introduced in the
      ReadRecord() refactoring patch.
      83cb7da7
    • Heikki Linnakangas's avatar
      Make standby server continuously retry restoring the next WAL segment with · 1bb25580
      Heikki Linnakangas authored
      restore_command, if the connection to the primary server is lost. This
      ensures that the standby can recover automatically, if the connection is
      lost for a long time and standby falls behind so much that the required
      WAL segments have been archived and deleted in the master.
      
      This also makes standby_mode useful without streaming replication; the
      server will keep retrying restore_command every few seconds until the
      trigger file is found. That's the same basic functionality pg_standby
      offers, but without the bells and whistles.
      
      To implement that, refactor the ReadRecord/FetchRecord functions. The
      FetchRecord() function introduced in the original streaming replication
      patch is removed, and all the retry logic is now in a new function called
      XLogReadPage(). XLogReadPage() is now responsible for executing
      restore_command, launching walreceiver, and waiting for new WAL to arrive
      from primary, as required.
      
      This also changes the life cycle of walreceiver. When launched, it now only
      tries to connect to the master once, and exits if the connection fails, or
      is lost during streaming for any reason. The startup process detects the
      death, and re-launches walreceiver if necessary.
      1bb25580