From 12bf53f816a392a9300971b0cb3a3e34d57532c3 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Tue, 24 Jun 2025 05:11:38 +0100 Subject: [PATCH 01/11] Stage 1: _errors and _warnings are always null, so HasMessages will always be false --- .../src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs index 6f42a87aa5..126f739af6 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs @@ -17,7 +17,7 @@ internal SmiEventSink_Default() { } - internal bool HasMessages => _errors is not null || _warnings is not null; + internal bool HasMessages => false; #if NETFRAMEWORK protected virtual void DispatchMessages(bool ignoreNonFatalMessages) From f73d649032459364281b6fd126f2b5392759594e Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Tue, 24 Jun 2025 05:15:36 +0100 Subject: [PATCH 02/11] Initial cleanup of ProcessMessages and ProcessMessagesAndThrow --- .../SqlClient/Server/SmiEventSink_Default.cs | 48 ------------------- 1 file changed, 48 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs index 126f739af6..69ddeb7919 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs @@ -51,46 +51,6 @@ protected SqlException ProcessMessages(bool ignoreWarnings) SqlException result = null; SqlErrorCollection temp = null; // temp variable to store that which is being thrown - so that local copies can be deleted - if (_errors != null) - { - Debug.Assert(0 != _errors.Count, "empty error collection?"); // must be something in the collection -#if NETFRAMEWORK - if (ignoreNonFatalMessages) - { - temp = new SqlErrorCollection(); - foreach (SqlError error in _errors) - { - if (error.Class >= TdsEnums.FATAL_ERROR_CLASS) - { - temp.Add(error); - } - } - if (temp.Count <= 0) - { - temp = null; - } - } - else -#endif - { - if (_warnings != null) - { - // When we throw an exception we place all the warnings that - // occurred at the end of the collection - after all the errors. - // That way the user can see all the errors AND warnings that - // occurred for the exception. - foreach (SqlError warning in _warnings) - { - _errors.Add(warning); - } - } - temp = _errors; - } - - _errors = null; - _warnings = null; - } - else { Debug.Assert(_warnings == null || 0 != _warnings.Count, "empty warning collection?");// must be something in the collection @@ -110,14 +70,6 @@ protected SqlException ProcessMessages(bool ignoreWarnings) internal void ProcessMessagesAndThrow() { - if (HasMessages) - { - #if NETFRAMEWORK - DispatchMessages(false); - #else - DispatchMessages(); - #endif - } } } } From a17a41482840e78e5a2248c4bb0825c284794c90 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Tue, 24 Jun 2025 05:16:50 +0100 Subject: [PATCH 03/11] Stub now-empty methods --- .../SqlClient/Server/SmiEventSink_Default.cs | 34 +------------------ 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs index 69ddeb7919..c217f68900 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs @@ -25,21 +25,6 @@ protected virtual void DispatchMessages(bool ignoreNonFatalMessages) protected virtual void DispatchMessages() #endif { - // virtual because we want a default implementation in the cases - // where we don't have a connection to process stuff, but we want to - // provide the connection the ability to fire info messages when it - // hooks up. - #if NETFRAMEWORK - SqlException errors = ProcessMessages(true, ignoreNonFatalMessages); - #else - SqlException errors = ProcessMessages(true); - #endif - - if (errors != null) - { - throw errors; - } - } #if NETFRAMEWORK @@ -48,24 +33,7 @@ protected SqlException ProcessMessages(bool ignoreWarnings, bool ignoreNonFatalM protected SqlException ProcessMessages(bool ignoreWarnings) #endif { - SqlException result = null; - SqlErrorCollection temp = null; // temp variable to store that which is being thrown - so that local copies can be deleted - - { - Debug.Assert(_warnings == null || 0 != _warnings.Count, "empty warning collection?");// must be something in the collection - - if (!ignoreWarnings) - { - temp = _warnings; - } - _warnings = null; - } - - if (temp != null) - { - result = SqlException.CreateException(temp, ServerVersion); - } - return result; + return null; } internal void ProcessMessagesAndThrow() From e9a33771f1deecdc2583394fbd954a8d3a2430b0 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Tue, 24 Jun 2025 05:25:01 +0100 Subject: [PATCH 04/11] Remove ProcessMessagesAndThrow (and all references.) --- .../SqlClient/Server/SmiEventSink_Default.cs | 4 - .../Data/SqlClient/Server/SqlDataRecord.cs | 1 - .../Data/SqlClient/Server/ValueUtilsSmi.cs | 97 ------------------- 3 files changed, 102 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs index c217f68900..32d87b2405 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs @@ -35,9 +35,5 @@ protected SqlException ProcessMessages(bool ignoreWarnings) { return null; } - - internal void ProcessMessagesAndThrow() - { - } } } diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs index 025ca3892e..c53e4257e2 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs @@ -383,7 +383,6 @@ public SqlDataRecord(params SqlMetaData[] metaData) _usesStringStorageForXml = true; #else _recordBuffer = new MemoryRecordBuffer(_columnSmiMetaData); - _eventSink.ProcessMessagesAndThrow(); #endif } diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs index 96c31da63e..6bff901dda 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs @@ -882,7 +882,6 @@ internal static object GetValue200( { case SqlDbType.Variant: // Handle variants specifically for v200, since they could contain v200 types metaData = getters.GetVariantType(ordinal); - sink.ProcessMessagesAndThrow(); Debug.Assert(SqlDbType.Variant != metaData.SqlDbType, "Variant-within-variant causes endless recursion!"); result = GetValue200(sink, getters, ordinal, metaData); break; @@ -994,7 +993,6 @@ internal static object GetValue( break; case SqlDbType.Variant: metaData = getters.GetVariantType(ordinal); - sink.ProcessMessagesAndThrow(); Debug.Assert(SqlDbType.Variant != metaData.SqlDbType, "Variant-within-variant causes endless recursion!"); result = GetValue(sink, getters, ordinal, metaData); break; @@ -1035,7 +1033,6 @@ internal static object GetSqlValue200( { case SqlDbType.Variant: // Handle variants specifically for v200, since they could contain v200 types metaData = getters.GetVariantType(ordinal); - sink.ProcessMessagesAndThrow(); Debug.Assert(SqlDbType.Variant != metaData.SqlDbType, "Variant-within-variant causes endless recursion!"); result = GetSqlValue200(sink, getters, ordinal, metaData); break; @@ -1152,7 +1149,6 @@ internal static object GetSqlValue( break; case SqlDbType.Variant: metaData = getters.GetVariantType(ordinal); - sink.ProcessMessagesAndThrow(); Debug.Assert(SqlDbType.Variant != metaData.SqlDbType, "Variant-within-variant causes endless recursion!"); result = GetSqlValue(sink, getters, ordinal, metaData); break; @@ -1270,7 +1266,6 @@ internal static long SetBytesLength(SmiEventSink_Default sink, ITypedSettersV3 s } setters.SetBytesLength(ordinal, length); - sink.ProcessMessagesAndThrow(); return length; } @@ -2264,7 +2259,6 @@ private static void SetBytes_FromRecord(SmiEventSink_Default sink, ITypedSetters ) { bytesWritten = setters.SetBytes(ordinal, currentOffset, buffer, 0, checked((int)bytesRead)); - sink.ProcessMessagesAndThrow(); checked { currentOffset += bytesWritten; @@ -2274,7 +2268,6 @@ private static void SetBytes_FromRecord(SmiEventSink_Default sink, ITypedSetters // Make sure to trim any left-over data setters.SetBytesLength(ordinal, currentOffset); - sink.ProcessMessagesAndThrow(); } private static void SetBytes_FromReader(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, DbDataReader reader, int offset) @@ -2299,7 +2292,6 @@ private static void SetBytes_FromReader(SmiEventSink_Default sink, SmiTypedGette ) { bytesWritten = setters.SetBytes(ordinal, currentOffset, buffer, 0, checked((int)bytesRead)); - sink.ProcessMessagesAndThrow(); checked { currentOffset += bytesWritten; @@ -2309,7 +2301,6 @@ private static void SetBytes_FromReader(SmiEventSink_Default sink, SmiTypedGette // Make sure to trim any left-over data (remember to trim at end of offset, not just the amount written setters.SetBytesLength(ordinal, currentOffset); - sink.ProcessMessagesAndThrow(); } private static void SetSqlBytes_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBytes value, int offset) @@ -2370,7 +2361,6 @@ private static void SetChars_FromRecord(SmiEventSink_Default sink, ITypedSetters ) { charsWritten = setters.SetChars(ordinal, currentOffset, buffer, 0, checked((int)charsRead)); - sink.ProcessMessagesAndThrow(); checked { currentOffset += charsWritten; @@ -2380,7 +2370,6 @@ private static void SetChars_FromRecord(SmiEventSink_Default sink, ITypedSetters // Make sure to trim any left-over data setters.SetCharsLength(ordinal, currentOffset); - sink.ProcessMessagesAndThrow(); } // Transfer a character value from a reader when we're not sure which GetXXX method the reader will support. @@ -2439,7 +2428,6 @@ private static void SetChars_FromReader(SmiEventSink_Default sink, SmiTypedGette ) { charsWritten = setters.SetChars(ordinal, currentOffset, buffer, 0, checked((int)charsRead)); - sink.ProcessMessagesAndThrow(); checked { currentOffset += charsWritten; @@ -2449,7 +2437,6 @@ private static void SetChars_FromReader(SmiEventSink_Default sink, SmiTypedGette // Make sure to trim any left-over data (remember to trim at end of offset, not just the amount written setters.SetCharsLength(ordinal, currentOffset); - sink.ProcessMessagesAndThrow(); } private static void SetString_FromReader(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, DbDataReader reader, int offset) @@ -2458,7 +2445,6 @@ private static void SetString_FromReader(SmiEventSink_Default sink, SmiTypedGett int length = CheckXetParameters(metaData.SqlDbType, metaData.MaxLength, value.Length, fieldOffset: 0, bufferLength: NoLengthLimit, bufferOffset: offset, length: NoLengthLimit); setters.SetString(ordinal, value, offset, length); - sink.ProcessMessagesAndThrow(); } private static void SetSqlChars_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlChars value, int offset) @@ -2505,7 +2491,6 @@ private static void SetUdt_LengthChecked(SmiEventSink_Default sink, ITypedSetter if (ADP.IsNull(value)) { setters.SetDBNull(ordinal); - sink.ProcessMessagesAndThrow(); } else { @@ -2820,7 +2805,6 @@ int length private static bool IsDBNull_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) { bool result = getters.IsDBNull(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2829,7 +2813,6 @@ private static bool GetBoolean_Unchecked(SmiEventSink_Default sink, ITypedGetter Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); bool result = getters.GetBoolean(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2838,7 +2821,6 @@ private static byte GetByte_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); byte result = getters.GetByte(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2847,12 +2829,10 @@ private static byte[] GetByteArray_Unchecked(SmiEventSink_Default sink, ITypedGe Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); long length = getters.GetBytesLength(ordinal); - sink.ProcessMessagesAndThrow(); int len = checked((int)length); byte[] buffer = new byte[len]; getters.GetBytes(ordinal, 0, buffer, 0, len); - sink.ProcessMessagesAndThrow(); return buffer; } @@ -2867,7 +2847,6 @@ internal static int GetBytes_Unchecked(SmiEventSink_Default sink, ITypedGettersV Debug.Assert(bufferOffset >= 0 && length >= 0 && bufferOffset + length <= buffer.Length, $"Bad offset or length. bufferOffset: {bufferOffset}, length: {length}, buffer.Length{buffer.Length}"); int result = getters.GetBytes(ordinal, fieldOffset, buffer, bufferOffset, length); - sink.ProcessMessagesAndThrow(); return result; } @@ -2876,7 +2855,6 @@ private static long GetBytesLength_Unchecked(SmiEventSink_Default sink, ITypedGe Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); long result = getters.GetBytesLength(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2885,12 +2863,10 @@ private static char[] GetCharArray_Unchecked(SmiEventSink_Default sink, ITypedGe Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); long length = getters.GetCharsLength(ordinal); - sink.ProcessMessagesAndThrow(); int len = checked((int)length); char[] buffer = new char[len]; getters.GetChars(ordinal, 0, buffer, 0, len); - sink.ProcessMessagesAndThrow(); return buffer; } @@ -2905,7 +2881,6 @@ internal static int GetChars_Unchecked(SmiEventSink_Default sink, ITypedGettersV Debug.Assert(bufferOffset >= 0 && length >= 0 && bufferOffset + length <= buffer.Length, $"Bad offset or length. bufferOffset: {bufferOffset}, length: {length}, buffer.Length{buffer.Length}"); int result = getters.GetChars(ordinal, fieldOffset, buffer, bufferOffset, length); - sink.ProcessMessagesAndThrow(); return result; } @@ -2914,7 +2889,6 @@ private static long GetCharsLength_Unchecked(SmiEventSink_Default sink, ITypedGe Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); long result = getters.GetCharsLength(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2923,7 +2897,6 @@ private static DateTime GetDateTime_Unchecked(SmiEventSink_Default sink, ITypedG Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); DateTime result = getters.GetDateTime(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2932,7 +2905,6 @@ private static DateTimeOffset GetDateTimeOffset_Unchecked(SmiEventSink_Default s Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); DateTimeOffset result = getters.GetDateTimeOffset(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2941,7 +2913,6 @@ private static double GetDouble_Unchecked(SmiEventSink_Default sink, ITypedGette Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); double result = getters.GetDouble(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2950,7 +2921,6 @@ private static Guid GetGuid_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); Guid result = getters.GetGuid(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2959,7 +2929,6 @@ private static short GetInt16_Unchecked(SmiEventSink_Default sink, ITypedGetters Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); short result = getters.GetInt16(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2968,7 +2937,6 @@ private static int GetInt32_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); int result = getters.GetInt32(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2977,7 +2945,6 @@ private static long GetInt64_Unchecked(SmiEventSink_Default sink, ITypedGettersV Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); long result = getters.GetInt64(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -2986,7 +2953,6 @@ private static float GetSingle_Unchecked(SmiEventSink_Default sink, ITypedGetter Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); float result = getters.GetSingle(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -3003,7 +2969,6 @@ private static SqlDecimal GetSqlDecimal_Unchecked(SmiEventSink_Default sink, ITy Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); SqlDecimal result = getters.GetSqlDecimal(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -3012,7 +2977,6 @@ private static SqlMoney GetSqlMoney_Unchecked(SmiEventSink_Default sink, ITypedG Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); long temp = getters.GetInt64(ordinal); - sink.ProcessMessagesAndThrow(); #if NET return SqlMoney.FromTdsValue(temp); #else @@ -3040,7 +3004,6 @@ private static string GetString_Unchecked(SmiEventSink_Default sink, ITypedGette // truncated to 4000 (if length is more than 4000). If MemoryRecordBuffer getter is used, data // is not truncated. Please refer VSDD 479655 for more detailed information regarding the string length. string result = getters.GetString(ordinal); - sink.ProcessMessagesAndThrow(); return result; } @@ -3049,14 +3012,12 @@ private static TimeSpan GetTimeSpan_Unchecked(SmiEventSink_Default sink, SmiType Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); TimeSpan result = getters.GetTimeSpan(ordinal); - sink.ProcessMessagesAndThrow(); return result; } private static void SetBoolean_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, bool value) { setters.SetBoolean(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetByteArray_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, byte[] buffer, int bufferOffset, int length) @@ -3064,10 +3025,8 @@ private static void SetByteArray_Unchecked(SmiEventSink_Default sink, ITypedSett if (length > 0) { setters.SetBytes(ordinal, 0, buffer, bufferOffset, length); - sink.ProcessMessagesAndThrow(); } setters.SetBytesLength(ordinal, length); - sink.ProcessMessagesAndThrow(); } private static void SetStream_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metadata, StreamDataFeed feed) @@ -3093,13 +3052,11 @@ private static void SetStream_Unchecked(SmiEventSink_Default sink, ITypedSetters } setters.SetBytes(ordinal, nWritten, buff, 0, nRead); - sink.ProcessMessagesAndThrow(); nWritten += nRead; } while (len <= 0 || nWritten < len); setters.SetBytesLength(ordinal, nWritten); - sink.ProcessMessagesAndThrow(); } private static void SetTextReader_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metadata, TextDataFeed feed) @@ -3125,25 +3082,21 @@ private static void SetTextReader_Unchecked(SmiEventSink_Default sink, ITypedSet } setters.SetChars(ordinal, nWritten, buff, 0, nRead); - sink.ProcessMessagesAndThrow(); nWritten += nRead; } while (len <= 0 || nWritten < len); setters.SetCharsLength(ordinal, nWritten); - sink.ProcessMessagesAndThrow(); } private static void SetByte_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, byte value) { setters.SetByte(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static int SetBytes_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) { int result = setters.SetBytes(ordinal, fieldOffset, buffer, bufferOffset, length); - sink.ProcessMessagesAndThrow(); return result; } @@ -3152,35 +3105,29 @@ private static void SetCharArray_Unchecked(SmiEventSink_Default sink, ITypedSett if (length > 0) { setters.SetChars(ordinal, 0, buffer, bufferOffset, length); - sink.ProcessMessagesAndThrow(); } setters.SetCharsLength(ordinal, length); - sink.ProcessMessagesAndThrow(); } private static int SetChars_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) { int result = setters.SetChars(ordinal, fieldOffset, buffer, bufferOffset, length); - sink.ProcessMessagesAndThrow(); return result; } private static void SetDBNull_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal) { setters.SetDBNull(ordinal); - sink.ProcessMessagesAndThrow(); } private static void SetDecimal_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, decimal value) { setters.SetSqlDecimal(ordinal, new SqlDecimal(value)); - sink.ProcessMessagesAndThrow(); } private static void SetDateTime_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, DateTime value) { setters.SetDateTime(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetDateTime2_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) @@ -3188,7 +3135,6 @@ private static void SetDateTime2_Unchecked(SmiEventSink_Default sink, ITypedSett Debug.Assert(metaData.SqlDbType == SqlDbType.Variant, "Invalid type. This should be called only when the type is variant."); setters.SetVariantMetaData(ordinal, SmiMetaData.DefaultDateTime2); setters.SetDateTime(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetDate_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) @@ -3196,55 +3142,46 @@ private static void SetDate_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 Debug.Assert(metaData.SqlDbType == SqlDbType.Variant, "Invalid type. This should be called only when the type is variant."); setters.SetVariantMetaData(ordinal, SmiMetaData.DefaultDate); setters.SetDateTime(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetTimeSpan_Unchecked(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, TimeSpan value) { setters.SetTimeSpan(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetDateTimeOffset_Unchecked(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, DateTimeOffset value) { setters.SetDateTimeOffset(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetDouble_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, double value) { setters.SetDouble(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetGuid_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, Guid value) { setters.SetGuid(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetInt16_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, short value) { setters.SetInt16(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetInt32_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, int value) { setters.SetInt32(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetInt64_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, long value) { setters.SetInt64(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetSingle_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, float value) { setters.SetSingle(ordinal, value); - sink.ProcessMessagesAndThrow(); } private static void SetSqlBinary_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlBinary value, int offset, int length) @@ -3257,7 +3194,6 @@ private static void SetSqlBinary_Unchecked(SmiEventSink_Default sink, ITypedSett { SetByteArray_Unchecked(sink, setters, ordinal, value.Value, offset, length); } - sink.ProcessMessagesAndThrow(); } private static void SetSqlBoolean_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlBoolean value) @@ -3270,7 +3206,6 @@ private static void SetSqlBoolean_Unchecked(SmiEventSink_Default sink, ITypedSet { setters.SetBoolean(ordinal, value.Value); } - sink.ProcessMessagesAndThrow(); } private static void SetSqlByte_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlByte value) @@ -3283,7 +3218,6 @@ private static void SetSqlByte_Unchecked(SmiEventSink_Default sink, ITypedSetter { setters.SetByte(ordinal, value.Value); } - sink.ProcessMessagesAndThrow(); } // note: length < 0 indicates write everything @@ -3292,7 +3226,6 @@ private static void SetSqlBytes_Unchecked(SmiEventSink_Default sink, ITypedSette if (value.IsNull) { setters.SetDBNull(ordinal); - sink.ProcessMessagesAndThrow(); } else { @@ -3319,7 +3252,6 @@ private static void SetSqlBytes_Unchecked(SmiEventSink_Default sink, ITypedSette ) { bytesWritten = setters.SetBytes(ordinal, currentOffset, buffer, 0, checked((int)bytesRead)); - sink.ProcessMessagesAndThrow(); checked { currentOffset += bytesWritten; @@ -3332,7 +3264,6 @@ private static void SetSqlBytes_Unchecked(SmiEventSink_Default sink, ITypedSette // Make sure to trim any left-over data setters.SetBytesLength(ordinal, currentOffset); - sink.ProcessMessagesAndThrow(); } } @@ -3341,7 +3272,6 @@ private static void SetSqlChars_Unchecked(SmiEventSink_Default sink, ITypedSette if (value.IsNull) { setters.SetDBNull(ordinal); - sink.ProcessMessagesAndThrow(); } else { @@ -3368,7 +3298,6 @@ private static void SetSqlChars_Unchecked(SmiEventSink_Default sink, ITypedSette ) { charsWritten = setters.SetChars(ordinal, currentOffset, buffer, 0, checked((int)charsRead)); - sink.ProcessMessagesAndThrow(); checked { currentOffset += charsWritten; @@ -3378,7 +3307,6 @@ private static void SetSqlChars_Unchecked(SmiEventSink_Default sink, ITypedSette // Make sure to trim any left-over data setters.SetCharsLength(ordinal, currentOffset); - sink.ProcessMessagesAndThrow(); } } @@ -3392,7 +3320,6 @@ private static void SetSqlDateTime_Unchecked(SmiEventSink_Default sink, ITypedSe { setters.SetDateTime(ordinal, value.Value); } - sink.ProcessMessagesAndThrow(); } private static void SetSqlDecimal_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlDecimal value) @@ -3405,7 +3332,6 @@ private static void SetSqlDecimal_Unchecked(SmiEventSink_Default sink, ITypedSet { setters.SetSqlDecimal(ordinal, value); } - sink.ProcessMessagesAndThrow(); } private static void SetSqlDouble_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlDouble value) @@ -3418,7 +3344,6 @@ private static void SetSqlDouble_Unchecked(SmiEventSink_Default sink, ITypedSett { setters.SetDouble(ordinal, value.Value); } - sink.ProcessMessagesAndThrow(); } private static void SetSqlGuid_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlGuid value) @@ -3431,7 +3356,6 @@ private static void SetSqlGuid_Unchecked(SmiEventSink_Default sink, ITypedSetter { setters.SetGuid(ordinal, value.Value); } - sink.ProcessMessagesAndThrow(); } private static void SetSqlInt16_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlInt16 value) @@ -3444,7 +3368,6 @@ private static void SetSqlInt16_Unchecked(SmiEventSink_Default sink, ITypedSette { setters.SetInt16(ordinal, value.Value); } - sink.ProcessMessagesAndThrow(); } private static void SetSqlInt32_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlInt32 value) @@ -3457,7 +3380,6 @@ private static void SetSqlInt32_Unchecked(SmiEventSink_Default sink, ITypedSette { setters.SetInt32(ordinal, value.Value); } - sink.ProcessMessagesAndThrow(); } private static void SetSqlInt64_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlInt64 value) @@ -3470,7 +3392,6 @@ private static void SetSqlInt64_Unchecked(SmiEventSink_Default sink, ITypedSette { setters.SetInt64(ordinal, value.Value); } - sink.ProcessMessagesAndThrow(); } private static void SetSqlMoney_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlMoney value) @@ -3484,7 +3405,6 @@ private static void SetSqlMoney_Unchecked(SmiEventSink_Default sink, ITypedSette if (metaData.SqlDbType == SqlDbType.Variant) { setters.SetVariantMetaData(ordinal, SmiMetaData.DefaultMoney); - sink.ProcessMessagesAndThrow(); } #if NET @@ -3493,7 +3413,6 @@ private static void SetSqlMoney_Unchecked(SmiEventSink_Default sink, ITypedSette setters.SetInt64(ordinal, SqlTypeWorkarounds.SqlMoneyToSqlInternalRepresentation(value)); #endif } - sink.ProcessMessagesAndThrow(); } private static void SetSqlSingle_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlSingle value) @@ -3506,7 +3425,6 @@ private static void SetSqlSingle_Unchecked(SmiEventSink_Default sink, ITypedSett { setters.SetSingle(ordinal, value.Value); } - sink.ProcessMessagesAndThrow(); } private static void SetSqlString_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlString value, int offset, int length) @@ -3514,7 +3432,6 @@ private static void SetSqlString_Unchecked(SmiEventSink_Default sink, ITypedSett if (value.IsNull) { setters.SetDBNull(ordinal); - sink.ProcessMessagesAndThrow(); } else { @@ -3531,7 +3448,6 @@ private static void SetSqlString_Unchecked(SmiEventSink_Default sink, ITypedSett userDefinedType: null ); setters.SetVariantMetaData(ordinal, metaData); - sink.ProcessMessagesAndThrow(); } SetString_Unchecked(sink, setters, ordinal, value.Value, offset, length); } @@ -3542,7 +3458,6 @@ private static void SetSqlXml_Unchecked(SmiEventSink_Default sink, ITypedSetters if (value.IsNull) { setters.SetDBNull(ordinal); - sink.ProcessMessagesAndThrow(); } else { @@ -3572,13 +3487,11 @@ private static void SetXmlReader_Unchecked(SmiEventSink_Default sink, ITypedSett } xmlWriter.Flush(); } - sink.ProcessMessagesAndThrow(); } private static void SetString_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, string value, int offset, int length) { setters.SetString(ordinal, value, offset, length); - sink.ProcessMessagesAndThrow(); } // Set a DbDataReader to a Structured+MultiValued setter (table type) @@ -3593,19 +3506,16 @@ DbDataReader value { // Get the target gettersetter setters = setters.GetTypedGetterSetter(ordinal); - sink.ProcessMessagesAndThrow(); // Iterate over all rows in the current set of results while (value.Read()) { setters.NewElement(); - sink.ProcessMessagesAndThrow(); FillCompatibleSettersFromReader(sink, setters, metaData.FieldMetaData, value); } setters.EndElements(); - sink.ProcessMessagesAndThrow(); } private static void SetIEnumerableOfSqlDataRecord_Unchecked( @@ -3619,7 +3529,6 @@ ParameterPeekAheadValue peekAhead { // Get target gettersetter setters = setters.GetTypedGetterSetter(ordinal); - sink.ProcessMessagesAndThrow(); IEnumerator enumerator = null; try @@ -3640,7 +3549,6 @@ ParameterPeekAheadValue peekAhead // send the first record that was obtained earlier setters.NewElement(); - sink.ProcessMessagesAndThrow(); FillCompatibleSettersFromRecord(sink, setters, mdFields, peekAhead.FirstRecord, defaults); recordNumber++; } @@ -3652,7 +3560,6 @@ ParameterPeekAheadValue peekAhead while (enumerator.MoveNext()) { setters.NewElement(); - sink.ProcessMessagesAndThrow(); SqlDataRecord record = enumerator.Current; @@ -3674,7 +3581,6 @@ ParameterPeekAheadValue peekAhead } setters.EndElements(); - sink.ProcessMessagesAndThrow(); } finally @@ -3696,7 +3602,6 @@ DataTable value { // Get the target gettersetter setters = setters.GetTypedGetterSetter(ordinal); - sink.ProcessMessagesAndThrow(); // iterate over all records // if first record was obtained earlier, use it prior to pulling more @@ -3708,7 +3613,6 @@ DataTable value foreach (DataRow row in value.Rows) { setters.NewElement(); - sink.ProcessMessagesAndThrow(); // Set all columns in the record for (int i = 0; i < metaData.FieldMetaData.Count; i++) @@ -3737,7 +3641,6 @@ DataTable value } setters.EndElements(); - sink.ProcessMessagesAndThrow(); } // spool a Stream into a scratch stream from the Smi interface and return it as a Stream From 9f37e9329c7b764d2a04ae37833c01dafd0f6924 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Tue, 24 Jun 2025 06:06:31 +0100 Subject: [PATCH 05/11] Remove first pass of SmiEventSink_Default parameters --- .../Data/SqlClient/Server/SmiSettersStream.cs | 11 +- .../Data/SqlClient/Server/SqlDataRecord.cs | 60 +- .../SqlClient/Server/SqlDataRecord.netcore.cs | 4 +- .../SqlClient/Server/SqlDataRecord.netfx.cs | 2 - .../Data/SqlClient/Server/ValueUtilsSmi.cs | 820 +++++++++--------- 5 files changed, 445 insertions(+), 452 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiSettersStream.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiSettersStream.cs index 513d36f942..bd47a9089f 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiSettersStream.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiSettersStream.cs @@ -10,20 +10,17 @@ namespace Microsoft.Data.SqlClient.Server { internal class SmiSettersStream : Stream { - private SmiEventSink_Default _sink; private ITypedSettersV3 _setters; private int _ordinal; private long _lengthWritten; private SmiMetaData _metaData; - internal SmiSettersStream(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData) + internal SmiSettersStream(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData) { - Debug.Assert(sink != null); Debug.Assert(setters != null); Debug.Assert(0 <= ordinal); Debug.Assert(metaData != null); - _sink = sink; _setters = setters; _ordinal = ordinal; _lengthWritten = 0; @@ -77,7 +74,7 @@ public override long Position public override void Flush() { - _lengthWritten = ValueUtilsSmi.SetBytesLength(_sink, _setters, _ordinal, _metaData, _lengthWritten); + _lengthWritten = ValueUtilsSmi.SetBytesLength(_setters, _ordinal, _metaData, _lengthWritten); } public override long Seek(long offset, SeekOrigin origin) @@ -91,7 +88,7 @@ public override void SetLength(long value) { throw ADP.ArgumentOutOfRange(nameof(value)); } - ValueUtilsSmi.SetBytesLength(_sink, _setters, _ordinal, _metaData, value); + ValueUtilsSmi.SetBytesLength(_setters, _ordinal, _metaData, value); } public override int Read(byte[] buffer, int offset, int count) @@ -101,7 +98,7 @@ public override int Read(byte[] buffer, int offset, int count) public override void Write(byte[] buffer, int offset, int count) { - _lengthWritten += ValueUtilsSmi.SetBytes(_sink, _setters, _ordinal, _metaData, _lengthWritten, buffer, offset, count); + _lengthWritten += ValueUtilsSmi.SetBytes(_setters, _ordinal, _metaData, _lengthWritten, buffer, offset, count); } } } diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs index c53e4257e2..53fa58c895 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs @@ -163,7 +163,7 @@ public virtual string GetString(int ordinal) public virtual bool IsDBNull(int ordinal) { ThrowIfInvalidOrdinal(ordinal); - return ValueUtilsSmi.IsDBNull(_eventSink, _recordBuffer, ordinal); + return ValueUtilsSmi.IsDBNull(_recordBuffer, ordinal); } /// @@ -253,42 +253,42 @@ public virtual int GetSqlValues(object[] values) public virtual void SetValue(int ordinal, object value) => SetValueFrameworkSpecific(ordinal, value); /// - public virtual void SetBoolean(int ordinal, bool value) => ValueUtilsSmi.SetBoolean(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetBoolean(int ordinal, bool value) => ValueUtilsSmi.SetBoolean(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetByte(int ordinal, byte value) => ValueUtilsSmi.SetByte(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetByte(int ordinal, byte value) => ValueUtilsSmi.SetByte(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetBytes(int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) => ValueUtilsSmi.SetBytes(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), fieldOffset, buffer, bufferOffset, length); + public virtual void SetBytes(int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) => ValueUtilsSmi.SetBytes(_recordBuffer, ordinal, GetSmiMetaData(ordinal), fieldOffset, buffer, bufferOffset, length); /// public virtual void SetChar(int ordinal, char value) => throw ADP.NotSupported(); /// - public virtual void SetChars(int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) => ValueUtilsSmi.SetChars(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), fieldOffset, buffer, bufferOffset, length); + public virtual void SetChars(int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) => ValueUtilsSmi.SetChars(_recordBuffer, ordinal, GetSmiMetaData(ordinal), fieldOffset, buffer, bufferOffset, length); /// - public virtual void SetInt16(int ordinal, short value) => ValueUtilsSmi.SetInt16(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetInt16(int ordinal, short value) => ValueUtilsSmi.SetInt16(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetInt32(int ordinal, int value) => ValueUtilsSmi.SetInt32(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetInt32(int ordinal, int value) => ValueUtilsSmi.SetInt32(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetInt64(int ordinal, long value) => ValueUtilsSmi.SetInt64(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetInt64(int ordinal, long value) => ValueUtilsSmi.SetInt64(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetFloat(int ordinal, float value) => ValueUtilsSmi.SetSingle(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetFloat(int ordinal, float value) => ValueUtilsSmi.SetSingle(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetDouble(int ordinal, double value) => ValueUtilsSmi.SetDouble(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetDouble(int ordinal, double value) => ValueUtilsSmi.SetDouble(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetString(int ordinal, string value) => ValueUtilsSmi.SetString(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetString(int ordinal, string value) => ValueUtilsSmi.SetString(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetDecimal(int ordinal, decimal value) => ValueUtilsSmi.SetDecimal(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetDecimal(int ordinal, decimal value) => ValueUtilsSmi.SetDecimal(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetDateTime(int ordinal, DateTime value) => ValueUtilsSmi.SetDateTime(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetDateTime(int ordinal, DateTime value) => ValueUtilsSmi.SetDateTime(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// public virtual void SetTimeSpan(int ordinal, TimeSpan value) => SetTimeSpanFrameworkSpecific(ordinal, value); @@ -300,59 +300,59 @@ public virtual int GetSqlValues(object[] values) public virtual void SetDBNull(int ordinal) { ThrowIfInvalidOrdinal(ordinal); - ValueUtilsSmi.SetDBNull(_eventSink, _recordBuffer, ordinal); + ValueUtilsSmi.SetDBNull(_recordBuffer, ordinal); } /// - public virtual void SetGuid(int ordinal, Guid value) => ValueUtilsSmi.SetGuid(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetGuid(int ordinal, Guid value) => ValueUtilsSmi.SetGuid(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlBoolean(int ordinal, SqlBoolean value) => ValueUtilsSmi.SetSqlBoolean(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlBoolean(int ordinal, SqlBoolean value) => ValueUtilsSmi.SetSqlBoolean(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlByte(int ordinal, SqlByte value) => ValueUtilsSmi.SetSqlByte(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlByte(int ordinal, SqlByte value) => ValueUtilsSmi.SetSqlByte(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlInt16(int ordinal, SqlInt16 value) => ValueUtilsSmi.SetSqlInt16(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlInt16(int ordinal, SqlInt16 value) => ValueUtilsSmi.SetSqlInt16(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlInt32(int ordinal, SqlInt32 value) => ValueUtilsSmi.SetSqlInt32(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlInt32(int ordinal, SqlInt32 value) => ValueUtilsSmi.SetSqlInt32(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlInt64(int ordinal, SqlInt64 value) => ValueUtilsSmi.SetSqlInt64(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlInt64(int ordinal, SqlInt64 value) => ValueUtilsSmi.SetSqlInt64(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlSingle(int ordinal, SqlSingle value) => ValueUtilsSmi.SetSqlSingle(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlSingle(int ordinal, SqlSingle value) => ValueUtilsSmi.SetSqlSingle(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlDouble(int ordinal, SqlDouble value) => ValueUtilsSmi.SetSqlDouble(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlDouble(int ordinal, SqlDouble value) => ValueUtilsSmi.SetSqlDouble(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlMoney(int ordinal, SqlMoney value) => ValueUtilsSmi.SetSqlMoney(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlMoney(int ordinal, SqlMoney value) => ValueUtilsSmi.SetSqlMoney(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlDateTime(int ordinal, SqlDateTime value) => ValueUtilsSmi.SetSqlDateTime(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlDateTime(int ordinal, SqlDateTime value) => ValueUtilsSmi.SetSqlDateTime(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// public virtual void SetSqlXml(int ordinal, SqlXml value) => ValueUtilsSmi.SetSqlXml(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlDecimal(int ordinal, SqlDecimal value) => ValueUtilsSmi.SetSqlDecimal(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlDecimal(int ordinal, SqlDecimal value) => ValueUtilsSmi.SetSqlDecimal(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlString(int ordinal, SqlString value) => ValueUtilsSmi.SetSqlString(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlString(int ordinal, SqlString value) => ValueUtilsSmi.SetSqlString(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlBinary(int ordinal, SqlBinary value) => ValueUtilsSmi.SetSqlBinary(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlBinary(int ordinal, SqlBinary value) => ValueUtilsSmi.SetSqlBinary(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlGuid(int ordinal, SqlGuid value) => ValueUtilsSmi.SetSqlGuid(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlGuid(int ordinal, SqlGuid value) => ValueUtilsSmi.SetSqlGuid(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlChars(int ordinal, SqlChars value) => ValueUtilsSmi.SetSqlChars(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlChars(int ordinal, SqlChars value) => ValueUtilsSmi.SetSqlChars(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlBytes(int ordinal, SqlBytes value) => ValueUtilsSmi.SetSqlBytes(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlBytes(int ordinal, SqlBytes value) => ValueUtilsSmi.SetSqlBytes(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); // SqlDataRecord public API /// diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs index 7864d2eae4..ffb6764b58 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs @@ -88,10 +88,10 @@ private void SetValueFrameworkSpecific(int ordinal, object value) } private void SetTimeSpanFrameworkSpecific(int ordinal, TimeSpan value) - => ValueUtilsSmi.SetTimeSpan(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + => ValueUtilsSmi.SetTimeSpan(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); private void SetDateTimeOffsetFrameworkSpecific(int ordinal, DateTimeOffset value) - => ValueUtilsSmi.SetDateTimeOffset(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + => ValueUtilsSmi.SetDateTimeOffset(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); } } diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs index b238f4d6fe..a2f0f3938c 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs @@ -117,7 +117,6 @@ private void SetValueFrameworkSpecific(int ordinal, object value) private void SetTimeSpanFrameworkSpecific(int ordinal, TimeSpan value) => ValueUtilsSmi.SetTimeSpan( - _eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), @@ -126,7 +125,6 @@ private void SetTimeSpanFrameworkSpecific(int ordinal, TimeSpan value) => private void SetDateTimeOffsetFrameworkSpecific(int ordinal, DateTimeOffset value) => ValueUtilsSmi.SetDateTimeOffset( - _eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs index 6bff901dda..aa86b72821 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs @@ -51,17 +51,17 @@ internal static class ValueUtilsSmi // 1) go directly to the source for the requested type if possible // 2) instantiate the value based on the stored type (GetValue), then ask the Clr // to convert. - internal static bool IsDBNull(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + internal static bool IsDBNull(ITypedGettersV3 getters, int ordinal) { - return IsDBNull_Unchecked(sink, getters, ordinal); + return IsDBNull_Unchecked(getters, ordinal); } internal static bool GetBoolean(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Boolean)) { - return GetBoolean_Unchecked(sink, getters, ordinal); + return GetBoolean_Unchecked(getters, ordinal); } object result = GetValue(sink, getters, ordinal, metaData); @@ -74,10 +74,10 @@ internal static bool GetBoolean(SmiEventSink_Default sink, ITypedGettersV3 gette internal static byte GetByte(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Byte)) { - return GetByte_Unchecked(sink, getters, ordinal); + return GetByte_Unchecked(getters, ordinal); } object result = GetValue(sink, getters, ordinal, metaData); if (result == null) @@ -148,7 +148,7 @@ internal static long GetBytesInternal(SmiEventSink_Default sink, ITypedGettersV3 { if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.ByteArray)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { if (throwOnNull) { @@ -163,7 +163,7 @@ internal static long GetBytesInternal(SmiEventSink_Default sink, ITypedGettersV3 return 0; } } - long actualLength = GetBytesLength_Unchecked(sink, getters, ordinal); + long actualLength = GetBytesLength_Unchecked(getters, ordinal); if (buffer == null) { return actualLength; @@ -181,7 +181,7 @@ internal static long GetBytesInternal(SmiEventSink_Default sink, ITypedGettersV3 Debug.Assert(length >= 0, "Invalid CheckXetParameters return length!"); if (length > 0) { - length = GetBytes_Unchecked(sink, getters, ordinal, fieldOffset, buffer, bufferOffset, length); + length = GetBytes_Unchecked(getters, ordinal, fieldOffset, buffer, bufferOffset, length); } return length; } @@ -191,10 +191,10 @@ internal static long GetBytesInternal(SmiEventSink_Default sink, ITypedGettersV3 internal static long GetChars(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData, long fieldOffset, char[] buffer, int bufferOffset, int length) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.CharArray)) { - long actualLength = GetCharsLength_Unchecked(sink, getters, ordinal); + long actualLength = GetCharsLength_Unchecked(getters, ordinal); if (buffer == null) { return actualLength; @@ -203,7 +203,7 @@ internal static long GetChars(SmiEventSink_Default sink, ITypedGettersV3 getters Debug.Assert(length >= 0, "Buffer.Length was invalid!"); if (length > 0) { - length = GetChars_Unchecked(sink, getters, ordinal, fieldOffset, buffer, bufferOffset, length); + length = GetChars_Unchecked(getters, ordinal, fieldOffset, buffer, bufferOffset, length); } return length; } @@ -226,10 +226,10 @@ internal static long GetChars(SmiEventSink_Default sink, ITypedGettersV3 getters internal static DateTime GetDateTime(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.DateTime)) { - return GetDateTime_Unchecked(sink, getters, ordinal); + return GetDateTime_Unchecked(getters, ordinal); } object result = GetValue(sink, getters, ordinal, metaData); if (result == null) @@ -242,20 +242,20 @@ internal static DateTime GetDateTime(SmiEventSink_Default sink, ITypedGettersV3 // dealing with v200 SMI internal static DateTimeOffset GetDateTimeOffset(SmiEventSink_Default sink, SmiTypedGetterSetter getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.DateTimeOffset)) { - return GetDateTimeOffset_Unchecked(sink, getters, ordinal); + return GetDateTimeOffset_Unchecked(getters, ordinal); } return (DateTimeOffset)GetValue200(sink, getters, ordinal, metaData); } internal static decimal GetDecimal(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Decimal)) { - return GetDecimal_PossiblyMoney(sink, getters, ordinal, metaData); + return GetDecimal_PossiblyMoney(getters, ordinal, metaData); } object result = GetValue(sink, getters, ordinal, metaData); if (result == null) @@ -267,10 +267,10 @@ internal static decimal GetDecimal(SmiEventSink_Default sink, ITypedGettersV3 ge internal static double GetDouble(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Double)) { - return GetDouble_Unchecked(sink, getters, ordinal); + return GetDouble_Unchecked(getters, ordinal); } object result = GetValue(sink, getters, ordinal, metaData); if (result == null) @@ -282,10 +282,10 @@ internal static double GetDouble(SmiEventSink_Default sink, ITypedGettersV3 gett internal static Guid GetGuid(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Guid)) { - return GetGuid_Unchecked(sink, getters, ordinal); + return GetGuid_Unchecked(getters, ordinal); } object result = GetValue(sink, getters, ordinal, metaData); if (result == null) @@ -297,10 +297,10 @@ internal static Guid GetGuid(SmiEventSink_Default sink, ITypedGettersV3 getters, internal static short GetInt16(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Int16)) { - return GetInt16_Unchecked(sink, getters, ordinal); + return GetInt16_Unchecked(getters, ordinal); } object obj = GetValue(sink, getters, ordinal, metaData); if (obj == null) @@ -312,10 +312,10 @@ internal static short GetInt16(SmiEventSink_Default sink, ITypedGettersV3 getter internal static int GetInt32(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Int32)) { - return GetInt32_Unchecked(sink, getters, ordinal); + return GetInt32_Unchecked(getters, ordinal); } object result = GetValue(sink, getters, ordinal, metaData); if (result == null) @@ -327,10 +327,10 @@ internal static int GetInt32(SmiEventSink_Default sink, ITypedGettersV3 getters, internal static long GetInt64(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Int64)) { - return GetInt64_Unchecked(sink, getters, ordinal); + return GetInt64_Unchecked(getters, ordinal); } object result = GetValue(sink, getters, ordinal, metaData); if (result == null) @@ -342,10 +342,10 @@ internal static long GetInt64(SmiEventSink_Default sink, ITypedGettersV3 getters internal static float GetSingle(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Single)) { - return GetSingle_Unchecked(sink, getters, ordinal); + return GetSingle_Unchecked(getters, ordinal); } object result = GetValue(sink, getters, ordinal, metaData); if (result == null) @@ -359,11 +359,11 @@ internal static SqlBinary GetSqlBinary(SmiEventSink_Default sink, ITypedGettersV { if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlBinary)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { return SqlBinary.Null; } - return GetSqlBinary_Unchecked(sink, getters, ordinal); + return GetSqlBinary_Unchecked(getters, ordinal); } object result = GetSqlValue(sink, getters, ordinal, metaData); if (result == null) @@ -377,11 +377,11 @@ internal static SqlBoolean GetSqlBoolean(SmiEventSink_Default sink, ITypedGetter { if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlBoolean)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { return SqlBoolean.Null; } - return new SqlBoolean(GetBoolean_Unchecked(sink, getters, ordinal)); + return new SqlBoolean(GetBoolean_Unchecked(getters, ordinal)); } object result = GetSqlValue(sink, getters, ordinal, metaData); if (result == null) @@ -395,11 +395,11 @@ internal static SqlByte GetSqlByte(SmiEventSink_Default sink, ITypedGettersV3 ge { if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlByte)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { return SqlByte.Null; } - return new SqlByte(GetByte_Unchecked(sink, getters, ordinal)); + return new SqlByte(GetByte_Unchecked(getters, ordinal)); } object result = GetSqlValue(sink, getters, ordinal, metaData); if (result == null) @@ -418,16 +418,16 @@ internal static SqlBytes GetSqlBytes( SqlBytes result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlBytes)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlBytes.Null; } else { - long length = GetBytesLength_Unchecked(sink, getters, ordinal); + long length = GetBytesLength_Unchecked(getters, ordinal); if (length >= 0 && length < MaxByteChunkSize) { - byte[] byteBuffer = GetByteArray_Unchecked(sink, getters, ordinal); + byte[] byteBuffer = GetByteArray_Unchecked(getters, ordinal); result = new SqlBytes(byteBuffer); } else @@ -468,13 +468,13 @@ internal static SqlChars GetSqlChars( SqlChars result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlChars)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlChars.Null; } else { - char[] charBuffer = GetCharArray_Unchecked(sink, getters, ordinal); + char[] charBuffer = GetCharArray_Unchecked(getters, ordinal); result = new SqlChars(charBuffer); } } @@ -522,13 +522,13 @@ internal static SqlDateTime GetSqlDateTime(SmiEventSink_Default sink, ITypedGett SqlDateTime result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlDateTime)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlDateTime.Null; } else { - DateTime temp = GetDateTime_Unchecked(sink, getters, ordinal); + DateTime temp = GetDateTime_Unchecked(getters, ordinal); result = new SqlDateTime(temp); } } @@ -550,13 +550,13 @@ internal static SqlDecimal GetSqlDecimal(SmiEventSink_Default sink, ITypedGetter SqlDecimal result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlDecimal)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlDecimal.Null; } else { - result = GetSqlDecimal_Unchecked(sink, getters, ordinal); + result = GetSqlDecimal_Unchecked(getters, ordinal); } } else @@ -577,13 +577,13 @@ internal static SqlDouble GetSqlDouble(SmiEventSink_Default sink, ITypedGettersV SqlDouble result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlDouble)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlDouble.Null; } else { - double temp = GetDouble_Unchecked(sink, getters, ordinal); + double temp = GetDouble_Unchecked(getters, ordinal); result = new SqlDouble(temp); } } @@ -605,13 +605,13 @@ internal static SqlGuid GetSqlGuid(SmiEventSink_Default sink, ITypedGettersV3 ge SqlGuid result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlGuid)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlGuid.Null; } else { - Guid temp = GetGuid_Unchecked(sink, getters, ordinal); + Guid temp = GetGuid_Unchecked(getters, ordinal); result = new SqlGuid(temp); } } @@ -633,13 +633,13 @@ internal static SqlInt16 GetSqlInt16(SmiEventSink_Default sink, ITypedGettersV3 SqlInt16 result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlInt16)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlInt16.Null; } else { - short temp = GetInt16_Unchecked(sink, getters, ordinal); + short temp = GetInt16_Unchecked(getters, ordinal); result = new SqlInt16(temp); } } @@ -661,13 +661,13 @@ internal static SqlInt32 GetSqlInt32(SmiEventSink_Default sink, ITypedGettersV3 SqlInt32 result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlInt32)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlInt32.Null; } else { - int temp = GetInt32_Unchecked(sink, getters, ordinal); + int temp = GetInt32_Unchecked(getters, ordinal); result = new SqlInt32(temp); } } @@ -688,13 +688,13 @@ internal static SqlInt64 GetSqlInt64(SmiEventSink_Default sink, ITypedGettersV3 SqlInt64 result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlInt64)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlInt64.Null; } else { - long temp = GetInt64_Unchecked(sink, getters, ordinal); + long temp = GetInt64_Unchecked(getters, ordinal); result = new SqlInt64(temp); } } @@ -716,13 +716,13 @@ internal static SqlMoney GetSqlMoney(SmiEventSink_Default sink, ITypedGettersV3 SqlMoney result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlMoney)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlMoney.Null; } else { - result = GetSqlMoney_Unchecked(sink, getters, ordinal); + result = GetSqlMoney_Unchecked(getters, ordinal); } } else @@ -743,13 +743,13 @@ internal static SqlSingle GetSqlSingle(SmiEventSink_Default sink, ITypedGettersV SqlSingle result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlSingle)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlSingle.Null; } else { - float temp = GetSingle_Unchecked(sink, getters, ordinal); + float temp = GetSingle_Unchecked(getters, ordinal); result = new SqlSingle(temp); } } @@ -771,13 +771,13 @@ internal static SqlString GetSqlString(SmiEventSink_Default sink, ITypedGettersV SqlString result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlString)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlString.Null; } else { - string temp = GetString_Unchecked(sink, getters, ordinal); + string temp = GetString_Unchecked(getters, ordinal); result = new SqlString(temp); } } @@ -816,7 +816,7 @@ internal static SqlXml GetSqlXml( SqlXml result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlXml)) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = SqlXml.Null; } @@ -840,10 +840,10 @@ internal static SqlXml GetSqlXml( internal static string GetString(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.String)) { - return GetString_Unchecked(sink, getters, ordinal); + return GetString_Unchecked(getters, ordinal); } object obj = GetValue(sink, getters, ordinal, metaData); if (obj == null) @@ -856,10 +856,10 @@ internal static string GetString(SmiEventSink_Default sink, ITypedGettersV3 gett // dealing with v200 SMI internal static TimeSpan GetTimeSpan(SmiEventSink_Default sink, SmiTypedGetterSetter getters, int ordinal, SmiMetaData metaData) { - ThrowIfITypedGettersIsNull(sink, getters, ordinal); + ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.TimeSpan)) { - return GetTimeSpan_Unchecked(sink, getters, ordinal); + return GetTimeSpan_Unchecked(getters, ordinal); } return (TimeSpan)GetValue200(sink, getters, ordinal, metaData); } @@ -872,7 +872,7 @@ internal static object GetValue200( SmiMetaData metaData) { object result; - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = DBNull.Value; } @@ -887,13 +887,13 @@ internal static object GetValue200( break; case SqlDbType.Date: case SqlDbType.DateTime2: - result = GetDateTime_Unchecked(sink, getters, ordinal); + result = GetDateTime_Unchecked(getters, ordinal); break; case SqlDbType.Time: - result = GetTimeSpan_Unchecked(sink, getters, ordinal); + result = GetTimeSpan_Unchecked(getters, ordinal); break; case SqlDbType.DateTimeOffset: - result = GetDateTimeOffset_Unchecked(sink, getters, ordinal); + result = GetDateTimeOffset_Unchecked(getters, ordinal); break; default: result = GetValue(sink, getters, ordinal, metaData); @@ -914,7 +914,7 @@ internal static object GetValue( SmiMetaData metaData) { object result = null; - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { result = DBNull.Value; } @@ -923,73 +923,73 @@ internal static object GetValue( switch (metaData.SqlDbType) { case SqlDbType.BigInt: - result = GetInt64_Unchecked(sink, getters, ordinal); + result = GetInt64_Unchecked(getters, ordinal); break; case SqlDbType.Binary: - result = GetByteArray_Unchecked(sink, getters, ordinal); + result = GetByteArray_Unchecked(getters, ordinal); break; case SqlDbType.Bit: - result = GetBoolean_Unchecked(sink, getters, ordinal); + result = GetBoolean_Unchecked(getters, ordinal); break; case SqlDbType.Char: - result = GetString_Unchecked(sink, getters, ordinal); + result = GetString_Unchecked(getters, ordinal); break; case SqlDbType.DateTime: - result = GetDateTime_Unchecked(sink, getters, ordinal); + result = GetDateTime_Unchecked(getters, ordinal); break; case SqlDbType.Decimal: - result = GetSqlDecimal_Unchecked(sink, getters, ordinal).Value; + result = GetSqlDecimal_Unchecked(getters, ordinal).Value; break; case SqlDbType.Float: - result = GetDouble_Unchecked(sink, getters, ordinal); + result = GetDouble_Unchecked(getters, ordinal); break; case SqlDbType.Image: - result = GetByteArray_Unchecked(sink, getters, ordinal); + result = GetByteArray_Unchecked(getters, ordinal); break; case SqlDbType.Int: - result = GetInt32_Unchecked(sink, getters, ordinal); + result = GetInt32_Unchecked(getters, ordinal); break; case SqlDbType.Money: - result = GetSqlMoney_Unchecked(sink, getters, ordinal).Value; + result = GetSqlMoney_Unchecked(getters, ordinal).Value; break; case SqlDbType.NChar: - result = GetString_Unchecked(sink, getters, ordinal); + result = GetString_Unchecked(getters, ordinal); break; case SqlDbType.NText: - result = GetString_Unchecked(sink, getters, ordinal); + result = GetString_Unchecked(getters, ordinal); break; case SqlDbType.NVarChar: - result = GetString_Unchecked(sink, getters, ordinal); + result = GetString_Unchecked(getters, ordinal); break; case SqlDbType.Real: - result = GetSingle_Unchecked(sink, getters, ordinal); + result = GetSingle_Unchecked(getters, ordinal); break; case SqlDbType.UniqueIdentifier: - result = GetGuid_Unchecked(sink, getters, ordinal); + result = GetGuid_Unchecked(getters, ordinal); break; case SqlDbType.SmallDateTime: - result = GetDateTime_Unchecked(sink, getters, ordinal); + result = GetDateTime_Unchecked(getters, ordinal); break; case SqlDbType.SmallInt: - result = GetInt16_Unchecked(sink, getters, ordinal); + result = GetInt16_Unchecked(getters, ordinal); break; case SqlDbType.SmallMoney: - result = GetSqlMoney_Unchecked(sink, getters, ordinal).Value; + result = GetSqlMoney_Unchecked(getters, ordinal).Value; break; case SqlDbType.Text: - result = GetString_Unchecked(sink, getters, ordinal); + result = GetString_Unchecked(getters, ordinal); break; case SqlDbType.Timestamp: - result = GetByteArray_Unchecked(sink, getters, ordinal); + result = GetByteArray_Unchecked(getters, ordinal); break; case SqlDbType.TinyInt: - result = GetByte_Unchecked(sink, getters, ordinal); + result = GetByte_Unchecked(getters, ordinal); break; case SqlDbType.VarBinary: - result = GetByteArray_Unchecked(sink, getters, ordinal); + result = GetByteArray_Unchecked(getters, ordinal); break; case SqlDbType.VarChar: - result = GetString_Unchecked(sink, getters, ordinal); + result = GetString_Unchecked(getters, ordinal); break; case SqlDbType.Variant: metaData = getters.GetVariantType(ordinal); @@ -1016,7 +1016,7 @@ internal static object GetSqlValue200( SmiMetaData metaData) { object result; - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { if (metaData.SqlDbType == SqlDbType.Udt) { @@ -1038,13 +1038,13 @@ internal static object GetSqlValue200( break; case SqlDbType.Date: case SqlDbType.DateTime2: - result = GetDateTime_Unchecked(sink, getters, ordinal); + result = GetDateTime_Unchecked(getters, ordinal); break; case SqlDbType.Time: - result = GetTimeSpan_Unchecked(sink, getters, ordinal); + result = GetTimeSpan_Unchecked(getters, ordinal); break; case SqlDbType.DateTimeOffset: - result = GetDateTimeOffset_Unchecked(sink, getters, ordinal); + result = GetDateTimeOffset_Unchecked(getters, ordinal); break; default: result = GetSqlValue(sink, getters, ordinal, metaData); @@ -1063,7 +1063,7 @@ internal static object GetSqlValue( SmiMetaData metaData) { object result = null; - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { if ( metaData.SqlDbType ==SqlDbType.Udt) { @@ -1079,73 +1079,73 @@ internal static object GetSqlValue( switch (metaData.SqlDbType) { case SqlDbType.BigInt: - result = new SqlInt64(GetInt64_Unchecked(sink, getters, ordinal)); + result = new SqlInt64(GetInt64_Unchecked(getters, ordinal)); break; case SqlDbType.Binary: - result = GetSqlBinary_Unchecked(sink, getters, ordinal); + result = GetSqlBinary_Unchecked(getters, ordinal); break; case SqlDbType.Bit: - result = new SqlBoolean(GetBoolean_Unchecked(sink, getters, ordinal)); + result = new SqlBoolean(GetBoolean_Unchecked(getters, ordinal)); break; case SqlDbType.Char: - result = new SqlString(GetString_Unchecked(sink, getters, ordinal)); + result = new SqlString(GetString_Unchecked(getters, ordinal)); break; case SqlDbType.DateTime: - result = new SqlDateTime(GetDateTime_Unchecked(sink, getters, ordinal)); + result = new SqlDateTime(GetDateTime_Unchecked(getters, ordinal)); break; case SqlDbType.Decimal: - result = GetSqlDecimal_Unchecked(sink, getters, ordinal); + result = GetSqlDecimal_Unchecked(getters, ordinal); break; case SqlDbType.Float: - result = new SqlDouble(GetDouble_Unchecked(sink, getters, ordinal)); + result = new SqlDouble(GetDouble_Unchecked(getters, ordinal)); break; case SqlDbType.Image: - result = GetSqlBinary_Unchecked(sink, getters, ordinal); + result = GetSqlBinary_Unchecked(getters, ordinal); break; case SqlDbType.Int: - result = new SqlInt32(GetInt32_Unchecked(sink, getters, ordinal)); + result = new SqlInt32(GetInt32_Unchecked(getters, ordinal)); break; case SqlDbType.Money: - result = GetSqlMoney_Unchecked(sink, getters, ordinal); + result = GetSqlMoney_Unchecked(getters, ordinal); break; case SqlDbType.NChar: - result = new SqlString(GetString_Unchecked(sink, getters, ordinal)); + result = new SqlString(GetString_Unchecked(getters, ordinal)); break; case SqlDbType.NText: - result = new SqlString(GetString_Unchecked(sink, getters, ordinal)); + result = new SqlString(GetString_Unchecked(getters, ordinal)); break; case SqlDbType.NVarChar: - result = new SqlString(GetString_Unchecked(sink, getters, ordinal)); + result = new SqlString(GetString_Unchecked(getters, ordinal)); break; case SqlDbType.Real: - result = new SqlSingle(GetSingle_Unchecked(sink, getters, ordinal)); + result = new SqlSingle(GetSingle_Unchecked(getters, ordinal)); break; case SqlDbType.UniqueIdentifier: - result = new SqlGuid(GetGuid_Unchecked(sink, getters, ordinal)); + result = new SqlGuid(GetGuid_Unchecked(getters, ordinal)); break; case SqlDbType.SmallDateTime: - result = new SqlDateTime(GetDateTime_Unchecked(sink, getters, ordinal)); + result = new SqlDateTime(GetDateTime_Unchecked(getters, ordinal)); break; case SqlDbType.SmallInt: - result = new SqlInt16(GetInt16_Unchecked(sink, getters, ordinal)); + result = new SqlInt16(GetInt16_Unchecked(getters, ordinal)); break; case SqlDbType.SmallMoney: - result = GetSqlMoney_Unchecked(sink, getters, ordinal); + result = GetSqlMoney_Unchecked(getters, ordinal); break; case SqlDbType.Text: - result = new SqlString(GetString_Unchecked(sink, getters, ordinal)); + result = new SqlString(GetString_Unchecked(getters, ordinal)); break; case SqlDbType.Timestamp: - result = GetSqlBinary_Unchecked(sink, getters, ordinal); + result = GetSqlBinary_Unchecked(getters, ordinal); break; case SqlDbType.TinyInt: - result = new SqlByte(GetByte_Unchecked(sink, getters, ordinal)); + result = new SqlByte(GetByte_Unchecked(getters, ordinal)); break; case SqlDbType.VarBinary: - result = GetSqlBinary_Unchecked(sink, getters, ordinal); + result = GetSqlBinary_Unchecked(getters, ordinal); break; case SqlDbType.VarChar: - result = new SqlString(GetString_Unchecked(sink, getters, ordinal)); + result = new SqlString(GetString_Unchecked(getters, ordinal)); break; case SqlDbType.Variant: metaData = getters.GetVariantType(ordinal); @@ -1213,24 +1213,24 @@ internal static object NullUdtInstance(SmiMetaData metaData) // Strongly-typed setters are a bit simpler than their corresponding getters. // 1) check to make sure the type is compatible (exception if not) // 2) push the data - internal static void SetDBNull(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal) + internal static void SetDBNull(ITypedSettersV3 setters, int ordinal) { - SetDBNull_Unchecked(sink, setters, ordinal); + SetDBNull_Unchecked(setters, ordinal); } - internal static void SetBoolean(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, bool value) + internal static void SetBoolean(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, bool value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.Boolean); - SetBoolean_Unchecked(sink, setters, ordinal, value); + SetBoolean_Unchecked(setters, ordinal, value); } - internal static void SetByte(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, byte value) + internal static void SetByte(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, byte value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.Byte); - SetByte_Unchecked(sink, setters, ordinal, value); + SetByte_Unchecked(setters, ordinal, value); } - internal static long SetBytes(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, long fieldOffset, byte[] buffer, int bufferOffset, int length) + internal static long SetBytes(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, long fieldOffset, byte[] buffer, int bufferOffset, int length) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.ByteArray); if (buffer == null) @@ -1248,10 +1248,10 @@ internal static long SetBytes(SmiEventSink_Default sink, ITypedSettersV3 setters fieldOffset = 0; bufferOffset = 0; } - return SetBytes_Unchecked(sink, setters, ordinal, fieldOffset, buffer, bufferOffset, length); + return SetBytes_Unchecked(setters, ordinal, fieldOffset, buffer, bufferOffset, length); } - internal static long SetBytesLength(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, long length) + internal static long SetBytesLength(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, long length) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.ByteArray); @@ -1270,7 +1270,7 @@ internal static long SetBytesLength(SmiEventSink_Default sink, ITypedSettersV3 s return length; } - internal static long SetChars(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, long fieldOffset, char[] buffer, int bufferOffset, int length) + internal static long SetChars(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, long fieldOffset, char[] buffer, int bufferOffset, int length) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.CharArray); if (buffer == null) @@ -1288,156 +1288,156 @@ internal static long SetChars(SmiEventSink_Default sink, ITypedSettersV3 setters fieldOffset = 0; bufferOffset = 0; } - return SetChars_Unchecked(sink, setters, ordinal, fieldOffset, buffer, bufferOffset, length); + return SetChars_Unchecked(setters, ordinal, fieldOffset, buffer, bufferOffset, length); } - internal static void SetDateTime(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) + internal static void SetDateTime(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.DateTime); - SetDateTime_Checked(sink, setters, ordinal, metaData, value); + SetDateTime_Checked(setters, ordinal, metaData, value); } - internal static void SetDateTimeOffset(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTimeOffset value, bool settersSupport2008DateTime = true) + internal static void SetDateTimeOffset(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTimeOffset value, bool settersSupport2008DateTime = true) { if (!settersSupport2008DateTime) { throw ADP.InvalidCast(); } ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.DateTimeOffset); - SetDateTimeOffset_Unchecked(sink, (SmiTypedGetterSetter)setters, ordinal, value); + SetDateTimeOffset_Unchecked((SmiTypedGetterSetter)setters, ordinal, value); } - internal static void SetDecimal(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, decimal value) + internal static void SetDecimal(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, decimal value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.Decimal); - SetDecimal_PossiblyMoney(sink, setters, ordinal, metaData, value); + SetDecimal_PossiblyMoney(setters, ordinal, metaData, value); } - internal static void SetDouble(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, double value) + internal static void SetDouble(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, double value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.Double); - SetDouble_Unchecked(sink, setters, ordinal, value); + SetDouble_Unchecked(setters, ordinal, value); } - internal static void SetGuid(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, Guid value) + internal static void SetGuid(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, Guid value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.Guid); - SetGuid_Unchecked(sink, setters, ordinal, value); + SetGuid_Unchecked(setters, ordinal, value); } - internal static void SetInt16(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, short value) + internal static void SetInt16(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, short value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.Int16); - SetInt16_Unchecked(sink, setters, ordinal, value); + SetInt16_Unchecked(setters, ordinal, value); } - internal static void SetInt32(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, int value) + internal static void SetInt32(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, int value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.Int32); - SetInt32_Unchecked(sink, setters, ordinal, value); + SetInt32_Unchecked(setters, ordinal, value); } - internal static void SetInt64(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, long value) + internal static void SetInt64(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, long value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.Int64); - SetInt64_Unchecked(sink, setters, ordinal, value); + SetInt64_Unchecked(setters, ordinal, value); } - internal static void SetSingle(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, float value) + internal static void SetSingle(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, float value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.Single); - SetSingle_Unchecked(sink, setters, ordinal, value); + SetSingle_Unchecked(setters, ordinal, value); } - internal static void SetSqlBinary(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBinary value) + internal static void SetSqlBinary(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBinary value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlBinary); - SetSqlBinary_LengthChecked(sink, setters, ordinal, metaData, value, 0); + SetSqlBinary_LengthChecked(setters, ordinal, metaData, value, 0); } - internal static void SetSqlBoolean(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBoolean value) + internal static void SetSqlBoolean(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBoolean value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlBoolean); - SetSqlBoolean_Unchecked(sink, setters, ordinal, value); + SetSqlBoolean_Unchecked(setters, ordinal, value); } - internal static void SetSqlByte(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlByte value) + internal static void SetSqlByte(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlByte value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlByte); - SetSqlByte_Unchecked(sink, setters, ordinal, value); + SetSqlByte_Unchecked(setters, ordinal, value); } - internal static void SetSqlBytes(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBytes value) + internal static void SetSqlBytes(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBytes value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlBytes); - SetSqlBytes_LengthChecked(sink, setters, ordinal, metaData, value, 0); + SetSqlBytes_LengthChecked(setters, ordinal, metaData, value, 0); } - internal static void SetSqlChars(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlChars value) + internal static void SetSqlChars(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlChars value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlChars); - SetSqlChars_LengthChecked(sink, setters, ordinal, metaData, value, 0); + SetSqlChars_LengthChecked(setters, ordinal, metaData, value, 0); } - internal static void SetSqlDateTime(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDateTime value) + internal static void SetSqlDateTime(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDateTime value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlDateTime); - SetSqlDateTime_Checked(sink, setters, ordinal, metaData, value); + SetSqlDateTime_Checked(setters, ordinal, metaData, value); } - internal static void SetSqlDecimal(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDecimal value) + internal static void SetSqlDecimal(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDecimal value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlDecimal); - SetSqlDecimal_Unchecked(sink, setters, ordinal, value); + SetSqlDecimal_Unchecked(setters, ordinal, value); } - internal static void SetSqlDouble(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDouble value) + internal static void SetSqlDouble(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDouble value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlDouble); - SetSqlDouble_Unchecked(sink, setters, ordinal, value); + SetSqlDouble_Unchecked(setters, ordinal, value); } - internal static void SetSqlGuid(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlGuid value) + internal static void SetSqlGuid(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlGuid value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlGuid); - SetSqlGuid_Unchecked(sink, setters, ordinal, value); + SetSqlGuid_Unchecked(setters, ordinal, value); } - internal static void SetSqlInt16(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlInt16 value) + internal static void SetSqlInt16(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlInt16 value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlInt16); - SetSqlInt16_Unchecked(sink, setters, ordinal, value); + SetSqlInt16_Unchecked(setters, ordinal, value); } - internal static void SetSqlInt32(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlInt32 value) + internal static void SetSqlInt32(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlInt32 value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlInt32); - SetSqlInt32_Unchecked(sink, setters, ordinal, value); + SetSqlInt32_Unchecked(setters, ordinal, value); } - internal static void SetSqlInt64(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlInt64 value) + internal static void SetSqlInt64(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlInt64 value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlInt64); - SetSqlInt64_Unchecked(sink, setters, ordinal, value); + SetSqlInt64_Unchecked(setters, ordinal, value); } - internal static void SetSqlMoney(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlMoney value) + internal static void SetSqlMoney(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlMoney value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlMoney); - SetSqlMoney_Checked(sink, setters, ordinal, metaData, value); + SetSqlMoney_Checked(setters, ordinal, metaData, value); } - internal static void SetSqlSingle(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlSingle value) + internal static void SetSqlSingle(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlSingle value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlSingle); - SetSqlSingle_Unchecked(sink, setters, ordinal, value); + SetSqlSingle_Unchecked(setters, ordinal, value); } - internal static void SetSqlString(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlString value) + internal static void SetSqlString(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlString value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlString); - SetSqlString_LengthChecked(sink, setters, ordinal, metaData, value, 0); + SetSqlString_LengthChecked(setters, ordinal, metaData, value, 0); } internal static void SetSqlXml(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlXml value) @@ -1446,20 +1446,20 @@ internal static void SetSqlXml(SmiEventSink_Default sink, ITypedSettersV3 setter SetSqlXml_Unchecked(sink, setters, ordinal, value); } - internal static void SetString(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, string value) + internal static void SetString(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, string value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.String); - SetString_LengthChecked(sink, setters, ordinal, metaData, value, 0); + SetString_LengthChecked(setters, ordinal, metaData, value, 0); } - internal static void SetTimeSpan(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, TimeSpan value, bool settersSupport2008DateTime = true) + internal static void SetTimeSpan(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, TimeSpan value, bool settersSupport2008DateTime = true) { if (!settersSupport2008DateTime) { throw ADP.InvalidCast(); } ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.TimeSpan); - SetTimeSpan_Checked(sink, (SmiTypedGetterSetter)setters, ordinal, metaData, value); + SetTimeSpan_Checked((SmiTypedGetterSetter)setters, ordinal, metaData, value); } // Implements SqlClient 2.0-compatible SetValue() semantics @@ -1493,10 +1493,10 @@ value is DataFeed case ExtendedClrTypeCode.Invalid: throw ADP.UnknownDataType(value.GetType()); case ExtendedClrTypeCode.Boolean: - SetBoolean_Unchecked(sink, setters, ordinal, (bool)value); + SetBoolean_Unchecked(setters, ordinal, (bool)value); break; case ExtendedClrTypeCode.Byte: - SetByte_Unchecked(sink, setters, ordinal, (byte)value); + SetByte_Unchecked(setters, ordinal, (byte)value); break; case ExtendedClrTypeCode.Char: { @@ -1507,43 +1507,43 @@ value is DataFeed } #if NET case ExtendedClrTypeCode.DateOnly: - SetDateTime_Checked(sink, setters, ordinal, metaData, ((DateOnly)value).ToDateTime(new TimeOnly(0, 0))); + SetDateTime_Checked(setters, ordinal, metaData, ((DateOnly)value).ToDateTime(new TimeOnly(0, 0))); break; case ExtendedClrTypeCode.TimeOnly: - SetTimeSpan_Checked(sink, (SmiTypedGetterSetter)setters, ordinal, metaData, ((TimeOnly)value).ToTimeSpan()); + SetTimeSpan_Checked((SmiTypedGetterSetter)setters, ordinal, metaData, ((TimeOnly)value).ToTimeSpan()); break; #endif case ExtendedClrTypeCode.DateTime: - SetDateTime_Checked(sink, setters, ordinal, metaData, (DateTime)value); + SetDateTime_Checked(setters, ordinal, metaData, (DateTime)value); break; case ExtendedClrTypeCode.DBNull: - SetDBNull_Unchecked(sink, setters, ordinal); + SetDBNull_Unchecked(setters, ordinal); break; case ExtendedClrTypeCode.Decimal: - SetDecimal_PossiblyMoney(sink, setters, ordinal, metaData, (decimal)value); + SetDecimal_PossiblyMoney(setters, ordinal, metaData, (decimal)value); break; case ExtendedClrTypeCode.Double: - SetDouble_Unchecked(sink, setters, ordinal, (double)value); + SetDouble_Unchecked(setters, ordinal, (double)value); break; case ExtendedClrTypeCode.Empty: - SetDBNull_Unchecked(sink, setters, ordinal); + SetDBNull_Unchecked(setters, ordinal); break; case ExtendedClrTypeCode.Int16: - SetInt16_Unchecked(sink, setters, ordinal, (short)value); + SetInt16_Unchecked(setters, ordinal, (short)value); break; case ExtendedClrTypeCode.Int32: - SetInt32_Unchecked(sink, setters, ordinal, (int)value); + SetInt32_Unchecked(setters, ordinal, (int)value); break; case ExtendedClrTypeCode.Int64: - SetInt64_Unchecked(sink, setters, ordinal, (long)value); + SetInt64_Unchecked(setters, ordinal, (long)value); break; case ExtendedClrTypeCode.SByte: throw ADP.InvalidCast(); case ExtendedClrTypeCode.Single: - SetSingle_Unchecked(sink, setters, ordinal, (float)value); + SetSingle_Unchecked(setters, ordinal, (float)value); break; case ExtendedClrTypeCode.String: - SetString_LengthChecked(sink, setters, ordinal, metaData, (string)value, offset); + SetString_LengthChecked(setters, ordinal, metaData, (string)value, offset); break; case ExtendedClrTypeCode.UInt16: throw ADP.InvalidCast(); @@ -1555,67 +1555,67 @@ value is DataFeed SetUdt_LengthChecked(sink, setters, ordinal, metaData, value); break; case ExtendedClrTypeCode.ByteArray: - SetByteArray_LengthChecked(sink, setters, ordinal, metaData, (byte[])value, offset); + SetByteArray_LengthChecked(setters, ordinal, metaData, (byte[])value, offset); break; case ExtendedClrTypeCode.CharArray: - SetCharArray_LengthChecked(sink, setters, ordinal, metaData, (char[])value, offset); + SetCharArray_LengthChecked(setters, ordinal, metaData, (char[])value, offset); break; case ExtendedClrTypeCode.Guid: - SetGuid_Unchecked(sink, setters, ordinal, (Guid)value); + SetGuid_Unchecked(setters, ordinal, (Guid)value); break; case ExtendedClrTypeCode.SqlBinary: - SetSqlBinary_LengthChecked(sink, setters, ordinal, metaData, (SqlBinary)value, offset); + SetSqlBinary_LengthChecked(setters, ordinal, metaData, (SqlBinary)value, offset); break; case ExtendedClrTypeCode.SqlBoolean: - SetSqlBoolean_Unchecked(sink, setters, ordinal, (SqlBoolean)value); + SetSqlBoolean_Unchecked(setters, ordinal, (SqlBoolean)value); break; case ExtendedClrTypeCode.SqlByte: - SetSqlByte_Unchecked(sink, setters, ordinal, (SqlByte)value); + SetSqlByte_Unchecked(setters, ordinal, (SqlByte)value); break; case ExtendedClrTypeCode.SqlDateTime: - SetSqlDateTime_Checked(sink, setters, ordinal, metaData, (SqlDateTime)value); + SetSqlDateTime_Checked(setters, ordinal, metaData, (SqlDateTime)value); break; case ExtendedClrTypeCode.SqlDouble: - SetSqlDouble_Unchecked(sink, setters, ordinal, (SqlDouble)value); + SetSqlDouble_Unchecked(setters, ordinal, (SqlDouble)value); break; case ExtendedClrTypeCode.SqlGuid: - SetSqlGuid_Unchecked(sink, setters, ordinal, (SqlGuid)value); + SetSqlGuid_Unchecked(setters, ordinal, (SqlGuid)value); break; case ExtendedClrTypeCode.SqlInt16: - SetSqlInt16_Unchecked(sink, setters, ordinal, (SqlInt16)value); + SetSqlInt16_Unchecked(setters, ordinal, (SqlInt16)value); break; case ExtendedClrTypeCode.SqlInt32: - SetSqlInt32_Unchecked(sink, setters, ordinal, (SqlInt32)value); + SetSqlInt32_Unchecked(setters, ordinal, (SqlInt32)value); break; case ExtendedClrTypeCode.SqlInt64: - SetSqlInt64_Unchecked(sink, setters, ordinal, (SqlInt64)value); + SetSqlInt64_Unchecked(setters, ordinal, (SqlInt64)value); break; case ExtendedClrTypeCode.SqlMoney: - SetSqlMoney_Checked(sink, setters, ordinal, metaData, (SqlMoney)value); + SetSqlMoney_Checked(setters, ordinal, metaData, (SqlMoney)value); break; case ExtendedClrTypeCode.SqlDecimal: - SetSqlDecimal_Unchecked(sink, setters, ordinal, (SqlDecimal)value); + SetSqlDecimal_Unchecked(setters, ordinal, (SqlDecimal)value); break; case ExtendedClrTypeCode.SqlSingle: - SetSqlSingle_Unchecked(sink, setters, ordinal, (SqlSingle)value); + SetSqlSingle_Unchecked(setters, ordinal, (SqlSingle)value); break; case ExtendedClrTypeCode.SqlString: - SetSqlString_LengthChecked(sink, setters, ordinal, metaData, (SqlString)value, offset); + SetSqlString_LengthChecked(setters, ordinal, metaData, (SqlString)value, offset); break; case ExtendedClrTypeCode.SqlChars: - SetSqlChars_LengthChecked(sink, setters, ordinal, metaData, (SqlChars)value, offset); + SetSqlChars_LengthChecked(setters, ordinal, metaData, (SqlChars)value, offset); break; case ExtendedClrTypeCode.SqlBytes: - SetSqlBytes_LengthChecked(sink, setters, ordinal, metaData, (SqlBytes)value, offset); + SetSqlBytes_LengthChecked(setters, ordinal, metaData, (SqlBytes)value, offset); break; case ExtendedClrTypeCode.SqlXml: SetSqlXml_Unchecked(sink, setters, ordinal, (SqlXml)value); break; case ExtendedClrTypeCode.Stream: - SetStream_Unchecked(sink, setters, ordinal, metaData, (StreamDataFeed)value); + SetStream_Unchecked(setters, ordinal, metaData, (StreamDataFeed)value); break; case ExtendedClrTypeCode.TextReader: - SetTextReader_Unchecked(sink, setters, ordinal, metaData, (TextDataFeed)value); + SetTextReader_Unchecked(setters, ordinal, metaData, (TextDataFeed)value); break; case ExtendedClrTypeCode.XmlReader: SetXmlReader_Unchecked(sink, setters, ordinal, ((XmlDataFeed)value)._source); @@ -1654,11 +1654,11 @@ SqlBuffer.StorageType storageType if (typeCode == ExtendedClrTypeCode.DateTime) { if (storageType == SqlBuffer.StorageType.DateTime2) - SetDateTime2_Checked(sink, setters, ordinal, metaData, (DateTime)value); + SetDateTime2_Checked(setters, ordinal, metaData, (DateTime)value); else if (storageType == SqlBuffer.StorageType.Date) - SetDate_Checked(sink, setters, ordinal, metaData, (DateTime)value); + SetDate_Checked(setters, ordinal, metaData, (DateTime)value); else - SetDateTime_Checked(sink, setters, ordinal, metaData, (DateTime)value); + SetDateTime_Checked(setters, ordinal, metaData, (DateTime)value); } else { @@ -1703,10 +1703,10 @@ ParameterPeekAheadValue peekAhead SetIEnumerableOfSqlDataRecord_Unchecked(sink, setters, ordinal, metaData, (IEnumerable)value, peekAhead); break; case ExtendedClrTypeCode.TimeSpan: - SetTimeSpan_Checked(sink, setters, ordinal, metaData, (TimeSpan)value); + SetTimeSpan_Checked(setters, ordinal, metaData, (TimeSpan)value); break; case ExtendedClrTypeCode.DateTimeOffset: - SetDateTimeOffset_Unchecked(sink, setters, ordinal, (DateTimeOffset)value); + SetDateTimeOffset_Unchecked(setters, ordinal, (DateTimeOffset)value); break; default: SetCompatibleValue(sink, setters, ordinal, metaData, value, typeCode, offset); @@ -1724,7 +1724,7 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, { if (reader.IsDBNull(i)) { - ValueUtilsSmi.SetDBNull_Unchecked(sink, setters, i); + ValueUtilsSmi.SetDBNull_Unchecked(setters, i); } else { @@ -1732,23 +1732,23 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, { case SqlDbType.BigInt: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Int64)); - SetInt64_Unchecked(sink, setters, i, reader.GetInt64(i)); + SetInt64_Unchecked(setters, i, reader.GetInt64(i)); break; case SqlDbType.Binary: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.ByteArray)); - SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0); + SetBytes_FromReader(setters, i, metaData[i], reader, 0); break; case SqlDbType.Bit: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Boolean)); - SetBoolean_Unchecked(sink, setters, i, reader.GetBoolean(i)); + SetBoolean_Unchecked(setters, i, reader.GetBoolean(i)); break; case SqlDbType.Char: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.CharArray)); - SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0); + SetCharsOrString_FromReader(setters, i, metaData[i], reader, 0); break; case SqlDbType.DateTime: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.DateTime)); - SetDateTime_Checked(sink, setters, i, metaData[i], reader.GetDateTime(i)); + SetDateTime_Checked(setters, i, metaData[i], reader.GetDateTime(i)); break; case SqlDbType.Decimal: { // block to scope sqlReader local to avoid conflicts @@ -1756,75 +1756,75 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, // Support full fidelity for SqlDataReader if (reader is SqlDataReader sqlReader) { - SetSqlDecimal_Unchecked(sink, setters, i, sqlReader.GetSqlDecimal(i)); + SetSqlDecimal_Unchecked(setters, i, sqlReader.GetSqlDecimal(i)); } else { - SetSqlDecimal_Unchecked(sink, setters, i, new SqlDecimal(reader.GetDecimal(i))); + SetSqlDecimal_Unchecked(setters, i, new SqlDecimal(reader.GetDecimal(i))); } } break; case SqlDbType.Float: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Double)); - SetDouble_Unchecked(sink, setters, i, reader.GetDouble(i)); + SetDouble_Unchecked(setters, i, reader.GetDouble(i)); break; case SqlDbType.Image: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.ByteArray)); - SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0); + SetBytes_FromReader(setters, i, metaData[i], reader, 0); break; case SqlDbType.Int: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Int32)); - SetInt32_Unchecked(sink, setters, i, reader.GetInt32(i)); + SetInt32_Unchecked(setters, i, reader.GetInt32(i)); break; case SqlDbType.Money: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlMoney)); - SetSqlMoney_Checked(sink, setters, i, metaData[i], new SqlMoney(reader.GetDecimal(i))); + SetSqlMoney_Checked(setters, i, metaData[i], new SqlMoney(reader.GetDecimal(i))); break; case SqlDbType.NChar: case SqlDbType.NText: case SqlDbType.NVarChar: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.CharArray)); - SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0); + SetCharsOrString_FromReader(setters, i, metaData[i], reader, 0); break; case SqlDbType.Real: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Single)); - SetSingle_Unchecked(sink, setters, i, reader.GetFloat(i)); + SetSingle_Unchecked(setters, i, reader.GetFloat(i)); break; case SqlDbType.UniqueIdentifier: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Guid)); - SetGuid_Unchecked(sink, setters, i, reader.GetGuid(i)); + SetGuid_Unchecked(setters, i, reader.GetGuid(i)); break; case SqlDbType.SmallDateTime: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.DateTime)); - SetDateTime_Checked(sink, setters, i, metaData[i], reader.GetDateTime(i)); + SetDateTime_Checked(setters, i, metaData[i], reader.GetDateTime(i)); break; case SqlDbType.SmallInt: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Int16)); - SetInt16_Unchecked(sink, setters, i, reader.GetInt16(i)); + SetInt16_Unchecked(setters, i, reader.GetInt16(i)); break; case SqlDbType.SmallMoney: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlMoney)); - SetSqlMoney_Checked(sink, setters, i, metaData[i], new SqlMoney(reader.GetDecimal(i))); + SetSqlMoney_Checked(setters, i, metaData[i], new SqlMoney(reader.GetDecimal(i))); break; case SqlDbType.Text: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.CharArray)); - SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0); + SetCharsOrString_FromReader(setters, i, metaData[i], reader, 0); break; case SqlDbType.Timestamp: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.ByteArray)); - SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0); + SetBytes_FromReader(setters, i, metaData[i], reader, 0); break; case SqlDbType.TinyInt: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Byte)); - SetByte_Unchecked(sink, setters, i, reader.GetByte(i)); + SetByte_Unchecked(setters, i, reader.GetByte(i)); break; case SqlDbType.VarBinary: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.ByteArray)); - SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0); + SetBytes_FromReader(setters, i, metaData[i], reader, 0); break; case SqlDbType.VarChar: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.String)); - SetCharsOrString_FromReader(sink, setters, i, metaData[i], reader, 0); + SetCharsOrString_FromReader(setters, i, metaData[i], reader, 0); break; case SqlDbType.Xml: { @@ -1835,7 +1835,7 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, } else { - SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0); + SetBytes_FromReader(setters, i, metaData[i], reader, 0); } } break; @@ -1872,7 +1872,7 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, case SqlDbType.Udt: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.ByteArray)); // Skip serialization for Udt types. - SetBytes_FromReader(sink, setters, i, metaData[i], reader, 0); + SetBytes_FromReader(setters, i, metaData[i], reader, 0); break; // SqlDbType.Structured should have been caught before this point for TVPs. SUDTs will still need to implement. @@ -1880,7 +1880,7 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, case SqlDbType.Date: case SqlDbType.DateTime2: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.DateTime)); - SetDateTime_Checked(sink, setters, i, metaData[i], reader.GetDateTime(i)); + SetDateTime_Checked(setters, i, metaData[i], reader.GetDateTime(i)); break; case SqlDbType.Time: { @@ -1894,7 +1894,7 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, { ts = (TimeSpan)reader.GetValue(i); } - SetTimeSpan_Checked(sink, setters, i, metaData[i], ts); + SetTimeSpan_Checked(setters, i, metaData[i], ts); } break; case SqlDbType.DateTimeOffset: @@ -1909,7 +1909,7 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, { dto = (DateTimeOffset)reader.GetValue(i); } - SetDateTimeOffset_Unchecked(sink, setters, i, dto); + SetDateTimeOffset_Unchecked(setters, i, dto); } break; @@ -1935,7 +1935,7 @@ internal static void FillCompatibleSettersFromRecord(SmiEventSink_Default sink, } if (record.IsDBNull(i)) { - ValueUtilsSmi.SetDBNull_Unchecked(sink, setters, i); + ValueUtilsSmi.SetDBNull_Unchecked(setters, i); } else { @@ -1943,89 +1943,89 @@ internal static void FillCompatibleSettersFromRecord(SmiEventSink_Default sink, { case SqlDbType.BigInt: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Int64)); - SetInt64_Unchecked(sink, setters, i, record.GetInt64(i)); + SetInt64_Unchecked(setters, i, record.GetInt64(i)); break; case SqlDbType.Binary: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlBytes)); - SetBytes_FromRecord(sink, setters, i, metaData[i], record, 0); + SetBytes_FromRecord(setters, i, metaData[i], record, 0); break; case SqlDbType.Bit: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Boolean)); - SetBoolean_Unchecked(sink, setters, i, record.GetBoolean(i)); + SetBoolean_Unchecked(setters, i, record.GetBoolean(i)); break; case SqlDbType.Char: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlChars)); - SetChars_FromRecord(sink, setters, i, metaData[i], record, 0); + SetChars_FromRecord(setters, i, metaData[i], record, 0); break; case SqlDbType.DateTime: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.DateTime)); - SetDateTime_Checked(sink, setters, i, metaData[i], record.GetDateTime(i)); + SetDateTime_Checked(setters, i, metaData[i], record.GetDateTime(i)); break; case SqlDbType.Decimal: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlDecimal)); - SetSqlDecimal_Unchecked(sink, setters, i, record.GetSqlDecimal(i)); + SetSqlDecimal_Unchecked(setters, i, record.GetSqlDecimal(i)); break; case SqlDbType.Float: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Double)); - SetDouble_Unchecked(sink, setters, i, record.GetDouble(i)); + SetDouble_Unchecked(setters, i, record.GetDouble(i)); break; case SqlDbType.Image: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlBytes)); - SetBytes_FromRecord(sink, setters, i, metaData[i], record, 0); + SetBytes_FromRecord(setters, i, metaData[i], record, 0); break; case SqlDbType.Int: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Int32)); - SetInt32_Unchecked(sink, setters, i, record.GetInt32(i)); + SetInt32_Unchecked(setters, i, record.GetInt32(i)); break; case SqlDbType.Money: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlMoney)); - SetSqlMoney_Unchecked(sink, setters, i, metaData[i], record.GetSqlMoney(i)); + SetSqlMoney_Unchecked(setters, i, metaData[i], record.GetSqlMoney(i)); break; case SqlDbType.NChar: case SqlDbType.NText: case SqlDbType.NVarChar: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlChars)); - SetChars_FromRecord(sink, setters, i, metaData[i], record, 0); + SetChars_FromRecord(setters, i, metaData[i], record, 0); break; case SqlDbType.Real: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Single)); - SetSingle_Unchecked(sink, setters, i, record.GetFloat(i)); + SetSingle_Unchecked(setters, i, record.GetFloat(i)); break; case SqlDbType.UniqueIdentifier: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Guid)); - SetGuid_Unchecked(sink, setters, i, record.GetGuid(i)); + SetGuid_Unchecked(setters, i, record.GetGuid(i)); break; case SqlDbType.SmallDateTime: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.DateTime)); - SetDateTime_Checked(sink, setters, i, metaData[i], record.GetDateTime(i)); + SetDateTime_Checked(setters, i, metaData[i], record.GetDateTime(i)); break; case SqlDbType.SmallInt: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Int16)); - SetInt16_Unchecked(sink, setters, i, record.GetInt16(i)); + SetInt16_Unchecked(setters, i, record.GetInt16(i)); break; case SqlDbType.SmallMoney: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlMoney)); - SetSqlMoney_Checked(sink, setters, i, metaData[i], record.GetSqlMoney(i)); + SetSqlMoney_Checked(setters, i, metaData[i], record.GetSqlMoney(i)); break; case SqlDbType.Text: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlChars)); - SetChars_FromRecord(sink, setters, i, metaData[i], record, 0); + SetChars_FromRecord(setters, i, metaData[i], record, 0); break; case SqlDbType.Timestamp: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlBytes)); - SetBytes_FromRecord(sink, setters, i, metaData[i], record, 0); + SetBytes_FromRecord(setters, i, metaData[i], record, 0); break; case SqlDbType.TinyInt: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.Byte)); - SetByte_Unchecked(sink, setters, i, record.GetByte(i)); + SetByte_Unchecked(setters, i, record.GetByte(i)); break; case SqlDbType.VarBinary: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlBytes)); - SetBytes_FromRecord(sink, setters, i, metaData[i], record, 0); + SetBytes_FromRecord(setters, i, metaData[i], record, 0); break; case SqlDbType.VarChar: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.String)); - SetChars_FromRecord(sink, setters, i, metaData[i], record, 0); + SetChars_FromRecord(setters, i, metaData[i], record, 0); break; case SqlDbType.Xml: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlXml)); @@ -2038,12 +2038,12 @@ internal static void FillCompatibleSettersFromRecord(SmiEventSink_Default sink, break; case SqlDbType.Udt: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlBytes)); - SetBytes_FromRecord(sink, setters, i, metaData[i], record, 0); + SetBytes_FromRecord(setters, i, metaData[i], record, 0); break; case SqlDbType.Date: case SqlDbType.DateTime2: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.DateTime)); - SetDateTime_Checked(sink, setters, i, metaData[i], record.GetDateTime(i)); + SetDateTime_Checked(setters, i, metaData[i], record.GetDateTime(i)); break; case SqlDbType.Time: { @@ -2057,7 +2057,7 @@ internal static void FillCompatibleSettersFromRecord(SmiEventSink_Default sink, { ts = (TimeSpan)record.GetValue(i); } - SetTimeSpan_Checked(sink, setters, i, metaData[i], ts); + SetTimeSpan_Checked(setters, i, metaData[i], ts); } break; case SqlDbType.DateTimeOffset: @@ -2072,7 +2072,7 @@ internal static void FillCompatibleSettersFromRecord(SmiEventSink_Default sink, { dto = (DateTimeOffset)record.GetValue(i); } - SetDateTimeOffset_Unchecked(sink, setters, i, dto); + SetDateTimeOffset_Unchecked(setters, i, dto); } break; @@ -2090,7 +2090,7 @@ internal static void FillCompatibleSettersFromRecord(SmiEventSink_Default sink, private static object GetUdt_LengthChecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { object result; - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { Type type = metaData.Type; Debug.Assert(type != null, "Unexpected null of udtType on GetUdt_LengthChecked!"); @@ -2107,29 +2107,29 @@ private static object GetUdt_LengthChecked(SmiEventSink_Default sink, ITypedGett return result; } - private static decimal GetDecimal_PossiblyMoney(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + private static decimal GetDecimal_PossiblyMoney(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { if (metaData.SqlDbType == SqlDbType.Decimal) { - return GetSqlDecimal_Unchecked(sink, getters, ordinal).Value; + return GetSqlDecimal_Unchecked(getters, ordinal).Value; } else { Debug.Assert(metaData.SqlDbType == SqlDbType.Money || metaData.SqlDbType == SqlDbType.SmallMoney, "Unexpected sqldbtype=" + metaData.SqlDbType); - return GetSqlMoney_Unchecked(sink, getters, ordinal).Value; + return GetSqlMoney_Unchecked(getters, ordinal).Value; } } - private static void SetDecimal_PossiblyMoney(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, decimal value) + private static void SetDecimal_PossiblyMoney(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, decimal value) { if (metaData.SqlDbType == SqlDbType.Decimal || metaData.SqlDbType == SqlDbType.Variant) { - SetDecimal_Unchecked(sink, setters, ordinal, value); + SetDecimal_Unchecked(setters, ordinal, value); } else { Debug.Assert(metaData.SqlDbType == SqlDbType.Money || metaData.SqlDbType == SqlDbType.SmallMoney, "Unexpected sqldbtype=" + metaData.SqlDbType); - SetSqlMoney_Checked(sink, setters, ordinal, metaData, new SqlMoney(value)); + SetSqlMoney_Checked(setters, ordinal, metaData, new SqlMoney(value)); } } @@ -2154,40 +2154,40 @@ private static void VerifyTimeRange(SqlDbType dbType, TimeSpan value) } } - private static void SetDateTime_Checked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) + private static void SetDateTime_Checked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) { VerifyDateTimeRange(metaData.SqlDbType, value); - SetDateTime_Unchecked(sink, setters, ordinal, (metaData.SqlDbType == SqlDbType.Date) ? value.Date : value); + SetDateTime_Unchecked(setters, ordinal, (metaData.SqlDbType == SqlDbType.Date) ? value.Date : value); } - private static void SetTimeSpan_Checked(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, TimeSpan value) + private static void SetTimeSpan_Checked(SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, TimeSpan value) { VerifyTimeRange(metaData.SqlDbType, value); - SetTimeSpan_Unchecked(sink, setters, ordinal, value); + SetTimeSpan_Unchecked(setters, ordinal, value); } - private static void SetSqlDateTime_Checked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDateTime value) + private static void SetSqlDateTime_Checked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDateTime value) { if (!value.IsNull) { VerifyDateTimeRange(metaData.SqlDbType, value.Value); } - SetSqlDateTime_Unchecked(sink, setters, ordinal, value); + SetSqlDateTime_Unchecked(setters, ordinal, value); } - private static void SetDateTime2_Checked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) + private static void SetDateTime2_Checked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) { VerifyDateTimeRange(metaData.SqlDbType, value); - SetDateTime2_Unchecked(sink, setters, ordinal, metaData, value); + SetDateTime2_Unchecked(setters, ordinal, metaData, value); } - private static void SetDate_Checked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) + private static void SetDate_Checked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) { VerifyDateTimeRange(metaData.SqlDbType, value); - SetDate_Unchecked(sink, setters, ordinal, metaData, value); + SetDate_Unchecked(setters, ordinal, metaData, value); } - private static void SetSqlMoney_Checked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlMoney value) + private static void SetSqlMoney_Checked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlMoney value) { if (!value.IsNull && metaData.SqlDbType == SqlDbType.SmallMoney) { @@ -2197,24 +2197,24 @@ private static void SetSqlMoney_Checked(SmiEventSink_Default sink, ITypedSetters throw SQL.MoneyOverflow(decimalValue.ToString(CultureInfo.InvariantCulture)); } } - SetSqlMoney_Unchecked(sink, setters, ordinal, metaData, value); + SetSqlMoney_Unchecked(setters, ordinal, metaData, value); } - private static void SetByteArray_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, byte[] buffer, int offset) + private static void SetByteArray_LengthChecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, byte[] buffer, int offset) { int length = CheckXetParameters(metaData.SqlDbType, metaData.MaxLength, actualLength: NoLengthLimit, fieldOffset: 0, bufferLength: buffer.Length, bufferOffset: offset, length: buffer.Length - offset); Debug.Assert(length >= 0, "buffer.Length was invalid!"); - SetByteArray_Unchecked(sink, setters, ordinal, buffer, offset, length); + SetByteArray_Unchecked(setters, ordinal, buffer, offset, length); } - private static void SetCharArray_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, char[] buffer, int offset) + private static void SetCharArray_LengthChecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, char[] buffer, int offset) { int length = CheckXetParameters(metaData.SqlDbType, metaData.MaxLength, actualLength: NoLengthLimit, fieldOffset: 0, bufferLength: buffer.Length, bufferOffset: offset, length: buffer.Length - offset); Debug.Assert(length >= 0, "buffer.Length was invalid!"); - SetCharArray_Unchecked(sink, setters, ordinal, buffer, offset, length); + SetCharArray_Unchecked(setters, ordinal, buffer, offset, length); } - private static void SetSqlBinary_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBinary value, int offset) + private static void SetSqlBinary_LengthChecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBinary value, int offset) { int length = 0; if (!value.IsNull) @@ -2222,10 +2222,10 @@ private static void SetSqlBinary_LengthChecked(SmiEventSink_Default sink, ITyped length = CheckXetParameters(metaData.SqlDbType, metaData.MaxLength, actualLength: NoLengthLimit, fieldOffset: 0, bufferLength: value.Length, bufferOffset: offset, length: value.Length - offset); Debug.Assert(length >= 0, "value.Length was invalid!"); } - SetSqlBinary_Unchecked(sink, setters, ordinal, value, offset, length); + SetSqlBinary_Unchecked(setters, ordinal, value, offset, length); } - private static void SetBytes_FromRecord(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDataRecord record, int offset) + private static void SetBytes_FromRecord(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDataRecord record, int offset) { // Deal with large values by sending bufferLength of NoLengthLimit (== assume // CheckXetParameters will ignore requested-length checks in this case @@ -2270,7 +2270,7 @@ private static void SetBytes_FromRecord(SmiEventSink_Default sink, ITypedSetters setters.SetBytesLength(ordinal, currentOffset); } - private static void SetBytes_FromReader(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, DbDataReader reader, int offset) + private static void SetBytes_FromReader(SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, DbDataReader reader, int offset) { // Deal with large values by sending bufferLength of NoLengthLimit (== assume // CheckXetParameters will ignore requested-length checks in this case) @@ -2303,7 +2303,7 @@ private static void SetBytes_FromReader(SmiEventSink_Default sink, SmiTypedGette setters.SetBytesLength(ordinal, currentOffset); } - private static void SetSqlBytes_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBytes value, int offset) + private static void SetSqlBytes_LengthChecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlBytes value, int offset) { int length = 0; if (!value.IsNull) @@ -2317,10 +2317,10 @@ private static void SetSqlBytes_LengthChecked(SmiEventSink_Default sink, ITypedS } length = CheckXetParameters(metaData.SqlDbType, metaData.MaxLength, actualLength: NoLengthLimit, fieldOffset: 0, bufferLength: checked((int)bufferLength), bufferOffset: offset, length: checked((int)bufferLength)); } - SetSqlBytes_Unchecked(sink, setters, ordinal, value, 0, length); + SetSqlBytes_Unchecked(setters, ordinal, value, 0, length); } - private static void SetChars_FromRecord(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDataRecord record, int offset) + private static void SetChars_FromRecord(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlDataRecord record, int offset) { // Deal with large values by sending bufferLength of NoLengthLimit // CheckXetParameters will ignore length checks in this case @@ -2375,12 +2375,12 @@ private static void SetChars_FromRecord(SmiEventSink_Default sink, ITypedSetters // Transfer a character value from a reader when we're not sure which GetXXX method the reader will support. // Prefers to chunk data via GetChars, but falls back to GetString if that fails. // Mainly put in place because DataTableReader doesn't support GetChars on string columns, but others could fail too... - private static void SetCharsOrString_FromReader(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, DbDataReader reader, int offset) + private static void SetCharsOrString_FromReader(SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, DbDataReader reader, int offset) { bool success = false; try { - SetChars_FromReader(sink, setters, ordinal, metaData, reader, offset); + SetChars_FromReader(setters, ordinal, metaData, reader, offset); success = true; } catch (Exception e) @@ -2393,12 +2393,12 @@ private static void SetCharsOrString_FromReader(SmiEventSink_Default sink, SmiTy if (!success) { - SetString_FromReader(sink, setters, ordinal, metaData, reader, offset); + SetString_FromReader(setters, ordinal, metaData, reader, offset); } } // Use chunking via SetChars to transfer a value from a reader to a gettersetter - private static void SetChars_FromReader(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, DbDataReader reader, int offset) + private static void SetChars_FromReader(SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, DbDataReader reader, int offset) { // Deal with large values by sending bufferLength of NoLengthLimit (== assume // CheckXetParameters will ignore requested-length checks in this case) @@ -2439,7 +2439,7 @@ private static void SetChars_FromReader(SmiEventSink_Default sink, SmiTypedGette setters.SetCharsLength(ordinal, currentOffset); } - private static void SetString_FromReader(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, DbDataReader reader, int offset) + private static void SetString_FromReader(SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, DbDataReader reader, int offset) { string value = reader.GetString(ordinal); int length = CheckXetParameters(metaData.SqlDbType, metaData.MaxLength, value.Length, fieldOffset: 0, bufferLength: NoLengthLimit, bufferOffset: offset, length: NoLengthLimit); @@ -2447,7 +2447,7 @@ private static void SetString_FromReader(SmiEventSink_Default sink, SmiTypedGett setters.SetString(ordinal, value, offset, length); } - private static void SetSqlChars_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlChars value, int offset) + private static void SetSqlChars_LengthChecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlChars value, int offset) { int length = 0; if (!value.IsNull) @@ -2461,29 +2461,29 @@ private static void SetSqlChars_LengthChecked(SmiEventSink_Default sink, ITypedS } length = CheckXetParameters(metaData.SqlDbType, metaData.MaxLength, actualLength: NoLengthLimit, fieldOffset: 0, bufferLength: checked((int)bufferLength), bufferOffset: offset, length: checked((int)bufferLength - offset)); } - SetSqlChars_Unchecked(sink, setters, ordinal, value, 0, length); + SetSqlChars_Unchecked(setters, ordinal, value, 0, length); } - private static void SetSqlString_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlString value, int offset) + private static void SetSqlString_LengthChecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlString value, int offset) { if (value.IsNull) { - SetDBNull_Unchecked(sink, setters, ordinal); + SetDBNull_Unchecked(setters, ordinal); } else { string stringValue = value.Value; int length = CheckXetParameters(metaData.SqlDbType, metaData.MaxLength, actualLength: NoLengthLimit, fieldOffset: 0, bufferLength: stringValue.Length, bufferOffset: offset, length: stringValue.Length - offset); Debug.Assert(length >= 0, "value.Length was invalid!"); - SetSqlString_Unchecked(sink, setters, ordinal, metaData, value, offset, length); + SetSqlString_Unchecked(setters, ordinal, metaData, value, offset, length); } } - private static void SetString_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, string value, int offset) + private static void SetString_LengthChecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, string value, int offset) { int length = CheckXetParameters(metaData.SqlDbType, metaData.MaxLength, actualLength: NoLengthLimit, fieldOffset: 0, value.Length, offset, checked(value.Length - offset)); Debug.Assert(length >= 0, "value.Length was invalid!"); - SetString_Unchecked(sink, setters, ordinal, value, offset, length); + SetString_Unchecked(setters, ordinal, value, offset, length); } private static void SetUdt_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, object value) @@ -2494,7 +2494,7 @@ private static void SetUdt_LengthChecked(SmiEventSink_Default sink, ITypedSetter } else { - Stream target = new SmiSettersStream(sink, setters, ordinal, metaData); + Stream target = new SmiSettersStream(setters, ordinal, metaData); SerializationHelperSql9.Serialize(target, value); } } @@ -2511,9 +2511,9 @@ private static void ThrowIfInvalidSetterAccess(SmiMetaData metaData, ExtendedClr } } - private static void ThrowIfITypedGettersIsNull(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static void ThrowIfITypedGettersIsNull(ITypedGettersV3 getters, int ordinal) { - if (IsDBNull_Unchecked(sink, getters, ordinal)) + if (IsDBNull_Unchecked(getters, ordinal)) { throw SQL.SqlNullValue(); } @@ -2802,31 +2802,31 @@ int length // Private implementation of common mappings from a given type to corresponding Smi Getter/Setter // These classes do type validation, parameter limit validation, nor coercions // - private static bool IsDBNull_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static bool IsDBNull_Unchecked(ITypedGettersV3 getters, int ordinal) { bool result = getters.IsDBNull(ordinal); return result; } - private static bool GetBoolean_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static bool GetBoolean_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); bool result = getters.GetBoolean(ordinal); return result; } - private static byte GetByte_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static byte GetByte_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); byte result = getters.GetByte(ordinal); return result; } - private static byte[] GetByteArray_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static byte[] GetByteArray_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); long length = getters.GetBytesLength(ordinal); int len = checked((int)length); @@ -2836,11 +2836,10 @@ private static byte[] GetByteArray_Unchecked(SmiEventSink_Default sink, ITypedGe return buffer; } - internal static int GetBytes_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) + internal static int GetBytes_Unchecked(ITypedGettersV3 getters, int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); Debug.Assert(ordinal >= 0, $"Invalid ordinal: {ordinal}"); - Debug.Assert(sink != null, "Null SmiEventSink"); Debug.Assert(getters != null, "Null getters"); Debug.Assert(fieldOffset >= 0, $"Invalid field offset: {fieldOffset}"); Debug.Assert(buffer != null, "Null buffer"); @@ -2850,17 +2849,17 @@ internal static int GetBytes_Unchecked(SmiEventSink_Default sink, ITypedGettersV return result; } - private static long GetBytesLength_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static long GetBytesLength_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); long result = getters.GetBytesLength(ordinal); return result; } - private static char[] GetCharArray_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static char[] GetCharArray_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); long length = getters.GetCharsLength(ordinal); int len = checked((int)length); @@ -2870,11 +2869,10 @@ private static char[] GetCharArray_Unchecked(SmiEventSink_Default sink, ITypedGe return buffer; } - internal static int GetChars_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) + internal static int GetChars_Unchecked(ITypedGettersV3 getters, int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); Debug.Assert(ordinal >= 0, $"Invalid ordinal: {ordinal}"); - Debug.Assert(sink != null, "Null SmiEventSink"); Debug.Assert(getters != null, "Null getters"); Debug.Assert(fieldOffset >= 0, $"Invalid field offset: {fieldOffset}"); Debug.Assert(buffer != null, "Null buffer"); @@ -2884,97 +2882,97 @@ internal static int GetChars_Unchecked(SmiEventSink_Default sink, ITypedGettersV return result; } - private static long GetCharsLength_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static long GetCharsLength_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); long result = getters.GetCharsLength(ordinal); return result; } - private static DateTime GetDateTime_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static DateTime GetDateTime_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); DateTime result = getters.GetDateTime(ordinal); return result; } - private static DateTimeOffset GetDateTimeOffset_Unchecked(SmiEventSink_Default sink, SmiTypedGetterSetter getters, int ordinal) + private static DateTimeOffset GetDateTimeOffset_Unchecked(SmiTypedGetterSetter getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); DateTimeOffset result = getters.GetDateTimeOffset(ordinal); return result; } - private static double GetDouble_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static double GetDouble_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); double result = getters.GetDouble(ordinal); return result; } - private static Guid GetGuid_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static Guid GetGuid_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); Guid result = getters.GetGuid(ordinal); return result; } - private static short GetInt16_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static short GetInt16_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); short result = getters.GetInt16(ordinal); return result; } - private static int GetInt32_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static int GetInt32_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); int result = getters.GetInt32(ordinal); return result; } - private static long GetInt64_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static long GetInt64_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); long result = getters.GetInt64(ordinal); return result; } - private static float GetSingle_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static float GetSingle_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); float result = getters.GetSingle(ordinal); return result; } - private static SqlBinary GetSqlBinary_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static SqlBinary GetSqlBinary_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); - byte[] buffer = GetByteArray_Unchecked(sink, getters, ordinal); + byte[] buffer = GetByteArray_Unchecked(getters, ordinal); return new SqlBinary(buffer); } - private static SqlDecimal GetSqlDecimal_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static SqlDecimal GetSqlDecimal_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); SqlDecimal result = getters.GetSqlDecimal(ordinal); return result; } - private static SqlMoney GetSqlMoney_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static SqlMoney GetSqlMoney_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); long temp = getters.GetInt64(ordinal); #if NET @@ -2986,7 +2984,7 @@ private static SqlMoney GetSqlMoney_Unchecked(SmiEventSink_Default sink, ITypedG private static SqlXml GetSqlXml_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); // Note: must make a copy of getter stream, since it will be used beyond // this method (valid lifetime of getters is limited). @@ -2995,9 +2993,9 @@ private static SqlXml GetSqlXml_Unchecked(SmiEventSink_Default sink, ITypedGette return new SqlXml(copy); } - private static string GetString_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static string GetString_Unchecked(ITypedGettersV3 getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); // Note: depending on different getters, the result string may be truncated, e.g. for // Inproc process, the getter is InProcRecordBuffer (implemented in SqlAcess), string will be @@ -3007,20 +3005,20 @@ private static string GetString_Unchecked(SmiEventSink_Default sink, ITypedGette return result; } - private static TimeSpan GetTimeSpan_Unchecked(SmiEventSink_Default sink, SmiTypedGetterSetter getters, int ordinal) + private static TimeSpan GetTimeSpan_Unchecked(SmiTypedGetterSetter getters, int ordinal) { - Debug.Assert(!IsDBNull_Unchecked(sink, getters, ordinal)); + Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); TimeSpan result = getters.GetTimeSpan(ordinal); return result; } - private static void SetBoolean_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, bool value) + private static void SetBoolean_Unchecked(ITypedSettersV3 setters, int ordinal, bool value) { setters.SetBoolean(ordinal, value); } - private static void SetByteArray_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, byte[] buffer, int bufferOffset, int length) + private static void SetByteArray_Unchecked(ITypedSettersV3 setters, int ordinal, byte[] buffer, int bufferOffset, int length) { if (length > 0) { @@ -3029,7 +3027,7 @@ private static void SetByteArray_Unchecked(SmiEventSink_Default sink, ITypedSett setters.SetBytesLength(ordinal, length); } - private static void SetStream_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metadata, StreamDataFeed feed) + private static void SetStream_Unchecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metadata, StreamDataFeed feed) { long len = metadata.MaxLength; byte[] buff = new byte[DefaultBinaryBufferSize]; @@ -3059,7 +3057,7 @@ private static void SetStream_Unchecked(SmiEventSink_Default sink, ITypedSetters setters.SetBytesLength(ordinal, nWritten); } - private static void SetTextReader_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metadata, TextDataFeed feed) + private static void SetTextReader_Unchecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metadata, TextDataFeed feed) { long len = metadata.MaxLength; char[] buff = new char[DefaultTextBufferSize]; @@ -3089,18 +3087,18 @@ private static void SetTextReader_Unchecked(SmiEventSink_Default sink, ITypedSet setters.SetCharsLength(ordinal, nWritten); } - private static void SetByte_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, byte value) + private static void SetByte_Unchecked(ITypedSettersV3 setters, int ordinal, byte value) { setters.SetByte(ordinal, value); } - private static int SetBytes_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) + private static int SetBytes_Unchecked(ITypedSettersV3 setters, int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) { int result = setters.SetBytes(ordinal, fieldOffset, buffer, bufferOffset, length); return result; } - private static void SetCharArray_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, char[] buffer, int bufferOffset, int length) + private static void SetCharArray_Unchecked(ITypedSettersV3 setters, int ordinal, char[] buffer, int bufferOffset, int length) { if (length > 0) { @@ -3109,82 +3107,82 @@ private static void SetCharArray_Unchecked(SmiEventSink_Default sink, ITypedSett setters.SetCharsLength(ordinal, length); } - private static int SetChars_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) + private static int SetChars_Unchecked(ITypedSettersV3 setters, int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) { int result = setters.SetChars(ordinal, fieldOffset, buffer, bufferOffset, length); return result; } - private static void SetDBNull_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal) + private static void SetDBNull_Unchecked(ITypedSettersV3 setters, int ordinal) { setters.SetDBNull(ordinal); } - private static void SetDecimal_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, decimal value) + private static void SetDecimal_Unchecked(ITypedSettersV3 setters, int ordinal, decimal value) { setters.SetSqlDecimal(ordinal, new SqlDecimal(value)); } - private static void SetDateTime_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, DateTime value) + private static void SetDateTime_Unchecked(ITypedSettersV3 setters, int ordinal, DateTime value) { setters.SetDateTime(ordinal, value); } - private static void SetDateTime2_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) + private static void SetDateTime2_Unchecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) { Debug.Assert(metaData.SqlDbType == SqlDbType.Variant, "Invalid type. This should be called only when the type is variant."); setters.SetVariantMetaData(ordinal, SmiMetaData.DefaultDateTime2); setters.SetDateTime(ordinal, value); } - private static void SetDate_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) + private static void SetDate_Unchecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, DateTime value) { Debug.Assert(metaData.SqlDbType == SqlDbType.Variant, "Invalid type. This should be called only when the type is variant."); setters.SetVariantMetaData(ordinal, SmiMetaData.DefaultDate); setters.SetDateTime(ordinal, value); } - private static void SetTimeSpan_Unchecked(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, TimeSpan value) + private static void SetTimeSpan_Unchecked(SmiTypedGetterSetter setters, int ordinal, TimeSpan value) { setters.SetTimeSpan(ordinal, value); } - private static void SetDateTimeOffset_Unchecked(SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, DateTimeOffset value) + private static void SetDateTimeOffset_Unchecked(SmiTypedGetterSetter setters, int ordinal, DateTimeOffset value) { setters.SetDateTimeOffset(ordinal, value); } - private static void SetDouble_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, double value) + private static void SetDouble_Unchecked(ITypedSettersV3 setters, int ordinal, double value) { setters.SetDouble(ordinal, value); } - private static void SetGuid_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, Guid value) + private static void SetGuid_Unchecked(ITypedSettersV3 setters, int ordinal, Guid value) { setters.SetGuid(ordinal, value); } - private static void SetInt16_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, short value) + private static void SetInt16_Unchecked(ITypedSettersV3 setters, int ordinal, short value) { setters.SetInt16(ordinal, value); } - private static void SetInt32_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, int value) + private static void SetInt32_Unchecked(ITypedSettersV3 setters, int ordinal, int value) { setters.SetInt32(ordinal, value); } - private static void SetInt64_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, long value) + private static void SetInt64_Unchecked(ITypedSettersV3 setters, int ordinal, long value) { setters.SetInt64(ordinal, value); } - private static void SetSingle_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, float value) + private static void SetSingle_Unchecked(ITypedSettersV3 setters, int ordinal, float value) { setters.SetSingle(ordinal, value); } - private static void SetSqlBinary_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlBinary value, int offset, int length) + private static void SetSqlBinary_Unchecked(ITypedSettersV3 setters, int ordinal, SqlBinary value, int offset, int length) { if (value.IsNull) { @@ -3192,11 +3190,11 @@ private static void SetSqlBinary_Unchecked(SmiEventSink_Default sink, ITypedSett } else { - SetByteArray_Unchecked(sink, setters, ordinal, value.Value, offset, length); + SetByteArray_Unchecked(setters, ordinal, value.Value, offset, length); } } - private static void SetSqlBoolean_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlBoolean value) + private static void SetSqlBoolean_Unchecked(ITypedSettersV3 setters, int ordinal, SqlBoolean value) { if (value.IsNull) { @@ -3208,7 +3206,7 @@ private static void SetSqlBoolean_Unchecked(SmiEventSink_Default sink, ITypedSet } } - private static void SetSqlByte_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlByte value) + private static void SetSqlByte_Unchecked(ITypedSettersV3 setters, int ordinal, SqlByte value) { if (value.IsNull) { @@ -3221,7 +3219,7 @@ private static void SetSqlByte_Unchecked(SmiEventSink_Default sink, ITypedSetter } // note: length < 0 indicates write everything - private static void SetSqlBytes_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlBytes value, int offset, long length) + private static void SetSqlBytes_Unchecked(ITypedSettersV3 setters, int ordinal, SqlBytes value, int offset, long length) { if (value.IsNull) { @@ -3267,7 +3265,7 @@ private static void SetSqlBytes_Unchecked(SmiEventSink_Default sink, ITypedSette } } - private static void SetSqlChars_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlChars value, int offset, int length) + private static void SetSqlChars_Unchecked(ITypedSettersV3 setters, int ordinal, SqlChars value, int offset, int length) { if (value.IsNull) { @@ -3310,7 +3308,7 @@ private static void SetSqlChars_Unchecked(SmiEventSink_Default sink, ITypedSette } } - private static void SetSqlDateTime_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlDateTime value) + private static void SetSqlDateTime_Unchecked(ITypedSettersV3 setters, int ordinal, SqlDateTime value) { if (value.IsNull) { @@ -3322,7 +3320,7 @@ private static void SetSqlDateTime_Unchecked(SmiEventSink_Default sink, ITypedSe } } - private static void SetSqlDecimal_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlDecimal value) + private static void SetSqlDecimal_Unchecked(ITypedSettersV3 setters, int ordinal, SqlDecimal value) { if (value.IsNull) { @@ -3334,7 +3332,7 @@ private static void SetSqlDecimal_Unchecked(SmiEventSink_Default sink, ITypedSet } } - private static void SetSqlDouble_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlDouble value) + private static void SetSqlDouble_Unchecked(ITypedSettersV3 setters, int ordinal, SqlDouble value) { if (value.IsNull) { @@ -3346,7 +3344,7 @@ private static void SetSqlDouble_Unchecked(SmiEventSink_Default sink, ITypedSett } } - private static void SetSqlGuid_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlGuid value) + private static void SetSqlGuid_Unchecked(ITypedSettersV3 setters, int ordinal, SqlGuid value) { if (value.IsNull) { @@ -3358,7 +3356,7 @@ private static void SetSqlGuid_Unchecked(SmiEventSink_Default sink, ITypedSetter } } - private static void SetSqlInt16_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlInt16 value) + private static void SetSqlInt16_Unchecked(ITypedSettersV3 setters, int ordinal, SqlInt16 value) { if (value.IsNull) { @@ -3370,7 +3368,7 @@ private static void SetSqlInt16_Unchecked(SmiEventSink_Default sink, ITypedSette } } - private static void SetSqlInt32_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlInt32 value) + private static void SetSqlInt32_Unchecked(ITypedSettersV3 setters, int ordinal, SqlInt32 value) { if (value.IsNull) { @@ -3382,7 +3380,7 @@ private static void SetSqlInt32_Unchecked(SmiEventSink_Default sink, ITypedSette } } - private static void SetSqlInt64_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlInt64 value) + private static void SetSqlInt64_Unchecked(ITypedSettersV3 setters, int ordinal, SqlInt64 value) { if (value.IsNull) { @@ -3394,7 +3392,7 @@ private static void SetSqlInt64_Unchecked(SmiEventSink_Default sink, ITypedSette } } - private static void SetSqlMoney_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlMoney value) + private static void SetSqlMoney_Unchecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlMoney value) { if (value.IsNull) { @@ -3415,7 +3413,7 @@ private static void SetSqlMoney_Unchecked(SmiEventSink_Default sink, ITypedSette } } - private static void SetSqlSingle_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlSingle value) + private static void SetSqlSingle_Unchecked(ITypedSettersV3 setters, int ordinal, SqlSingle value) { if (value.IsNull) { @@ -3427,7 +3425,7 @@ private static void SetSqlSingle_Unchecked(SmiEventSink_Default sink, ITypedSett } } - private static void SetSqlString_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlString value, int offset, int length) + private static void SetSqlString_Unchecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlString value, int offset, int length) { if (value.IsNull) { @@ -3449,7 +3447,7 @@ private static void SetSqlString_Unchecked(SmiEventSink_Default sink, ITypedSett ); setters.SetVariantMetaData(ordinal, metaData); } - SetString_Unchecked(sink, setters, ordinal, value.Value, offset, length); + SetString_Unchecked(setters, ordinal, value.Value, offset, length); } } @@ -3476,7 +3474,7 @@ private static void SetXmlReader_Unchecked(SmiEventSink_Default sink, ITypedSett OmitXmlDeclaration = true }; - using (Stream target = new SmiSettersStream(sink, setters, ordinal, SmiMetaData.DefaultXml)) + using (Stream target = new SmiSettersStream(setters, ordinal, SmiMetaData.DefaultXml)) using (XmlWriter xmlWriter = XmlWriter.Create(target, WriterSettings)) { // now spool the data into the writer (WriteNode will call Read()) @@ -3489,7 +3487,7 @@ private static void SetXmlReader_Unchecked(SmiEventSink_Default sink, ITypedSett } } - private static void SetString_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, string value, int offset, int length) + private static void SetString_Unchecked(ITypedSettersV3 setters, int ordinal, string value, int offset, int length) { setters.SetString(ordinal, value, offset, length); } @@ -3620,7 +3618,7 @@ DataTable value SmiMetaData fieldMetaData = metaData.FieldMetaData[i]; if (row.IsNull(i)) { - SetDBNull_Unchecked(sink, setters, i); + SetDBNull_Unchecked(setters, i); } else { From 0ed9572ad04448868f3a6770f257f69f4bb99c4b Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Tue, 24 Jun 2025 06:35:13 +0100 Subject: [PATCH 06/11] Complete removal of SmiEventSink_Default from setters --- .../src/Microsoft/Data/SqlClient/TdsParser.cs | 1 - .../src/Microsoft/Data/SqlClient/TdsParser.cs | 1 - .../Data/SqlClient/Server/SqlDataRecord.cs | 2 +- .../SqlClient/Server/SqlDataRecord.netcore.cs | 4 +- .../SqlClient/Server/SqlDataRecord.netfx.cs | 2 - .../Data/SqlClient/Server/ValueUtilsSmi.cs | 58 +++++++++---------- 6 files changed, 29 insertions(+), 39 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParser.cs b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParser.cs index 5320d1e51f..952a56936e 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParser.cs +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParser.cs @@ -10291,7 +10291,6 @@ private void WriteSmiParameter(SqlParameter param, int paramIndex, bool sendDefa // TdsParameterSetter paramSetter = new TdsParameterSetter(stateObj, metaData); ValueUtilsSmi.SetCompatibleValueV200( - new SmiEventSink_Default(), // TDS Errors/events dealt with at lower level for now, just need an object for processing paramSetter, 0, // ordinal. TdsParameterSetter only handles one parameter at a time metaData, diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/TdsParser.cs b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/TdsParser.cs index d602928be8..b91ce441ad 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/TdsParser.cs +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/TdsParser.cs @@ -10482,7 +10482,6 @@ private void WriteSmiParameter(SqlParameter param, int paramIndex, bool sendDefa // TdsParameterSetter paramSetter = new TdsParameterSetter(stateObj, metaData); ValueUtilsSmi.SetCompatibleValueV200( - new SmiEventSink_Default(), // TDS Errors/events dealt with at lower level for now, just need an object for processing paramSetter, 0, // ordinal. TdsParameterSetter only handles one parameter at a time metaData, diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs index 53fa58c895..1d31e9faf6 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs @@ -334,7 +334,7 @@ public virtual void SetDBNull(int ordinal) public virtual void SetSqlDateTime(int ordinal, SqlDateTime value) => ValueUtilsSmi.SetSqlDateTime(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// - public virtual void SetSqlXml(int ordinal, SqlXml value) => ValueUtilsSmi.SetSqlXml(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value); + public virtual void SetSqlXml(int ordinal, SqlXml value) => ValueUtilsSmi.SetSqlXml(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); /// public virtual void SetSqlDecimal(int ordinal, SqlDecimal value) => ValueUtilsSmi.SetSqlDecimal(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value); diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs index ffb6764b58..0cde594c77 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs @@ -64,7 +64,7 @@ private int SetValuesFrameworkSpecific(params object[] values) // the validation loop and here, or if an invalid UDT was sent). for (int i = 0; i < copyLength; i++) { - ValueUtilsSmi.SetCompatibleValueV200(_eventSink, _recordBuffer, i, GetSmiMetaData(i), values[i], typeCodes[i], offset: 0, peekAhead: null); + ValueUtilsSmi.SetCompatibleValueV200(_recordBuffer, i, GetSmiMetaData(i), values[i], typeCodes[i], offset: 0, peekAhead: null); } return copyLength; @@ -84,7 +84,7 @@ private void SetValueFrameworkSpecific(int ordinal, object value) throw ADP.InvalidCast(); } - ValueUtilsSmi.SetCompatibleValueV200(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), value, typeCode, offset: 0, peekAhead: null); + ValueUtilsSmi.SetCompatibleValueV200(_recordBuffer, ordinal, GetSmiMetaData(ordinal), value, typeCode, offset: 0, peekAhead: null); } private void SetTimeSpanFrameworkSpecific(int ordinal, TimeSpan value) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs index a2f0f3938c..4dd63a75ae 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs @@ -78,7 +78,6 @@ private int SetValuesFrameworkSpecific(params object[] values) for (int i = 0; i < copyLength; i++) { ValueUtilsSmi.SetCompatibleValueV200( - _eventSink, _recordBuffer, ordinal: i, GetSmiMetaData(i), @@ -105,7 +104,6 @@ private void SetValueFrameworkSpecific(int ordinal, object value) } ValueUtilsSmi.SetCompatibleValueV200( - _eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs index aa86b72821..aa9e994f66 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs @@ -1440,10 +1440,10 @@ internal static void SetSqlString(ITypedSettersV3 setters, int ordinal, SmiMetaD SetSqlString_LengthChecked(setters, ordinal, metaData, value, 0); } - internal static void SetSqlXml(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlXml value) + internal static void SetSqlXml(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlXml value) { ThrowIfInvalidSetterAccess(metaData, ExtendedClrTypeCode.SqlXml); - SetSqlXml_Unchecked(sink, setters, ordinal, value); + SetSqlXml_Unchecked(setters, ordinal, value); } internal static void SetString(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, string value) @@ -1465,7 +1465,6 @@ internal static void SetTimeSpan(ITypedSettersV3 setters, int ordinal, SmiMetaDa // Implements SqlClient 2.0-compatible SetValue() semantics // Assumes caller already validated type against the metadata, other than trimming lengths internal static void SetCompatibleValue( - SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, // metadata for target setter column @@ -1502,7 +1501,7 @@ value is DataFeed { char[] charsValue = new char[] { (char)value }; // recur with array type - SetCompatibleValue(sink, setters, ordinal, metaData, charsValue, ExtendedClrTypeCode.CharArray, 0); + SetCompatibleValue(setters, ordinal, metaData, charsValue, ExtendedClrTypeCode.CharArray, 0); break; } #if NET @@ -1552,7 +1551,7 @@ value is DataFeed case ExtendedClrTypeCode.UInt64: throw ADP.InvalidCast(); case ExtendedClrTypeCode.Object: - SetUdt_LengthChecked(sink, setters, ordinal, metaData, value); + SetUdt_LengthChecked(setters, ordinal, metaData, value); break; case ExtendedClrTypeCode.ByteArray: SetByteArray_LengthChecked(setters, ordinal, metaData, (byte[])value, offset); @@ -1609,7 +1608,7 @@ value is DataFeed SetSqlBytes_LengthChecked(setters, ordinal, metaData, (SqlBytes)value, offset); break; case ExtendedClrTypeCode.SqlXml: - SetSqlXml_Unchecked(sink, setters, ordinal, (SqlXml)value); + SetSqlXml_Unchecked(setters, ordinal, (SqlXml)value); break; case ExtendedClrTypeCode.Stream: SetStream_Unchecked(setters, ordinal, metaData, (StreamDataFeed)value); @@ -1618,7 +1617,7 @@ value is DataFeed SetTextReader_Unchecked(setters, ordinal, metaData, (TextDataFeed)value); break; case ExtendedClrTypeCode.XmlReader: - SetXmlReader_Unchecked(sink, setters, ordinal, ((XmlDataFeed)value)._source); + SetXmlReader_Unchecked(setters, ordinal, ((XmlDataFeed)value)._source); break; default: Debug.Fail("Unvalidated extendedtypecode: " + typeCode); @@ -1629,7 +1628,6 @@ value is DataFeed // VSTFDevDiv#479681 - Data corruption when sending 2008 Date types to the server via TVP // Ensures proper handling on DateTime2 sub type for Sql_Variants and TVPs. internal static void SetCompatibleValueV200( - SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, @@ -1662,7 +1660,7 @@ SqlBuffer.StorageType storageType } else { - SetCompatibleValueV200(sink, setters, ordinal, metaData, value, typeCode, offset, peekAhead); + SetCompatibleValueV200(setters, ordinal, metaData, value, typeCode, offset, peekAhead); } } @@ -1670,7 +1668,6 @@ SqlBuffer.StorageType storageType // Assumes caller already validated basic type against the metadata, other than trimming lengths and // checking individual field values (TVPs) internal static void SetCompatibleValueV200( - SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, @@ -1694,13 +1691,13 @@ ParameterPeekAheadValue peekAhead switch (typeCode) { case ExtendedClrTypeCode.DataTable: - SetDataTable_Unchecked(sink, setters, ordinal, metaData, (DataTable)value); + SetDataTable_Unchecked(setters, ordinal, metaData, (DataTable)value); break; case ExtendedClrTypeCode.DbDataReader: - SetDbDataReader_Unchecked(sink, setters, ordinal, metaData, (DbDataReader)value); + SetDbDataReader_Unchecked(setters, ordinal, metaData, (DbDataReader)value); break; case ExtendedClrTypeCode.IEnumerableOfSqlDataRecord: - SetIEnumerableOfSqlDataRecord_Unchecked(sink, setters, ordinal, metaData, (IEnumerable)value, peekAhead); + SetIEnumerableOfSqlDataRecord_Unchecked(setters, ordinal, metaData, (IEnumerable)value, peekAhead); break; case ExtendedClrTypeCode.TimeSpan: SetTimeSpan_Checked(setters, ordinal, metaData, (TimeSpan)value); @@ -1709,7 +1706,7 @@ ParameterPeekAheadValue peekAhead SetDateTimeOffset_Unchecked(setters, ordinal, (DateTimeOffset)value); break; default: - SetCompatibleValue(sink, setters, ordinal, metaData, value, typeCode, offset); + SetCompatibleValue(setters, ordinal, metaData, value, typeCode, offset); break; } } @@ -1718,7 +1715,7 @@ ParameterPeekAheadValue peekAhead // Supports V200 code path, without damaging backward compat for V100 code. // Main differences are supporting DbDataReader, and for binary, character, decimal and Udt types. // Assumes caller enforces that reader and setter metadata are compatible - internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, SmiTypedGetterSetter setters, IList metaData, DbDataReader reader) + internal static void FillCompatibleSettersFromReader(SmiTypedGetterSetter setters, IList metaData, DbDataReader reader) { for (int i = 0; i < metaData.Count; i++) { @@ -1831,7 +1828,7 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlXml)); if (reader is SqlDataReader sqlReader) { - SetSqlXml_Unchecked(sink, setters, i, sqlReader.GetSqlXml(i)); + SetSqlXml_Unchecked(setters, i, sqlReader.GetSqlXml(i)); } else { @@ -1860,11 +1857,11 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, udtType: null); if ((storageType == SqlBuffer.StorageType.DateTime2) || (storageType == SqlBuffer.StorageType.Date)) { - SetCompatibleValueV200(sink, setters, i, metaData[i], o, typeCode, 0, null, storageType); + SetCompatibleValueV200(setters, i, metaData[i], o, typeCode, 0, null, storageType); } else { - SetCompatibleValueV200(sink, setters, i, metaData[i], o, typeCode, 0, null); + SetCompatibleValueV200(setters, i, metaData[i], o, typeCode, 0, null); } } break; @@ -1925,7 +1922,7 @@ internal static void FillCompatibleSettersFromReader(SmiEventSink_Default sink, } } - internal static void FillCompatibleSettersFromRecord(SmiEventSink_Default sink, SmiTypedGetterSetter setters, SmiMetaData[] metaData, SqlDataRecord record, SmiDefaultFieldsProperty useDefaultValues) + internal static void FillCompatibleSettersFromRecord(SmiTypedGetterSetter setters, SmiMetaData[] metaData, SqlDataRecord record, SmiDefaultFieldsProperty useDefaultValues) { for (int i = 0; i < metaData.Length; ++i) { @@ -2029,12 +2026,12 @@ internal static void FillCompatibleSettersFromRecord(SmiEventSink_Default sink, break; case SqlDbType.Xml: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlXml)); - SetSqlXml_Unchecked(sink, setters, i, record.GetSqlXml(i)); // perf improvement? + SetSqlXml_Unchecked(setters, i, record.GetSqlXml(i)); // perf improvement? break; case SqlDbType.Variant: object o = record.GetSqlValue(i); ExtendedClrTypeCode typeCode = MetaDataUtilsSmi.DetermineExtendedTypeCode(o); - SetCompatibleValueV200(sink, setters, i, metaData[i], o, typeCode, 0, null /* no peekahead */); + SetCompatibleValueV200(setters, i, metaData[i], o, typeCode, 0, null /* no peekahead */); break; case SqlDbType.Udt: Debug.Assert(CanAccessSetterDirectly(metaData[i], ExtendedClrTypeCode.SqlBytes)); @@ -2486,7 +2483,7 @@ private static void SetString_LengthChecked(ITypedSettersV3 setters, int ordinal SetString_Unchecked(setters, ordinal, value, offset, length); } - private static void SetUdt_LengthChecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, object value) + private static void SetUdt_LengthChecked(ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, object value) { if (ADP.IsNull(value)) { @@ -3451,7 +3448,7 @@ private static void SetSqlString_Unchecked(ITypedSettersV3 setters, int ordinal, } } - private static void SetSqlXml_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlXml value) + private static void SetSqlXml_Unchecked(ITypedSettersV3 setters, int ordinal, SqlXml value) { if (value.IsNull) { @@ -3459,11 +3456,11 @@ private static void SetSqlXml_Unchecked(SmiEventSink_Default sink, ITypedSetters } else { - SetXmlReader_Unchecked(sink, setters, ordinal, value.CreateReader()); + SetXmlReader_Unchecked(setters, ordinal, value.CreateReader()); } } - private static void SetXmlReader_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, XmlReader xmlReader) + private static void SetXmlReader_Unchecked(ITypedSettersV3 setters, int ordinal, XmlReader xmlReader) { // set up writer XmlWriterSettings WriterSettings = new XmlWriterSettings @@ -3495,7 +3492,6 @@ private static void SetString_Unchecked(ITypedSettersV3 setters, int ordinal, st // Set a DbDataReader to a Structured+MultiValued setter (table type) // Assumes metaData correctly describes the reader's shape, and consumes only the current resultset private static void SetDbDataReader_Unchecked( - SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, @@ -3510,14 +3506,13 @@ DbDataReader value { setters.NewElement(); - FillCompatibleSettersFromReader(sink, setters, metaData.FieldMetaData, value); + FillCompatibleSettersFromReader(setters, metaData.FieldMetaData, value); } setters.EndElements(); } private static void SetIEnumerableOfSqlDataRecord_Unchecked( - SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, @@ -3547,7 +3542,7 @@ ParameterPeekAheadValue peekAhead // send the first record that was obtained earlier setters.NewElement(); - FillCompatibleSettersFromRecord(sink, setters, mdFields, peekAhead.FirstRecord, defaults); + FillCompatibleSettersFromRecord(setters, mdFields, peekAhead.FirstRecord, defaults); recordNumber++; } else @@ -3574,7 +3569,7 @@ ParameterPeekAheadValue peekAhead } } - FillCompatibleSettersFromRecord(sink, setters, mdFields, record, defaults); + FillCompatibleSettersFromRecord(setters, mdFields, record, defaults); recordNumber++; } @@ -3591,7 +3586,6 @@ ParameterPeekAheadValue peekAhead } private static void SetDataTable_Unchecked( - SmiEventSink_Default sink, SmiTypedGetterSetter setters, int ordinal, SmiMetaData metaData, @@ -3633,7 +3627,7 @@ DataTable value cellValue, fieldMetaData.Type); } - SetCompatibleValueV200(sink, setters, i, fieldMetaData, cellValue, cellTypes[i], 0, null); + SetCompatibleValueV200(setters, i, fieldMetaData, cellValue, cellTypes[i], 0, null); } } } From 8160a1210a22ba90cf6232f9e0a36489b0b2e30b Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Tue, 24 Jun 2025 06:40:56 +0100 Subject: [PATCH 07/11] Remove SmiEventSink_Default from SmiGettersStream, follow through --- .../Data/SqlClient/Server/SmiGettersStream.cs | 9 +-- .../Data/SqlClient/Server/ValueUtilsSmi.cs | 71 +++++++++---------- 2 files changed, 38 insertions(+), 42 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiGettersStream.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiGettersStream.cs index 84378027e9..fd38de350a 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiGettersStream.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiGettersStream.cs @@ -9,20 +9,17 @@ namespace Microsoft.Data.SqlClient.Server { internal class SmiGettersStream : Stream { - private SmiEventSink_Default _sink; private ITypedGettersV3 _getters; private int _ordinal; private long _readPosition; private SmiMetaData _metaData; - internal SmiGettersStream(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal SmiGettersStream(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { - Debug.Assert(sink != null); Debug.Assert(getters != null); Debug.Assert(0 <= ordinal); Debug.Assert(metaData != null); - _sink = sink; _getters = getters; _ordinal = ordinal; _readPosition = 0; @@ -58,7 +55,7 @@ public override long Length { get { - return ValueUtilsSmi.GetBytesInternal(_sink, _getters, _ordinal, _metaData, 0, null, 0, 0, false); + return ValueUtilsSmi.GetBytesInternal(_getters, _ordinal, _metaData, 0, null, 0, 0, false); } } @@ -91,7 +88,7 @@ public override void SetLength(long value) public override int Read(byte[] buffer, int offset, int count) { - long bytesRead = ValueUtilsSmi.GetBytesInternal(_sink, _getters, _ordinal, _metaData, _readPosition, buffer, offset, count, false); + long bytesRead = ValueUtilsSmi.GetBytesInternal(_getters, _ordinal, _metaData, _readPosition, buffer, offset, count, false); _readPosition += bytesRead; return checked((int)bytesRead); diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs index aa9e994f66..56963b1a73 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs @@ -87,9 +87,9 @@ internal static byte GetByte(SmiEventSink_Default sink, ITypedGettersV3 getters, return (byte)result; } - private static long GetBytesConversion(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData, long fieldOffset, byte[] buffer, int bufferOffset, int length, bool throwOnNull) + private static long GetBytesConversion(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData, long fieldOffset, byte[] buffer, int bufferOffset, int length, bool throwOnNull) { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj== null) { throw ADP.InvalidCast(); @@ -140,11 +140,11 @@ internal static long GetBytes(SmiEventSink_Default sink, ITypedGettersV3 getters } else { - return GetBytesInternal(sink, getters, ordinal, metaData, fieldOffset, buffer, bufferOffset, length, throwOnNull); + return GetBytesInternal(getters, ordinal, metaData, fieldOffset, buffer, bufferOffset, length, throwOnNull); } } - internal static long GetBytesInternal(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData, long fieldOffset, byte[] buffer, int bufferOffset, int length, bool throwOnNull) + internal static long GetBytesInternal(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData, long fieldOffset, byte[] buffer, int bufferOffset, int length, bool throwOnNull) { if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.ByteArray)) { @@ -186,7 +186,7 @@ internal static long GetBytesInternal(SmiEventSink_Default sink, ITypedGettersV3 return length; } - return GetBytesConversion(sink, getters, ordinal, metaData, fieldOffset, buffer, bufferOffset, length, throwOnNull); + return GetBytesConversion(getters, ordinal, metaData, fieldOffset, buffer, bufferOffset, length, throwOnNull); } internal static long GetChars(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData, long fieldOffset, char[] buffer, int bufferOffset, int length) @@ -365,7 +365,7 @@ internal static SqlBinary GetSqlBinary(SmiEventSink_Default sink, ITypedGettersV } return GetSqlBinary_Unchecked(getters, ordinal); } - object result = GetSqlValue(sink, getters, ordinal, metaData); + object result = GetSqlValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -383,7 +383,7 @@ internal static SqlBoolean GetSqlBoolean(SmiEventSink_Default sink, ITypedGetter } return new SqlBoolean(GetBoolean_Unchecked(getters, ordinal)); } - object result = GetSqlValue(sink, getters, ordinal, metaData); + object result = GetSqlValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -401,7 +401,7 @@ internal static SqlByte GetSqlByte(SmiEventSink_Default sink, ITypedGettersV3 ge } return new SqlByte(GetByte_Unchecked(getters, ordinal)); } - object result = GetSqlValue(sink, getters, ordinal, metaData); + object result = GetSqlValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -432,7 +432,7 @@ internal static SqlBytes GetSqlBytes( } else { - Stream s = new SmiGettersStream(sink, getters, ordinal, metaData); + Stream s = new SmiGettersStream(getters, ordinal, metaData); s = CopyIntoNewSmiScratchStream(s); result = new SqlBytes(s); } @@ -440,7 +440,7 @@ internal static SqlBytes GetSqlBytes( } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -483,7 +483,7 @@ internal static SqlChars GetSqlChars( SqlString stringValue; if (metaData.SqlDbType == SqlDbType.Xml) { - SqlXml xmlValue = GetSqlXml_Unchecked(sink, getters, ordinal); + SqlXml xmlValue = GetSqlXml_Unchecked(getters, ordinal); if (xmlValue.IsNull) { @@ -496,7 +496,7 @@ internal static SqlChars GetSqlChars( } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -534,7 +534,7 @@ internal static SqlDateTime GetSqlDateTime(SmiEventSink_Default sink, ITypedGett } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -561,7 +561,7 @@ internal static SqlDecimal GetSqlDecimal(SmiEventSink_Default sink, ITypedGetter } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -589,7 +589,7 @@ internal static SqlDouble GetSqlDouble(SmiEventSink_Default sink, ITypedGettersV } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -617,7 +617,7 @@ internal static SqlGuid GetSqlGuid(SmiEventSink_Default sink, ITypedGettersV3 ge } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -645,7 +645,7 @@ internal static SqlInt16 GetSqlInt16(SmiEventSink_Default sink, ITypedGettersV3 } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -673,7 +673,7 @@ internal static SqlInt32 GetSqlInt32(SmiEventSink_Default sink, ITypedGettersV3 } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -700,7 +700,7 @@ internal static SqlInt64 GetSqlInt64(SmiEventSink_Default sink, ITypedGettersV3 } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -727,7 +727,7 @@ internal static SqlMoney GetSqlMoney(SmiEventSink_Default sink, ITypedGettersV3 } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -755,7 +755,7 @@ internal static SqlSingle GetSqlSingle(SmiEventSink_Default sink, ITypedGettersV } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -783,7 +783,7 @@ internal static SqlString GetSqlString(SmiEventSink_Default sink, ITypedGettersV } else if (SqlDbType.Xml == metaData.SqlDbType) { - SqlXml xmlValue = GetSqlXml_Unchecked(sink, getters, ordinal); + SqlXml xmlValue = GetSqlXml_Unchecked(getters, ordinal); if (xmlValue.IsNull) { @@ -796,7 +796,7 @@ internal static SqlString GetSqlString(SmiEventSink_Default sink, ITypedGettersV } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -822,12 +822,12 @@ internal static SqlXml GetSqlXml( } else { - result = GetSqlXml_Unchecked(sink, getters, ordinal); + result = GetSqlXml_Unchecked(getters, ordinal); } } else { - object obj = GetSqlValue(sink, getters, ordinal, metaData); + object obj = GetSqlValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -997,10 +997,10 @@ internal static object GetValue( result = GetValue(sink, getters, ordinal, metaData); break; case SqlDbType.Xml: - result = GetSqlXml_Unchecked(sink, getters, ordinal).Value; + result = GetSqlXml_Unchecked(getters, ordinal).Value; break; case SqlDbType.Udt: - result = GetUdt_LengthChecked(sink, getters, ordinal, metaData); + result = GetUdt_LengthChecked(getters, ordinal, metaData); break; } } @@ -1047,7 +1047,7 @@ internal static object GetSqlValue200( result = GetDateTimeOffset_Unchecked(getters, ordinal); break; default: - result = GetSqlValue(sink, getters, ordinal, metaData); + result = GetSqlValue(getters, ordinal, metaData); break; } } @@ -1057,7 +1057,6 @@ internal static object GetSqlValue200( // implements SqlClient 1.1-compatible GetSqlValue() semantics for everything except output parameters internal static object GetSqlValue( - SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) @@ -1150,13 +1149,13 @@ internal static object GetSqlValue( case SqlDbType.Variant: metaData = getters.GetVariantType(ordinal); Debug.Assert(SqlDbType.Variant != metaData.SqlDbType, "Variant-within-variant causes endless recursion!"); - result = GetSqlValue(sink, getters, ordinal, metaData); + result = GetSqlValue(getters, ordinal, metaData); break; case SqlDbType.Xml: - result = GetSqlXml_Unchecked(sink, getters, ordinal); + result = GetSqlXml_Unchecked(getters, ordinal); break; case SqlDbType.Udt: - result = GetUdt_LengthChecked(sink, getters, ordinal, metaData); + result = GetUdt_LengthChecked(getters, ordinal, metaData); break; } } @@ -2084,7 +2083,7 @@ internal static void FillCompatibleSettersFromRecord(SmiTypedGetterSetter setter // // Common utility code to get lengths correct for trimming // - private static object GetUdt_LengthChecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + private static object GetUdt_LengthChecked(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { object result; if (IsDBNull_Unchecked(getters, ordinal)) @@ -2098,7 +2097,7 @@ private static object GetUdt_LengthChecked(SmiEventSink_Default sink, ITypedGett { // Note: do not need to copy getter stream, since it will not be used beyond // deserialization (valid lifetime of getters is limited). - Stream stream = new SmiGettersStream(sink, getters, ordinal, metaData); + Stream stream = new SmiGettersStream(getters, ordinal, metaData); result = SerializationHelperSql9.Deserialize(stream, metaData.Type); } return result; @@ -2979,13 +2978,13 @@ private static SqlMoney GetSqlMoney_Unchecked(ITypedGettersV3 getters, int ordin #endif } - private static SqlXml GetSqlXml_Unchecked(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal) + private static SqlXml GetSqlXml_Unchecked(ITypedGettersV3 getters, int ordinal) { Debug.Assert(!IsDBNull_Unchecked(getters, ordinal)); // Note: must make a copy of getter stream, since it will be used beyond // this method (valid lifetime of getters is limited). - Stream s = new SmiGettersStream(sink, getters, ordinal, SmiMetaData.DefaultXml); + Stream s = new SmiGettersStream(getters, ordinal, SmiMetaData.DefaultXml); Stream copy = CopyIntoNewSmiScratchStream(s); return new SqlXml(copy); } From 945d4eb3212c38b327e70f81f0bd2c9e6ea2f851 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Tue, 24 Jun 2025 06:45:55 +0100 Subject: [PATCH 08/11] Remove circular references from GetValue and GetSqlValue200 --- .../SqlClient/Server/SqlDataRecord.netcore.cs | 4 +- .../SqlClient/Server/SqlDataRecord.netfx.cs | 4 +- .../Data/SqlClient/Server/ValueUtilsSmi.cs | 39 +++++++++---------- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs index 0cde594c77..7b513a066e 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs @@ -20,9 +20,9 @@ private Type GetFieldTypeFrameworkSpecific(int ordinal) => MetaType.GetMetaTypeFromSqlDbType(GetSqlMetaData(ordinal).SqlDbType, false).ClassType; private object GetValueFrameworkSpecific(int ordinal) => - ValueUtilsSmi.GetValue200(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + ValueUtilsSmi.GetValue200(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); private object GetSqlValueFrameworkSpecific(int ordinal) => - ValueUtilsSmi.GetSqlValue200(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + ValueUtilsSmi.GetSqlValue200(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); private SqlBytes GetSqlBytesFrameworkSpecific(int ordinal) => ValueUtilsSmi.GetSqlBytes(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs index 4dd63a75ae..e4a45fe106 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs @@ -28,13 +28,13 @@ private Type GetFieldTypeFrameworkSpecific(int ordinal) private object GetValueFrameworkSpecific(int ordinal) { SmiMetaData metaData = GetSmiMetaData(ordinal); - return ValueUtilsSmi.GetValue200(_eventSink, _recordBuffer, ordinal, metaData); + return ValueUtilsSmi.GetValue200(_recordBuffer, ordinal, metaData); } private object GetSqlValueFrameworkSpecific(int ordinal) { SmiMetaData metaData = GetSmiMetaData(ordinal); - return ValueUtilsSmi.GetSqlValue200(_eventSink, _recordBuffer, ordinal, metaData); + return ValueUtilsSmi.GetSqlValue200(_recordBuffer, ordinal, metaData); } private SqlBytes GetSqlBytesFrameworkSpecific(int ordinal) => diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs index 56963b1a73..51b5115afa 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs @@ -64,7 +64,7 @@ internal static bool GetBoolean(SmiEventSink_Default sink, ITypedGettersV3 gette return GetBoolean_Unchecked(getters, ordinal); } - object result = GetValue(sink, getters, ordinal, metaData); + object result = GetValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -79,7 +79,7 @@ internal static byte GetByte(SmiEventSink_Default sink, ITypedGettersV3 getters, { return GetByte_Unchecked(getters, ordinal); } - object result = GetValue(sink, getters, ordinal, metaData); + object result = GetValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -208,7 +208,7 @@ internal static long GetChars(SmiEventSink_Default sink, ITypedGettersV3 getters return length; } - string value = (string)GetValue(sink, getters, ordinal, metaData); + string value = (string)GetValue(getters, ordinal, metaData); if (value == null) { throw ADP.InvalidCast(); @@ -231,7 +231,7 @@ internal static DateTime GetDateTime(SmiEventSink_Default sink, ITypedGettersV3 { return GetDateTime_Unchecked(getters, ordinal); } - object result = GetValue(sink, getters, ordinal, metaData); + object result = GetValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -247,7 +247,7 @@ internal static DateTimeOffset GetDateTimeOffset(SmiEventSink_Default sink, SmiT { return GetDateTimeOffset_Unchecked(getters, ordinal); } - return (DateTimeOffset)GetValue200(sink, getters, ordinal, metaData); + return (DateTimeOffset)GetValue200(getters, ordinal, metaData); } internal static decimal GetDecimal(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) @@ -257,7 +257,7 @@ internal static decimal GetDecimal(SmiEventSink_Default sink, ITypedGettersV3 ge { return GetDecimal_PossiblyMoney(getters, ordinal, metaData); } - object result = GetValue(sink, getters, ordinal, metaData); + object result = GetValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -272,7 +272,7 @@ internal static double GetDouble(SmiEventSink_Default sink, ITypedGettersV3 gett { return GetDouble_Unchecked(getters, ordinal); } - object result = GetValue(sink, getters, ordinal, metaData); + object result = GetValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -287,7 +287,7 @@ internal static Guid GetGuid(SmiEventSink_Default sink, ITypedGettersV3 getters, { return GetGuid_Unchecked(getters, ordinal); } - object result = GetValue(sink, getters, ordinal, metaData); + object result = GetValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -302,7 +302,7 @@ internal static short GetInt16(SmiEventSink_Default sink, ITypedGettersV3 getter { return GetInt16_Unchecked(getters, ordinal); } - object obj = GetValue(sink, getters, ordinal, metaData); + object obj = GetValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -317,7 +317,7 @@ internal static int GetInt32(SmiEventSink_Default sink, ITypedGettersV3 getters, { return GetInt32_Unchecked(getters, ordinal); } - object result = GetValue(sink, getters, ordinal, metaData); + object result = GetValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -332,7 +332,7 @@ internal static long GetInt64(SmiEventSink_Default sink, ITypedGettersV3 getters { return GetInt64_Unchecked(getters, ordinal); } - object result = GetValue(sink, getters, ordinal, metaData); + object result = GetValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -347,7 +347,7 @@ internal static float GetSingle(SmiEventSink_Default sink, ITypedGettersV3 gette { return GetSingle_Unchecked(getters, ordinal); } - object result = GetValue(sink, getters, ordinal, metaData); + object result = GetValue(getters, ordinal, metaData); if (result == null) { throw ADP.InvalidCast(); @@ -845,7 +845,7 @@ internal static string GetString(SmiEventSink_Default sink, ITypedGettersV3 gett { return GetString_Unchecked(getters, ordinal); } - object obj = GetValue(sink, getters, ordinal, metaData); + object obj = GetValue(getters, ordinal, metaData); if (obj == null) { throw ADP.InvalidCast(); @@ -861,12 +861,11 @@ internal static TimeSpan GetTimeSpan(SmiEventSink_Default sink, SmiTypedGetterSe { return GetTimeSpan_Unchecked(getters, ordinal); } - return (TimeSpan)GetValue200(sink, getters, ordinal, metaData); + return (TimeSpan)GetValue200(getters, ordinal, metaData); } // GetValue() for v200 SMI (2008 Date/Time types) internal static object GetValue200( - SmiEventSink_Default sink, SmiTypedGetterSetter getters, int ordinal, SmiMetaData metaData) @@ -883,7 +882,7 @@ internal static object GetValue200( case SqlDbType.Variant: // Handle variants specifically for v200, since they could contain v200 types metaData = getters.GetVariantType(ordinal); Debug.Assert(SqlDbType.Variant != metaData.SqlDbType, "Variant-within-variant causes endless recursion!"); - result = GetValue200(sink, getters, ordinal, metaData); + result = GetValue200(getters, ordinal, metaData); break; case SqlDbType.Date: case SqlDbType.DateTime2: @@ -896,7 +895,7 @@ internal static object GetValue200( result = GetDateTimeOffset_Unchecked(getters, ordinal); break; default: - result = GetValue(sink, getters, ordinal, metaData); + result = GetValue(getters, ordinal, metaData); break; } } @@ -908,7 +907,6 @@ internal static object GetValue200( // implements SqlClient 1.1-compatible GetValue() semantics for everything except output parameters internal static object GetValue( - SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) @@ -994,7 +992,7 @@ internal static object GetValue( case SqlDbType.Variant: metaData = getters.GetVariantType(ordinal); Debug.Assert(SqlDbType.Variant != metaData.SqlDbType, "Variant-within-variant causes endless recursion!"); - result = GetValue(sink, getters, ordinal, metaData); + result = GetValue(getters, ordinal, metaData); break; case SqlDbType.Xml: result = GetSqlXml_Unchecked(getters, ordinal).Value; @@ -1010,7 +1008,6 @@ internal static object GetValue( // dealing with v200 SMI internal static object GetSqlValue200( - SmiEventSink_Default sink, SmiTypedGetterSetter getters, int ordinal, SmiMetaData metaData) @@ -1034,7 +1031,7 @@ internal static object GetSqlValue200( case SqlDbType.Variant: // Handle variants specifically for v200, since they could contain v200 types metaData = getters.GetVariantType(ordinal); Debug.Assert(SqlDbType.Variant != metaData.SqlDbType, "Variant-within-variant causes endless recursion!"); - result = GetSqlValue200(sink, getters, ordinal, metaData); + result = GetSqlValue200(getters, ordinal, metaData); break; case SqlDbType.Date: case SqlDbType.DateTime2: From 36e89cbd4a18dff5fbf636494a01304711ce504b Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Tue, 24 Jun 2025 06:51:08 +0100 Subject: [PATCH 09/11] Remove unused SmiEventSink_Default parameters, follow through --- .../Data/SqlClient/Server/SqlDataRecord.cs | 60 +++++++++---------- .../SqlClient/Server/SqlDataRecord.netcore.cs | 6 +- .../SqlClient/Server/SqlDataRecord.netfx.cs | 6 +- .../Data/SqlClient/Server/ValueUtilsSmi.cs | 59 +++++++++--------- 4 files changed, 63 insertions(+), 68 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs index 1d31e9faf6..06ec4a2cd6 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs @@ -16,7 +16,6 @@ public partial class SqlDataRecord : IDataRecord { private readonly SmiRecordBuffer _recordBuffer; private readonly SmiExtendedMetaData[] _columnSmiMetaData; - private readonly SmiEventSink_Default _eventSink; private readonly SqlMetaData[] _columnMetaData; private FieldNameLookup _fieldNameLookup; private readonly bool _usesStringStorageForXml = false; @@ -101,37 +100,37 @@ public virtual int GetOrdinal(string name) public virtual object this[string name] => GetValue(GetOrdinal(name)); /// - public virtual bool GetBoolean(int ordinal) => ValueUtilsSmi.GetBoolean(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual bool GetBoolean(int ordinal) => ValueUtilsSmi.GetBoolean(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual byte GetByte(int ordinal) => ValueUtilsSmi.GetByte(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual byte GetByte(int ordinal) => ValueUtilsSmi.GetByte(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual long GetBytes(int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) => ValueUtilsSmi.GetBytes(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), fieldOffset, buffer, bufferOffset, length, throwOnNull: true); + public virtual long GetBytes(int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) => ValueUtilsSmi.GetBytes(_recordBuffer, ordinal, GetSmiMetaData(ordinal), fieldOffset, buffer, bufferOffset, length, throwOnNull: true); /// public virtual char GetChar(int ordinal) => throw ADP.NotSupported(); /// - public virtual long GetChars(int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) => ValueUtilsSmi.GetChars(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal), fieldOffset, buffer, bufferOffset, length); + public virtual long GetChars(int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) => ValueUtilsSmi.GetChars(_recordBuffer, ordinal, GetSmiMetaData(ordinal), fieldOffset, buffer, bufferOffset, length); /// - public virtual Guid GetGuid(int ordinal) => ValueUtilsSmi.GetGuid(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual Guid GetGuid(int ordinal) => ValueUtilsSmi.GetGuid(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual short GetInt16(int ordinal) => ValueUtilsSmi.GetInt16(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual short GetInt16(int ordinal) => ValueUtilsSmi.GetInt16(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual int GetInt32(int ordinal) => ValueUtilsSmi.GetInt32(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual int GetInt32(int ordinal) => ValueUtilsSmi.GetInt32(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual long GetInt64(int ordinal) => ValueUtilsSmi.GetInt64(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual long GetInt64(int ordinal) => ValueUtilsSmi.GetInt64(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual float GetFloat(int ordinal) => ValueUtilsSmi.GetSingle(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual float GetFloat(int ordinal) => ValueUtilsSmi.GetSingle(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual double GetDouble(int ordinal) => ValueUtilsSmi.GetDouble(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual double GetDouble(int ordinal) => ValueUtilsSmi.GetDouble(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// public virtual string GetString(int ordinal) @@ -139,25 +138,25 @@ public virtual string GetString(int ordinal) SmiMetaData colMeta = GetSmiMetaData(ordinal); if (_usesStringStorageForXml && colMeta.SqlDbType == SqlDbType.Xml) { - return ValueUtilsSmi.GetString(_eventSink, _recordBuffer, ordinal, s_maxNVarCharForXml); + return ValueUtilsSmi.GetString(_recordBuffer, ordinal, s_maxNVarCharForXml); } else { - return ValueUtilsSmi.GetString(_eventSink, _recordBuffer, ordinal, colMeta); + return ValueUtilsSmi.GetString(_recordBuffer, ordinal, colMeta); } } /// - public virtual decimal GetDecimal(int ordinal) => ValueUtilsSmi.GetDecimal(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual decimal GetDecimal(int ordinal) => ValueUtilsSmi.GetDecimal(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual DateTime GetDateTime(int ordinal) => ValueUtilsSmi.GetDateTime(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual DateTime GetDateTime(int ordinal) => ValueUtilsSmi.GetDateTime(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual DateTimeOffset GetDateTimeOffset(int ordinal) => ValueUtilsSmi.GetDateTimeOffset(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual DateTimeOffset GetDateTimeOffset(int ordinal) => ValueUtilsSmi.GetDateTimeOffset(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual TimeSpan GetTimeSpan(int ordinal) => ValueUtilsSmi.GetTimeSpan(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual TimeSpan GetTimeSpan(int ordinal) => ValueUtilsSmi.GetTimeSpan(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// public virtual bool IsDBNull(int ordinal) @@ -198,7 +197,7 @@ public virtual int GetSqlValues(object[] values) } /// - public virtual SqlBinary GetSqlBinary(int ordinal) => ValueUtilsSmi.GetSqlBinary(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlBinary GetSqlBinary(int ordinal) => ValueUtilsSmi.GetSqlBinary(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// public virtual SqlBytes GetSqlBytes(int ordinal) => GetSqlBytesFrameworkSpecific(ordinal); @@ -207,43 +206,43 @@ public virtual int GetSqlValues(object[] values) public virtual SqlXml GetSqlXml(int ordinal) => GetSqlXmlFrameworkSpecific(ordinal); /// - public virtual SqlBoolean GetSqlBoolean(int ordinal) => ValueUtilsSmi.GetSqlBoolean(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlBoolean GetSqlBoolean(int ordinal) => ValueUtilsSmi.GetSqlBoolean(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual SqlByte GetSqlByte(int ordinal) => ValueUtilsSmi.GetSqlByte(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlByte GetSqlByte(int ordinal) => ValueUtilsSmi.GetSqlByte(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// public virtual SqlChars GetSqlChars(int ordinal) => GetSqlCharsFrameworkSpecific(ordinal); /// - public virtual SqlInt16 GetSqlInt16(int ordinal) => ValueUtilsSmi.GetSqlInt16(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlInt16 GetSqlInt16(int ordinal) => ValueUtilsSmi.GetSqlInt16(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual SqlInt32 GetSqlInt32(int ordinal) => ValueUtilsSmi.GetSqlInt32(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlInt32 GetSqlInt32(int ordinal) => ValueUtilsSmi.GetSqlInt32(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual SqlInt64 GetSqlInt64(int ordinal) => ValueUtilsSmi.GetSqlInt64(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlInt64 GetSqlInt64(int ordinal) => ValueUtilsSmi.GetSqlInt64(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual SqlSingle GetSqlSingle(int ordinal) => ValueUtilsSmi.GetSqlSingle(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlSingle GetSqlSingle(int ordinal) => ValueUtilsSmi.GetSqlSingle(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual SqlDouble GetSqlDouble(int ordinal) => ValueUtilsSmi.GetSqlDouble(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlDouble GetSqlDouble(int ordinal) => ValueUtilsSmi.GetSqlDouble(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual SqlMoney GetSqlMoney(int ordinal) => ValueUtilsSmi.GetSqlMoney(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlMoney GetSqlMoney(int ordinal) => ValueUtilsSmi.GetSqlMoney(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual SqlDateTime GetSqlDateTime(int ordinal) => ValueUtilsSmi.GetSqlDateTime(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlDateTime GetSqlDateTime(int ordinal) => ValueUtilsSmi.GetSqlDateTime(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual SqlDecimal GetSqlDecimal(int ordinal) => ValueUtilsSmi.GetSqlDecimal(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlDecimal GetSqlDecimal(int ordinal) => ValueUtilsSmi.GetSqlDecimal(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual SqlString GetSqlString(int ordinal) => ValueUtilsSmi.GetSqlString(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlString GetSqlString(int ordinal) => ValueUtilsSmi.GetSqlString(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// - public virtual SqlGuid GetSqlGuid(int ordinal) => ValueUtilsSmi.GetSqlGuid(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + public virtual SqlGuid GetSqlGuid(int ordinal) => ValueUtilsSmi.GetSqlGuid(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); /// // ISqlUpdateableRecord Implementation @@ -377,7 +376,6 @@ public SqlDataRecord(params SqlMetaData[] metaData) _columnSmiMetaData[i] = MetaDataUtilsSmi.SqlMetaDataToSmiExtendedMetaData(_columnMetaData[i]); } - _eventSink = new SmiEventSink_Default(); #if NETFRAMEWORK _recordBuffer = new MemoryRecordBuffer(_columnSmiMetaData); _usesStringStorageForXml = true; diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs index 7b513a066e..6449aa6c62 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netcore.cs @@ -25,13 +25,13 @@ private object GetSqlValueFrameworkSpecific(int ordinal) => ValueUtilsSmi.GetSqlValue200(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); private SqlBytes GetSqlBytesFrameworkSpecific(int ordinal) => - ValueUtilsSmi.GetSqlBytes(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + ValueUtilsSmi.GetSqlBytes(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); private SqlXml GetSqlXmlFrameworkSpecific(int ordinal) => - ValueUtilsSmi.GetSqlXml(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + ValueUtilsSmi.GetSqlXml(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); private SqlChars GetSqlCharsFrameworkSpecific(int ordinal) => - ValueUtilsSmi.GetSqlChars(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + ValueUtilsSmi.GetSqlChars(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); private int SetValuesFrameworkSpecific(params object[] values) { if (values == null) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs index e4a45fe106..7f67e951da 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.netfx.cs @@ -38,13 +38,13 @@ private object GetSqlValueFrameworkSpecific(int ordinal) } private SqlBytes GetSqlBytesFrameworkSpecific(int ordinal) => - ValueUtilsSmi.GetSqlBytes(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + ValueUtilsSmi.GetSqlBytes(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); private SqlXml GetSqlXmlFrameworkSpecific(int ordinal) => - ValueUtilsSmi.GetSqlXml(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + ValueUtilsSmi.GetSqlXml(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); private SqlChars GetSqlCharsFrameworkSpecific(int ordinal) => - ValueUtilsSmi.GetSqlChars(_eventSink, _recordBuffer, ordinal, GetSmiMetaData(ordinal)); + ValueUtilsSmi.GetSqlChars(_recordBuffer, ordinal, GetSmiMetaData(ordinal)); private int SetValuesFrameworkSpecific(params object[] values) { diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs index 51b5115afa..39b2494fa0 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/ValueUtilsSmi.cs @@ -56,7 +56,7 @@ internal static bool IsDBNull(ITypedGettersV3 getters, int ordinal) return IsDBNull_Unchecked(getters, ordinal); } - internal static bool GetBoolean(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static bool GetBoolean(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Boolean)) @@ -72,7 +72,7 @@ internal static bool GetBoolean(SmiEventSink_Default sink, ITypedGettersV3 gette return (bool)result; } - internal static byte GetByte(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static byte GetByte(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Byte)) @@ -120,7 +120,7 @@ private static long GetBytesConversion(ITypedGettersV3 getters, int ordinal, Smi return length; } - internal static long GetBytes(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiExtendedMetaData metaData, long fieldOffset, byte[] buffer, int bufferOffset, int length, bool throwOnNull) + internal static long GetBytes(ITypedGettersV3 getters, int ordinal, SmiExtendedMetaData metaData, long fieldOffset, byte[] buffer, int bufferOffset, int length, bool throwOnNull) { // Additional exclusions not caught by GetBytesInternal if ( @@ -189,7 +189,7 @@ internal static long GetBytesInternal(ITypedGettersV3 getters, int ordinal, SmiM return GetBytesConversion(getters, ordinal, metaData, fieldOffset, buffer, bufferOffset, length, throwOnNull); } - internal static long GetChars(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData, long fieldOffset, char[] buffer, int bufferOffset, int length) + internal static long GetChars(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData, long fieldOffset, char[] buffer, int bufferOffset, int length) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.CharArray)) @@ -224,7 +224,7 @@ internal static long GetChars(SmiEventSink_Default sink, ITypedGettersV3 getters return length; } - internal static DateTime GetDateTime(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static DateTime GetDateTime(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.DateTime)) @@ -240,7 +240,7 @@ internal static DateTime GetDateTime(SmiEventSink_Default sink, ITypedGettersV3 } // dealing with v200 SMI - internal static DateTimeOffset GetDateTimeOffset(SmiEventSink_Default sink, SmiTypedGetterSetter getters, int ordinal, SmiMetaData metaData) + internal static DateTimeOffset GetDateTimeOffset(SmiTypedGetterSetter getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.DateTimeOffset)) @@ -250,7 +250,7 @@ internal static DateTimeOffset GetDateTimeOffset(SmiEventSink_Default sink, SmiT return (DateTimeOffset)GetValue200(getters, ordinal, metaData); } - internal static decimal GetDecimal(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static decimal GetDecimal(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Decimal)) @@ -265,7 +265,7 @@ internal static decimal GetDecimal(SmiEventSink_Default sink, ITypedGettersV3 ge return (decimal)result; } - internal static double GetDouble(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static double GetDouble(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Double)) @@ -280,7 +280,7 @@ internal static double GetDouble(SmiEventSink_Default sink, ITypedGettersV3 gett return (double)result; } - internal static Guid GetGuid(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static Guid GetGuid(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Guid)) @@ -295,7 +295,7 @@ internal static Guid GetGuid(SmiEventSink_Default sink, ITypedGettersV3 getters, return (Guid)result; } - internal static short GetInt16(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static short GetInt16(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Int16)) @@ -310,7 +310,7 @@ internal static short GetInt16(SmiEventSink_Default sink, ITypedGettersV3 getter return (short)obj; } - internal static int GetInt32(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static int GetInt32(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Int32)) @@ -325,7 +325,7 @@ internal static int GetInt32(SmiEventSink_Default sink, ITypedGettersV3 getters, return (int)result; } - internal static long GetInt64(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static long GetInt64(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Int64)) @@ -340,7 +340,7 @@ internal static long GetInt64(SmiEventSink_Default sink, ITypedGettersV3 getters return (long)result; } - internal static float GetSingle(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static float GetSingle(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.Single)) @@ -355,7 +355,7 @@ internal static float GetSingle(SmiEventSink_Default sink, ITypedGettersV3 gette return (float)result; } - internal static SqlBinary GetSqlBinary(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlBinary GetSqlBinary(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlBinary)) { @@ -373,7 +373,7 @@ internal static SqlBinary GetSqlBinary(SmiEventSink_Default sink, ITypedGettersV return (SqlBinary)result; } - internal static SqlBoolean GetSqlBoolean(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlBoolean GetSqlBoolean(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlBoolean)) { @@ -391,7 +391,7 @@ internal static SqlBoolean GetSqlBoolean(SmiEventSink_Default sink, ITypedGetter return (SqlBoolean)result; } - internal static SqlByte GetSqlByte(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlByte GetSqlByte(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlByte)) { @@ -410,7 +410,6 @@ internal static SqlByte GetSqlByte(SmiEventSink_Default sink, ITypedGettersV3 ge } internal static SqlBytes GetSqlBytes( - SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) @@ -460,7 +459,6 @@ internal static SqlBytes GetSqlBytes( } internal static SqlChars GetSqlChars( - SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) @@ -517,7 +515,7 @@ internal static SqlChars GetSqlChars( return result; } - internal static SqlDateTime GetSqlDateTime(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlDateTime GetSqlDateTime(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { SqlDateTime result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlDateTime)) @@ -545,7 +543,7 @@ internal static SqlDateTime GetSqlDateTime(SmiEventSink_Default sink, ITypedGett return result; } - internal static SqlDecimal GetSqlDecimal(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlDecimal GetSqlDecimal(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { SqlDecimal result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlDecimal)) @@ -572,7 +570,7 @@ internal static SqlDecimal GetSqlDecimal(SmiEventSink_Default sink, ITypedGetter return result; } - internal static SqlDouble GetSqlDouble(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlDouble GetSqlDouble(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { SqlDouble result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlDouble)) @@ -600,7 +598,7 @@ internal static SqlDouble GetSqlDouble(SmiEventSink_Default sink, ITypedGettersV return result; } - internal static SqlGuid GetSqlGuid(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlGuid GetSqlGuid(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { SqlGuid result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlGuid)) @@ -628,7 +626,7 @@ internal static SqlGuid GetSqlGuid(SmiEventSink_Default sink, ITypedGettersV3 ge return result; } - internal static SqlInt16 GetSqlInt16(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlInt16 GetSqlInt16(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { SqlInt16 result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlInt16)) @@ -656,7 +654,7 @@ internal static SqlInt16 GetSqlInt16(SmiEventSink_Default sink, ITypedGettersV3 return result; } - internal static SqlInt32 GetSqlInt32(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlInt32 GetSqlInt32(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { SqlInt32 result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlInt32)) @@ -683,7 +681,7 @@ internal static SqlInt32 GetSqlInt32(SmiEventSink_Default sink, ITypedGettersV3 return result; } - internal static SqlInt64 GetSqlInt64(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlInt64 GetSqlInt64(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { SqlInt64 result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlInt64)) @@ -711,7 +709,7 @@ internal static SqlInt64 GetSqlInt64(SmiEventSink_Default sink, ITypedGettersV3 return result; } - internal static SqlMoney GetSqlMoney(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlMoney GetSqlMoney(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { SqlMoney result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlMoney)) @@ -738,7 +736,7 @@ internal static SqlMoney GetSqlMoney(SmiEventSink_Default sink, ITypedGettersV3 return result; } - internal static SqlSingle GetSqlSingle(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlSingle GetSqlSingle(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { SqlSingle result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlSingle)) @@ -766,7 +764,7 @@ internal static SqlSingle GetSqlSingle(SmiEventSink_Default sink, ITypedGettersV return result; } - internal static SqlString GetSqlString(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static SqlString GetSqlString(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { SqlString result; if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.SqlString)) @@ -808,7 +806,6 @@ internal static SqlString GetSqlString(SmiEventSink_Default sink, ITypedGettersV } internal static SqlXml GetSqlXml( - SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) @@ -838,7 +835,7 @@ internal static SqlXml GetSqlXml( return result; } - internal static string GetString(SmiEventSink_Default sink, ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) + internal static string GetString(ITypedGettersV3 getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.String)) @@ -854,7 +851,7 @@ internal static string GetString(SmiEventSink_Default sink, ITypedGettersV3 gett } // dealing with v200 SMI - internal static TimeSpan GetTimeSpan(SmiEventSink_Default sink, SmiTypedGetterSetter getters, int ordinal, SmiMetaData metaData) + internal static TimeSpan GetTimeSpan(SmiTypedGetterSetter getters, int ordinal, SmiMetaData metaData) { ThrowIfITypedGettersIsNull(getters, ordinal); if (CanAccessGetterDirectly(metaData, ExtendedClrTypeCode.TimeSpan)) From d3ee330cc636da71f953323555a996763c24d675 Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Tue, 24 Jun 2025 06:53:51 +0100 Subject: [PATCH 10/11] Remove lingering SmiEventSink_Default file --- .../src/Microsoft.Data.SqlClient.csproj | 3 -- .../netfx/src/Microsoft.Data.SqlClient.csproj | 3 -- .../SqlClient/Server/SmiEventSink_Default.cs | 39 ------------------- 3 files changed, 45 deletions(-) delete mode 100644 src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj index 0a48c5499e..8ed371a531 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj @@ -423,9 +423,6 @@ Microsoft\Data\SqlClient\Server\MetadataUtilsSmi.cs - - Microsoft\Data\SqlClient\Server\SmiEventSink_Default.cs - Microsoft\Data\SqlClient\Server\SmiGettersStream.cs diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj index 6ecdb6e17d..3ce704b23a 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj @@ -534,9 +534,6 @@ Microsoft\Data\SqlClient\Server\MetadataUtilsSmi.cs - - Microsoft\Data\SqlClient\Server\SmiEventSink_Default.cs - Microsoft\Data\SqlClient\Server\SmiGettersStream.cs diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs deleted file mode 100644 index 32d87b2405..0000000000 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SmiEventSink_Default.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Diagnostics; - -namespace Microsoft.Data.SqlClient.Server -{ - internal class SmiEventSink_Default - { - private SqlErrorCollection _errors; - private SqlErrorCollection _warnings; - - internal virtual string ServerVersion => null; - - internal SmiEventSink_Default() - { - } - - internal bool HasMessages => false; - - #if NETFRAMEWORK - protected virtual void DispatchMessages(bool ignoreNonFatalMessages) - #else - protected virtual void DispatchMessages() - #endif - { - } - - #if NETFRAMEWORK - protected SqlException ProcessMessages(bool ignoreWarnings, bool ignoreNonFatalMessages) - #else - protected SqlException ProcessMessages(bool ignoreWarnings) - #endif - { - return null; - } - } -} From 910abeda9649a3d0ecb73e847f46ee298565d55f Mon Sep 17 00:00:00 2001 From: Edward Neal <55035479+edwardneal@users.noreply.github.com> Date: Wed, 25 Jun 2025 06:15:20 +0100 Subject: [PATCH 11/11] Clean up _recordBuffer assignment --- .../src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs index 06ec4a2cd6..4bb302cd7b 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Server/SqlDataRecord.cs @@ -376,11 +376,10 @@ public SqlDataRecord(params SqlMetaData[] metaData) _columnSmiMetaData[i] = MetaDataUtilsSmi.SqlMetaDataToSmiExtendedMetaData(_columnMetaData[i]); } - #if NETFRAMEWORK _recordBuffer = new MemoryRecordBuffer(_columnSmiMetaData); + + #if NETFRAMEWORK _usesStringStorageForXml = true; - #else - _recordBuffer = new MemoryRecordBuffer(_columnSmiMetaData); #endif }