Fix bug reported by Michael Fuhr on Sun, 23 Apr 2006 09:52:31 -0600
authorTatsuo Ishii <ishii@postgresql.org>
Tue, 25 Apr 2006 00:40:54 +0000 (00:40 +0000)
committerTatsuo Ishii <ishii@postgresql.org>
Tue, 25 Apr 2006 00:40:54 +0000 (00:40 +0000)
(pgsql-committers@postgresql.org).

contrib/pgrowlocks/pgrowlocks.c

index 51035e40153782b040cad5d27f8f8da24d2a3711..1253f7c51ac47dc8725c320c3d522c37d84571d9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $PostgreSQL: pgsql/contrib/pgrowlocks/pgrowlocks.c,v 1.1 2006/04/23 01:12:58 ishii Exp $
+ * $PostgreSQL: pgsql/contrib/pgrowlocks/pgrowlocks.c,v 1.2 2006/04/25 00:40:54 ishii Exp $
  *
  * Copyright (c) 2005-2006     Tatsuo Ishii
  *
@@ -61,6 +61,7 @@ extern Datum pgrowlocks(PG_FUNCTION_ARGS);
 #undef MAKERANGEVARFROMNAMELIST_HAS_TWO_ARGS
 
 typedef struct {
+       Relation        rel;
        HeapScanDesc scan;
        int ncolumns;
 } MyData;
@@ -100,6 +101,7 @@ pgrowlocks(PG_FUNCTION_ARGS)
                rel = heap_openrv(relrv, AccessShareLock);
                scan = heap_beginscan(rel, SnapshotNow, 0, NULL);
                mydata = palloc(sizeof(*mydata));
+               mydata->rel = rel;
                mydata->scan = scan;
                mydata->ncolumns = tupdesc->natts;
                funcctx->user_fctx = mydata;
@@ -222,7 +224,7 @@ pgrowlocks(PG_FUNCTION_ARGS)
        }
 
        heap_endscan(scan);
-       heap_close(scan->rs_rd, AccessShareLock);
+       heap_close(mydata->rel, AccessShareLock);
 
        SRF_RETURN_DONE(funcctx);
 }