Expand description
CSV/text export and import via COPY protocol. CSV/text export and import via COPY protocol.
This module provides ergonomic APIs for:
- Exporting query results or tables as CSV/TSV to files, writers, or strings
- Importing CSV/TSV data from files, readers, or strings into tables
- Streaming export for large datasets without buffering all data in memory
§CSV Export
use hyperdb_api::{Connection, CreateMode, Result};
use hyperdb_api::copy::CopyOptions;
fn main() -> Result<()> {
let conn = Connection::connect("localhost:7483", "test.hyper", CreateMode::DoNotCreate)?;
// Export to a file
conn.export_csv("SELECT * FROM users", &mut std::fs::File::create("users.csv")?)?;
// Export with custom options
let opts = CopyOptions::csv().with_header(true).with_delimiter(b'\t');
conn.export_text("SELECT * FROM users", &opts, &mut std::io::stdout())?;
Ok(())
}§CSV Import
use hyperdb_api::{Connection, CreateMode, Result};
fn main() -> Result<()> {
let conn = Connection::connect("localhost:7483", "test.hyper", CreateMode::DoNotCreate)?;
// Import from a file
let csv_data = b"1,Alice\n2,Bob\n";
let rows = conn.import_csv("my_table", &csv_data[..])?;
println!("Imported {} rows", rows);
Ok(())
}Structs§
- Copy
Options - Options for COPY text format operations (CSV, TSV, etc.).