int nargs; /* # of args specified in CREATE TRIGGER */
char **args; /* arguments: column names and table name */
int nkeys; /* # of key columns (= nargs / 2) */
- char **kvals; /* key values */
+ Datum *kvals; /* key values */
char *relname; /* referenced relation name */
Relation rel; /* triggered relation */
HeapTuple tuple = NULL; /* tuple to return */
* We use SPI plan preparation feature, so allocate space to place key
* values.
*/
- kvals = (char **) palloc(nkeys * sizeof(char *));
+ kvals = (Datum *) palloc(nkeys * sizeof(Datum));
/*
* Construct ident string as TriggerName $ TriggeredRelationId and try
int nrefs; /* number of references (== # of plans) */
char action; /* 'R'estrict | 'S'etnull | 'C'ascade */
int nkeys; /* # of key columns */
- char **kvals; /* key values */
+ Datum *kvals; /* key values */
char *relname; /* referencing relation name */
Relation rel; /* triggered relation */
HeapTuple trigtuple = NULL; /* tuple to being changed */
* We use SPI plan preparation feature, so allocate space to place key
* values.
*/
- kvals = (char **) palloc(nkeys * sizeof(char *));
+ kvals = (Datum *) palloc(nkeys * sizeof(Datum));
/*
* Construct ident string as TriggerName $ TriggeredRelationId and try
elog(WARN, "%s: tuple referenced in %s",
trigger->tgname, relname);
}
-#ifndef REFINT_QUIET
+#ifdef REFINT_VERBOSE
else
elog(NOTICE, "%s: %d tuple(s) of %s are %s",
trigger->tgname, SPI_processed, relname,
extern int SPI_connect(void);
extern int SPI_finish(void);
extern int SPI_exec(char *src, int tcount);
-extern int SPI_execp(void *plan, char **values, char *Nulls, int tcount);
+extern int SPI_execp(void *plan, Datum *values, char *Nulls, int tcount);
extern void *SPI_prepare(char *src, int nargs, Oid * argtypes);
extern void *SPI_saveplan(void *plan);