Commit db4e7a0a authored by Marc Gravell's avatar Marc Gravell

Fix issue 192

parent e2ccfbf2
...@@ -2714,7 +2714,7 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj ...@@ -2714,7 +2714,7 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj
} }
} }
var regexIncludingUnknown = @"([?@:]" + Regex.Escape(namePrefix) + @")(\s+(?i)unknown(?-i))?"; var regexIncludingUnknown = @"([?@:]" + Regex.Escape(namePrefix) + @")(?!\w)(\s+(?i)unknown(?-i))?";
if (count == 0) if (count == 0)
{ {
command.CommandText = Regex.Replace(command.CommandText, regexIncludingUnknown, match => command.CommandText = Regex.Replace(command.CommandText, regexIncludingUnknown, match =>
......
...@@ -705,6 +705,24 @@ public void TestMultiMapArbitraryMaps() ...@@ -705,6 +705,24 @@ public void TestMultiMapArbitraryMaps()
} }
} }
public void Issue157_ClosedReaderAsync()
{
using(var conn = Program.GetOpenConnection())
{
var args = new { x = 42 };
const string sql = @"select 123 as [A], 'abc' as [B] where @x=42";
var row = conn.QueryAsync<SomeType>(new CommandDefinition(
sql, args, flags:CommandFlags.None)).Result.Single();
row.IsNotNull();
row.A.IsEqualTo(123);
row.B.IsEqualTo("abc");
args = new { x = 5 };
conn.QueryAsync<SomeType>(new CommandDefinition(
sql, args, flags: CommandFlags.None)).Result.Any().IsFalse();
}
}
public void TestAtEscaping() public void TestAtEscaping()
{ {
using (var connection = Program.GetOpenConnection()) using (var connection = Program.GetOpenConnection())
......
...@@ -4041,6 +4041,31 @@ public void Issue151_ExpandoObjectArgsExec() ...@@ -4041,6 +4041,31 @@ public void Issue151_ExpandoObjectArgsExec()
((string)row.Name).Equals("abc"); ((string)row.Name).Equals("abc");
} }
public void Issue192_InParameterWorksWithSimilarNames()
{
var rows = connection.Query(@"
declare @Issue192 table (
Field INT NOT NULL PRIMARY KEY IDENTITY(1,1),
Field_1 INT NOT NULL);
insert @Issue192(Field_1) values (1), (2), (3);
SELECT * FROM @Issue192 WHERE Field IN @Field AND Field_1 IN @Field_1",
new { Field = new[] { 1, 2 }, Field_1 = new[] { 2, 3 } }).Single();
((int)rows.Field).IsEqualTo(2);
((int)rows.Field_1).IsEqualTo(2);
}
public void Issue192_InParameterWorksWithSimilarNamesWithUnicode()
{
var rows = connection.Query(@"
declare @Issue192 table (
Field INT NOT NULL PRIMARY KEY IDENTITY(1,1),
Field_1 INT NOT NULL);
insert @Issue192(Field_1) values (1), (2), (3);
SELECT * FROM @Issue192 WHERE Field IN @µ AND Field_1 IN @µµ",
new { µ = new[] { 1, 2 }, µµ = new[] { 2, 3 } }).Single();
((int)rows.Field).IsEqualTo(2);
((int)rows.Field_1).IsEqualTo(2);
}
#if POSTGRESQL #if POSTGRESQL
class Cat class Cat
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment