From 4a5e07ba89059b8d8ccda1f94336040dbb390511 Mon Sep 17 00:00:00 2001 From: Noikoio Date: Mon, 26 Mar 2018 11:53:19 -0700 Subject: [PATCH] Fix database error when searching with discriminator --- EntityCache/CacheUser.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/EntityCache/CacheUser.cs b/EntityCache/CacheUser.cs index 740ed9c..75a74df 100644 --- a/EntityCache/CacheUser.cs +++ b/EntityCache/CacheUser.cs @@ -166,6 +166,9 @@ namespace Noikoio.RegexBot.EntityCache disc = null; } + // Strip leading @ from name, if any + if (name.Length > 0 && name[0] == '@') name = name.Substring(1); + // Local cache search var lresult = LocalQueryAsync(c, guild, name, disc); if (lresult.Count() != 0) return lresult; @@ -211,15 +214,16 @@ namespace Noikoio.RegexBot.EntityCache { using (var c = db.CreateCommand()) { - c.CommandText = $"SELECT {QueryColumns} FROM {SqlHelper.TableUser} WHERE " - + "( lower(username) = lower(@NameSearch) OR lower(nickname) = lower(@NameSearch) ) " - + "ORDER BY cache_date desc, username"; - c.Parameters.Add("@NameSearch", NpgsqlTypes.NpgsqlDbType.Text).Value = name; + c.CommandText = $"SELECT {QueryColumns} FROM {SqlHelper.TableUser} WHERE" + + " ( lower(username) = lower(@NameSearch) OR lower(nickname) = lower(@NameSearch) )"; if (disc != null) { c.CommandText += " AND discriminator = @DiscSearch"; c.Parameters.Add("@DiscSearch", NpgsqlTypes.NpgsqlDbType.Text).Value = disc; } + c.CommandText += " ORDER BY cache_date desc, username"; + c.Parameters.Add("@NameSearch", NpgsqlTypes.NpgsqlDbType.Text).Value = name; + c.Prepare(); using (var r = await c.ExecuteReaderAsync())