summaryrefslogtreecommitdiff
path: root/src/include/utils/memutils.h
AgeCommit message (Collapse)Author
2006-03-05Update copyright for 2006. Update scripts.Bruce Momjian
2004-12-31Tag appropriate files for rc3PostgreSQL Daemon
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 ...
2004-09-16Add some marginal tweaks to eliminate memory leakages associated withTom Lane
subtransactions. Trivial subxacts (such as a plpgsql exception block containing no database access) now demonstrably leak zero bytes.
2004-08-29Update copyright to 2004.Bruce Momjian
2004-07-01Nested transactions. There is still much left to do, especially on theTom Lane
performance front, but with feature freeze upon us I think it's time to drive a stake in the ground and say that this will be in 7.5. Alvaro Herrera, with some help from Tom Lane.
2004-06-05Tweak palloc/repalloc to allow zero bytes to be requested, as per recentTom Lane
proposal. Eliminate several dozen now-unnecessary hacks to avoid palloc(0). (It's likely there are more that I didn't find.)
2003-11-29make sure the $Id tags are converted to $PostgreSQL as well ...PostgreSQL Daemon
2003-08-04Update copyrights to 2003.Bruce Momjian
2003-08-04pgindent run.Bruce Momjian
2003-05-02Portal and memory management infrastructure for extended query protocol.Tom Lane
Both plannable queries and utility commands are now always executed within Portals, which have been revamped so that they can handle the load (they used to be good only for single SELECT queries). Restructure code to push command-completion-tag selection logic out of postgres.c, so that it won't have to be duplicated between simple and extended queries. initdb forced due to addition of a field to Query nodes.
2002-12-16Code review for palloc0 patch --- avoid dangerous and unnecessaryTom Lane
practice of evaluating MemSet's arguments multiple times, except for the special case of newNode(), where we can assume the argument is a constant sizeof() operator. Also, add GetMemoryChunkContext() to mcxt.c's API, in preparation for fixing recent GEQO breakage.
2002-12-15Tweak default memory context allocation policy so that a context is notTom Lane
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.
2002-09-04pgindent run.Bruce Momjian
2002-08-12Change memory-space accounting mechanism in tuplesort.c and tuplestore.cTom Lane
to make a reasonable attempt at accounting for palloc overhead, not just the requested size of each memory chunk. Since in many scenarios this will make for a significant reduction in the amount of space acquired, partially compensate by doubling the default value of SORT_MEM to 1Mb. Per discussion in pgsql-general around 9-Jun-2002..
2002-06-20Update copyright to 2002.Bruce Momjian
2001-11-05New pgindent run with fixes suggested by Tom. Patch manually reviewed,Bruce Momjian
initdb/regression tests pass.
2001-10-25pgindent run on all C files. Java run to follow. initdb/regressionBruce Momjian
tests pass.
2001-03-22pgindent run. Make it all clean.Bruce Momjian
2001-02-06Out-of-bounds memory allocation request sizes should be treated as justTom Lane
elog(ERROR) not an Assert trap, since we've downgraded out-of-memory to elog(ERROR) not a fatal error. Also, change the hard boundary from 256Mb to 1Gb, just so that anyone who's actually got that much memory to spare can play with TOAST objects approaching a gigabyte.
2001-01-24Change Copyright from PostgreSQL, Inc to PostgreSQL Global Development Group.Bruce Momjian
2001-01-22All the global memory contexts should be DLLIMPORT, if any are.Tom Lane
2001-01-11Add DLLIMPORT to TransactionCommandContext.Peter Eisentraut
2000-12-01Clean up MEMORY_CONTEXT_CHECKING code, and apply it more thoroughly. Also,Tom Lane
apply Karel Zak's patch to recycle residual space in an exhausted allocation block. (Bet you thought I'd forgot about that, Karel?)
2000-07-11 Here is the patch with memory leak checker. This checker allow detectBruce Momjian
in-chunk leaks, overwrite-next-chunk leaks and overwrite block-freeptr leaks. A in-chunk leak --- if something overwrite space after wanted (via palloc() size, but it is still inside chunk. For example x = palloc(12); /* create 16b chunk */ memset(x, '#', 13); this leak is in the current source total invisible, because chunk is 16b and leak is in the "align space". For this feature I add data_size to StandardChunk, and all memory which go from AllocSetAlloc() is marked as 0x7F. The MemoryContextCheck() is compiled '#ifdef USE_ASSERT_CHECKING'. I add this checking to 'tcop/postgres.c' and is active after each backend query, but it is probably not sufficient, because some MemoryContext exist only during memory processing --- will good if someone who known where it is needful (Tom:-) add it for others contexts; A problem in the current source is that we have still some malloc() allocation that is not needful and this allocation is total invisible for all context routines. For example Dllist in backend (pretty dirty it is in catcache where values in Dllist are palloc-ed, but list is malloc-ed). --- and BTW. this Dllist design stand in the way for query cache :-) Tom, if you agree I start replace some mallocs. BTW. --- Tom, have you idea for across transaction presistent allocation for SQL functions? (like regex - now it is via malloc) I almost forget. I add one if() to AllocSetAlloc(), for 'size' that are greater than ALLOC_BIGCHUNK_LIMIT is not needful check AllocSetFreeIndex(), because 'fidx' is always 'ALLOCSET_NUM_FREELISTS - 1'. It a little brisk up allocation for very large chunks. Right? Karel
2000-06-28First phase of memory management rewrite (see backend/utils/mmgr/READMETom Lane
for details). It doesn't really do that much yet, since there are no short-term memory contexts in the executor, but the infrastructure is in place and long-term contexts are handled reasonably. A few long- standing bugs have been fixed, such as 'VACUUM; anything' in a single query string crashing. Also, out-of-memory is now considered a recoverable ERROR, not FATAL. Eliminate a large amount of crufty, now-dead code in and around memory management. Fix problem with holding off SIGTRAP, SIGSEGV, etc in postmaster and backend startup.
2000-05-21Add debug code to aid in memory-leak tracking: if SHOW_MEMORY_STATS isTom Lane
defined then statistics about memory usage of all the global memory contexts are printed after each commit.
2000-04-12Ye-old pgindent run. Same 4-space tabs.Bruce Momjian
2000-01-26Add:Bruce Momjian
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc to all files copyright Regents of Berkeley. Man, that's a lot of files.
1999-10-23Look Ma, no MAX_PARSE_BUFFER! (At least not in the backend.Tom Lane
pg_dump and interfaces/odbc still need some work.)
1999-08-24Alter AllocSet routines so that requests larger thanTom Lane
ALLOC_BIGCHUNK_LIMIT are always allocated as separate malloc() blocks, and are free()d immediately upon pfree(). Also, if such a chunk is enlarged with repalloc(), translate the operation into a realloc() so as to minimize memory usage. Of course, these large chunks still get freed automatically if the alloc set is reset. I have set ALLOC_BIGCHUNK_LIMIT at 64K for now, but perhaps another size would be better?
1999-07-15Clean up #include in /include directory. Add scripts for checking includes.Bruce Momjian
1999-07-14Cleanup of /include #include's, for 6.6 only.Bruce Momjian
1999-06-17Remove QUERY_LIMIT and documenation on same. Change _ALIGN to TYPEALIGNBruce Momjian
for Irix.
1999-05-26Make functions static or NOT_USED as appropriate.Bruce Momjian
1999-05-25Another pgindent run. Sorry folks.Bruce Momjian
1999-05-25pgindent run over code.Bruce Momjian
1999-05-22Modify aset.c logic so that blocks requested from malloc getTom Lane
bigger the more space is used in an allocset. This reduces the malloc overhead very substantially on queries that need lots of memory.
1999-03-25Revise memutils.h to use alignment information gathered byTom Lane
configure, instead of having a bunch of crufty platform-specific guesses.
1999-03-25Clean up att_align calculations so that XXXALIGN macrosTom Lane
need not be bogus.
1999-02-13Change my-function-name-- to my_function_name, and optimizer renames.Bruce Momjian
1999-02-06New alloc set code using a memory block pool for small allocations.Jan Wieck
Jan
1998-12-26Long awaited port for NetBSD/m68k was finally done by Mr. MutsukiBruce Momjian
Nakajima. Since he is not subscribing the mailing list, I'm posting his patches by his request. According to him, he has successfully compiled and passed the regression test on Mac SE/30 running NetBSD/m68k. Also, another person has reported that with the patches PostgreSQL is working on NetBSD/sun3 too. -- Tatsuo Ishii
1998-09-07Alignment cleanup so no more massive switch statements for alignment,Bruce Momjian
just two macros.
1998-09-01OK, folks, here is the pgindent output.Bruce Momjian
1998-04-27From: Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu>Marc G. Fournier
Ok, I have finally gotten all of the defines for Dec/Alpha and Linux/Alpha sorted out as Marc asked. There is no longer any need for '-Dalpha' or '-Dlinuxalpha' in either the Dec/Alpha or the Linux/Alpha template files (./src/template/{alpha,linuxalpha}). I have replaced every instance of 'alpha' or '__alpha__' with '__alpha', as that appears to be the common symbol between C compilers on both operating systems (RH4.2 & DecUnix 4.0b) for alpha.
1998-04-12More work in the right direction on linux/alphaMarc G. Fournier
From: Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu>
1998-02-26pgindent run before 6.3 release, with Thomas' requested changes.Bruce Momjian
1998-01-24Fix prototypes so they don't look like function definitions.Bruce Momjian
1998-01-11Fix SCO and change index name.Bruce Momjian
1997-09-08Add typdefs to pgindent run.Bruce Momjian