From 2a9774d84f1fa1ea3d23121fb850e392a8fa2da2 Mon Sep 17 00:00:00 2001 From: Ryan Leckey Date: Tue, 31 Mar 2020 21:41:29 -0700 Subject: [PATCH] use cow::borrowed to remove a minor allocation in postgres/startup refs #214 --- sqlx-core/src/postgres/connection.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/sqlx-core/src/postgres/connection.rs b/sqlx-core/src/postgres/connection.rs index 5fa5c6e6..3c69eedb 100644 --- a/sqlx-core/src/postgres/connection.rs +++ b/sqlx-core/src/postgres/connection.rs @@ -1,3 +1,4 @@ +use std::borrow::Cow; use std::collections::HashMap; use std::convert::TryInto; use std::sync::Arc; @@ -110,16 +111,13 @@ pub struct PgConnection { // https://www.postgresql.org/docs/12/protocol-flow.html#id-1.10.5.7.3 async fn startup(stream: &mut PgStream, url: &Url) -> crate::Result { // Defaults to postgres@.../postgres - let username = url - .username() - .map(|c| c.into_owned()) - .unwrap_or(String::from("postgres")); + let username = url.username().unwrap_or(Cow::Borrowed("postgres")); let database = url.database().unwrap_or("postgres"); // See this doc for more runtime parameters // https://www.postgresql.org/docs/12/runtime-config-client.html let params = &[ - ("user", username.as_str()), + ("user", username.as_ref()), ("database", database), // Sets the display format for date and time values, // as well as the rules for interpreting ambiguous date input values. @@ -163,7 +161,7 @@ async fn startup(stream: &mut PgStream, url: &Url) -> crate::Result crate::Result