Обсуждение: [BUGS] plpgsql - wrong using of PERFORM statement doesn't raise a error
Hi
Following command finishing without any error, but (as expected) do nothing
postgres=# create table foo(a int);
CREATE TABLE
Time: 51,363 ms
postgres=# DO $$
postgres$# DECLARE t text;
postgres$# BEGIN
postgres$# t := 'INSERT INTO foo VALUES(10)';
postgres$# PERFORM t;
postgres$# END;
postgres$# $$;
DO
Time: 4,375 ms
postgres=# select * from foo;
┌───┐
│ a │
╞═══╡
└───┘
(0 rows)
Time: 1,367 ms
Regards
Pavel Stehule
2016-12-23 10:14 GMT+01:00 Pavel Stehule <pavel.stehule@gmail.com>:
HiFollowing command finishing without any error, but (as expected) do nothingpostgres=# create table foo(a int);CREATE TABLETime: 51,363 mspostgres=# DO $$postgres$# DECLARE t text;postgres$# BEGINpostgres$# t := 'INSERT INTO foo VALUES(10)';postgres$# PERFORM t;postgres$# END;postgres$# $$;DOTime: 4,375 mspostgres=# select * from foo;┌───┐│ a │╞═══╡└───┘(0 rows)Time: 1,367 msRegards
It generate valid command
SELECT t --> SELECT 'INSERT ...';
Hard to detect this issue.
Pavel
Pavel Stehule