odbc_api_helper/bridge/
pg_to_dameng.rs

1use crate::TryConvert;
2use dameng_helper::DmDateType;
3use pg_helper::PgType;
4
5impl TryConvert<DmDateType> for &PgType {
6    type Error = anyhow::Error;
7
8    fn try_convert(self) -> Result<DmDateType, Self::Error> {
9        match *self {
10            PgType::NUMERIC => Ok(DmDateType::NUMERIC),
11            PgType::BOOL => Ok(DmDateType::BIT),
12            PgType::INT4 => Ok(DmDateType::INTEGER),
13            PgType::INT8 => Ok(DmDateType::BIGINT),
14            PgType::INT2 => Ok(DmDateType::TINYINT),
15            PgType::BYTEA => Ok(DmDateType::BINARY),
16            PgType::VARBIT => Ok(DmDateType::VARBINARY),
17            PgType::FLOAT4 => Ok(DmDateType::DOUBLE),
18            PgType::FLOAT8 => Ok(DmDateType::DOUBLE_PRECISION),
19            PgType::CHAR => Ok(DmDateType::CHAR),
20            PgType::VARCHAR => Ok(DmDateType::VARCHAR),
21            PgType::TEXT => Ok(DmDateType::TEXT),
22            PgType::DATE => Ok(DmDateType::DATE),
23            PgType::TIME => Ok(DmDateType::TIME),
24            PgType::TIMESTAMP => Ok(DmDateType::TIMESTAMP),
25            PgType::TIMETZ => Ok(DmDateType::TIME_WITH_TIME_ZONE),
26            PgType::TIMESTAMPTZ => Ok(DmDateType::TIMESTAMP_WITH_TIME_ZONE),
27            _ => bail!("convert pg data_type to dameng data_type error:{}", self),
28        }
29    }
30}