立石です。

PostgreSQL拡張モジュール0.4.1にバグがありました。
ひょっとしたらすでに修正されているかもしれませんが
以下にMakefile.rb,postgres.cへのパッチを添付します。

			Takaaki Tateishi <ttate / jaist.ac.jp>


--- postgres.c.orig	Fri Feb 19 13:25:11 1999
+++ postgres.c	Fri Feb 19 13:43:23 1999
@@ -11,7 +11,7 @@
 ************************************************/
 
 #include "ruby.h"
-#include "io.h"
+#include "rubyio.h"
 
 #include <libpq-fe.h>
 #include <stdio.h>
@@ -480,23 +480,27 @@
     VALUE obj;
 {
     PGresult *result;
-    VALUE a1, a2, val, row;
-    int i, j, nf;
+    VALUE a1, a2, val;
+    int i, j, nf, nt;
 
+    result = get_pgresult(obj);
+    nt = PQntuples(result);
+    nf = PQnfields(result);
     switch (rb_scan_args(argc, argv, "11", &a1, &a2)) {
       case 1:
         val = ary_new();
         i = NUM2INT(a1);
-        nf = PQnfields(result);
-        row = ary_new2(nf);
+	if( i >= nt ) return Qnil;
         for (j=0; j<nf; j++) {
-            ary_push(row, str_new2(PQgetvalue(result, i, j)));
+            ary_push(val, str_new2(PQgetvalue(result, i, j)));
         }
         return val;
 
       case 2:
         i = NUM2INT(a1);
+	if( i >= nt ) return Qnil;
         j = NUM2INT(a2);
+	if( j >= nf ) return Qnil;
         return str_new2(PQgetvalue(result, i, j));
 
       default:



--- Makefile.rb.orig	Fri Feb 19 13:28:04 1999
+++ Makefile.rb	Fri Feb 19 13:28:59 1999
@@ -5,6 +5,13 @@
 
 require "mkmf"
 
+if( ! $CFLAGS )
+  $CFLAGS = ""
+end
+if( ! $LDFLAGS )
+  $LDFLAGS = ""
+end
+
 have_library("wsock32", "cygwin32_socket") or have_library("socket", "socket")
 have_library("inet", "gethostbyname")
 have_library("nsl", "gethostbyname")