odbc_api_helper/bridge/
pg_to_dameng.rs1use 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}