Skip to content
Snippets Groups Projects
  • Robert Haas's avatar
    cd30728f
    Allow LEAKPROOF functions for better performance of security views. · cd30728f
    Robert Haas authored
    We don't normally allow quals to be pushed down into a view created
    with the security_barrier option, but functions without side effects
    are an exception: they're OK.  This allows much better performance in
    common cases, such as when using an equality operator (that might
    even be indexable).
    
    There is an outstanding issue here with the CREATE FUNCTION / ALTER
    FUNCTION syntax: there's no way to use ALTER FUNCTION to unset the
    leakproof flag.  But I'm committing this as-is so that it doesn't
    have to be rebased again; we can fix up the grammar in a future
    commit.
    
    KaiGai Kohei, with some wordsmithing by me.
    cd30728f
    History
    Allow LEAKPROOF functions for better performance of security views.
    Robert Haas authored
    We don't normally allow quals to be pushed down into a view created
    with the security_barrier option, but functions without side effects
    are an exception: they're OK.  This allows much better performance in
    common cases, such as when using an equality operator (that might
    even be indexable).
    
    There is an outstanding issue here with the CREATE FUNCTION / ALTER
    FUNCTION syntax: there's no way to use ALTER FUNCTION to unset the
    leakproof flag.  But I'm committing this as-is so that it doesn't
    have to be rebased again; we can fix up the grammar in a future
    commit.
    
    KaiGai Kohei, with some wordsmithing by me.