/*
* call-seq:
* conn.lo_write( lo_desc, buffer ) -> Fixnum
*
* Writes the string _buffer_ to the large object _lo_desc_.
* Returns the number of bytes written.
*/
static VALUE
pgconn_lowrite(VALUE self, VALUE in_lo_desc, VALUE buffer)
{
int n;
PGconn *conn = get_pgconn(self);
int fd = NUM2INT(in_lo_desc);
Check_Type(buffer, T_STRING);
if( RSTRING_LEN(buffer) < 0) {
rb_raise(rb_ePGError, "write buffer zero string");
}
if((n = lo_write(conn, fd, StringValuePtr(buffer),
RSTRING_LEN(buffer))) < 0) {
rb_raise(rb_ePGError, "lo_write failed");
}
return INT2FIX(n);
}