From a9f2e31cf653bad72debae616521130065e55077 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 10 Jan 2012 21:46:29 +0200 Subject: Support CREATE TABLE (LIKE ...) with foreign tables and views Composite types are not yet supported, because parserOpenTable() rejects them. --- src/backend/parser/parse_utilcmd.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/backend/parser/parse_utilcmd.c') diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index e14ae09e6f9..335bdc6b075 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -644,10 +644,12 @@ transformTableLikeClause(CreateStmtContext *cxt, TableLikeClause *table_like_cla relation = parserOpenTable(cxt->pstate, table_like_clause->relation, AccessShareLock); - if (relation->rd_rel->relkind != RELKIND_RELATION) + if (relation->rd_rel->relkind != RELKIND_RELATION + && relation->rd_rel->relkind != RELKIND_VIEW + && relation->rd_rel->relkind != RELKIND_FOREIGN_TABLE) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("LIKE source relation \"%s\" is not a table", + errmsg("LIKE source relation \"%s\" is not a table, view, or foreign table", table_like_clause->relation->relname))); /* -- cgit v1.2.3