Crate postgres_large_object [] [src]

A crate providing access to the Postgres large object API.

Example

extern crate postgres;
extern crate postgres_large_object;

use std::fs::File;
use std::io;

use postgres::{Connection, TlsMode};
use postgres_large_object::{LargeObjectExt, LargeObjectTransactionExt, Mode};

fn main() {
    let conn = Connection::connect("postgres://postgres@localhost", TlsMode::None).unwrap();

    let mut file = File::open("vacation_photos.tar.gz").unwrap();
    let trans = conn.transaction().unwrap();
    let oid = trans.create_large_object().unwrap();
    {
        let mut large_object = trans.open_large_object(oid, Mode::Write).unwrap();
        io::copy(&mut file, &mut large_object).unwrap();
    }
    trans.commit().unwrap();

    let mut file = File::create("vacation_photos_copy.tar.gz").unwrap();
    let trans = conn.transaction().unwrap();
    let mut large_object = trans.open_large_object(oid, Mode::Read).unwrap();
    io::copy(&mut large_object, &mut file).unwrap();
}

Structs

LargeObject

Represents an open large object.

Enums

Mode

Large object access modes.

Traits

LargeObjectExt

An extension trait adding functionality to create and delete large objects.

LargeObjectTransactionExt

An extension trait adding functionality to open large objects.