1. 06 Mar, 2005 1 commit
  2. 31 Dec, 2004 1 commit
    • PostgreSQL Daemon's avatar
      · 2ff50159
      PostgreSQL Daemon authored
      Tag appropriate files for rc3
      
      Also performed an initial run through of upgrading our Copyright date to
      extend to 2005 ... first run here was very simple ... change everything
      where: grep 1996-2004 && the word 'Copyright' ... scanned through the
      generated list with 'less' first, and after, to make sure that I only
      picked up the right entries ...
      2ff50159
  3. 11 Dec, 2004 1 commit
    • Tom Lane's avatar
      Instead of supposing (wrongly, in the general case) that the rowtype · 12b1b5d8
      Tom Lane authored
      of an inheritance child table is binary-compatible with the rowtype of
      its parent, invent an expression node type that does the conversion
      correctly.  Fixes the new bug exhibited by Kris Shannon as well as a
      lot of old bugs that would only show up when using multiple inheritance
      or after altering the parent table.
      12b1b5d8
  4. 07 Oct, 2004 1 commit
    • Tom Lane's avatar
      Fix problems with SQL functions returning rowtypes that have dropped · a8487e15
      Tom Lane authored
      columns.  The returned tuple needs to have appropriate NULL columns
      inserted so that it actually matches the declared rowtype.  It seemed
      convenient to use a JunkFilter for this, so I made some cleanups and
      simplifications in the JunkFilter code to allow it to support this
      additional functionality.  (That in turn exposed a latent bug in
      nodeAppend.c, which is that it was returning a tuple slot whose
      descriptor didn't match its data.)  Also, move check_sql_fn_retval
      out of pg_proc.c and into functions.c, where it seems to more naturally
      belong.
      a8487e15
  5. 29 Aug, 2004 2 commits
  6. 09 Jun, 2004 1 commit
    • Tom Lane's avatar
      Support assignment to subfields of composite columns in UPDATE and INSERT. · 7e64dbc6
      Tom Lane authored
      As a side effect, cause subscripts in INSERT targetlists to do something
      more or less sensible; previously we evaluated such subscripts and then
      effectively ignored them.  Another side effect is that UPDATE-ing an
      element or slice of an array value that is NULL now produces a non-null
      result, namely an array containing just the assigned-to positions.
      7e64dbc6
  7. 10 May, 2004 1 commit
    • Tom Lane's avatar
      Promote row expressions to full-fledged citizens of the expression syntax, · 2f63232d
      Tom Lane authored
      rather than allowing them only in a few special cases as before.  In
      particular you can now pass a ROW() construct to a function that accepts
      a rowtype parameter.  Internal generation of RowExprs fixes a number of
      corner cases that used to not work very well, such as referencing the
      whole-row result of a JOIN or subquery.  This represents a further step in
      the work I started a month or so back to make rowtype values into
      first-class citizens.
      2f63232d
  8. 01 Apr, 2004 1 commit
    • Tom Lane's avatar
      Replace TupleTableSlot convention for whole-row variables and function · 375369ac
      Tom Lane authored
      results with tuples as ordinary varlena Datums.  This commit does not
      in itself do much for us, except eliminate the horrid memory leak
      associated with evaluation of whole-row variables.  However, it lays the
      groundwork for allowing composite types as table columns, and perhaps
      some other useful features as well.  Per my proposal of a few days ago.
      375369ac
  9. 17 Mar, 2004 2 commits
    • Tom Lane's avatar
      Reimplement CASE val WHEN compval1 THEN ... WHEN compval2 THEN ... END · 55f7c330
      Tom Lane authored
      so that the 'val' is computed only once, per recent discussion.  The
      speedup is not much when 'val' is just a simple variable, but could be
      significant for larger expressions.  More importantly this avoids issues
      with multiple evaluations of a volatile 'val', and it allows the CASE
      expression to be reverse-listed in its original form by ruleutils.c.
      55f7c330
    • Tom Lane's avatar
      Replace the switching function ExecEvalExpr() with a macro that jumps · c1352052
      Tom Lane authored
      directly to the appropriate per-node execution function, using a function
      pointer stored by ExecInitExpr.  This speeds things up by eliminating one
      level of function call.  The function-pointer technique also enables further
      small improvements such as only making one-time tests once (and then
      changing the function pointer).  Overall this seems to gain about 10%
      on evaluation of simple expressions, which isn't earthshaking but seems
      a worthwhile gain for a relatively small hack.  Per recent discussion
      on pghackers.
      c1352052
  10. 28 Feb, 2004 1 commit
  11. 22 Jan, 2004 1 commit
  12. 06 Jan, 2004 1 commit
    • Tom Lane's avatar
      Instead of rechecking lossy index operators by putting them into the · b0c4a50b
      Tom Lane authored
      regular qpqual ('filter condition'), add special-purpose code to
      nodeIndexscan.c to recheck them.  This ends being almost no net addition
      of code, because the removal of planner code balances out the extra
      executor code, but it is significantly more efficient when a lossy
      operator is involved in an OR indexscan.  The old implementation had
      to recheck the entire indexqual in such cases.
      b0c4a50b
  13. 18 Dec, 2003 1 commit
  14. 29 Nov, 2003 1 commit
    • PostgreSQL Daemon's avatar
      · 55b11325
      PostgreSQL Daemon authored
      make sure the $Id tags are converted to $PostgreSQL as well ...
      55b11325
  15. 01 Oct, 2003 1 commit
    • Tom Lane's avatar
      Repair RI trigger visibility problems (this time for sure ;-)) per recent · 55d85f42
      Tom Lane authored
      discussion on pgsql-hackers: in READ COMMITTED mode we just have to force
      a QuerySnapshot update in the trigger, but in SERIALIZABLE mode we have
      to run the scan under a current snapshot and then complain if any rows
      would be updated/deleted that are not visible in the transaction snapshot.
      55d85f42
  16. 25 Sep, 2003 1 commit
  17. 22 Aug, 2003 1 commit
  18. 19 Aug, 2003 1 commit
    • Tom Lane's avatar
      Improve dynahash.c's API so that caller can specify the comparison function · 80860c32
      Tom Lane authored
      as well as the hash function (formerly the comparison function was hardwired
      as memcmp()).  This makes it possible to eliminate the special-purpose
      hashtable management code in execGrouping.c in favor of using dynahash to
      manage tuple hashtables; which is a win because dynahash knows how to expand
      a hashtable when the original size estimate was too small, whereas the
      special-purpose code was too stupid to do that.  (See recent gripe from
      Stephan Szabo about poor performance when hash table size estimate is way
      off.)  Free side benefit: when using string_hash, the default comparison
      function is now strncmp() instead of memcmp().  This should eliminate some
      part of the overhead associated with larger NAMEDATALEN values.
      80860c32
  19. 08 Aug, 2003 1 commit
  20. 04 Aug, 2003 2 commits
  21. 29 Jun, 2003 1 commit
    • Tom Lane's avatar
      Support expressions of the form 'scalar op ANY (array)' and · bee21792
      Tom Lane authored
      'scalar op ALL (array)', where the operator is applied between the
      lefthand scalar and each element of the array.  The operator must
      yield boolean; the result of the construct is the OR or AND of the
      per-element results, respectively.
      
      Original coding by Joe Conway, after an idea of Peter's.  Rewritten
      by Tom to keep the implementation strictly separate from subqueries.
      bee21792
  22. 22 Jun, 2003 1 commit
    • Tom Lane's avatar
      Revise hash join and hash aggregation code to use the same datatype- · bff0422b
      Tom Lane authored
      specific hash functions used by hash indexes, rather than the old
      not-datatype-aware ComputeHashFunc routine.  This makes it safe to do
      hash joining on several datatypes that previously couldn't use hashing.
      The sets of datatypes that are hash indexable and hash joinable are now
      exactly the same, whereas before each had some that weren't in the other.
      bff0422b
  23. 28 May, 2003 1 commit
    • Tom Lane's avatar
      Replace functional-index facility with expressional indexes. Any column · fc8d970c
      Tom Lane authored
      of an index can now be a computed expression instead of a simple variable.
      Restrictions on expressions are the same as for predicates (only immutable
      functions, no sub-selects).  This fixes problems recently introduced with
      inlining SQL functions, because the inlining transformation is applied to
      both expression trees so the planner can still match them up.  Along the
      way, improve efficiency of handling index predicates (both predicates and
      index expressions are now cached by the relcache) and fix 7.3 oversight
      that didn't record dependencies of predicate expressions.
      fc8d970c
  24. 08 Apr, 2003 1 commit
  25. 09 Mar, 2003 1 commit
    • Tom Lane's avatar
      Revise tuplestore and nodeMaterial so that we don't have to read the · aa60eecc
      Tom Lane authored
      entire contents of the subplan into the tuplestore before we can return
      any tuples.  Instead, the tuplestore holds what we've already read, and
      we fetch additional rows from the subplan as needed.  Random access to
      the previously-read rows works with the tuplestore, and doesn't affect
      the state of the partially-read subplan.  This is a step towards fixing
      the problems with cursors over complex queries --- we don't want to
      stick in Materialize nodes if they'll prevent quick startup for a cursor.
      aa60eecc
  26. 16 Feb, 2003 1 commit
  27. 09 Feb, 2003 1 commit
    • Tom Lane's avatar
      Make further use of new bitmapset code: executor's chgParam, extParam, · 145014f8
      Tom Lane authored
      locParam lists can be converted to bitmapsets to speed updating.  Also,
      replace 'locParam' with 'allParam', which contains all the paramIDs
      relevant to the node (i.e., the union of extParam and locParam); this
      saves a step during SetChangedParamList() without costing anything
      elsewhere.
      145014f8
  28. 03 Feb, 2003 1 commit
  29. 23 Jan, 2003 1 commit
  30. 12 Jan, 2003 1 commit
  31. 10 Jan, 2003 2 commits
  32. 18 Dec, 2002 1 commit
  33. 15 Dec, 2002 2 commits
    • Tom Lane's avatar
      Tweak default memory context allocation policy so that a context is not · e64c7feb
      Tom Lane authored
      given any malloc block until something is first allocated in it; but
      thereafter, MemoryContextReset won't release that first malloc block.
      This preserves the quick-reset property of the original policy, without
      forcing 8K to be allocated to every context whether any of it is ever
      used or not.  Also, remove some more no-longer-needed explicit freeing
      during ExecEndPlan.
      e64c7feb
    • Tom Lane's avatar
      Revise executor APIs so that all per-query state structure is built in · 5bab36e9
      Tom Lane authored
      a per-query memory context created by CreateExecutorState --- and destroyed
      by FreeExecutorState.  This provides a final solution to the longstanding
      problem of memory leaked by various ExecEndNode calls.
      5bab36e9
  34. 14 Dec, 2002 1 commit
    • Tom Lane's avatar
      Clean up plantree representation of SubPlan-s --- SubLink does not appear · 2d8d6662
      Tom Lane authored
      in the planned representation of a subplan at all any more, only SubPlan.
      This means subselect.c doesn't scribble on its input anymore, which seems
      like a good thing; and there are no longer three different possible
      interpretations of a SubLink.  Simplify node naming and improve comments
      in primnodes.h.  No change to stored rules, though.
      2d8d6662
  35. 13 Dec, 2002 1 commit