Skip to content
Snippets Groups Projects
  1. Feb 12, 2013
    • Alvaro Herrera's avatar
      Create libpgcommon, and move pg_malloc et al to it · 8396447c
      Alvaro Herrera authored
      libpgcommon is a new static library to allow sharing code among the
      various frontend programs and backend; this lets us eliminate duplicate
      implementations of common routines.  We avoid libpgport, because that's
      intended as a place for porting issues; per discussion, it seems better
      to keep them separate.
      
      The first use case, and the only implemented by this patch, is pg_malloc
      and friends, which many frontend programs were already using.
      
      At the same time, we can use this to provide palloc emulation functions
      for the frontend; this way, some palloc-using files in the backend can
      also be used by the frontend cleanly.  To do this, we change palloc() in
      the backend to be a function instead of a macro on top of
      MemoryContextAlloc().  This was previously believed to cause loss of
      performance, but this implementation has been tweaked by Tom and Andres
      so that on modern compilers it provides a slight improvement over the
      previous one.
      
      This lets us clean up some places that were already with
      localized hacks.
      
      Most of the pg_malloc/palloc changes in this patch were authored by
      Andres Freund. Zoltán Böszörményi also independently provided a form of
      that.  libpgcommon infrastructure was authored by Álvaro.
      8396447c
  2. Oct 02, 2012
    • Tom Lane's avatar
      Work around unportable behavior of malloc(0) and realloc(NULL, 0). · 09ac603c
      Tom Lane authored
      On some platforms these functions return NULL, rather than the more common
      practice of returning a pointer to a zero-sized block of memory.  Hack our
      various wrapper functions to hide the difference by substituting a size
      request of 1.  This is probably not so important for the callers, who
      should never touch the block anyway if they asked for size 0 --- but it's
      important for the wrapper functions themselves, which mistakenly treated
      the NULL result as an out-of-memory failure.  This broke at least pg_dump
      for the case of no user-defined aggregates, as per report from
      Matthew Carrington.
      
      Back-patch to 9.2 to fix the pg_dump issue.  Given the lack of previous
      complaints, it seems likely that there is no live bug in previous releases,
      even though some of these functions were in place before that.
      09ac603c
    • Tom Lane's avatar
      Standardize naming of malloc/realloc/strdup wrapper functions. · a563d941
      Tom Lane authored
      We had a number of variants on the theme of "malloc or die", with the
      majority named like "pg_malloc", but by no means all.  Standardize on the
      names pg_malloc, pg_malloc0, pg_realloc, pg_strdup.  Get rid of pg_calloc
      entirely in favor of using pg_malloc0.
      
      This is an essentially cosmetic change, so no back-patch.  (I did find
      a couple of places where psql and pg_dump were using plain malloc or
      strdup instead of the pg_ versions, but they don't look significant
      enough to bother back-patching.)
      a563d941
  3. Jul 04, 2012
  4. Jun 18, 2012
  5. May 08, 2012
  6. Jan 25, 2011
  7. Sep 22, 2010
  8. Sep 20, 2010
  9. May 12, 2010
  10. Feb 26, 2010
  11. Feb 07, 2010
    • Tom Lane's avatar
      Create a "relation mapping" infrastructure to support changing the relfilenodes · b9b8831a
      Tom Lane authored
      of shared or nailed system catalogs.  This has two key benefits:
      
      * The new CLUSTER-based VACUUM FULL can be applied safely to all catalogs.
      
      * We no longer have to use an unsafe reindex-in-place approach for reindexing
        shared catalogs.
      
      CLUSTER on nailed catalogs now works too, although I left it disabled on
      shared catalogs because the resulting pg_index.indisclustered update would
      only be visible in one database.
      
      Since reindexing shared system catalogs is now fully transactional and
      crash-safe, the former special cases in REINDEX behavior have been removed;
      shared catalogs are treated the same as non-shared.
      
      This commit does not do anything about the recently-discussed problem of
      deadlocks between VACUUM FULL/CLUSTER on a system catalog and other
      concurrent queries; will address that in a separate patch.  As a stopgap,
      parallel_schedule has been tweaked to run vacuum.sql by itself, to avoid
      such failures during the regression tests.
      b9b8831a
  12. Jun 11, 2009
  13. Feb 27, 2009
  14. Feb 25, 2009
  15. Dec 11, 2007
  16. Nov 11, 2007
  17. Jul 26, 2007
    • Tom Lane's avatar
      Arrange to put TOAST tables belonging to temporary tables into special schemas · 82eed4db
      Tom Lane authored
      named pg_toast_temp_nnn, alongside the pg_temp_nnn schemas used for the temp
      tables themselves.  This allows low-level code such as the relcache to
      recognize that these tables are indeed temporary, which enables various
      optimizations such as not WAL-logging changes and using local rather than
      shared buffers for access.  Aside from obvious performance benefits, this
      provides a solution to bug #3483, in which other backends unexpectedly held
      open file references to temporary tables.  The scheme preserves the property
      that TOAST tables are not in any schema that's normally in the search path,
      so they don't conflict with user table names.
      
      initdb forced because of changes in system view definitions.
      82eed4db
  18. Jul 16, 2007
  19. Jun 27, 2007
  20. Oct 19, 2006
  21. Mar 11, 2006
  22. Oct 15, 2005
  23. Sep 27, 2005
  24. Jun 21, 2005
    • Tom Lane's avatar
      Cause initdb to create a third standard database "postgres", which · 6f7fc0ba
      Tom Lane authored
      unlike template0 and template1 does not have any special status in
      terms of backend functionality.  However, all external utilities such
      as createuser and createdb now connect to "postgres" instead of
      template1, and the documentation is changed to encourage people to use
      "postgres" instead of template1 as a play area.  This should fix some
      longstanding gotchas involving unexpected propagation of database
      objects by createdb (when you used template1 without understanding
      the implications), as well as ameliorating the problem that CREATE
      DATABASE is unhappy if anyone else is connected to template1.
      Patch by Dave Page, minor editing by Tom Lane.  All per recent
      pghackers discussions.
      6f7fc0ba
  25. Mar 25, 2005
  26. Dec 02, 2004
  27. Nov 12, 2004
  28. Nov 05, 2004
    • Tom Lane's avatar
      Create 'default_tablespace' GUC variable that supplies a TABLESPACE · 98e8b480
      Tom Lane authored
      clause implicitly whenever one is not given explicitly.  Remove concept
      of a schema having an associated tablespace, and simplify the rules for
      selecting a default tablespace for a table or index.  It's now just
      (a) explicit TABLESPACE clause; (b) default_tablespace if that's not an
      empty string; (c) database's default.  This will allow pg_dump to use
      SET commands instead of tablespace clauses to determine object locations
      (but I didn't actually make it do so).  All per recent discussions.
      98e8b480
  29. Sep 17, 2004
  30. Aug 20, 2004
    • Bruce Momjian's avatar
      > Please find enclose a submission to fix these problems. · ee85595d
      Bruce Momjian authored
      >
      > The patch adds missing the "libpgport.a" file to the installation under
      > "install-all-headers". It is needed by some contribs. I install the
      > library in "pkglibdir", but I was wondering whether it should be "libdir"?
      > I was wondering also whether it would make sense to have a "libpgport.so"?
      >
      > It fixes various macros which are used by contrib makefiles, especially
      > libpq_*dir and LDFLAGS when used under PGXS. It seems to me that they are
      > needed to
      >
      > It adds the ability to test and use PGXS with contribs, with "make
      > USE_PGXS=1". Without the macro, this is exactly as before, there should be
      > no difference, esp. wrt the vpath feature that seemed broken by previous
      > submission. So it should not harm anybody, and it is useful at least to me.
      >
      > It fixes some inconsistencies in various contrib makefiles
      > (useless override, ":=" instead of "=").
      
      Fabien COELHO
      ee85595d
  31. Mar 03, 2004
  32. Nov 29, 2003
    • PostgreSQL Daemon's avatar
      · 969685ad
      PostgreSQL Daemon authored
      $Header: -> $PostgreSQL Changes ...
      969685ad
  33. Aug 04, 2003
  34. Jul 27, 2003
    • Bruce Momjian's avatar
      Updatge to skip composite types. · 606debf2
      Bruce Momjian authored
      606debf2
    • Bruce Momjian's avatar
      51e46d14
    • Bruce Momjian's avatar
      Here is 4 file in tgz: · 524cfad2
      Bruce Momjian authored
      the new timetravel.c,
      new timetravel.README (cut from spi/README and modified),
      modified timetravel.sql.in
      and modified timetravel.example.
      
      Features:
      - optionally 3 parameter for insert/update/delete user name
      
      - work with CREATE UNIQUE INDEX ixxx on table xxx
      (unique_field,time_off);
          (the  original version was work with unique index on 6.5.0-6.5.3,
      and not work on 7.3.2,7.3.3)
           (before 6.5.0 and between 6.5.3 and 7.3.2 I dont know)
      
      - get_timetravel(tablename) function for check timetravel-status.
      
      - timetravel trigger not change  oid of the active record. (it is not a
      good feature, because the  old version is automatice prevent the paralel
      update with "where oid=nnn")
      
      B?jthe Zolt?n
      524cfad2
  35. May 14, 2003
  36. Mar 10, 2003
Loading