aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-10-11 10:08:45 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2016-10-11 10:08:45 -0400
commite34318725ca5b274efd6f57ea7460e89f4dca9f9 (patch)
treedb12dcde650a8026aff174c35a245dee05e293d2
parent3d21f08bccd316c3850a1943c1ee1e381dab1588 (diff)
downloadpostgresql-e34318725ca5b274efd6f57ea7460e89f4dca9f9.tar.gz
postgresql-e34318725ca5b274efd6f57ea7460e89f4dca9f9.zip
Improve documentation for CREATE RECURSIVE VIEW.
It was perhaps not entirely clear that internal self-references shouldn't be schema-qualified even if the view name is written with a schema. Spell it out. Discussion: <871sznz69m.fsf@metapensiero.it>
-rw-r--r--doc/src/sgml/ref/create_view.sgml15
1 files changed, 10 insertions, 5 deletions
diff --git a/doc/src/sgml/ref/create_view.sgml b/doc/src/sgml/ref/create_view.sgml
index ede1698051c..8641e1925ed 100644
--- a/doc/src/sgml/ref/create_view.sgml
+++ b/doc/src/sgml/ref/create_view.sgml
@@ -87,13 +87,13 @@ CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW <replaceable class
<para>
Creates a recursive view. The syntax
<synopsis>
-CREATE RECURSIVE VIEW <replaceable>name</> (<replaceable>columns</>) AS SELECT <replaceable>...</>;
+CREATE RECURSIVE VIEW [ <replaceable>schema</> . ] <replaceable>view_name</> (<replaceable>column_names</>) AS SELECT <replaceable>...</>;
</synopsis>
is equivalent to
<synopsis>
-CREATE VIEW <replaceable>name</> AS WITH RECURSIVE <replaceable>name</> (<replaceable>columns</>) AS (SELECT <replaceable>...</>) SELECT <replaceable>columns</> FROM <replaceable>name</>;
+CREATE VIEW [ <replaceable>schema</> . ] <replaceable>view_name</> AS WITH RECURSIVE <replaceable>view_name</> (<replaceable>column_names</>) AS (SELECT <replaceable>...</>) SELECT <replaceable>column_names</> FROM <replaceable>view_name</>;
</synopsis>
- A view column list must be specified for a recursive view.
+ A view column name list must be specified for a recursive view.
</para>
</listitem>
</varlistentry>
@@ -462,11 +462,16 @@ CREATE VIEW comedies AS
<para>
Create a recursive view consisting of the numbers from 1 to 100:
<programlisting>
-CREATE RECURSIVE VIEW nums_1_100 (n) AS
+CREATE RECURSIVE VIEW public.nums_1_100 (n) AS
VALUES (1)
UNION ALL
SELECT n+1 FROM nums_1_100 WHERE n < 100;
-</programlisting></para>
+</programlisting>
+ Notice that although the recursive view's name is schema-qualified in this
+ <command>CREATE</>, its internal self-reference is not schema-qualified.
+ This is because the implicitly-created CTE's name cannot be
+ schema-qualified.
+ </para>
</refsect1>
<refsect1>