@@ -8,13 +8,9 @@ namespace Microsoft.Data.SqlClient.Server
8
8
{
9
9
10
10
// Formal encoding of SMI's metadata-to-ITypedSetter/-from-ITypedGetter validity rules
11
- internal class SmiXetterAccessMap
11
+ internal partial class SmiXetterAccessMap
12
12
{
13
13
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
-
18
14
private static bool [ , ] __isGetterAccessValid = {
19
15
// Getters as columns (abbreviated from XetterTypeCode names)
20
16
// SqlDbTypes as rows
@@ -56,64 +52,12 @@ internal class SmiXetterAccessMap
56
52
/*DTOffset*/ { _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , _ , X , } ,
57
53
} ;
58
54
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
-
102
55
internal static bool IsGetterAccessValid ( SmiMetaData metaData , SmiXetterTypeCode xetterType )
103
56
{
104
57
// Make sure no-one adds a new xetter type without updating this file!
105
58
Debug . Assert ( SmiXetterTypeCode . XetBoolean <= xetterType && SmiXetterTypeCode . XetDateTimeOffset >= xetterType ) ;
106
59
107
60
return __isGetterAccessValid [ ( int ) metaData . SqlDbType , ( int ) xetterType ] ;
108
61
}
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
- }
118
62
}
119
63
}
0 commit comments