Skip to content

Commit

Permalink
Use correct parameter in query based on type mapping (#29650) (#29724)
Browse files Browse the repository at this point in the history
Fixes #29646

(cherry picked from commit 3f82c2b)
  • Loading branch information
roji authored Jan 4, 2023
1 parent 043a351 commit 727e46a
Show file tree
Hide file tree
Showing 9 changed files with 77 additions and 41 deletions.
62 changes: 49 additions & 13 deletions src/EFCore.Relational/Query/QuerySqlGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ public class QuerySqlGenerator : SqlExpressionVisitor
private IRelationalCommandBuilder _relationalCommandBuilder;
private Dictionary<string, int>? _repeatedParameterCounts;

private static readonly bool QuirkEnabled29646
= AppContext.TryGetSwitch("Microsoft.EntityFrameworkCore.Issue29646", out var enabled) && enabled;

/// <summary>
/// Creates a new instance of the <see cref="QuerySqlGenerator" /> class.
/// </summary>
Expand Down Expand Up @@ -598,20 +601,53 @@ protected override Expression VisitSqlParameter(SqlParameterExpression sqlParame
var invariantName = sqlParameterExpression.Name;
var parameterName = sqlParameterExpression.Name;

if (_relationalCommandBuilder.Parameters
.All(
p => p.InvariantName != parameterName
|| (p is TypeMappedRelationalParameter typeMappedRelationalParameter
&& (typeMappedRelationalParameter.RelationalTypeMapping.StoreType != sqlParameterExpression.TypeMapping!.StoreType
|| typeMappedRelationalParameter.RelationalTypeMapping.Converter
!= sqlParameterExpression.TypeMapping!.Converter))))
if (QuirkEnabled29646)
{
if (_relationalCommandBuilder.Parameters
.All(
p => p.InvariantName != parameterName
|| (p is TypeMappedRelationalParameter typeMappedRelationalParameter
&& (typeMappedRelationalParameter.RelationalTypeMapping.StoreType != sqlParameterExpression.TypeMapping!.StoreType
|| typeMappedRelationalParameter.RelationalTypeMapping.Converter
!= sqlParameterExpression.TypeMapping!.Converter))))
{
parameterName = GetUniqueParameterName(parameterName);
_relationalCommandBuilder.AddParameter(
invariantName,
_sqlGenerationHelper.GenerateParameterName(parameterName),
sqlParameterExpression.TypeMapping!,
sqlParameterExpression.IsNullable);
}
}
else
{
parameterName = GetUniqueParameterName(parameterName);
_relationalCommandBuilder.AddParameter(
invariantName,
_sqlGenerationHelper.GenerateParameterName(parameterName),
sqlParameterExpression.TypeMapping!,
sqlParameterExpression.IsNullable);
// Try to see if a parameter already exists - if so, just integrate the same placeholder into the SQL instead of sending the same
// data twice.
// Note that if the type mapping differs, we do send the same data twice (e.g. the same string may be sent once as Unicode, once as
// non-Unicode).
var parameter = _relationalCommandBuilder.Parameters.FirstOrDefault(
p =>
p.InvariantName == parameterName
&& p is TypeMappedRelationalParameter typeMappedRelationalParameter
&& string.Equals(
typeMappedRelationalParameter.RelationalTypeMapping.StoreType, sqlParameterExpression.TypeMapping!.StoreType,
StringComparison.OrdinalIgnoreCase)
&& typeMappedRelationalParameter.RelationalTypeMapping.Converter == sqlParameterExpression.TypeMapping!.Converter);

if (parameter is null)
{
parameterName = GetUniqueParameterName(parameterName);

_relationalCommandBuilder.AddParameter(
invariantName,
_sqlGenerationHelper.GenerateParameterName(parameterName),
sqlParameterExpression.TypeMapping!,
sqlParameterExpression.IsNullable);
}
else
{
parameterName = ((TypeMappedRelationalParameter)parameter).Name;
}
}

_relationalCommandBuilder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public virtual Task Parameter_used_multiple_times_take_appropriate_inferred_type
var place = "Seattle";
return AssertQuery(
async,
ss => ss.Set<City>().Where(e => e.Nation == place || e.Location == place));
ss => ss.Set<City>().Where(e => e.Nation == place || e.Location == place || e.Location == place));
}

