• Michael Paquier's avatar
    Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews · e665769e
    Michael Paquier authored
    IF NOT EXISTS was ignored when specified in an EXPLAIN query for CREATE
    MATERIALIZED VIEW or CREATE TABLE AS.  Hence, if this clause was
    specified, the caller would get a failure if the relation already
    exists instead of a success with a NOTICE message.
    
    This commit makes the behavior of IF NOT EXISTS in EXPLAIN consistent
    with the non-EXPLAIN'd DDL queries, preventing a failure with IF NOT
    EXISTS if the relation to-be-created already exists.  The skip is done
    before the SELECT query used for the relation is planned or executed,
    and a "dummy" plan is generated instead depending on the format used by
    EXPLAIN.
    
    Author: Bharath Rupireddy
    Reviewed-by: Zhijie Hou, Michael Paquier
    Discussion: https://postgr.es/m/CALj2ACVa3oJ9O_wcGd+FtHWZds04dEKcakxphGz5POVgD4wC7Q@mail.gmail.com
    e665769e
createas.h 989 Bytes