| 68 | |
| 69 | impl TryFromValue<Value> for KafkaSinkCompressionType { |
| 70 | fn try_from_value(v: Value) -> Result<Self, PlanError> { |
| 71 | match v { |
| 72 | Value::String(v) => match v.to_lowercase().as_str() { |
| 73 | "none" => Ok(KafkaSinkCompressionType::None), |
| 74 | "gzip" => Ok(KafkaSinkCompressionType::Gzip), |
| 75 | "snappy" => Ok(KafkaSinkCompressionType::Snappy), |
| 76 | "lz4" => Ok(KafkaSinkCompressionType::Lz4), |
| 77 | "zstd" => Ok(KafkaSinkCompressionType::Zstd), |
| 78 | // The caller will add context, resulting in an error like |
| 79 | // "invalid COMPRESSION TYPE: <bad-compression-type>". |
| 80 | _ => sql_bail!("{}", v), |
| 81 | }, |
| 82 | _ => sql_bail!("compression type must be a string"), |
| 83 | } |
| 84 | } |
| 85 | |
| 86 | fn try_into_value(self, _catalog: &dyn SessionCatalog) -> Option<Value> { |
| 87 | Some(Value::String(match self { |