use use_postgres::{
column, constraint, enumeration, extension, identifier, index, schema, table, ty,
};
#[test]
fn facade_reexports_postgres_primitives() -> Result<(), Box<dyn std::error::Error>> {
let qualified = identifier::PgQualifiedName::parse("public.users")?;
let table_ref = table::PgTableRef::qualified(
schema::PgSchemaName::public(),
table::PgTableName::new("users")?,
);
let id = column::PgColumn::with_built_in_type(
column::PgColumnName::new("id")?,
ty::PgBuiltInType::BigInt,
)
.with_nullability(column::PgNullability::NotNull);
let constraint = constraint::PgConstraint::new(constraint::PgConstraintKind::PrimaryKey)
.with_columns(vec![column::PgColumnName::new("id")?]);
let index = index::PgIndex::new(index::PgIndexName::new("users_id_idx")?)
.with_method(index::PgIndexMethod::Btree)
.with_columns(vec![index::PgIndexColumn::new("id")?]);
let enum_type = enumeration::PgEnumType::new(enumeration::PgEnumName::new("user_status")?)
.with_variants(vec![enumeration::PgEnumVariant::new("active")?])?;
let extension = extension::PgExtension::new(extension::PgExtensionName::pgcrypto());
assert_eq!(qualified.to_string(), "public.users");
assert_eq!(table_ref.to_string(), "public.users");
assert_eq!(id.type_name().as_str(), "bigint");
assert_eq!(constraint.kind(), constraint::PgConstraintKind::PrimaryKey);
assert_eq!(index.method(), index::PgIndexMethod::Btree);
assert_eq!(enum_type.variants().len(), 1);
assert_eq!(extension.name().as_str(), "pgcrypto");
Ok(())
}