pgsql: Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews
От | Michael Paquier |
---|---|
Тема | pgsql: Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews |
Дата | |
Msg-id | E1kuaX7-0000Q9-MT@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews 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 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/e665769e6d1e84b6650f53ed297058fc11152f7f Modified Files -------------- src/backend/commands/createas.c | 53 ++++++++++++++++++++++--------- src/backend/commands/explain.c | 16 ++++++++++ src/include/commands/createas.h | 2 ++ src/test/regress/expected/matview.out | 38 ++++++++++++++++++++++ src/test/regress/expected/select_into.out | 42 ++++++++++++++++++++++++ src/test/regress/sql/matview.sql | 23 ++++++++++++++ src/test/regress/sql/select_into.sql | 21 ++++++++++++ 7 files changed, 180 insertions(+), 15 deletions(-)
В списке pgsql-committers по дате отправления: