rsql_driver_redshift 0.19.3

rsql redshift driver
Documentation
#[cfg(target_os = "linux")]
use rsql_driver::{Driver, Value};
#[cfg(target_os = "linux")]
use testcontainers::runners::AsyncRunner;

#[cfg(target_os = "linux")]
#[tokio::test]
async fn test_redshift_driver() -> anyhow::Result<()> {
    let image = testcontainers::ContainerRequest::from(
        testcontainers_modules::postgres::Postgres::default(),
    );
    let container = image.start().await?;
    let port = container.get_host_port_ipv4(5432).await?;

    let database_url = format!("redshift://postgres:postgres@localhost:{port}/postgres");
    let mut connection = rsql_driver_redshift::Driver
        .connect(database_url.as_str())
        .await?;
    assert_eq!(database_url, connection.url().as_str());

    let mut query_result = connection.query("SELECT 'foo'::TEXT", &[]).await?;
    let row = query_result.next().await.expect("no row");
    let value = row.first().expect("no value");

    assert_eq!(*value, Value::String("foo".to_string()));

    container.stop().await?;
    container.rm().await?;
    Ok(())
}