Index: src/backend/utils/adt/ri_triggers.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v retrieving revision 1.29 diff -c -r1.29 ri_triggers.c *** src/backend/utils/adt/ri_triggers.c 2001/10/25 05:49:45 1.29 --- src/backend/utils/adt/ri_triggers.c 2001/11/11 09:17:08 *************** *** 43,56 **** * Local definitions * ---------- */ - #define RI_CONSTRAINT_NAME_ARGNO 0 - #define RI_FK_RELNAME_ARGNO 1 - #define RI_PK_RELNAME_ARGNO 2 - #define RI_MATCH_TYPE_ARGNO 3 - #define RI_FIRST_ATTNAME_ARGNO 4 #define RI_MAX_NUMKEYS 16 ! #define RI_MAX_ARGUMENTS (RI_FIRST_ATTNAME_ARGNO + (RI_MAX_NUMKEYS * 2)) #define RI_KEYPAIR_FK_IDX 0 #define RI_KEYPAIR_PK_IDX 1 --- 43,51 ---- * Local definitions * ---------- */ #define RI_MAX_NUMKEYS 16 ! #define RI_MAX_ARGUMENTS (RI_FK_ATTNAME_ARGNO + (RI_MAX_NUMKEYS * 2)) #define RI_KEYPAIR_FK_IDX 0 #define RI_KEYPAIR_PK_IDX 1 *************** *** 2900,2912 **** key->constr_queryno = constr_queryno; key->fk_relid = fk_rel->rd_id; key->pk_relid = pk_rel->rd_id; ! key->nkeypairs = (argc - RI_FIRST_ATTNAME_ARGNO) / 2; /* * Lookup the attribute numbers of the arguments to the trigger call * and fill in the keypairs. */ ! for (i = 0, j = RI_FIRST_ATTNAME_ARGNO; j < argc; i++, j += 2) { fno = SPI_fnumber(fk_rel->rd_att, argv[j]); if (fno == SPI_ERROR_NOATTRIBUTE) --- 2895,2907 ---- key->constr_queryno = constr_queryno; key->fk_relid = fk_rel->rd_id; key->pk_relid = pk_rel->rd_id; ! key->nkeypairs = (argc - RI_FK_ATTNAME_ARGNO) / 2; /* * Lookup the attribute numbers of the arguments to the trigger call * and fill in the keypairs. */ ! for (i = 0, j = RI_FK_ATTNAME_ARGNO; j < argc; i++, j += 2) { fno = SPI_fnumber(fk_rel->rd_att, argv[j]); if (fno == SPI_ERROR_NOATTRIBUTE) Index: src/include/commands/trigger.h =================================================================== RCS file: /projects/cvsroot/pgsql/src/include/commands/trigger.h,v retrieving revision 1.30 diff -c -r1.30 trigger.h *** src/include/commands/trigger.h 2001/11/05 17:46:33 1.30 --- src/include/commands/trigger.h 2001/11/11 09:17:08 *************** *** 78,83 **** --- 78,99 ---- #define TRIGGER_FIRED_AFTER(event) \ (!TRIGGER_FIRED_BEFORE (event)) + /* -------------------------------------------------- + * RI function arguments from pg_trigger.tgargs bytea + * + * name\000fkrel\000pkrel\000type\000fkatt\000pkatt\000 + * + * moved from backend/utils/adt/ri_triggers.c since + * these defines are useful outside of that file. + * -- dbv 20011110 + * -------------------------------------------------*/ + #define RI_CONSTRAINT_NAME_ARGNO 0 + #define RI_FK_RELNAME_ARGNO 1 + #define RI_PK_RELNAME_ARGNO 2 + #define RI_MATCH_TYPE_ARGNO 3 + #define RI_FK_ATTNAME_ARGNO 4 + #define RI_PK_ATTNAME_ARGNO 5 + extern void CreateTrigger(CreateTrigStmt *stmt); extern void DropTrigger(DropTrigStmt *stmt);