From 6eb9c5a5657d1fe77b55cc261450f3538d35a94d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 14:19:15 +0200 Subject: Adding upstream version 13.4. Signed-off-by: Daniel Baumann --- doc/src/sgml/ref/do.sgml | 135 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 doc/src/sgml/ref/do.sgml (limited to 'doc/src/sgml/ref/do.sgml') diff --git a/doc/src/sgml/ref/do.sgml b/doc/src/sgml/ref/do.sgml new file mode 100644 index 0000000..96901b7 --- /dev/null +++ b/doc/src/sgml/ref/do.sgml @@ -0,0 +1,135 @@ + + + + + DO + + + + anonymous code blocks + + + + DO + 7 + SQL - Language Statements + + + + DO + execute an anonymous code block + + + + +DO [ LANGUAGE lang_name ] code + + + + + Description + + + DO executes an anonymous code block, or in other + words a transient anonymous function in a procedural language. + + + + The code block is treated as though it were the body of a function + with no parameters, returning void. It is parsed and + executed a single time. + + + + The optional LANGUAGE clause can be written either + before or after the code block. + + + + + Parameters + + + + code + + + The procedural language code to be executed. This must be specified + as a string literal, just as in CREATE FUNCTION. + Use of a dollar-quoted literal is recommended. + + + + + + lang_name + + + The name of the procedural language the code is written in. + If omitted, the default is plpgsql. + + + + + + + + Notes + + + The procedural language to be used must already have been installed + into the current database by means of CREATE EXTENSION. + plpgsql is installed by default, but other languages are not. + + + + The user must have USAGE privilege for the procedural + language, or must be a superuser if the language is untrusted. + This is the same privilege requirement as for creating a function + in the language. + + + + If DO is executed in a transaction block, then the + procedure code cannot execute transaction control statements. Transaction + control statements are only allowed if DO is executed in + its own transaction. + + + + + Examples + + Grant all privileges on all views in schema public to + role webuser: + +DO $$DECLARE r record; +BEGIN + FOR r IN SELECT table_schema, table_name FROM information_schema.tables + WHERE table_type = 'VIEW' AND table_schema = 'public' + LOOP + EXECUTE 'GRANT ALL ON ' || quote_ident(r.table_schema) || '.' || quote_ident(r.table_name) || ' TO webuser'; + END LOOP; +END$$; + + + + + Compatibility + + + There is no DO statement in the SQL standard. + + + + + See Also + + + + + + -- cgit v1.2.3