public override async Task Correlated_collection_with_distinct_not_projecting_identifier_column_also_projecting_complex_expressions(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9401,7 +9401,7 @@ public override async Task Parameter_used_multiple_times_take_appropriate_inferr

SELECT [c].[Name], [c].[Location], [c].[Nation]
FROM [Cities] AS [c]
WHERE [c].[Nation] = @__place_0 OR [c].[Location] = @__place_0_1
WHERE [c].[Nation] = @__place_0 OR [c].[Location] = @__place_0_1 OR [c].[Location] = @__place_0_1
""");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4791,7 +4791,7 @@ public override async Task Comparing_to_fixed_string_parameter(bool async)

SELECT [c].[CustomerID]
FROM [Customers] AS [c]
WHERE @__prefix_0 = N'' OR LEFT([c].[CustomerID], LEN(@__prefix_0_1)) = @__prefix_0
WHERE @__prefix_0 = N'' OR LEFT([c].[CustomerID], LEN(@__prefix_0_1)) = @__prefix_0_1
""");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public override async Task Count_query(bool async)

SELECT COUNT(*)
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
""");
}

Expand All @@ -47,7 +47,7 @@ public override async Task Materialized_query(bool async)

SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
""");
}

Expand All @@ -63,7 +63,7 @@ public override async Task Find(bool async)

SELECT TOP(1) [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE (@__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)) AND [c].[CustomerID] = @__p_0
WHERE (@__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)) AND [c].[CustomerID] = @__p_0
""");
}

Expand All @@ -78,7 +78,7 @@ public override async Task Materialized_query_parameter(bool async)

SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
""");
}

Expand All @@ -93,7 +93,7 @@ public override async Task Materialized_query_parameter_new_context(bool async)

SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
""",
//
"""
Expand All @@ -102,7 +102,7 @@ FROM [Customers] AS [c]

SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
""");
}

Expand All @@ -117,7 +117,7 @@ public override async Task Projection_query_parameter(bool async)

SELECT [c].[CustomerID]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
""");
}

Expand All @@ -132,7 +132,7 @@ public override async Task Projection_query(bool async)

SELECT [c].[CustomerID]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
""");
}

Expand All @@ -153,11 +153,11 @@ FROM [Orders] AS [o]
LEFT JOIN (
SELECT [c0].[CustomerID], [c0].[CompanyName]
FROM [Customers] AS [c0]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c0].[CompanyName] IS NOT NULL) AND LEFT([c0].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c0].[CompanyName] IS NOT NULL) AND LEFT([c0].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
) AS [t] ON [o].[CustomerID] = [t].[CustomerID]
WHERE ([t].[CustomerID] IS NOT NULL) AND ([t].[CompanyName] IS NOT NULL)
) AS [t0] ON [c].[CustomerID] = [t0].[CustomerID]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
ORDER BY [c].[CustomerID], [t0].[OrderID]
""");
}
Expand Down Expand Up @@ -189,7 +189,7 @@ FROM [Orders] AS [o]
LEFT JOIN (
SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
) AS [t] ON [o].[CustomerID] = [t].[CustomerID]
WHERE ([t].[CustomerID] IS NOT NULL) AND ([t].[CompanyName] IS NOT NULL)
""");
Expand All @@ -213,7 +213,7 @@ FROM [Orders] AS [o0]
LEFT JOIN (
SELECT [c].[CustomerID], [c].[CompanyName]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_1 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_1_1)) = @__ef_filter__TenantPrefix_1)
WHERE @__ef_filter__TenantPrefix_1 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_1_1)) = @__ef_filter__TenantPrefix_1_1)
) AS [t] ON [o0].[CustomerID] = [t].[CustomerID]
WHERE ([t].[CustomerID] IS NOT NULL) AND ([t].[CompanyName] IS NOT NULL)
) AS [t0] ON [o].[OrderID] = [t0].[OrderID]
Expand All @@ -239,7 +239,7 @@ FROM [Orders] AS [o]
LEFT JOIN (
SELECT [c0].[CustomerID], [c0].[CompanyName]
FROM [Customers] AS [c0]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c0].[CompanyName] IS NOT NULL) AND LEFT([c0].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c0].[CompanyName] IS NOT NULL) AND LEFT([c0].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
) AS [t] ON [o].[CustomerID] = [t].[CustomerID]
WHERE ([t].[CustomerID] IS NOT NULL) AND ([t].[CompanyName] IS NOT NULL)
) AS [t0] ON [c].[CustomerID] = [t0].[CustomerID]
Expand All @@ -252,13 +252,13 @@ FROM [Orders] AS [o1]
LEFT JOIN (
SELECT [c1].[CustomerID], [c1].[CompanyName]
FROM [Customers] AS [c1]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c1].[CompanyName] IS NOT NULL) AND LEFT([c1].[CompanyName], LEN(@__ef_filter__TenantPrefix_0)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c1].[CompanyName] IS NOT NULL) AND LEFT([c1].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
) AS [t3] ON [o1].[CustomerID] = [t3].[CustomerID]
WHERE ([t3].[CustomerID] IS NOT NULL) AND ([t3].[CompanyName] IS NOT NULL)
) AS [t2] ON [o0].[OrderID] = [t2].[OrderID]
WHERE [o0].[Quantity] > @__ef_filter___quantity_1
) AS [t1] ON [t0].[OrderID] = [t1].[OrderID]
WHERE (@__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0)) = @__ef_filter__TenantPrefix_0)) AND [t1].[Discount] < CAST(10 AS real)
WHERE (@__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)) AND [t1].[Discount] < CAST(10 AS real)
""");
}

