Thread: Trigger trouble
Hi All, I get the following error when performing a pg_dump dumping database "ltt"... pg_dump: WARNING: owner of data type trigger appears to be invalid the owner and database exists, I have run the following select statement, select pg_class.oid, pg_trigger.tgrelid from pg_trigger left join pg_class on pg_trigger.tgrelid=pg_class.oid; oid | tgrelid ---------+--------- 1260 | 1260 6081779 | 6081779 6081981 | 6081981 6081779 | 6081779 6081779 | 6081779 6081981 | 6081981 6081975 | 6081975 6081975 | 6081975 6082027 | 6082027 6081779 | 6081779 6081779 | 6081779 6082027 | 6082027 6121607 | 6121607 6121268 | 6121268 6121268 | 6121268 so it appears that it is not a dropped table causing the warning, is there any other way I can try to determine how this warning is being produced, is there a way of viewing the contents of the trigger? Thanks in advance, Sandy Computer Officer, RA Certification Manager Department of Computer Science - UWA Llandinam Building Penglais Campus Aberystwyth Ceredigion Wales - UK SY23 3DB Tel: (01970)-622433 Fax: (01970)-628536
Sandy, SELECT typowner from pg_type where typname='trigger'; check if typeowner exists in the column usesysid of pg_user by doing SELECT * from pg_user ; if typeowner does not exists there is a problem. regds On 12/21/06, Sandy Spence <axs@aber.ac.uk> wrote: > Hi All, > > I get the following error when performing a pg_dump > > dumping database "ltt"... > pg_dump: WARNING: owner of data type trigger appears to be invalid > > the owner and database exists, I have run the following select statement, > > select pg_class.oid, pg_trigger.tgrelid from pg_trigger left join pg_class > on pg_trigger.tgrelid=pg_class.oid; > > oid | tgrelid > ---------+--------- > 1260 | 1260 > 6081779 | 6081779 > 6081981 | 6081981 > 6081779 | 6081779 > 6081779 | 6081779 > 6081981 | 6081981 > 6081975 | 6081975 > 6081975 | 6081975 > 6082027 | 6082027 > 6081779 | 6081779 > 6081779 | 6081779 > 6082027 | 6082027 > 6121607 | 6121607 > 6121268 | 6121268 > 6121268 | 6121268 > > so it appears that it is not a dropped table causing the warning, is there > any other way I can try to determine how this warning is being produced, is > there a way of viewing the contents of the trigger? > > Thanks in advance, > > Sandy > > Computer Officer, RA Certification Manager > Department of Computer Science - UWA > Llandinam Building > Penglais Campus > Aberystwyth > Ceredigion > Wales - UK > SY23 3DB > Tel: (01970)-622433 > Fax: (01970)-628536 > > > > ---------------------------(end of broadcast)--------------------------- > TIP 7: You can help support the PostgreSQL project by donating at > > http://www.postgresql.org/about/donate >
Hi Rajesh, I ran the select query SELECT typowner from pg_type where typname='trigger'; with the following results select typowner from pg_type where typname='trigger'; typowner ---------- (0 rows) I then ran the second select query SELECT * from pg_user; (I also changed slightly select usename, usesysid from pg_user where usename='ltt';) usename | usesysid ---------+---------- ltt | 3517 (1 row) user/database is where the warning message for the trigger originates from. Is there something significant in the first select statement. Regards, Sandy Computer Officer, RA Certification Manager Department of Computer Science - UWA Llandinam Building Penglais Campus Aberystwyth Ceredigion Wales - UK SY23 3DB Tel: (01970)-622433 Fax: (01970)-628536 -----Original Message----- From: Rajesh Kumar Mallah [mailto:mallah.rajesh@gmail.com] Sent: 21 December 2006 20:04 To: Sandy Spence Cc: pgsql-admin@postgresql.org Subject: Re: [ADMIN] Trigger trouble Sandy, SELECT typowner from pg_type where typname='trigger'; check if typeowner exists in the column usesysid of pg_user by doing SELECT * from pg_user ; if typeowner does not exists there is a problem. regds On 12/21/06, Sandy Spence <axs@aber.ac.uk> wrote: > Hi All, > > I get the following error when performing a pg_dump > > dumping database "ltt"... > pg_dump: WARNING: owner of data type trigger appears to be invalid > > the owner and database exists, I have run the following select > statement, > > select pg_class.oid, pg_trigger.tgrelid from pg_trigger left join > pg_class on pg_trigger.tgrelid=pg_class.oid; > > oid | tgrelid > ---------+--------- > 1260 | 1260 > 6081779 | 6081779 > 6081981 | 6081981 > 6081779 | 6081779 > 6081779 | 6081779 > 6081981 | 6081981 > 6081975 | 6081975 > 6081975 | 6081975 > 6082027 | 6082027 > 6081779 | 6081779 > 6081779 | 6081779 > 6082027 | 6082027 > 6121607 | 6121607 > 6121268 | 6121268 > 6121268 | 6121268 > > so it appears that it is not a dropped table causing the warning, is > there any other way I can try to determine how this warning is being > produced, is there a way of viewing the contents of the trigger? > > Thanks in advance, > > Sandy > > Computer Officer, RA Certification Manager Department of Computer > Science - UWA Llandinam Building Penglais Campus Aberystwyth > Ceredigion Wales - UK > SY23 3DB > Tel: (01970)-622433 > Fax: (01970)-628536 > > > > ---------------------------(end of > broadcast)--------------------------- > TIP 7: You can help support the PostgreSQL project by donating at > > http://www.postgresql.org/about/donate >
On 12/22/06, Sandy Spence <axs@aber.ac.uk> wrote:
> Hi Rajesh,
>
> I ran the select query
> SELECT typowner from pg_type where typname='trigger';
In my installation \dT reports the type trigger
does it do so in yours? If it does not i am afraid
someone else shall be able to help you better.
regds
mallah.
psql>\dT *.trigger
List of data types
+------------+-----------+-------------+
| Schema | Name | Description |
+------------+-----------+-------------+
| pg_catalog | "trigger" | |
+------------+-----------+-------------+
(1 row)
Regds
mallah.
>
> with the following results
>
>
> select typowner from pg_type where typname='trigger';
> typowner
> ----------
> (0 rows)
>
> I then ran the second select query
> SELECT * from pg_user; (I also changed slightly select usename, usesysid
> from pg_user where usename='ltt';)
> usename | usesysid
> ---------+----------
> ltt | 3517
> (1 row)
>
> user/database is where the warning message for the trigger originates from.
>
> Is there something significant in the first select statement.
>
> Regards,
>
> Sandy
>
>
> Computer Officer, RA Certification Manager
> Department of Computer Science - UWA
> Llandinam Building
> Penglais Campus
> Aberystwyth
> Ceredigion
> Wales - UK
> SY23 3DB
> Tel: (01970)-622433
> Fax: (01970)-628536
>
>
> -----Original Message-----
> From: Rajesh Kumar Mallah [mailto:mallah.rajesh@gmail.com ]
> Sent: 21 December 2006 20:04
> To: Sandy Spence
> Cc: pgsql-admin@postgresql.org
> Subject: Re: [ADMIN] Trigger trouble
>
> Sandy,
>
> SELECT typowner from pg_type where typname='trigger';
>
> check if typeowner exists in the column usesysid of pg_user by doing
>
> SELECT * from pg_user ;
>
> if typeowner does not exists there is a problem.
>
> regds
>
> On 12/21/06, Sandy Spence <axs@aber.ac.uk> wrote:
> > Hi All,
> >
> > I get the following error when performing a pg_dump
> >
> > dumping database "ltt"...
> > pg_dump: WARNING: owner of data type trigger appears to be invalid
> >
> > the owner and database exists, I have run the following select
> > statement,
> >
> > select pg_class.oid, pg_trigger.tgrelid from pg_trigger left join
> > pg_class on pg_trigger.tgrelid=pg_class.oid;
> >
> > oid | tgrelid
> > ---------+---------
> > 1260 | 1260
> > 6081779 | 6081779
> > 6081981 | 6081981
> > 6081779 | 6081779
> > 6081779 | 6081779
> > 6081981 | 6081981
> > 6081975 | 6081975
> > 6081975 | 6081975
> > 6082027 | 6082027
> > 6081779 | 6081779
> > 6081779 | 6081779
> > 6082027 | 6082027
> > 6121607 | 6121607
> > 6121268 | 6121268
> > 6121268 | 6121268
> >
> > so it appears that it is not a dropped table causing the warning, is
> > there any other way I can try to determine how this warning is being
> > produced, is there a way of viewing the contents of the trigger?
> >
> > Thanks in advance,
> >
> > Sandy
> >
> > Computer Officer, RA Certification Manager Department of Computer
> > Science - UWA Llandinam Building Penglais Campus Aberystwyth
> > Ceredigion Wales - UK
> > SY23 3DB
> > Tel: (01970)-622433
> > Fax: (01970)-628536
> >
> >
> >
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 7: You can help support the PostgreSQL project by donating at
> >
> > http://www.postgresql.org/about/donate
> >
>
>
"Sandy Spence" <axs@aber.ac.uk> writes: > select typowner from pg_type where typname='trigger'; > typowner > ---------- > (0 rows) Um ... what PG version is this exactly? ("select version()" if you're not sure.) It's real hard to see why pg_dump would complain about a type that's not there at all. You sure you checked this in the same database that's being dumped? regards, tom lane
On Thu, 2006-12-21 at 10:26 +0000, Sandy Spence wrote: > I get the following error when performing a pg_dump > > dumping database "ltt"... > pg_dump: WARNING: owner of data type trigger appears to be invalid > > the owner and database exists, I have run the following select statement, > > select pg_class.oid, pg_trigger.tgrelid from pg_trigger left join pg_class > on pg_trigger.tgrelid=pg_class.oid; From the error message it appears you have a data type called "trigger", which appears to be invalidated. -- Simon Riggs EnterpriseDB http://www.enterprisedb.com
Hi Tom, Thanks for the reply, sorry for the delay in responding a Scotsman and Hogmanay are never parted ;~} The version of postgres we are currently running is PostgreSQL 7.2.3 I did a Drop type trigger on the users database adding a tab at the end and came up with the list below RI_ConstraintTrigger_6081987 RI_ConstraintTrigger_6081995 RI_ConstraintTrigger_6082037 bestworkbehave RI_ConstraintTrigger_6081989 RI_ConstraintTrigger_6081997 RI_ConstraintTrigger_6121610 pg_sync_pg_pwd RI_ConstraintTrigger_6081991 RI_ConstraintTrigger_6082033 RI_ConstraintTrigger_6121612 tidyup RI_ConstraintTrigger_6081993 RI_ConstraintTrigger_6082035 RI_ConstraintTrigger_6121614 as you can see there appears to be an instance of a trigger that is not connected to anything, is there a table that has an entry where I can remove the offending trigger? Cheers, Sandy Computer Officer, RA Certification Manager Department of Computer Science - UWA Llandinam Building Penglais Campus Aberystwyth Ceredigion Wales - UK SY23 3DB Tel: (01970)-622433 Fax: (01970)-628536 -----Original Message----- From: pgsql-admin-owner@postgresql.org [mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Tom Lane Sent: 22 December 2006 14:39 To: Sandy Spence Cc: 'Rajesh Kumar Mallah'; pgsql-admin@postgresql.org Subject: Re: [ADMIN] Trigger trouble "Sandy Spence" <axs@aber.ac.uk> writes: > select typowner from pg_type where typname='trigger'; typowner > ---------- > (0 rows) Um ... what PG version is this exactly? ("select version()" if you're not sure.) It's real hard to see why pg_dump would complain about a type that's not there at all. You sure you checked this in the same database that's being dumped? regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq
"Sandy Spence" <axs@aber.ac.uk> writes: > The version of postgres we are currently running is PostgreSQL 7.2.3 You sure it's not something newer? There wasn't any built-in type named "trigger" in 7.2 --- there is in 7.3 and up. Assuming it is 7.3, dropping the type would be a really bad idea. Could we see the results of "select * from pg_type where typname = 'trigger'"? I'm guessing that either that row is corrupt, or you dropped the original superuser account (in which case the gripe about type trigger is just the tip of the iceberg). regards, tom lane
Hi Tom, when I run the select query I get the following output, ltt=> select * from pg_type where typname='trigger'; typname | typowner | typlen | typprtlen | typbyval | typtype | typisdefined | typdelim | typrelid | typelem | typinput | typoutput | typreceive | typsend | typalign | typstorage | typdefault ---------+----------+--------+-----------+----------+---------+------------- -+----------+----------+---------+----------+---------- -+------------+---------+----------+------------+------------ trigger | 0 | 0 | 0 | f | | f | | 0 | 0 | - | - | - | - | i | p | trigger (1 row) I have a feeling that the database owner (ltt) has created their own type 'trigger' and am guessing that at some other time dropped an item (table maybe) that uses or used an instance of the type trigger. I have about 100 plus users databases on the same system and it only appears that this user is causing the pg_dump warning message. Cheers, Sandy Computer Officer, RA Certification Manager Department of Computer Science - UWA Llandinam Building Penglais Campus Aberystwyth Ceredigion Wales - UK SY23 3DB Tel: (01970)-622433 Fax: (01970)-628536 -----Original Message----- From: Tom Lane [mailto:tgl@sss.pgh.pa.us] Sent: 03 January 2007 15:40 To: Sandy Spence Cc: 'Rajesh Kumar Mallah'; pgsql-admin@postgresql.org Subject: Re: [ADMIN] Trigger trouble "Sandy Spence" <axs@aber.ac.uk> writes: > The version of postgres we are currently running is PostgreSQL 7.2.3 You sure it's not something newer? There wasn't any built-in type named "trigger" in 7.2 --- there is in 7.3 and up. Assuming it is 7.3, dropping the type would be a really bad idea. Could we see the results of "select * from pg_type where typname = 'trigger'"? I'm guessing that either that row is corrupt, or you dropped the original superuser account (in which case the gripe about type trigger is just the tip of the iceberg). regards, tom lane
"Sandy Spence" <axs@aber.ac.uk> writes: > when I run the select query I get the following output, > ltt=> select * from pg_type where typname='trigger'; > typname | typowner | typlen | typprtlen | typbyval | typtype | typisdefined > | typdelim | typrelid | typelem | typinput | typoutput > | typreceive | typsend | typalign | typstorage | typdefault > ---------+----------+--------+-----------+----------+---------+------------- > -+----------+----------+---------+----------+---------- > -+------------+---------+----------+------------+------------ > trigger | 0 | 0 | 0 | f | | f > | | 0 | 0 | - | - > | - | - | i | p | trigger > (1 row) OK, given that column set for pg_type I guess it really is 7.2 ... you need to think about an update real soon, because there are a whole lot of known bugs in the version you are running. At the very least you should get on to the last release of the 7.2 series, which I think was 7.2.8. But we stopped maintaining 7.2.x at all some years ago. If you were to move to 8.1 or 8.2 you'd find it a whole lot faster and more stable. Anyway, what you seem to have here is a "shell type". It's not doing anything useful --- you can probably just do a "DROP TYPE trigger". Or you could just ignore the warning; it's pretty harmless. regards, tom lane