graphile_worker 0.13.0

High performance Rust/PostgreSQL job queue (also suitable for getting jobs generated by PostgreSQL triggers/functions out into a different work queue)
Documentation
use graphile_worker_database::{DbExecutor, DbValue};

use crate::errors::Result;

struct EscapeIdentifierRow {
    escaped_identifier: String,
}

pub async fn escape_identifier(executor: &impl DbExecutor, identifier: &str) -> Result<String> {
    let row = executor
        .fetch_one(
            "select format('%I', $1::text) as escaped_identifier",
            vec![DbValue::Text(identifier.to_string())].into(),
        )
        .await?;
    let result = EscapeIdentifierRow {
        escaped_identifier: row.try_get("escaped_identifier")?,
    };

    Ok(result.escaped_identifier)
}