Skip to content
Snippets Groups Projects
  1. Jan 02, 2010
  2. Dec 29, 2009
    • Heikki Linnakangas's avatar
      Previous fix for temporary file management broke returning a set from · 84d723b6
      Heikki Linnakangas authored
      PL/pgSQL function within an exception handler. Make sure we use the right
      resource owner when we create the tuplestore to hold returned tuples.
      
      Simplify tuplestore API so that the caller doesn't need to be in the right
      memory context when calling tuplestore_put* functions. tuplestore.c
      automatically switches to the memory context used when the tuplestore was
      created. Tuplesort was already modified like this earlier. This patch also
      removes the now useless MemoryContextSwitch calls from callers.
      
      Report by Aleksei on pgsql-bugs on Dec 22 2009. Backpatch to 8.1, like
      the previous patch that broke this.
      84d723b6
  3. Jun 11, 2009
  4. Jan 07, 2009
  5. Jan 01, 2009
  6. Dec 01, 2008
  7. Oct 29, 2008
    • Tom Lane's avatar
      Be more tense about not creating tuplestores with randomAccess = true unless · 05bba3d1
      Tom Lane authored
      backwards scan could actually happen.  In particular, pass a flag to
      materialize-mode SRFs that tells them whether they need to require random
      access.  In passing, also suppress unneeded backward-scan overhead for a
      Portal's holdStore tuplestore.  Per my proposal about reducing I/O costs for
      tuplestores.
      05bba3d1
  8. Oct 28, 2008
    • Tom Lane's avatar
      Extend ExecMakeFunctionResult() to support set-returning functions that return · e3e3d2a7
      Tom Lane authored
      via a tuplestore instead of value-per-call.  Refactor a few things to reduce
      ensuing code duplication with nodeFunctionscan.c.  This represents the
      reasonably noncontroversial part of my proposed patch to switch SQL functions
      over to returning tuplestores.  For the moment, SQL functions still do things
      the old way.  However, this change enables PL SRFs to be called in targetlists
      (observe changes in plperl regression results).
      e3e3d2a7
  9. May 17, 2008
    • Andrew Dunstan's avatar
      Add $PostgreSQL$ markers to a lot of files that were missing them. · 53972b46
      Andrew Dunstan authored
      This particular batch was just for *.c and *.h file.
      
      The changes were made with the following 2 commands:
      
      find . \( \( -name 'libstemmer' -o -name 'expected' -o -name 'ppport.h' \) -prune \) -o  \( -name '*.[ch]'  \) \( -exec grep -q '\$PostgreSQL' {} \; -o -print \) | while read file ; do head -n 1 < $file | grep -q '^/\*' && echo $file; done | xargs -l sed -i -e '1s/^\// /' -e '1i/*\n * $PostgreSQL:$ \n *'
      
      find . \( \( -name 'libstemmer' -o -name 'expected' -o -name 'ppport.h' \) -prune \) -o  \( -name '*.[ch]'  \) \( -exec grep -q '\$PostgreSQL' {} \; -o -print \) | xargs -l sed -i -e '1i/*\n * $PostgreSQL:$ \n */'
      53972b46
  10. Mar 25, 2008
    • Tom Lane's avatar
      Simplify and standardize conversions between TEXT datums and ordinary C · 220db7cc
      Tom Lane authored
      strings.  This patch introduces four support functions cstring_to_text,
      cstring_to_text_with_len, text_to_cstring, and text_to_cstring_buffer, and
      two macros CStringGetTextDatum and TextDatumGetCString.  A number of
      existing macros that provided variants on these themes were removed.
      
      Most of the places that need to make such conversions now require just one
      function or macro call, in place of the multiple notational layers that used
      to be needed.  There are no longer any direct calls of textout or textin,
      and we got most of the places that were using handmade conversions via
      memcpy (there may be a few still lurking, though).
      
      This commit doesn't make any serious effort to eliminate transient memory
      leaks caused by detoasting toasted text objects before they reach
      text_to_cstring.  We changed PG_GETARG_TEXT_P to PG_GETARG_TEXT_PP in a few
      places where it was easy, but much more could be done.
      
      Brendan Jurd and Tom Lane
      220db7cc
  11. Jan 01, 2008
  12. Dec 07, 2007
    • Tom Lane's avatar
      Clean up a couple of problems in crosstab_hash's use of a hash table. · aaff0a55
      Tom Lane authored
      The original coding leaked memory (at least 8K per crosstab_hash call)
      because it allowed the hash table to be allocated as a child of
      TopMemoryContext and then never freed it.  Fix that by putting the
      hash table under per_query_ctx, instead.  Also get rid of use
      of a static variable to point to the hash table.  Aside from being
      ugly, that would actively do the wrong thing in the case of re-entrant
      calls to crosstab_hash, which are at least theoretically possible
      since it was expecting the static variable to stay valid across
      a SPI_execute call.
      aaff0a55
  13. Nov 15, 2007
  14. Nov 10, 2007
  15. Mar 03, 2007
  16. Jan 05, 2007
  17. Oct 04, 2006
  18. Jun 27, 2006
    • Tom Lane's avatar
      Create infrastructure for 'MinimalTuple' representation of in-memory · 3f50ba27
      Tom Lane authored
      tuples with less header overhead than a regular HeapTuple, per my
      recent proposal.  Teach TupleTableSlot code how to deal with these.
      As proof of concept, change tuplestore.c to store MinimalTuples instead
      of HeapTuples.  Future patches will expand the concept to other places
      where it is useful.
      3f50ba27
  19. May 31, 2006
  20. Mar 05, 2006
  21. Mar 01, 2006
    • Neil Conway's avatar
      Attached is a patch that replaces a bunch of places where StringInfos · 0d9742f9
      Neil Conway authored
      are unnecessarily allocated on the heap rather than the stack. If the
      StringInfo doesn't outlive the stack frame in which it is created,
      there is no need to allocate it on the heap via makeStringInfo() --
      stack allocation is faster.  While it's not a big deal unless the
      code is in a critical path, I don't see a reason not to save a few
      cycles -- using stack allocation is not less readable.
      
      I also cleaned up a bit of code along the way: moved variable
      declarations into a more tightly-enclosing scope where possible,
      fixed some pointless copying of strings in dblink, etc.
      0d9742f9
    • Neil Conway's avatar
      This patch makes the error message strings throughout the backend · 8e5a10d4
      Neil Conway authored
      more compliant with the error message style guide. In particular,
      errdetail should begin with a capital letter and end with a period,
      whereas errmsg should not. I also fixed a few related issues in
      passing, such as fixing the repeated misspelling of "lexeme" in
      contrib/tsearch2 (per Tom's suggestion).
      8e5a10d4
  22. Nov 22, 2005
  23. Oct 15, 2005
  24. Jul 09, 2005
  25. May 31, 2005
  26. May 29, 2005
    • Tom Lane's avatar
      Modify hash_search() API to prevent future occurrences of the error · e92a8827
      Tom Lane authored
      spotted by Qingqing Zhou.  The HASH_ENTER action now automatically
      fails with elog(ERROR) on out-of-memory --- which incidentally lets
      us eliminate duplicate error checks in quite a bunch of places.  If
      you really need the old return-NULL-on-out-of-memory behavior, you
      can ask for HASH_ENTER_NULL.  But there is now an Assert in that path
      checking that you aren't hoping to get that behavior in a palloc-based
      hash table.
      Along the way, remove the old HASH_FIND_SAVE/HASH_REMOVE_SAVED actions,
      which were not being used anywhere anymore, and were surely too ugly
      and unsafe to want to see revived again.
      e92a8827
  27. Jan 01, 2005
  28. Oct 07, 2004
  29. Sep 13, 2004
    • Tom Lane's avatar
      Redesign query-snapshot timing so that volatile functions in READ COMMITTED · b2c40712
      Tom Lane authored
      mode see a fresh snapshot for each command in the function, rather than
      using the latest interactive command's snapshot.  Also, suppress fresh
      snapshots as well as CommandCounterIncrement inside STABLE and IMMUTABLE
      functions, instead using the snapshot taken for the most closely nested
      regular query.  (This behavior is only sane for read-only functions, so
      the patch also enforces that such functions contain only SELECT commands.)
      As per my proposal of 6-Sep-2004; I note that I floated essentially the
      same proposal on 19-Jun-2002, but that discussion tailed off without any
      action.  Since 8.0 seems like the right place to be taking possibly
      nontrivial backwards compatibility hits, let's get it done now.
      b2c40712
  30. Aug 29, 2004
  31. Aug 11, 2004
  32. Apr 01, 2004
    • 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
  33. Feb 24, 2004
  34. Feb 03, 2004
    • Tom Lane's avatar
      Rename SortMem and VacuumMem to work_mem and maintenance_work_mem. · 391c3811
      Tom Lane authored
      Make btree index creation and initial validation of foreign-key constraints
      use maintenance_work_mem rather than work_mem as their memory limit.
      Add some code to guc.c to allow these variables to be referenced by their
      old names in SHOW and SET commands, for backwards compatibility.
      391c3811
  35. Oct 02, 2003
  36. Sep 13, 2003
  37. Aug 05, 2003
Loading