summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2017-07-17 20:43:03 +0000
committerTom Lane2017-07-17 20:43:06 +0000
commit533463307bf67e1bb7acc345ba7ea535c6aebb78 (patch)
treee4e464006a5e9a094778b83871d3504b0b6895b2
parentcde11fa3c003407fc6c4ddc427d57e588ea17d1c (diff)
Doc: explain dollar quoting in the intro part of the pl/pgsql chapter.
We're throwing people into the guts of the syntax with not much context; let's back up one step and point out that this goes inside a literal in a CREATE FUNCTION command. Per suggestion from Kurt Kartaltepe. Discussion: https://postgr.es/m/CACawnnyWAmH+au8nfZhLiFfWKjXy4d0kY+eZWfcxPRnjVfaa_Q@mail.gmail.com
-rw-r--r--doc/src/sgml/plpgsql.sgml20
1 files changed, 19 insertions, 1 deletions
diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml
index dc29e7cd0f..2f166d2d59 100644
--- a/doc/src/sgml/plpgsql.sgml
+++ b/doc/src/sgml/plpgsql.sgml
@@ -180,8 +180,26 @@
<title>Structure of <application>PL/pgSQL</application></title>
<para>
+ Functions written in <application>PL/pgSQL</application> are defined
+ to the server by executing <xref linkend="sql-createfunction"> commands.
+ Such a command would normally look like, say,
+<programlisting>
+CREATE FUNCTION somefunc(integer, text) RETURNS integer
+AS '<replaceable>function body text</>'
+LANGUAGE plpgsql;
+</programlisting>
+ The function body is simply a string literal so far as <command>CREATE
+ FUNCTION</> is concerned. It is often helpful to use dollar quoting
+ (see <xref linkend="sql-syntax-dollar-quoting">) to write the function
+ body, rather than the normal single quote syntax. Without dollar quoting,
+ any single quotes or backslashes in the function body must be escaped by
+ doubling them. Almost all the examples in this chapter use dollar-quoted
+ literals for their function bodies.
+ </para>
+
+ <para>
<application>PL/pgSQL</application> is a block-structured language.
- The complete text of a function definition must be a
+ The complete text of a function body must be a
<firstterm>block</>. A block is defined as:
<synopsis>