Crates.io | postgres-binary-copy |
lib.rs | postgres-binary-copy |
version | 0.5.0 |
source | src |
created_at | 2015-07-04 23:46:20.172039 |
updated_at | 2017-07-23 22:21:28.801605 |
description | Support for binary-format COPY query execution with postgres |
homepage | |
repository | https://github.com/sfackler/rust-postgres-binary-copy |
max_upload_size | |
id | 2534 |
size | 24,587 |
Support for binary-format COPY
query execution with
rust-postgres.
extern crate postgres;
extern crate postgres_binary_copy;
use postgres::{Connection, TlsMode};
use postgres::types::{Type, ToSql};
use postgres_binary_copy::BinaryCopyReader;
fn main() {
let conn = Connection::connect("postgres://postgres@localhost",
TlsMode::None).unwrap();
conn.execute("CREATE TABLE foo (id INT PRIMARY KEY, bar VARCHAR)", &[])
.unwrap();
let types = &[Type::Int4, Type::Varchar];
let data: Vec<Box<ToSql>> = vec![Box::new(1i32), Box::new("hello"),
Box::new(2i32), Box::new("world")];
let data = data.iter().map(|v| &**v);
let mut reader = BinaryCopyReader::new(types, data);
let stmt = conn.prepare("COPY foo (id, bar) FROM STDIN (FORMAT binary)").unwrap();
stmt.copy_in(&[], &mut reader).unwrap();
}