Re: view triggers/procedures - Mailing list pgsql-general

From Csaba Nagy
Subject Re: view triggers/procedures
Date
Msg-id 1093260688.944.112.camel@coppola.ecircle.de
Whole thread Raw
In response to Re: view triggers/procedures  ("SVGK, Raju (Raju)" <svgk@lucent.com>)
List pgsql-general
Raju,

The file with the source code is:
/pgsql_sources_directory(replace_this)/src/backend/utils/adt/ri_triggers.c

But you can trust that those triggers are not doing anything else then
checking/enforcing the foreign keys you have defined on that
table/referencing that table.
So you might want instead to check what foreign keys are defined...
You can figure them out from the parameters of the trigger functions,
e.g.:
RI_FKey_noaction_del"('<unnamed>', 'documents', 'reviews',
'UNSPECIFIED', 'review_id', 'review_id')
should mean you have a foreign key pointing from the documents table
review_id field to the reviews table review_id field.
I'm not sure if the parent/child is not the other way around, but you
will surely figure out from your schema.

HTH,
Csaba.


On Mon, 2004-08-23 at 12:44, SVGK, Raju (Raju) wrote:
> Csaba,
> Thank you for your reply. How do I check the sources. Can you please tell me
> in detail.
> regds
> -raju
>
>
> -----Original Message-----
> From: Csaba Nagy [mailto:nagy@ecircle-ag.com]
> Sent: Monday, August 23, 2004 4:11 PM
> To: SVGK, Raju (Raju)
> Cc: 'pgsql-general@postgresql.org'
> Subject: Re: [GENERAL] view triggers/procedures
>
>
>
> Raju,
>
> these triggers are the PG implementation of foreign key constraints
> checking.
> They are written in C, so if you're curios how they work you will have
> to check the postgres sources ;-)
>
> HTH,
> Csaba.
>
>
> On Mon, 2004-08-23 at 12:06, SVGK, Raju (Raju) wrote:
> > Hi,
> >
> > I have a table where in lot of triggers were included in that as shown
> > below. How to view/access triggers and procedures from postgresql.
> >
> > I am using postgresql 7.4.1 on solaris.
> >
> > regds
> > -raju
> >
> >
> > Process=# \d reviews
> >                                         Table "public.reviews"
> >       Column      |         Type          |
> > Modifiers
> >
> ------------------+-----------------------+---------------------------------
> > --------------------------
> >  review_id        | integer               | not null default
> > nextval('"reviews_review_id_seq"'::text)
> >  project          | character varying(32) | not null
> >  phase            | character varying(32) | not null default
> > 'Unknown'::character varying
> >  artifact_type    | character varying(32) | not null
> >  description      | text                  |
> >  author           | character varying(32) |
> >  moderator        | character varying(32) |
> >  meeting_end_date | date                  |
> >  meeting_date     | date                  |
> >  formal           | boolean               | default true
> >  status           | character varying(16) |
> >  disposition      | character varying(16) | default 'To be
> > decided'::character varying
> >  comments         | text                  |
> >  num_attendees    | smallint              |
> >  review_size      | smallint              |
> >  kickoff_time     | smallint              |
> >  meeting_time     | smallint              |
> >  review_name      | character varying(64) |
> >  rework_effort    | integer               | default 0
> > Indexes:
> >     "reviews_pkey" primary key, btree (review_id)
> > Triggers:
> >     "RI_ConstraintTrigger_414655" AFTER DELETE ON reviews FROM documents
> NOT
> > DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE
> > "RI_FKey_noaction_del"('<unnamed>', 'documents', 'reviews', 'UNSPECIFIED',
> > 'review_id', 'review_id')
> >     "RI_ConstraintTrigger_414656" AFTER UPDATE ON reviews FROM documents
> NOT
> > DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE
> > "RI_FKey_noaction_upd"('<unnamed>', 'documents', 'reviews', 'UNSPECIFIED',
> > 'review_id', 'review_id')
> >     "RI_ConstraintTrigger_414658" AFTER DELETE ON reviews FROM inspectors
> > NOT DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE
> > "RI_FKey_noaction_del"('<unnamed>', 'inspectors', 'reviews',
> 'UNSPECIFIED',
> > 'review_id', 'review_id')
> >     "RI_ConstraintTrigger_414659" AFTER UPDATE ON reviews FROM inspectors
> > NOT DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE
> > "RI_FKey_noaction_upd"('<unnamed>', 'inspectors', 'reviews',
> 'UNSPECIFIED',
> > 'review_id', 'review_id')
> >     "RI_ConstraintTrigger_414661" AFTER DELETE ON reviews FROM defects NOT
> > DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE
> > "RI_FKey_noaction_del"('<unnamed>', 'defects', 'reviews', 'UNSPECIFIED',
> > 'review_id', 'review_id')
> >     "RI_ConstraintTrigger_414662" AFTER UPDATE ON reviews FROM defects NOT
> > DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE
> > "RI_FKey_noaction_upd"('<unnamed>', 'defects', 'reviews', 'UNSPECIFIED',
> > 'review_id', 'review_id')
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 5: Have you checked our extensive FAQ?
> >
> >                http://www.postgresql.org/docs/faqs/FAQ.html
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faqs/FAQ.html


pgsql-general by date:

Previous
From: Michael Seele
Date:
Subject: select columns and its data types
Next
From: Secrétariat
Date:
Subject: Connection to a PG 8.0 Beta 1 win32 server