[][src]Struct sqlink::postgres::PostgresBuilder

pub struct PostgresBuilder {}

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();

Methods

impl PostgresBuilder[src]

pub fn insert() -> SqlInsert<'static>[src]

pub fn select() -> SqlSelect<'static>[src]

pub fn update() -> SqlUpdate<'static>[src]

pub fn delete() -> SqlDelete<'static>[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,