Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Jul 14, 2014
  1. @nmisch

    Add file version information to most installed Windows binaries.

    nmisch authored
    Prominent binaries already had this metadata.  A handful of minor
    binaries, such as pg_regress.exe, still lack it; efforts to eliminate
    such exceptions are welcome.
    Michael Paquier, reviewed by MauMau.
Commits on May 6, 2014
  1. @bmomjian

    pgindent run for 9.4

    bmomjian authored
    This includes removing tabs after periods in C comments, which was
    applied to back branches, so this change should not effect backpatching.
Commits on Feb 15, 2014
  1. Centralize getopt-related declarations in a new header file pg_getopt.h.

    Tom Lane authored
    We used to have externs for getopt() and its API variables scattered
    all over the place.  Now that we find we're going to need to tweak the
    variable declarations for Cygwin, it seems like a good idea to have
    just one place to tweak.
    In this commit, the variables are declared "#ifndef HAVE_GETOPT_H".
    That may or may not work everywhere, but we'll soon find out.
    Andres Freund
Commits on Oct 22, 2013
  1. Replace pg_asprintf() with psprintf().

    Tom Lane authored
    This eliminates an awkward coding pattern that's also unnecessarily
    inconsistent with backend coding.  psprintf() is now the thing to
    use everywhere.
Commits on Oct 13, 2013
  1. @petere

    Add use of asprintf()

    petere authored
    Add asprintf(), pg_asprintf(), and psprintf() to simplify string
    allocation and composition.  Replacement implementations taken from
    Reviewed-by: Álvaro Herrera <>
    Reviewed-by: Asif Naeem <>
Commits on May 29, 2013
  1. @bmomjian

    pgindent run for release 9.3

    bmomjian authored
    This is the first run of the Perl-based pgindent script.  Also update
    pgindent instructions.
Commits on Mar 4, 2013
  1. @kgrittn

    Add a materialized view relations.

    kgrittn authored
    A materialized view has a rule just like a view and a heap and
    other physical properties like a table.  The rule is only used to
    populate the table, references in queries refer to the
    materialized data.
    This is a minimal implementation, but should still be useful in
    many cases.  Currently data is only populated "on demand" by the
    It is expected that future releases will add incremental updates
    with various timings, and that a more refined concept of defining
    what is "fresh" data will be developed.  At some point it may even
    be possible to have queries use a materialized in place of
    references to underlying tables, but that requires the other
    above-mentioned features to be working first.
    Much of the documentation work by Robert Haas.
    Review by Noah Misch, Thom Brown, Robert Haas, Marko Tiikkaja
    Security review by KaiGai Kohei, with a decision on how best to
    implement sepgsql still pending.
Commits on Feb 12, 2013
  1. @alvherre

    Create libpgcommon, and move pg_malloc et al to it

    alvherre 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.
Commits on Oct 2, 2012
  1. Work around unportable behavior of malloc(0) and realloc(NULL, 0).

    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.
  2. Standardize naming of malloc/realloc/strdup wrapper functions.

    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.)
Commits on Jul 4, 2012
  1. Make oid2name, pgbench, and vacuumlo set fallback_application_name.

    Robert Haas authored
    Amit Kapila, reviewed by Shigeru Hanada and Peter Eisentraut,
    with some modifications by me.
Commits on Jun 17, 2012
  1. @petere

    Make documentation of --help and --version options more consistent

    petere authored
    Before, some places didn't document the short options (-? and -V),
    some documented both, some documented nothing, and they were listed in
    various orders.  Now this is hopefully more consistent and complete.
Commits on May 8, 2012
  1. @petere

    Tweak contrib --help output to match common style

    petere authored
    Placeholders such as OPTION are typically kept in singular.
Commits on Jan 25, 2011
  1. @bmomjian
Commits on Sep 22, 2010
  1. @mhagander
Commits on Sep 20, 2010
  1. @mhagander
Commits on May 12, 2010
  1. @bmomjian

    Add PGFILEDESC description to Makefiles for all /contrib executables.

    bmomjian authored
    Add PGAPPICON to all executable makefiles.
Commits on Feb 26, 2010
  1. @bmomjian

    pgindent run for 9.0

    bmomjian authored
Commits on Feb 7, 2010
  1. Create a "relation mapping" infrastructure to support changing the re…

    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.
Commits on Jun 11, 2009
  1. @bmomjian
Commits on Feb 27, 2009
  1. @petere

    Equip the programs installed by contrib with proper --help and --version

    petere authored
    options and normally formatted help output.
Commits on Feb 25, 2009
  1. @petere

    Remove feof(stdin) calls related to when to prompt for a password,

    petere authored
    leftovers from when the password was read from stdin.
Commits on Dec 11, 2007
  1. Remove the -P options of oid2name and pgbench, as they are security

    Tom Lane authored
    hazards.  Instead teach these programs to prompt for a password when
    necessary, just like all our other programs.
    I did not bother to invent -W switches for them, since the return on
    investment seems so low.
Commits on Nov 10, 2007
  1. @bmomjian
  2. @bmomjian

    Move most /contrib README files into SGML. Some still need conversion

    bmomjian authored
    or will never be converted.
Commits on Jul 25, 2007
  1. Arrange to put TOAST tables belonging to temporary tables into specia…

    Tom Lane authored
    …l schemas
    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.
Commits on Jul 15, 2007
  1. Change a couple of exit(0) to return 0 to suppress complaints from

    Tom Lane authored
    not-too-bright compilers.  Per buildfarm results.
Commits on Jun 26, 2007
  1. Fix PGXS conventions so that extensions can be built against Postgres

    Tom Lane authored
    installations whose pg_config program does not appear first in the PATH.
    Per gripe from Eddie Stanley and subsequent discussions with Fabien Coelho
    and others.
Commits on Oct 19, 2006
Commits on Mar 11, 2006
  1. @bmomjian
Commits on Oct 15, 2005
  1. @bmomjian
Commits on Sep 27, 2005
  1. PGXS should be set with := not =, as specified in the documentation,

    Tom Lane authored
    to avoid useless multiple executions of pg_config.
Commits on Jun 21, 2005
  1. Cause initdb to create a third standard database "postgres", which

    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.
Commits on Mar 25, 2005
  1. @bmomjian

    Have libpgport link before libpq so that PG client applications are more

    bmomjian authored
    immunte to changes in libpq's usage of pgport between major versions.
Commits on Dec 2, 2004
  1. Fix a potential free() of string literal in oid2name, per report from

    Neil Conway authored
    Michael Fuhr. Along the way, fix a bunch of accesses to uninitialized
    memory, add a mystrdup() routine and use it to cleanup some code.
Something went wrong with that request. Please try again.