Re: [PATCHES] Constraint trigger doc patch
Bruce Momjian schrieb: Manual page changed applied. Thanks. Ok, here is small patch fixing the remaining items I found when reviewing the built page. Two items are just SGML bugs, the other item is to finish an incomplete change from the previous events to the new event [ OR ... ] notation. Best Regards, Michael Paesold For quick reference: http://momjian.us/main/writings/pgsql/sgml/sql-createconstraint.html Index: create_constraint.sgml === RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/create_constraint.sgml,v retrieving revision 1.16 diff -c -r1.16 create_constraint.sgml *** doc/src/sgml/ref/create_constraint.sgml 16 Oct 2006 19:33:12 - 1.16 --- doc/src/sgml/ref/create_constraint.sgml 17 Oct 2006 06:48:14 - *** *** 52,58 para The name of the constraint trigger. The actual name of the created trigger will be of the form ! literalRI_ConstraintTrigger_literal (where is some number assigned by the server). Use this assigned name when dropping the trigger. /para --- 52,58 para The name of the constraint trigger. The actual name of the created trigger will be of the form ! literalRI_ConstraintTrigger_/literal (where is some number assigned by the server). Use this assigned name when dropping the trigger. /para *** *** 60,71 /varlistentry varlistentry ! termreplaceable class=PARAMETERevents/replaceable/term listitem para One of literalINSERT/literal, literalUPDATE/literal, or literalDELETE/literal; this specifies the event that will fire the ! trigger. Multiple events can be specified using literalORliteral. /para /listitem /varlistentry --- 60,71 /varlistentry varlistentry ! termreplaceable class=PARAMETERevent/replaceable/term listitem para One of literalINSERT/literal, literalUPDATE/literal, or literalDELETE/literal; this specifies the event that will fire the ! trigger. Multiple events can be specified using literalOR/literal. /para /listitem /varlistentry ---(end of broadcast)--- TIP 5: don't forget to increase your free space map settings
Re: [PATCHES] Constraint trigger doc patch
Patch applied. Thanks. Your documentation changes can be viewed in five minutes using links on the developer's page, http://www.postgresql.org/developer/testing. --- Michael Paesold wrote: Bruce Momjian schrieb: Manual page changed applied. Thanks. Ok, here is small patch fixing the remaining items I found when reviewing the built page. Two items are just SGML bugs, the other item is to finish an incomplete change from the previous events to the new event [ OR ... ] notation. Best Regards, Michael Paesold For quick reference: http://momjian.us/main/writings/pgsql/sgml/sql-createconstraint.html Index: create_constraint.sgml === RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/create_constraint.sgml,v retrieving revision 1.16 diff -c -r1.16 create_constraint.sgml *** doc/src/sgml/ref/create_constraint.sgml 16 Oct 2006 19:33:12 - 1.16 --- doc/src/sgml/ref/create_constraint.sgml 17 Oct 2006 06:48:14 - *** *** 52,58 para The name of the constraint trigger. The actual name of the created trigger will be of the form ! literalRI_ConstraintTrigger_literal (where is some number assigned by the server). Use this assigned name when dropping the trigger. /para --- 52,58 para The name of the constraint trigger. The actual name of the created trigger will be of the form ! literalRI_ConstraintTrigger_/literal (where is some number assigned by the server). Use this assigned name when dropping the trigger. /para *** *** 60,71 /varlistentry varlistentry ! termreplaceable class=PARAMETERevents/replaceable/term listitem para One of literalINSERT/literal, literalUPDATE/literal, or literalDELETE/literal; this specifies the event that will fire the ! trigger. Multiple events can be specified using literalORliteral. /para /listitem /varlistentry --- 60,71 /varlistentry varlistentry ! termreplaceable class=PARAMETERevent/replaceable/term listitem para One of literalINSERT/literal, literalUPDATE/literal, or literalDELETE/literal; this specifies the event that will fire the ! trigger. Multiple events can be specified using literalOR/literal. /para /listitem /varlistentry ---(end of broadcast)--- TIP 5: don't forget to increase your free space map settings -- Bruce Momjian [EMAIL PROTECTED] EnterpriseDBhttp://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. + ---(end of broadcast)--- TIP 2: Don't 'kill -9' the postmaster
Re: [PATCHES] Constraint trigger doc patch
[Added pgsql-hackers to CC:] Michael Glaesemann wrote: [ a patch for constraint trigger docs] Great! I was just going to try to use constraint triggers (because I needed deferrable constraints). So I personally appreciate this documentation update very much. Just some notes: Index: doc/src/sgml/ref/create_constraint.sgml ... --- 21,32 refsynopsisdiv synopsis CREATE CONSTRAINT TRIGGER replaceable class=parametername/replaceable ! AFTER replaceable class=parameterevent [ OR ... ]/replaceable ! ON replaceable class=parametertable_name/replaceable ! [ FROM replaceable class=parameterreferenced_table_name/replaceable ] ! { NOT DEFERRABLE | [ DEFERABBLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } } ! FOR EACH ROW ! EXECUTE PROCEDURE replaceable class=parameterfuncname/replaceable ( replaceable class=parameterarguments/replaceable ) /synopsis /refsynopsisdiv It's spelled DEFERRABLE. You got it right in NOT DEFERRABLE but wrong in [ DEFERABBLE ]. The name of the constraint trigger. The actual name of the created trigger will be of the form literalRI_ConstraintTrigger_literal (where is some number assigned by the server). Use this assigned name is when dropping the constraint. It think you should drop the is from the last sentence here. Additionally, I would prefer Use this assigned name when dropping the trigger. here, because this one confused me to try to ALTER TABLE DROP CONSTRAINT instead of DROP TRIGGER. Thanks again. Best Regards, Michael Paesold ---(end of broadcast)--- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly
Re: [PATCHES] Constraint trigger doc patch
Patch applied. Thanks. Your documentation changes can be viewed in five minutes using links on the developer's page, http://www.postgresql.org/developer/testing. --- Michael Glaesemann wrote: (Fifth attempt: diff inline) (And a fourth attempt, from another account...) (Third time's the charm?) (Resent as I sent this yesterday but haven't seen it on the list yet or in the online archives. Apologies if it ends up double-posting.) Please find attached a doc patch for CREATE CONSTRAINT TRIGGER. The documentation here has always been sparse, as the command isn't intended for general use. However, in its current form its a bit *too* sparse. For example, it mentions constraint attributes but doesn't say what those might be or where to look for information for details. The patch lists attribute options and provides references to where those options are described. When looking in gram.y while trying to figure out what exactly was meant by actual constraint specification, I discovered OptConstrFromTable. I assume this means Optional Constraint From Table and it looks like it's used to specify the referenced table a foreign key constraint. I couldn't figure out how to meaningfully use it and have left the description purposefully vague. I don't have a working DocBook tool chain on my system, so I haven't been able to check if it builds properly. I tried to be conscientious about my formatting, but some SGML bugs may have crept in. Thanks! Michael Glaesemann grzm myrealbox com Index: doc/src/sgml/ref/create_constraint.sgml === RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/ create_constraint.sgml,v retrieving revision 1.14 diff -c -r1.14 create_constraint.sgml *** doc/src/sgml/ref/create_constraint.sgml 16 Sep 2006 00:30:17 - 1.14 --- doc/src/sgml/ref/create_constraint.sgml 7 Oct 2006 03:53:18 - *** *** 21,29 refsynopsisdiv synopsis CREATE CONSTRAINT TRIGGER replaceable class=parametername/ replaceable ! AFTER replaceable class=parameterevents/replaceable ON ! replaceable class=parametertablename/replaceable replaceable class=parameterconstraint/replaceable replaceable class=parameterattributes/replaceable ! FOR EACH ROW EXECUTE PROCEDURE replaceable class=parameterfuncname/replaceable ( replaceable class=parameterargs/replaceable ) /synopsis /refsynopsisdiv --- 21,32 refsynopsisdiv synopsis CREATE CONSTRAINT TRIGGER replaceable class=parametername/ replaceable ! AFTER replaceable class=parameterevent [ OR ... ]/ replaceable ! ON replaceable class=parametertable_name/replaceable ! [ FROM replaceable class=parameterreferenced_table_name/ replaceable ] ! { NOT DEFERRABLE | [ DEFERABBLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } } ! FOR EACH ROW ! EXECUTE PROCEDURE replaceable class=parameterfuncname/ replaceable ( replaceable class=parameterarguments/replaceable ) /synopsis /refsynopsisdiv *** *** 33,102 para commandCREATE CONSTRAINT TRIGGER/command is used within commandCREATE TABLE/command/commandALTER TABLE/command and by !applicationpg_dump/application to create the special triggers for !referential integrity. It is not intended for general use. /para /refsect1 refsect1 !titleParameters/title ! ! variablelist ! varlistentry ! termreplaceable class=PARAMETERname/replaceable/term ! listitem !para ! The name of the constraint trigger. !/para ! /listitem ! /varlistentry ! ! varlistentry ! termreplaceable class=PARAMETERevents/replaceable/term ! listitem !para ! The event categories for which this trigger should be fired. !/para ! /listitem ! /varlistentry ! ! varlistentry ! termreplaceable class=PARAMETERtablename/replaceable/ term ! listitem !para ! The name (possibly schema-qualified) of the table in which ! the triggering events occur. !/para ! /listitem ! /varlistentry ! ! varlistentry ! termreplaceable class=PARAMETERconstraint/ replaceable/term ! listitem !para ! Actual constraint specification. !/para ! /listitem ! /varlistentry ! ! varlistentry ! termreplaceable class=PARAMETERattributes/ replaceable/term ! listitem !para ! The constraint attributes. !/para ! /listitem ! /varlistentry ! ! varlistentry ! termreplaceable class=PARAMETERfuncname/replaceable (replaceable class=PARAMETERargs/replaceable)/term ! listitem
Re: [PATCHES] Constraint trigger doc patch
Manual page changed applied. Thanks. --- Michael Paesold wrote: [Added pgsql-hackers to CC:] Michael Glaesemann wrote: [ a patch for constraint trigger docs] Great! I was just going to try to use constraint triggers (because I needed deferrable constraints). So I personally appreciate this documentation update very much. Just some notes: Index: doc/src/sgml/ref/create_constraint.sgml ... --- 21,32 refsynopsisdiv synopsis CREATE CONSTRAINT TRIGGER replaceable class=parametername/replaceable ! AFTER replaceable class=parameterevent [ OR ... ]/replaceable ! ON replaceable class=parametertable_name/replaceable ! [ FROM replaceable class=parameterreferenced_table_name/replaceable ] ! { NOT DEFERRABLE | [ DEFERABBLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } } ! FOR EACH ROW ! EXECUTE PROCEDURE replaceable class=parameterfuncname/replaceable ( replaceable class=parameterarguments/replaceable ) /synopsis /refsynopsisdiv It's spelled DEFERRABLE. You got it right in NOT DEFERRABLE but wrong in [ DEFERABBLE ]. The name of the constraint trigger. The actual name of the created trigger will be of the form literalRI_ConstraintTrigger_literal (where is some number assigned by the server). Use this assigned name is when dropping the constraint. It think you should drop the is from the last sentence here. Additionally, I would prefer Use this assigned name when dropping the trigger. here, because this one confused me to try to ALTER TABLE DROP CONSTRAINT instead of DROP TRIGGER. Thanks again. Best Regards, Michael Paesold ---(end of broadcast)--- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly -- Bruce Momjian [EMAIL PROTECTED] EnterpriseDBhttp://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. + ---(end of broadcast)--- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq
[PATCHES] Constraint trigger doc patch
(Fifth attempt: diff inline) (And a fourth attempt, from another account...) (Third time's the charm?) (Resent as I sent this yesterday but haven't seen it on the list yet or in the online archives. Apologies if it ends up double-posting.) Please find attached a doc patch for CREATE CONSTRAINT TRIGGER. The documentation here has always been sparse, as the command isn't intended for general use. However, in its current form its a bit *too* sparse. For example, it mentions constraint attributes but doesn't say what those might be or where to look for information for details. The patch lists attribute options and provides references to where those options are described. When looking in gram.y while trying to figure out what exactly was meant by actual constraint specification, I discovered OptConstrFromTable. I assume this means Optional Constraint From Table and it looks like it's used to specify the referenced table a foreign key constraint. I couldn't figure out how to meaningfully use it and have left the description purposefully vague. I don't have a working DocBook tool chain on my system, so I haven't been able to check if it builds properly. I tried to be conscientious about my formatting, but some SGML bugs may have crept in. Thanks! Michael Glaesemann grzm myrealbox com Index: doc/src/sgml/ref/create_constraint.sgml === RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/ create_constraint.sgml,v retrieving revision 1.14 diff -c -r1.14 create_constraint.sgml *** doc/src/sgml/ref/create_constraint.sgml 16 Sep 2006 00:30:17 - 1.14 --- doc/src/sgml/ref/create_constraint.sgml 7 Oct 2006 03:53:18 - *** *** 21,29 refsynopsisdiv synopsis CREATE CONSTRAINT TRIGGER replaceable class=parametername/ replaceable ! AFTER replaceable class=parameterevents/replaceable ON ! replaceable class=parametertablename/replaceable replaceable class=parameterconstraint/replaceable replaceable class=parameterattributes/replaceable ! FOR EACH ROW EXECUTE PROCEDURE replaceable class=parameterfuncname/replaceable ( replaceable class=parameterargs/replaceable ) /synopsis /refsynopsisdiv --- 21,32 refsynopsisdiv synopsis CREATE CONSTRAINT TRIGGER replaceable class=parametername/ replaceable ! AFTER replaceable class=parameterevent [ OR ... ]/ replaceable ! ON replaceable class=parametertable_name/replaceable ! [ FROM replaceable class=parameterreferenced_table_name/ replaceable ] ! { NOT DEFERRABLE | [ DEFERABBLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } } ! FOR EACH ROW ! EXECUTE PROCEDURE replaceable class=parameterfuncname/ replaceable ( replaceable class=parameterarguments/replaceable ) /synopsis /refsynopsisdiv *** *** 33,102 para commandCREATE CONSTRAINT TRIGGER/command is used within commandCREATE TABLE/command/commandALTER TABLE/command and by !applicationpg_dump/application to create the special triggers for !referential integrity. It is not intended for general use. /para /refsect1 refsect1 !titleParameters/title ! ! variablelist ! varlistentry ! termreplaceable class=PARAMETERname/replaceable/term ! listitem !para ! The name of the constraint trigger. !/para ! /listitem ! /varlistentry ! ! varlistentry ! termreplaceable class=PARAMETERevents/replaceable/term ! listitem !para ! The event categories for which this trigger should be fired. !/para ! /listitem ! /varlistentry ! ! varlistentry ! termreplaceable class=PARAMETERtablename/replaceable/ term ! listitem !para ! The name (possibly schema-qualified) of the table in which ! the triggering events occur. !/para ! /listitem ! /varlistentry ! ! varlistentry ! termreplaceable class=PARAMETERconstraint/ replaceable/term ! listitem !para ! Actual constraint specification. !/para ! /listitem ! /varlistentry ! ! varlistentry ! termreplaceable class=PARAMETERattributes/ replaceable/term ! listitem !para ! The constraint attributes. !/para ! /listitem ! /varlistentry ! ! varlistentry ! termreplaceable class=PARAMETERfuncname/replaceable (replaceable class=PARAMETERargs/replaceable)/term ! listitem !para ! The function to call as part of the trigger processing. !/para ! /listitem ! /varlistentry ! /variablelist /refsect1 /refentry --- 36,128 para commandCREATE CONSTRAINT TRIGGER/command is used within commandCREATE TABLE/command/commandALTER TABLE/command and by !applicationpg_dump/application to create the special triggers