1. 03 Mar, 2011 6 commits
    • Tom Lane's avatar
      Fix citext's upgrade-from-unpackaged script to set its collation correctly. · 94be9e3f
      Tom Lane authored
      Although there remains some debate about how CREATE TYPE should represent
      the collation property, this doesn't really affect what we need to do in
      citext's script, so go ahead and fix that.
      94be9e3f
    • Tom Lane's avatar
      Run a portal's cleanup hook immediately when pushing it to DONE state. · 6252c4f9
      Tom Lane authored
      This works around the problem noted by Yamamoto Takashi in bug #5906,
      that there were code paths whereby we could reach AtCleanup_Portals
      with a portal's cleanup hook still unexecuted.  The changes I made
      a few days ago were intended to prevent that from happening, and
      I think that on balance it's still a good thing to avoid, so I don't
      want to remove the Assert in AtCleanup_Portals.  Hence do this instead.
      6252c4f9
    • Michael Meskes's avatar
      Added new version of ecpg's parser generator script. This one was written by · 32fce705
      Michael Meskes authored
      Andy Colson <andy@squeakycode.net>.
      32fce705
    • Heikki Linnakangas's avatar
      Add tab-completion for table name after JOIN. · 8e2d8b14
      Heikki Linnakangas authored
      Andrey Popp
      8e2d8b14
    • Tom Lane's avatar
      Add -lm to SHLIB_LINK for contrib/btree_gist. · 8c416454
      Tom Lane authored
      Now that btree_gist contains a reference to isinf(), this is necessary
      at least on some platforms.  Per buildfarm.
      8c416454
    • Tom Lane's avatar
      Mark operator implementation functions as such in their comments. · 94133a93
      Tom Lane authored
      Historically, we've not had separate comments for built-in pg_operator
      entries, but relied on the comments for the underlying functions.  The
      trouble with this approach is that there isn't much of anything to suggest
      to users that they'd be better off using the operators instead.  So, move
      all the relevant comments into pg_operator, and give each underlying
      function a comment that just says "implementation of XXX operator".
      There are only about half a dozen cases where it seems reasonable to use
      the underlying function interchangeably with the operator; in these cases
      I left the same comment in place on the function as on the operator.
      
      While at it, establish a policy that every built-in function and operator
      entry should have a comment: there are now queries in the opr_sanity
      regression test that will complain if one doesn't.  This only required
      adding a dozen or two more entries than would have been there anyway.
      
      I also spent some time trying to eliminate gratuitous inconsistencies in
      the style of the comments, though it's hopeless to suppose that more won't
      creep in soon enough.
      
      Per my proposal of 2010-10-15.
      94133a93
  2. 02 Mar, 2011 6 commits
  3. 01 Mar, 2011 10 commits
    • Andrew Dunstan's avatar
      Fix plpython breakage detected on certain Fedora machines on buildfarm. · 4c966d92
      Andrew Dunstan authored
      Patch from Jan Urbański.
      4c966d92
    • Peter Eisentraut's avatar
      Additional PL/Python regression test expected file · 2f363590
      Peter Eisentraut authored
      plpython_subtransaction test needs a separate expected file
      specifically for Python 2.5.
      2f363590
    • Heikki Linnakangas's avatar
      Change pg_last_xlog_receive_location() not to move backwards. That makes · 6eba5a7c
      Heikki Linnakangas authored
      it a lot more useful for determining which standby is most up-to-date,
      for example. There was long discussions on whether overwriting existing
      existing WAL makes sense to begin with, and whether we should do some more
      extensive variable renaming, but this change nevertheless seems quite
      uncontroversial.
      
      Fujii Masao, reviewed by Jeff Janes, Robert Haas, Stephen Frost.
      6eba5a7c
    • Heikki Linnakangas's avatar
      Fix bugs in Serializable Snapshot Isolation. · 47ad7912
      Heikki Linnakangas authored
      Change the way UPDATEs are handled. Instead of maintaining a chain of
      tuple-level locks in shared memory, copy any existing locks on the old
      tuple to the new tuple at UPDATE. Any existing page-level lock needs to
      be duplicated too, as a lock on the new tuple. That was neglected
      previously.
      
      Store xmin on tuple-level predicate locks, to distinguish a lock on an old
      already-recycled tuple from a new tuple at the same physical location.
      Failure to distinguish them caused loops in the tuple-lock chains, as
      reported by YAMAMOTO Takashi. Although we don't use the chain representation
      of UPDATEs anymore, it seems like a good idea to store the xmin to avoid
      some false positives if no other reason.
      
      CheckSingleTargetForConflictsIn now correctly handles the case where a lock
      that's being held is not reflected in the local lock table. That happens
      if another backend acquires a lock on our behalf due to an UPDATE or a page
      split.
      
      PredicateLockPageCombine now retains locks for the page that is being
      removed, rather than removing them. This prevents a potentially dangerous
      false-positive inconsistency where the local lock table believes that a lock
      is held, but it is actually not.
      
      Dan Ports and Kevin Grittner
      47ad7912
    • Peter Eisentraut's avatar
      Dump the COLLATABLE attribute in CREATE TYPE · 16143d64
      Peter Eisentraut authored
      This was previously omitted by accident.
      16143d64
    • Tom Lane's avatar
      Update discussion of EXPLAIN to reflect existence of ModifyTable nodes. · 09b49a84
      Tom Lane authored
      Back-patch to 9.0, since this was changed then.
      09b49a84
    • Tom Lane's avatar
      Include the target table in EXPLAIN output for ModifyTable nodes. · 97c4ee94
      Tom Lane authored
      Per discussion, this seems important for plans involving writable CTEs,
      since there can now be more than one ModifyTable node in the plan.
      
      To retain the same formatting as for target tables of scan nodes, we
      show only one target table, which will be the parent table in case of
      an UPDATE or DELETE on an inheritance tree.  Individual child tables
      can be determined by inspecting the child plan trees if needed.
      97c4ee94
    • Robert Haas's avatar
      Avoid excessive Hot Standby feedback messages. · 59d6a759
      Robert Haas authored
      Without this patch, when wal_receiver_status_interval=0, indicating that no
      status messages should be sent, Hot Standby feedback messages are instead sent
      extremely frequently.
      
      Fujii Masao, with documentation changes by me.
      59d6a759
    • Tom Lane's avatar
      Rearrange snapshot handling to make rule expansion more consistent. · c0b00760
      Tom Lane authored
      With this patch, portals, SQL functions, and SPI all agree that there
      should be only a CommandCounterIncrement between the queries that are
      generated from a single SQL command by rule expansion.  Fetching a whole
      new snapshot now happens only between original queries.  This is equivalent
      to the existing behavior of EXPLAIN ANALYZE, and it was judged to be the
      best choice since it eliminates one source of concurrency hazards for
      rules.  The patch should also make things marginally faster by reducing the
      number of snapshot push/pop operations.
      
      The patch removes pg_parse_and_rewrite(), which is no longer used anywhere.
      There was considerable discussion about more aggressive refactoring of the
      query-processing functions exported by postgres.c, but for the moment
      nothing more has been done there.
      
      I also took the opportunity to refactor snapmgr.c's API slightly: the
      former PushUpdatedSnapshot() has been split into two functions.
      
      Marko Tiikkaja, reviewed by Steve Singer and Tom Lane
      c0b00760
    • Andrew Dunstan's avatar
      57e9bda5
  4. 28 Feb, 2011 4 commits
  5. 27 Feb, 2011 7 commits
    • Bruce Momjian's avatar
    • Peter Eisentraut's avatar
      PL/Python explicit subtransactions · 22690719
      Peter Eisentraut authored
      Adds a context manager, obtainable by plpy.subtransaction(), to run a
      group of statements in a subtransaction.
      
      Jan Urbański, reviewed by Steve Singer, additional scribbling by me
      22690719
    • Peter Eisentraut's avatar
      Remove remaining expected file for Python 2.2 · 438cdf6e
      Peter Eisentraut authored
      We don't have complete expected coverage for Python 2.2 anyway, so it
      doesn't seem worth keeping this one around that no one appears to be
      updating anyway.  Visual inspection of the differences ought to be
      good enough for those few who care about this obsolete Python version.
      438cdf6e
    • Tom Lane's avatar
      Refactor the executor's API to support data-modifying CTEs better. · a874fe7b
      Tom Lane authored
      The originally committed patch for modifying CTEs didn't interact well
      with EXPLAIN, as noted by myself, and also had corner-case problems with
      triggers, as noted by Dean Rasheed.  Those problems show it is really not
      practical for ExecutorEnd to call any user-defined code; so split the
      cleanup duties out into a new function ExecutorFinish, which must be called
      between the last ExecutorRun call and ExecutorEnd.  Some Asserts have been
      added to these functions to help verify correct usage.
      
      It is no longer necessary for callers of the executor to call
      AfterTriggerBeginQuery/AfterTriggerEndQuery for themselves, as this is now
      done by ExecutorStart/ExecutorFinish respectively.  If you really need to
      suppress that and do it for yourself, pass EXEC_FLAG_SKIP_TRIGGERS to
      ExecutorStart.
      
      Also, refactor portal commit processing to allow for the possibility that
      PortalDrop will invoke user-defined code.  I think this is not actually
      necessary just yet, since the portal-execution-strategy logic forces any
      non-pure-SELECT query to be run to completion before we will consider
      committing.  But it seems like good future-proofing.
      a874fe7b
    • Bruce Momjian's avatar
      Be less detailed about reporting shared memory failure by avoiding the · 67a5e727
      Bruce Momjian authored
      output of actual Postgres parameter _values_ related to shared memory,
      and suggesting that these are only possible parameters to reduce.
      67a5e727
    • Magnus Hagander's avatar
      Fix verbose display of REPLICATION role attribute · b04137a2
      Magnus Hagander authored
      Josh Kupershmidt
      b04137a2
    • Bruce Momjian's avatar
      Fix markup for pg_options_to_table() to report the return column names, · 721ea41f
      Bruce Momjian authored
      per suggestion from Andrew.
      721ea41f
  6. 26 Feb, 2011 7 commits