diff --git a/doc/src/sgml/ref/select_into.sgml b/doc/src/sgml/ref/select_into.sgml
index 787c106..0226608 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 ] with_query [, ...] ]
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
* | expression [ [ AS ] output_name ] [, ...]
- INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table
+ INTO [ TEMPORARY | TEMP | UNLOGGED ] [ TABLE ] new_table
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
@@ -65,6 +65,16 @@ SELECT [ ALL | DISTINCT [ ON ( expression
+
+ UNLOGGED
+
+
+ If specified, the table is created as an unlogged table. Refer
+ to for details.
+
+
+
+
new_table
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index 80ad516..1326a97 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 allowed. */
+ 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 22dfc92..1042195 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 allowed. */
+ 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
*
diff --git a/src/test/regress/expected/create_view.out b/src/test/regress/expected/create_view.out
index f2c0685..557e077 100644
--- a/src/test/regress/expected/create_view.out
+++ b/src/test/regress/expected/create_view.out
@@ -281,4 +281,7 @@ drop cascades to table tbl3
drop cascades to table tbl4
drop cascades to view mytempview
drop cascades to view pubview
+-- should fail
+CREATE UNLOGGED VIEW unlogged_view AS SELECT 1;
+ERROR: views cannot be unlogged because they do not have storage
SET search_path to public;
diff --git a/src/test/regress/expected/sequence.out b/src/test/regress/expected/sequence.out
index 13e1565..be25a32 100644
--- a/src/test/regress/expected/sequence.out
+++ b/src/test/regress/expected/sequence.out
@@ -291,3 +291,6 @@ ERROR: permission denied for sequence seq3
ROLLBACK;
DROP USER seq_user;
DROP SEQUENCE seq;
+-- should fail
+CREATE UNLOGGED SEQUENCE unlogged_seq;
+ERROR: unlogged sequences are not supported
diff --git a/src/test/regress/sql/create_view.sql b/src/test/regress/sql/create_view.sql
index 86cfc51..d24ab1b 100644
--- a/src/test/regress/sql/create_view.sql
+++ b/src/test/regress/sql/create_view.sql
@@ -194,4 +194,7 @@ And relnamespace IN (SELECT OID FROM pg_namespace WHERE nspname LIKE 'pg_temp%')
DROP SCHEMA temp_view_test CASCADE;
DROP SCHEMA testviewschm2 CASCADE;
+-- should fail
+CREATE UNLOGGED VIEW unlogged_view AS SELECT 1;
+
SET search_path to public;
diff --git a/src/test/regress/sql/sequence.sql b/src/test/regress/sql/sequence.sql
index 29ea691..3422b83 100644
--- a/src/test/regress/sql/sequence.sql
+++ b/src/test/regress/sql/sequence.sql
@@ -120,3 +120,6 @@ ROLLBACK;
DROP USER seq_user;
DROP SEQUENCE seq;
+
+-- should fail
+CREATE UNLOGGED SEQUENCE unlogged_seq;