• Andres Freund's avatar
    Add support for coordinating record typmods among parallel workers. · cc5f8136
    Andres Freund authored
    Tuples can have type RECORDOID and a typmod number that identifies a blessed
    TupleDesc in a backend-private cache.  To support the sharing of such tuples
    through shared memory and temporary files, provide a typmod registry in
    shared memory.
    
    To achieve that, introduce per-session DSM segments, created on demand when a
    backend first runs a parallel query.  The per-session DSM segment has a
    table-of-contents just like the per-query DSM segment, and initially the
    contents are a shared record typmod registry and a DSA area to provide the
    space it needs to grow.
    
    State relating to the current session is accessed via a Session object
    reached through global variable CurrentSession that may require significant
    redesign further down the road as we figure out what else needs to be shared
    or remodelled.
    
    Author: Thomas Munro
    Reviewed-By: Andres Freund
    Discussion: https://postgr.es/m/CAEepm=0ZtQ-SpsgCyzzYpsXS6e=kZWqk3g5Ygn3MDV7A8dabUA@mail.gmail.com
    cc5f8136
typcache.c 73.4 KB