sntl 0.1.1

Compile-time guarded ORM for PostgreSQL — your data's guardian from compile to production
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//! COPY protocol support for bulk operations.

use crate::core::model::Model;

/// Build a COPY IN SQL statement from Model metadata.
///
/// Returns: `COPY "table" ("col1", "col2", ...) FROM STDIN BINARY`
pub fn copy_in_sql<M: Model>() -> String {
    let col_list = M::columns()
        .iter()
        .map(|c| format!("\"{}\"", c.name))
        .collect::<Vec<_>>()
        .join(", ");
    format!("COPY \"{}\" ({}) FROM STDIN BINARY", M::TABLE, col_list)
}