• Stephen Frost's avatar
    Make viewquery a copy in rewriteTargetView() · 6f8cb1e2
    Stephen Frost authored
    Rather than expect the Query returned by get_view_query() to be
    read-only and then copy bits and pieces of it out, simply copy the
    entire structure when we get it.  This addresses an issue where
    AcquireRewriteLocks, which is called by acquireLocksOnSubLinks(),
    scribbles on the parsetree passed in, which was actually an entry
    in relcache, leading to segfaults with certain view definitions.
    This also future-proofs us a bit for anyone adding more code to this
    path.
    
    The acquireLocksOnSubLinks() was added in commit c3e0ddd4.
    
    Back-patch to 9.3 as that commit was.
    6f8cb1e2
updatable_views.out 85.5 KB