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);
 }