/*
 * call-seq:
 *    conn.lo_create( [mode] ) => pglarge
 *
 * Returns a PGlarge instance on success. On failure, it raises PGError exception.
 * <i>(See #lo_open for information on _mode_.)</i>
 */
static VALUE
pgconn_locreate(argc, argv, obj)
  int argc;
  VALUE *argv;
  VALUE obj;
{
  Oid lo_oid;
  int mode;
  VALUE nmode;
  PGconn *conn;
  
  if (rb_scan_args(argc, argv, "01", &nmode) == 0) {
  mode = INV_READ;
  }
  else {
  mode = FIX2INT(nmode);
  }
  
  conn = get_pgconn(obj);
  lo_oid = lo_creat(conn, mode);
  if (lo_oid == 0){
  rb_raise(rb_ePGError, "can't creat large object");
  }

  return pglarge_new(conn, lo_oid, -1);
}