pub struct PostgresBuilder {}
Expand description
examples
use sqlink::{
PostgresBuilder,
postgres::{format_query, op}
};
struct Person {
id: i32,
name: String,
data: Option<Vec<u8>>
}
struct PersonForm {
id: i32,
name: String,
data: Option<Vec<u8>>
}
// let mut conn = Client::connect("postgresql://pguser:password@localhost:54321/sqlink_postgres", NoTls).unwrap();
let person_form = PersonForm {
id: 3,
name: "Hello World".to_owned(),
data: None
};
let mut sqlinsert = PostgresBuilder::insert();
let qbuiltinsert = sqlinsert
.table("person")
.returning("id")
.set("id", &person_form.id)
.set("name", &person_form.name)
.set("data", &person_form.data)
.build().unwrap();
// let mut id: i32 = 0;
// for row in &conn.query(
// qbuiltinsert.query.as_str(),
// &qbuiltinsert.parameters,
// )? {
// id = row.get(0);
// }
// assert_eq!(id, 3);
let mut sqlupdate = PostgresBuilder::update();
let qbuiltinsert = sqlupdate
.table("person")
.set("name", &("Real Hello World"))
.and_where(
op::eq("person.id", &3) // equivalence to format_query("person.id = {}", vec![&3]), note that 3 has to be same type as person id, which is i32/INT here
)
.build().unwrap();
let mut sqlselect = PostgresBuilder::select();
let qbuiltselect = sqlselect
.select("id")
.select_as("name", "person_name")
.select("data")
.table("person")
.and_where(
format_query("person.id = {}", vec![&3])
)
.limit_offset(10) // equivalent of limit_offset((10, 0)), which is limit 10 offset 0
.order("id", "ASC")
.build().unwrap();
// misc feature
sqlselect
.reset_selects()
.select("COUNT(id)")
.group("something")
.build().unwrap();
let mut sqldelete = PostgresBuilder::delete();
let qbuiltdelete = sqldelete
.table("person")
.and_where(
op::eq("person.id", &3)
)
.build().unwrap();
Implementations§
Auto Trait Implementations§
impl Freeze for PostgresBuilder
impl RefUnwindSafe for PostgresBuilder
impl Send for PostgresBuilder
impl Sync for PostgresBuilder
impl Unpin for PostgresBuilder
impl UnwindSafe for PostgresBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more