From 6bdf4b9c7dde84902a0cc19c27c51c016485b8e6 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Tue, 15 Jul 2014 13:24:07 -0400 Subject: [PATCH] Fix REASSIGN OWNED for text search objects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Trying to reassign objects owned by a user that had text search dictionaries or configurations used to fail with: ERROR: unexpected classid 3600 or ERROR: unexpected classid 3602 Fix by adding cases for those object types in a switch in pg_shdepend.c. Both REASSIGN OWNED and text search objects go back all the way to 8.1, so backpatch to all supported branches. In 9.3 the alter-owner code was made generic, so the required change in recent branches is pretty simple; however, for 9.2 and older ones we need some additional reshuffling to enable specifying objects by OID rather than name. Text search templates and parsers are not owned objects, so there's no change required for them. Per bug #9749 reported by Michal Novotný --- src/backend/catalog/pg_shdepend.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/catalog/pg_shdepend.c b/src/backend/catalog/pg_shdepend.c index 7aa70fa3b2..5d41ae4a48 100644 --- a/src/backend/catalog/pg_shdepend.c +++ b/src/backend/catalog/pg_shdepend.c @@ -40,6 +40,8 @@ #include "catalog/pg_proc.h" #include "catalog/pg_shdepend.h" #include "catalog/pg_tablespace.h" +#include "catalog/pg_ts_config.h" +#include "catalog/pg_ts_dict.h" #include "catalog/pg_type.h" #include "commands/alter.h" #include "commands/dbcommands.h" @@ -1394,6 +1396,8 @@ shdepReassignOwned(List *roleids, Oid newrole) case ExtensionRelationId: case TableSpaceRelationId: case DatabaseRelationId: + case TSConfigRelationId: + case TSDictionaryRelationId: { Oid classId = sdepForm->classid; Relation catalog;