postgres.git / summary / log / commit / refs

commit    e45229bb66f52518cb07c38fe3d262502cd2d0c9
Author:   Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:     Tue Jul 15 17:24:07 2014 +0000

    Fix REASSIGN OWNED for text search objects
    
    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 7aa70fa3b2f..5d41ae4a487 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; [parent: 5e4c9b37312e]