mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
In plpgsql, allow foreign tables to define row types.
This seems to have been just an oversight in previous foreign-table work. A quick grep didn't turn up any other places where RELKIND_FOREIGN_TABLE was obviously omitted. One change noted by Alexander Soudakov, the other by me. Back-patch to 9.1.
This commit is contained in:
parent
95d2af1646
commit
02d88efea1
@ -1721,12 +1721,13 @@ plpgsql_parse_cwordtype(List *idents)
|
||||
classStruct = (Form_pg_class) GETSTRUCT(classtup);
|
||||
|
||||
/*
|
||||
* It must be a relation, sequence, view, or type
|
||||
* It must be a relation, sequence, view, composite type, or foreign table
|
||||
*/
|
||||
if (classStruct->relkind != RELKIND_RELATION &&
|
||||
classStruct->relkind != RELKIND_SEQUENCE &&
|
||||
classStruct->relkind != RELKIND_VIEW &&
|
||||
classStruct->relkind != RELKIND_COMPOSITE_TYPE)
|
||||
classStruct->relkind != RELKIND_COMPOSITE_TYPE &&
|
||||
classStruct->relkind != RELKIND_FOREIGN_TABLE)
|
||||
goto done;
|
||||
|
||||
/*
|
||||
@ -1942,11 +1943,12 @@ build_row_from_class(Oid classOid)
|
||||
classStruct = RelationGetForm(rel);
|
||||
relname = RelationGetRelationName(rel);
|
||||
|
||||
/* accept relation, sequence, view, or composite type entries */
|
||||
/* accept relation, sequence, view, composite type, or foreign table */
|
||||
if (classStruct->relkind != RELKIND_RELATION &&
|
||||
classStruct->relkind != RELKIND_SEQUENCE &&
|
||||
classStruct->relkind != RELKIND_VIEW &&
|
||||
classStruct->relkind != RELKIND_COMPOSITE_TYPE)
|
||||
classStruct->relkind != RELKIND_COMPOSITE_TYPE &&
|
||||
classStruct->relkind != RELKIND_FOREIGN_TABLE)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
|
||||
errmsg("relation \"%s\" is not a table", relname)));
|
||||
|
Loading…
x
Reference in New Issue
Block a user