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
    A parallel worker process should not be making any decisions of its
    own about whether to auto-explain.  If the parent session process
    passed down flags asking for instrumentation data, do that, otherwise
    not.  Trying to enable instrumentation anyway leads to bugs like the
    "could not find key N in shm TOC" failure reported in bug #15821
    from Christian Hofstaedtler.
    
    We can implement this cheaply by piggybacking on the existing logic
    for not doing anything when we've chosen not to sample a statement.
    
    While at it, clean up some tin-eared coding related to the sampling
    feature, including an off-by-one error that meant that asking for 1.0
    sampling rate didn't actually result in sampling every statement.
    
    Although the specific case reported here only manifested in >= v11,
    I believe that related misbehaviors can be demonstrated in any version
    that has parallel query; and the off-by-one error is certainly there
    back to 9.6 where that feature was added.  So back-patch to 9.6.
    
    Discussion: https://postgr.es/m/15821-5eb422e980594075@postgresql.org
    57e85fa2
    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.