1. 01 Oct, 2003 2 commits
  2. 30 Sep, 2003 4 commits
  3. 29 Sep, 2003 30 commits
  4. 28 Sep, 2003 4 commits
    • Tom Lane's avatar
      Restructure plpgsql's caching of 'simple' expression evaluation trees · 8b510838
      Tom Lane authored
      to be less dangerous, and often faster as well.  ExprState trees are
      not kept across transaction boundaries; this eliminates problems with
      resource leakage in failed transactions.  But by keeping them in a
      per-transaction EState, we can safely arrange for a single ExprState
      to be shared by all the expression evaluations done in a given plpgsql
      function call.  (Formerly it seemed necessary to create and destroy an
      ExprState for each exec_eval_simple_expr() call.)  This saves time in
      any scenario where a plpgsql function executes more than one expression.
      Seems to be about as fast as 7.3 for simple cases, and significantly
      faster for functions that do a lot of calculations.
      8b510838
    • Tom Lane's avatar
      Add a mechanism to let dynamically loaded modules register post-commit/ · 89347900
      Tom Lane authored
      post-abort cleanup hooks.  I'm surprised that we have not needed this
      already, but I need it now to fix a plpgsql problem, and the usefulness
      for other dynamically loaded modules seems obvious.
      89347900
    • Tom Lane's avatar
      Now that we have UPDATE tab SET col = DEFAULT, get rid of horrid hack · a15207f8
      Tom Lane authored
      in the RI triggers for ON DELETE/UPDATE SET DEFAULT.  The code depended
      way too much on knowledge of plan structure, and yet still would fail
      if the generated query got rewritten by rules.
      a15207f8
    • Bruce Momjian's avatar