@@ -8,13 +8,9 @@ namespace Microsoft.Data.SqlClient.Server
88{
99
1010 // Formal encoding of SMI's metadata-to-ITypedSetter/-from-ITypedGetter validity rules
11- internal class SmiXetterAccessMap
11+ internal partial class SmiXetterAccessMap
1212 {
1313
14- // A couple of private constants to make the getter/setter access tables more readable
15- private const bool X = true ;
16- private const bool _ = false ;
17-
1814 private static bool [ , ] __isGetterAccessValid = {
1915 // Getters as columns (abbreviated from XetterTypeCode names)
2016 // SqlDbTypes as rows
@@ -56,64 +52,12 @@ internal class SmiXetterAccessMap
5652/*DTOffset*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , } ,
5753 } ;
5854
59- private static bool [ , ] __isSetterAccessValid = {
60- // Setters as columns (abreviated from XetterTypeCode names)
61- // SqlDbTypes as rows
62- // Current difference between setters and getters is that character setters do
63- // not need to support SetBytes
64- // bool, byte, bytes, chars, strng, int16, int32, int64, singl, doubl, sqldec, date, guid, varmd, Xetr, time, dtost
65- /*BigInt*/ { _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
66- /*Binary*/ { _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
67- /*Bit*/ { X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
68- /*Char*/ { _ , _ , _ , X , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
69- /*DTime*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , } ,
70- /*Decimal*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , _ , } ,
71- /*Float*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , _ , _ , } ,
72- /*Image*/ { _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
73- /*Int*/ { _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
74- /*Money*/ { _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
75- /*NChar*/ { _ , _ , _ , X , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
76- /*NText*/ { _ , _ , _ , X , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
77- /*NVarChar*/ { _ , _ , _ , X , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
78- /*Real*/ { _ , _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , } ,
79- /*UniqueId*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , } ,
80- /*SmDTime*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , } ,
81- /*SmInt*/ { _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
82- /*SmMoney*/ { _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
83- /*Text*/ { _ , _ , _ , X , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
84- /*Tstamp*/ { _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
85- /*TinyInt*/ { _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
86- /*VarBin*/ { _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
87- /*VarChar*/ { _ , _ , _ , X , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
88- /*Variant*/ { X , X , X , X , X , X , X , X , X , X , X , X , X , X , _ , X , X , } ,
89- /* 24 */ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
90- /*Xml*/ { _ , _ , X , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
91- /* 26 */ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
92- /* 27 */ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
93- /* 28 */ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
94- /*Udt*/ { _ , _ , X , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , } ,
95- /*Struct*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , _ , _ , } ,
96- /*Date*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , } ,
97- /*Time*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , _ , } ,
98- /*DTime2*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , _ , _ , _ , _ , _ , } ,
99- /*DTOffset*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , } ,
100- } ;
101-
10255 internal static bool IsGetterAccessValid ( SmiMetaData metaData , SmiXetterTypeCode xetterType )
10356 {
10457 // Make sure no-one adds a new xetter type without updating this file!
10558 Debug . Assert ( SmiXetterTypeCode . XetBoolean <= xetterType && SmiXetterTypeCode . XetDateTimeOffset >= xetterType ) ;
10659
10760 return __isGetterAccessValid [ ( int ) metaData . SqlDbType , ( int ) xetterType ] ;
10861 }
109-
110- internal static bool IsSetterAccessValid ( SmiMetaData metaData , SmiXetterTypeCode xetterType )
111- {
112- // Make sure no-one adds a new xetter type without updating this file!
113- Debug . Assert ( SmiXetterTypeCode . XetBoolean <= xetterType && SmiXetterTypeCode . XetDateTimeOffset >= xetterType &&
114- SmiXetterTypeCode . GetVariantMetaData != xetterType ) ;
115-
116- return __isSetterAccessValid [ ( int ) metaData . SqlDbType , ( int ) xetterType ] ;
117- }
11862 }
11963}
0 commit comments