Il 12/12/2018 15:39, Adrian Klaver ha scritto:
> On 12/12/18 5:11 AM, Moreno Andreo wrote:
>> Hi all,
>>
>> I'm trying to pg_upgrade a cluster from 9.1 to 10 (Windows 10, but I
>> don't think it matters).
>>
>> At a certain point an error is thrown while parsing a trigger:
>>
>> could not execute query: ERROR: role "1067431" does not exist
>>
>> command was: REVOKE ALL ON FUNCTION "x"() FROM PUBLIC;
>> GRANT ALL ON FUNCTION "public"."x"() TO "1067431" WITH GRANT OPTION;
>>
>> Here's the evidence :-)
>
> The below is from the 9.1 cluster, correct?
Correct, 9.1.6, IIRC
>
>> postgres=# select * from pg_roles;
>> rolname | rolsuper | rolinherit | rolcreaterole |
>> rolcreatedb | rolcatupdate | rolcanlogin | rolreplication |
>> rolconnlimit | rolpassword | rolvaliduntil | rolconfig | oid
>> ------------------+----------+------------+---------------+-------------+--------------+-------------+----------------+--------------+-------------+---------------+-----------+---------
>>
>> postgres | t | t | t | t |
>> t | t | t | -1 | ********
>> | | | 10
>> user1 | t | t | t | t | t |
>> t | t | -1 | ********
>> | | | 16393
>> user2 | t | t | t | t |
>> t | t | t | -1 | ********
>> | | | 16394
>> user3 | f | t | f | f | f |
>> t | f | -1 | ********
>> | | | 16395
>> user4 | f | t | t | t |
>> f | t | f | -1 | ********
>> | | | 1067432
>> user5 | f | t | t |
>> t | f | t | f | -1 |
>> ******** | | | 30602
>> (6 rows)
>>
>> So, no user with that OID. I checked in the trigger pointed to the
>> error and I found
>>
>> GRANT EXECUTE ON FUNCTION x() TO "1067431" WITH GRANT OPTION;
>
> I am not following as a trigger would not have that in its code.
>
> Are you referring to the function x()?
>
> If so is the GRANT in the function?
Sorry, the grant above is extracted from the CREATE statement that
PgAdmin3 shows when you click on the trigger