| От | Tom Lane |
|---|---|
| Тема | Re: DDL+SQL in PL/pgSQL EXECUTE |
| Дата | |
| Msg-id | 8495.1237380508@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | DDL+SQL in PL/pgSQL EXECUTE (Vlad Arkhipov <arhipov@dc.baikal.ru>) |
| Список | pgsql-hackers |
Vlad Arkhipov <arhipov@dc.baikal.ru> writes:
> 3. ERROR: relation "t" does not exist
> SELECT _EXEC('CREATE TABLE T(ID INTEGER); INSERT INTO T(ID) VALUES (1)');
> 4. Inserts NULL value into ID column instead of default 10.
> BEGIN WORK;
> CREATE TABLE T(ID INTEGER);
> SELECT _EXEC('ALTER TABLE T ALTER COLUMN ID SET DEFAULT(10); INSERT INTO
> T DEFAULT VALUES');
Commands submitted in a single string are typically parsed and planned
before they are executed (though the behavior probably depends on
context and which PG version you're talking about). My advice is
don't do that.
If we were to do anything about it, it'd probably be to ban
multi-statement EXECUTE on security grounds ...
regards, tom lane
В списке pgsql-hackers по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера