Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

contrib

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Tom Lane authored
    The original coding in contrib/uuid-ossp created and destroyed a uuid_t
    object (or, in some cases, even two of them) each time it was called.
    This is not the intended usage: you're supposed to keep the uuid_t object
    around so that the library can cache its state across uses.  (Other UUID
    libraries seem to keep equivalent state behind-the-scenes in static
    variables, but OSSP chose differently.)  Aside from being quite inefficient,
    creating a new uuid_t loses knowledge of the previously generated UUID,
    which in theory could result in duplicate V1-style UUIDs being created
    on sufficiently fast machines.
    
    On at least some platforms, creating a new uuid_t also draws some entropy
    from /dev/urandom, leaving less for the rest of the system.  This seems
    sufficiently unpleasant to justify back-patching this change.
    c941aed9
    History
    The PostgreSQL contrib tree
    ---------------------------
    
    This subtree contains porting tools, analysis utilities, and plug-in
    features that are not part of the core PostgreSQL system, mainly
    because they address a limited audience or are too experimental to be
    part of the main source tree.  This does not preclude their
    usefulness.
    
    User documentation for each module appears in the main SGML
    documentation.
    
    When building from the source distribution, these modules are not
    built automatically, unless you build the "world" target.  You can
    also build and install them all by running "make all" and "make
    install" in this directory; or to build and install just one selected
    module, do the same in that module's subdirectory.
    
    Some directories supply new user-defined functions, operators, or
    types.  To make use of one of these modules, after you have installed
    the code you need to register the new SQL objects in the database
    system by executing a CREATE EXTENSION command.  In a fresh database,
    you can simply do
    
        CREATE EXTENSION module_name;
    
    See the PostgreSQL documentation for more information about this
    procedure.