Skip to content

Commit 6242820

Browse files
committed
some minor performance optimizations
1 parent b3ec123 commit 6242820

File tree

3 files changed

+100
-17
lines changed

3 files changed

+100
-17
lines changed

src/SQLProvider.Runtime/SqlRuntime.Linq.fs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,16 @@ module internal QueryImplementation =
116116
elif Type.(=)(returnType, typeof<ValueOption<DateTime>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<DateTime>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
117117
elif Type.(=)(returnType, typeof<ValueOption<Boolean>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<Boolean>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
118118
elif Type.(=)(returnType, typeof<ValueOption<Guid>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<Guid>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
119+
elif Type.(=)(returnType, typeof<ValueOption<Single>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<Single>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
120+
elif Type.(=)(returnType, typeof<ValueOption<Int16>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<Int16>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
121+
elif Type.(=)(returnType, typeof<ValueOption<UInt32>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<UInt32>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
122+
elif Type.(=)(returnType, typeof<ValueOption<UInt16>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<UInt16>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
123+
elif Type.(=)(returnType, typeof<ValueOption<UInt64>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<UInt64>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
124+
elif Type.(=)(returnType, typeof<ValueOption<Byte>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<Byte>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
125+
elif Type.(=)(returnType, typeof<ValueOption<SByte>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<SByte>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
126+
elif Type.(=)(returnType, typeof<ValueOption<Char>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<Char>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
127+
elif Type.(=)(returnType, typeof<ValueOption<DateTimeOffset>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<DateTimeOffset>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
128+
elif Type.(=)(returnType, typeof<ValueOption<TimeSpan>>) then let invoker = projector :?> Func<SqlEntity, ValueOption<TimeSpan>> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
119129
else
120130
seq { for e in results -> projector.DynamicInvoke e } |> Seq.cache :> System.Collections.IEnumerable
121131
else
@@ -125,6 +135,16 @@ module internal QueryImplementation =
125135
elif Type.(=)(returnType, typeof<Guid>) then let invoker = projector :?> Func<SqlEntity, Guid> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
126136
elif Type.(=)(returnType, typeof<Int32>) then let invoker = projector :?> Func<SqlEntity, Int32> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
127137
elif Type.(=)(returnType, typeof<Boolean>) then let invoker = projector :?> Func<SqlEntity, Boolean> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
138+
elif Type.(=)(returnType, typeof<Single>) then let invoker = projector :?> Func<SqlEntity, Single> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
139+
elif Type.(=)(returnType, typeof<Int16>) then let invoker = projector :?> Func<SqlEntity, Int16> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
140+
elif Type.(=)(returnType, typeof<UInt32>) then let invoker = projector :?> Func<SqlEntity, UInt32> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
141+
elif Type.(=)(returnType, typeof<UInt16>) then let invoker = projector :?> Func<SqlEntity, UInt16> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
142+
elif Type.(=)(returnType, typeof<UInt64>) then let invoker = projector :?> Func<SqlEntity, UInt64> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
143+
elif Type.(=)(returnType, typeof<Byte>) then let invoker = projector :?> Func<SqlEntity, Byte> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
144+
elif Type.(=)(returnType, typeof<SByte>) then let invoker = projector :?> Func<SqlEntity, SByte> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
145+
elif Type.(=)(returnType, typeof<Char>) then let invoker = projector :?> Func<SqlEntity, Char> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
146+
elif Type.(=)(returnType, typeof<DateTimeOffset>) then let invoker = projector :?> Func<SqlEntity, DateTimeOffset> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
147+
elif Type.(=)(returnType, typeof<TimeSpan>) then let invoker = projector :?> Func<SqlEntity, TimeSpan> in seq { for e in results -> invoker.Invoke(e) } |> Seq.cache :> System.Collections.IEnumerable
128148
else
129149
seq { for e in results -> projector.DynamicInvoke e } |> Seq.cache :> System.Collections.IEnumerable
130150

0 commit comments

Comments
 (0)