Add missing CREATE TABLE IF NOT EXISTS table_name AS EXECUTE query;

Поиск
Список
Период
Сортировка
От Andreas Karlsson
Тема Add missing CREATE TABLE IF NOT EXISTS table_name AS EXECUTE query;
Дата
Msg-id 2ddcc188-e37c-a0be-32bf-a56b07c3559e@proxel.se
обсуждение исходный текст
Ответы Re: Add missing CREATE TABLE IF NOT EXISTS table_name AS EXECUTEquery;  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-hackers
Hi,

The first example below works while the second one is a syntax error 
despite that the documentation 
(https://www.postgresql.org/docs/11/sql-createtableas.html) makes it 
seem like both should be valid. I do not see any reason to not support 
CTAS with both IF NOT EXISTS and EXECUTE at the same time so i am 
guessing that this was an oversight.

I have attached a patch which fixes this. What do you think? Should I 
add a new test case for this or is the change simple enough to not 
require any new test?

# CREATE TABLE IF NOT EXISTS a AS SELECT 1;
SELECT 1

# PREPARE q AS SELECT 1;
PREPARE
Time: 0.209 ms
foo=# CREATE TABLE IF NOT EXISTS a AS EXECUTE q;
ERROR:  syntax error at or near "EXECUTE"
LINE 1: CREATE TABLE IF NOT EXISTS a AS EXECUTE q;
                                         ^

Andreas

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andreas Karlsson
Дата:
Сообщение: Re: Feature: temporary materialized views
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Bogus lateral-reference-propagation logic in create_lateral_join_info