Fix trigger example for PG 7.2 change: count(*) now returns int8.
authorTom Lane
Tue, 4 Dec 2001 02:07:11 +0000 (02:07 +0000)
committerTom Lane
Tue, 4 Dec 2001 02:07:11 +0000 (02:07 +0000)
doc/src/sgml/trigger.sgml

index 540ef0f71b3bafa94f108b6fd99a135bfa866bd3..10a49244b4cb83670ee96351efe4f2fbae5e5a53 100644 (file)
@@ -1,3 +1,7 @@
+
+
  
   Triggers
 
@@ -451,7 +455,7 @@ PG_FUNCTION_INFO_V1(trigf);
 Datum
 trigf(PG_FUNCTION_ARGS)
 {
-   TriggerData *trigdata = (TriggerData *) fcinfo->context;
+   TriggerData    *trigdata = (TriggerData *) fcinfo->context;
    TupleDesc   tupdesc;
    HeapTuple   rettuple;
    char        *when;
@@ -490,8 +494,12 @@ trigf(PG_FUNCTION_ARGS)
    
    if (ret < 0)
        elog(NOTICE, "trigf (fired %s): SPI_exec returned %d", when, ret);
-   
-   i = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull);
+
+   /* count(*) returns int8 as of PG 7.2, so be careful to convert */
+   i = (int) DatumGetInt64(SPI_getbinval(SPI_tuptable->vals[0],
+                         SPI_tuptable->tupdesc,
+                         1,
+                         &isnull));
    
    elog (NOTICE, "trigf (fired %s): there are %d tuples in ttest", when, i);
    
@@ -499,7 +507,7 @@ trigf(PG_FUNCTION_ARGS)
    
    if (checknull)
    {
-       i = SPI_getbinval(rettuple, tupdesc, 1, &isnull);
+       (void) SPI_getbinval(rettuple, tupdesc, 1, &isnull);
        if (isnull)
            rettuple = NULL;
    }