1. 26 Oct, 2009 3 commits
    • Peter Eisentraut's avatar
      Check errors in for loop · 3ceae479
      Peter Eisentraut authored
      3ceae479
    • Heikki Linnakangas's avatar
      Fix range check in date_recv that tried to limit accepted values to only · 2078e384
      Heikki Linnakangas authored
      those accepted by date_in(). I confused julian day numbers and number of
      days since the postgres epoch 2000-01-01 in the original patch.
      
      I just noticed that it's still easy to get such out-of-range values into
      the database using to_date or +- operators, but this patch doesn't do
      anything about those functions.
      
      Per report from James Pye.
      2078e384
    • Tom Lane's avatar
      Re-implement EvalPlanQual processing to improve its performance and eliminate · 9f2ee8f2
      Tom Lane authored
      a lot of strange behaviors that occurred in join cases.  We now identify the
      "current" row for every joined relation in UPDATE, DELETE, and SELECT FOR
      UPDATE/SHARE queries.  If an EvalPlanQual recheck is necessary, we jam the
      appropriate row into each scan node in the rechecking plan, forcing it to emit
      only that one row.  The former behavior could rescan the whole of each joined
      relation for each recheck, which was terrible for performance, and what's much
      worse could result in duplicated output tuples.
      
      Also, the original implementation of EvalPlanQual could not re-use the recheck
      execution tree --- it had to go through a full executor init and shutdown for
      every row to be tested.  To avoid this overhead, I've associated a special
      runtime Param with each LockRows or ModifyTable plan node, and arranged to
      make every scan node below such a node depend on that Param.  Thus, by
      signaling a change in that Param, the EPQ machinery can just rescan the
      already-built test plan.
      
      This patch also adds a prohibition on set-returning functions in the
      targetlist of SELECT FOR UPDATE/SHARE.  This is needed to avoid the
      duplicate-output-tuple problem.  It seems fairly reasonable since the
      other restrictions on SELECT FOR UPDATE are meant to ensure that there
      is a unique correspondence between source tuples and result tuples,
      which an output SRF destroys as much as anything else does.
      9f2ee8f2
  2. 23 Oct, 2009 1 commit
  3. 21 Oct, 2009 3 commits
  4. 20 Oct, 2009 3 commits
  5. 17 Oct, 2009 2 commits
  6. 16 Oct, 2009 2 commits
    • Tom Lane's avatar
      Rewrite pam_passwd_conv_proc to be more robust: avoid assuming that the · 76c09dbe
      Tom Lane authored
      pam_message array contains exactly one PAM_PROMPT_ECHO_OFF message.
      Instead, deal with however many messages there are, and don't throw error
      for PAM_ERROR_MSG and PAM_TEXT_INFO messages.  This logic is borrowed from
      openssh 5.2p1, which hopefully has seen more real-world PAM usage than we
      have.  Per bug #5121 from Ryan Douglas, which turned out to be caused by
      the conv_proc being called with zero messages.  Apparently that is normal
      behavior given the combination of Linux pam_krb5 with MS Active Directory
      as the domain controller.
      
      Patch all the way back, since this code has been essentially untouched
      since 7.4.  (Surprising we've not heard complaints before.)
      76c09dbe
    • Heikki Linnakangas's avatar
      FREEZE and VERBOSE options were in wrong order in the VACUUM command that · c02350dc
      Heikki Linnakangas authored
      vacuumdb produces. Per report by Thom Brown.
      c02350dc
  7. 15 Oct, 2009 2 commits
  8. 14 Oct, 2009 6 commits
  9. 13 Oct, 2009 5 commits
  10. 12 Oct, 2009 4 commits
  11. 10 Oct, 2009 2 commits
    • Tom Lane's avatar
      Improve similar_escape() in two different ways: · 05d24971
      Tom Lane authored
      * Stop escaping ? and {.  As of SQL:2008, SIMILAR TO is defined to have
      POSIX-compatible interpretation of ? as well as {m,n} and related constructs,
      so we should allow these things through to our regex engine.
      
      * Escape ^ and $.  It appears that our regex engine will treat ^^ at the
      beginning of the string the same as ^, and similarly for $$ at the end of
      the string, which meant that SIMILAR TO was effectively ignoring ^ at the
      start of the pattern and $ at the end.  Since these are not supposed to be
      metacharacters, this is a bug.
      
      The second part of this is arguably a back-patchable bug fix, but I'm
      hesitant to do that because it might break applications that are expecting
      something like "col SIMILAR TO '^foo$'" to work like a POSIX pattern.
      Seems safer to only change it at a major version boundary.
      
      Per discussion of an example from Doug Gorley.
      05d24971
    • Tom Lane's avatar
      Split the processing of INSERT/UPDATE/DELETE operations out of execMain.c. · 8a5849b7
      Tom Lane authored
      They are now handled by a new plan node type called ModifyTable, which is
      placed at the top of the plan tree.  In itself this change doesn't do much,
      except perhaps make the handling of RETURNING lists and inherited UPDATEs a
      tad less klugy.  But it is necessary preparation for the intended extension of
      allowing RETURNING queries inside WITH.
      
      Marko Tiikkaja
      8a5849b7
  12. 09 Oct, 2009 1 commit
    • Peter Eisentraut's avatar
      Use pg_get_triggerdef in pg_dump · b865d275
      Peter Eisentraut authored
      Add a variant of pg_get_triggerdef with a second argument "pretty" that
      causes the output to be formatted in the way pg_dump used to do.  Use this
      variant in pg_dump with server versions >= 8.5.
      
      This insulates pg_dump from most future trigger feature additions, such as
      the upcoming column triggers patch.
      
      Author: Itagaki Takahiro <itagaki.takahiro@oss.ntt.co.jp>
      b865d275
  13. 08 Oct, 2009 5 commits
  14. 07 Oct, 2009 1 commit
    • Alvaro Herrera's avatar
      Make it possibly to specify GUC params per user and per database. · 2eda8dfb
      Alvaro Herrera authored
      Create a new catalog pg_db_role_setting where they are now stored, and better
      encapsulate the code that deals with settings into its realm.  The old
      datconfig and rolconfig columns are removed.
      
      psql has gained a \drds command to display the settings.
      
      Backwards compatibility warning: while the backwards-compatible system views
      still have the config columns, they no longer completely represent the
      configuration for a user or database.
      
      Catalog version bumped.
      2eda8dfb