diff --git a/doc/src/sgml/ref/select_into.sgml b/doc/src/sgml/ref/select_into.sgml index 787c106a49d5089d783b747560b859bb758f5638..02266083d4e798b62121f25e72373dd54541d94a 100644 --- a/doc/src/sgml/ref/select_into.sgml +++ b/doc/src/sgml/ref/select_into.sgml @@ -24,7 +24,7 @@ PostgreSQL documentation [ WITH [ RECURSIVE ] <replaceable class="parameter">with_query</replaceable> [, ...] ] SELECT [ ALL | DISTINCT [ ON ( <replaceable class="parameter">expression</replaceable> [, ...] ) ] ] * | <replaceable class="parameter">expression</replaceable> [ [ AS ] <replaceable class="parameter">output_name</replaceable> ] [, ...] - INTO [ TEMPORARY | TEMP ] [ TABLE ] <replaceable class="parameter">new_table</replaceable> + INTO [ TEMPORARY | TEMP | UNLOGGED ] [ TABLE ] <replaceable class="parameter">new_table</replaceable> [ FROM <replaceable class="parameter">from_item</replaceable> [, ...] ] [ WHERE <replaceable class="parameter">condition</replaceable> ] [ GROUP BY <replaceable class="parameter">expression</replaceable> [, ...] ] @@ -65,6 +65,16 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable class="parameter">expression</replac </listitem> </varlistentry> + <varlistentry> + <term><literal>UNLOGGED</literal></term> + <listitem> + <para> + If specified, the table is created as an unlogged table. Refer + to <xref linkend="sql-createtable"> for details. + </para> + </listitem> + </varlistentry> + <varlistentry> <term><replaceable class="PARAMETER">new_table</replaceable></term> <listitem> diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c index 80ad516de1f17b4b517ffdf8e43d6c96cc1fede6..e71c311faf732a3387bd308690a4014a373cf1c4 100644 --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -119,6 +119,12 @@ DefineSequence(CreateSeqStmt *seq) int i; NameData name; + /* Unlogged sequences are not implemented -- not clear if useful. */ + if (seq->sequence->relpersistence == RELPERSISTENCE_UNLOGGED) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("unlogged sequences are not supported"))); + /* Check and set all option values */ init_params(seq->options, true, &new, &owned_by); diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c index 22dfc923cf606fa8914caea87c76cca6b0f928c4..1f418e907ead9fbf64cb3f481f6fc8019a832970 100644 --- a/src/backend/commands/view.c +++ b/src/backend/commands/view.c @@ -465,6 +465,12 @@ DefineView(ViewStmt *stmt, const char *queryString) view->relname))); } + /* Unlogged views are not sensible. */ + if (view->relpersistence == RELPERSISTENCE_UNLOGGED) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("views cannot be unlogged because they do not have storage"))); + /* * Create the view relation *