Expand All @@ -281,7 +281,7 @@ public void FromSql_is_composed()
FROM (
select * from Customers
) AS [m]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([m].[CompanyName] IS NOT NULL) AND LEFT([m].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([m].[CompanyName] IS NOT NULL) AND LEFT([m].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
""");
}

Expand All @@ -307,7 +307,7 @@ public void FromSql_is_composed_when_filter_has_navigation()
LEFT JOIN (
SELECT [c].[CustomerID], [c].[CompanyName]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
) AS [t] ON [m].[CustomerID] = [t].[CustomerID]
WHERE ([t].[CustomerID] IS NOT NULL) AND ([t].[CompanyName] IS NOT NULL)
""");
Expand All @@ -325,7 +325,7 @@ public override void Compiled_query()

SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE (@__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)) AND [c].[CustomerID] = @__customerID
WHERE (@__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)) AND [c].[CustomerID] = @__customerID
""",
//
"""
Expand All @@ -335,7 +335,7 @@ FROM [Customers] AS [c]

SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE (@__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)) AND [c].[CustomerID] = @__customerID
WHERE (@__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)) AND [c].[CustomerID] = @__customerID
""");
}

Expand All @@ -353,7 +353,7 @@ FROM [Orders] AS [o]
LEFT JOIN (
SELECT [c].[CustomerID], [c].[CompanyName]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
) AS [t] ON [o].[CustomerID] = [t].[CustomerID]
WHERE ([t].[CustomerID] IS NOT NULL) AND ([t].[CompanyName] IS NOT NULL)
""");
Expand All @@ -380,7 +380,7 @@ FROM [Orders] AS [o]
LEFT JOIN (
SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0)
WHERE @__ef_filter__TenantPrefix_0 = N'' OR (([c].[CompanyName] IS NOT NULL) AND LEFT([c].[CompanyName], LEN(@__ef_filter__TenantPrefix_0_1)) = @__ef_filter__TenantPrefix_0_1)
) AS [t] ON [o].[CustomerID] = [t].[CustomerID]
WHERE ([t].[CustomerID] IS NOT NULL) AND ([t].[CompanyName] IS NOT NULL)
""");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11939,7 +11939,7 @@ public override async Task Parameter_used_multiple_times_take_appropriate_inferr

SELECT [c].[Name], [c].[Location], [c].[Nation]
FROM [Cities] AS [c]
WHERE [c].[Nation] = @__place_0 OR [c].[Location] = @__place_0_1
WHERE [c].[Nation] = @__place_0 OR [c].[Location] = @__place_0_1 OR [c].[Location] = @__place_0_1
""");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10225,7 +10225,7 @@ public override async Task Parameter_used_multiple_times_take_appropriate_inferr

SELECT [c].[Name], [c].[Location], [c].[Nation]
FROM [Cities] AS [c]
WHERE [c].[Nation] = @__place_0 OR [c].[Location] = @__place_0_1
WHERE [c].[Nation] = @__place_0 OR [c].[Location] = @__place_0_1 OR [c].[Location] = @__place_0_1
""");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3250,7 +3250,7 @@ public override async Task Parameter_used_multiple_times_take_appropriate_inferr

SELECT [c].[Name], [c].[Location], [c].[Nation], [c].[PeriodEnd], [c].[PeriodStart]
FROM [Cities] FOR SYSTEM_TIME AS OF '2010-01-01T00:00:00.0000000' AS [c]
WHERE [c].[Nation] = @__place_0 OR [c].[Location] = @__place_0_1
WHERE [c].[Nation] = @__place_0 OR [c].[Location] = @__place_0_1 OR [c].[Location] = @__place_0_1
""");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2902,7 +2902,7 @@ public override async Task Parameter_used_multiple_times_take_appropriate_inferr

SELECT "c"."Name", "c"."Location", "c"."Nation"
FROM "Cities" AS "c"
WHERE "c"."Nation" = @__place_0 OR "c"."Location" = @__place_0
WHERE "c"."Nation" = @__place_0 OR "c"."Location" = @__place_0 OR "c"."Location" = @__place_0
""");
}

Expand Down

0 comments on commit 727e46a

Please sign in to comment.