From 3786140f7f9fa6c10ee3e814d88e6fd21307d730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Duchesneau?= Date: Mon, 30 Jan 2023 09:40:28 -0500 Subject: [PATCH] strip all null bytes from utf8 strings that come from substreams, like it's done on other sources --- chain/substreams/src/trigger.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/chain/substreams/src/trigger.rs b/chain/substreams/src/trigger.rs index 237f9e09793..67dc4dc6bd4 100644 --- a/chain/substreams/src/trigger.rs +++ b/chain/substreams/src/trigger.rs @@ -257,7 +257,15 @@ fn decode_value(value: &crate::codec::value::Typed) -> Result Ok(Value::String(new_value.clone())), + Typed::String(new_value) => { + let mut string = new_value.clone(); + + // Strip null characters since they are not accepted by Postgres. + if string.contains('\u{0000}') { + string = string.replace('\u{0000}', ""); + } + Ok(Value::String(string)) + } Typed::Bytes(new_value) => base64::decode(&new_value) .map(|bs| Value::Bytes(Bytes::from(bs.as_ref())))