From ad6d4b574055ea16bc9c28c76ba6d12d7a1dc88a Mon Sep 17 00:00:00 2001 From: Ryan Leckey Date: Fri, 29 Jan 2021 23:37:29 -0800 Subject: [PATCH] perf(mysql): guarantee no allocation if no columns are passed to Row::deserialize_with --- sqlx-mysql/src/protocol/row.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sqlx-mysql/src/protocol/row.rs b/sqlx-mysql/src/protocol/row.rs index 429315a3..b3df07bf 100644 --- a/sqlx-mysql/src/protocol/row.rs +++ b/sqlx-mysql/src/protocol/row.rs @@ -12,6 +12,10 @@ pub(crate) struct Row { impl<'de> Deserialize<'de, &'de [ColumnDefinition]> for Row { fn deserialize_with(mut buf: Bytes, columns: &'de [ColumnDefinition]) -> Result { + if columns.is_empty() { + return Ok(Self { values: vec![] }); + } + let mut values = Vec::with_capacity(columns.len()); for _ in columns {