Skip to content

Commit 88b7068

Browse files
committed
perf: xml query refactoring
Benchmark shows perf. boost for the String data type on big collections.
1 parent 17170eb commit 88b7068

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/QueryableValues.SqlServer/SqlServer/XmlQueryableFactory.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ protected override string GetSqlForComplexTypes(IEntityOptionsBuilder entityOpti
4141
sb
4242
.Append("\tI.value('@")
4343
.Append(QueryableValuesEntity.IndexPropertyName)
44-
.Append("[1] cast as xs:integer?', 'int') AS [")
44+
.Append(" cast as xs:integer?', 'int') AS [")
4545
.Append(QueryableValuesEntity.IndexPropertyName)
4646
.Append(']');
4747

@@ -54,7 +54,7 @@ protected override string GetSqlForComplexTypes(IEntityOptionsBuilder entityOpti
5454

5555
var targetName = mapping.Target.Name;
5656

57-
sb.Append("\tI.value('@").Append(targetName).Append("[1] cast as ");
57+
sb.Append("\tI.value('@").Append(targetName).Append(" cast as ");
5858

5959
switch (mapping.TypeName)
6060
{
@@ -122,7 +122,7 @@ protected override string GetSqlForComplexTypes(IEntityOptionsBuilder entityOpti
122122
}
123123

124124
sb.AppendLine();
125-
sb.Append("FROM {0}.nodes('/R/V') N(I)").AppendLine();
125+
sb.Append("FROM {0}.nodes('/R[1]/V') N(I)").AppendLine();
126126
sb.Append("ORDER BY [").Append(QueryableValuesEntity.IndexPropertyName).Append(']');
127127

128128
return sb.ToString();

0 commit comments

Comments
 (0)