Merge pull request #966 from ermshiperete/bug-xamarin-18511
[mono.git] / mcs / class / System.Data / Documentation / en / Microsoft.SqlServer.Server / SqlUserDefinedAggregateAttribute.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <Type Name="SqlUserDefinedAggregateAttribute" FullName="Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute">
3   <TypeSignature Language="C#" Value="public sealed class SqlUserDefinedAggregateAttribute : Attribute" />
4   <AssemblyInfo>
5     <AssemblyName>System.Data</AssemblyName>
6     <AssemblyVersion>2.0.0.0</AssemblyVersion>
7   </AssemblyInfo>
8   <Base>
9     <BaseTypeName>System.Attribute</BaseTypeName>
10   </Base>
11   <Interfaces />
12   <Attributes>
13     <Attribute>
14       <AttributeName>System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=false, Inherited=false)</AttributeName>
15     </Attribute>
16   </Attributes>
17   <Docs>
18     <since version=".NET 2.0" />
19     <remarks>
20       <attribution license="cc4" from="Microsoft" modified="false" />
21       <para>SQL Server creates a user-defined aggregate that is bound to the class definition that has the <see cref="T:Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute" /> custom attribute. Every user-defined aggregate must be annotated with this attribute.</para>
22       <para>See "CLR User-Defined Aggregates" in SQL Server 2005 Books Online for more information on user-defined aggregates and examples.</para>
23     </remarks>
24     <summary>
25       <attribution license="cc4" from="Microsoft" modified="false" />
26       <para>Indicates that the type should be registered as a user-defined aggregate. The properties on the attribute reflect the physical attributes used when the type is registered with SQL Server. This class cannot be inherited.</para>
27     </summary>
28   </Docs>
29   <Members>
30     <Member MemberName=".ctor">
31       <MemberSignature Language="C#" Value="public SqlUserDefinedAggregateAttribute (Microsoft.SqlServer.Server.Format f);" />
32       <MemberType>Constructor</MemberType>
33       <Parameters>
34         <Parameter Name="f" Type="Microsoft.SqlServer.Server.Format" />
35       </Parameters>
36       <Docs>
37         <param name="f">To be added.</param>
38         <remarks>To be added.</remarks>
39         <since version=".NET 2.0" />
40         <summary>
41           <attribution license="cc4" from="Microsoft" modified="false" />
42           <para>A required attribute on a user-defined aggregate, used to indicate that the given type is a user-defined aggregate and the storage format of the user-defined aggregate.</para>
43         </summary>
44       </Docs>
45       <AssemblyInfo>
46         <AssemblyVersion>2.0.0.0</AssemblyVersion>
47       </AssemblyInfo>
48     </Member>
49     <Member MemberName="Format">
50       <MemberSignature Language="C#" Value="public Microsoft.SqlServer.Server.Format Format { get; }" />
51       <MemberType>Property</MemberType>
52       <ReturnValue>
53         <ReturnType>Microsoft.SqlServer.Server.Format</ReturnType>
54       </ReturnValue>
55       <Docs>
56         <value>To be added.</value>
57         <remarks>To be added.</remarks>
58         <since version=".NET 2.0" />
59         <summary>
60           <attribution license="cc4" from="Microsoft" modified="false" />
61           <para>The serialization format as a <see cref="T:Microsoft.SqlServer.Server.Format" />.</para>
62         </summary>
63       </Docs>
64       <AssemblyInfo>
65         <AssemblyVersion>2.0.0.0</AssemblyVersion>
66       </AssemblyInfo>
67     </Member>
68     <Member MemberName="IsInvariantToDuplicates">
69       <MemberSignature Language="C#" Value="public bool IsInvariantToDuplicates { set; get; }" />
70       <MemberType>Property</MemberType>
71       <ReturnValue>
72         <ReturnType>System.Boolean</ReturnType>
73       </ReturnValue>
74       <Docs>
75         <value>To be added.</value>
76         <since version=".NET 2.0" />
77         <remarks>
78           <attribution license="cc4" from="Microsoft" modified="false" />
79           <para>Used by the query processor, this property is true if the aggregate is invariant to duplicates. That is, the aggregate of S, {X} is the same as aggregate of S when X is already in S. For example, aggregate functions such as MIN and MAX satisfy this property, while SUM does not.</para>
80           <para>Incorrectly setting this property can result in incorrect query results. This property is not an optimizer hint; it affects both the plan selected and the results returned by the query.</para>
81         </remarks>
82         <summary>
83           <attribution license="cc4" from="Microsoft" modified="false" />
84           <para>Indicates whether the aggregate is invariant to duplicates.</para>
85         </summary>
86       </Docs>
87       <AssemblyInfo>
88         <AssemblyVersion>2.0.0.0</AssemblyVersion>
89       </AssemblyInfo>
90     </Member>
91     <Member MemberName="IsInvariantToNulls">
92       <MemberSignature Language="C#" Value="public bool IsInvariantToNulls { set; get; }" />
93       <MemberType>Property</MemberType>
94       <ReturnValue>
95         <ReturnType>System.Boolean</ReturnType>
96       </ReturnValue>
97       <Docs>
98         <value>To be added.</value>
99         <since version=".NET 2.0" />
100         <remarks>
101           <attribution license="cc4" from="Microsoft" modified="false" />
102           <para>Used by the query processor, this property is true if the aggregate is invariant to nulls. That is, the aggregate of S, {NULL} is the same as aggregate of S. For example, aggregate functions such as MIN and MAX satisfy this property, while COUNT(*) does not.</para>
103           <para>Incorrectly setting this property can result in incorrect query results. This property is not an optimizer hint; it affects the plan selected and the results returned by the query.</para>
104         </remarks>
105         <summary>
106           <attribution license="cc4" from="Microsoft" modified="false" />
107           <para>Indicates whether the aggregate is invariant to nulls.</para>
108         </summary>
109       </Docs>
110       <AssemblyInfo>
111         <AssemblyVersion>2.0.0.0</AssemblyVersion>
112       </AssemblyInfo>
113     </Member>
114     <Member MemberName="IsInvariantToOrder">
115       <MemberSignature Language="C#" Value="public bool IsInvariantToOrder { set; get; }" />
116       <MemberType>Property</MemberType>
117       <ReturnValue>
118         <ReturnType>System.Boolean</ReturnType>
119       </ReturnValue>
120       <Docs>
121         <value>To be added.</value>
122         <since version=".NET 2.0" />
123         <remarks>
124           <attribution license="cc4" from="Microsoft" modified="false" />
125           <para>Reserved for future use. This property is not currently used by the query processor: order is currently not guaranteed.</para>
126           <para>Incorrectly setting this property can result in incorrect query results. This property is not an optimizer hint; it affects the plan selected and the results returned by the query.</para>
127           <para>The default value for this property is false.</para>
128         </remarks>
129         <summary>
130           <attribution license="cc4" from="Microsoft" modified="false" />
131           <para>Indicates whether the aggregate is invariant to order.</para>
132         </summary>
133       </Docs>
134       <AssemblyInfo>
135         <AssemblyVersion>2.0.0.0</AssemblyVersion>
136       </AssemblyInfo>
137     </Member>
138     <Member MemberName="IsNullIfEmpty">
139       <MemberSignature Language="C#" Value="public bool IsNullIfEmpty { set; get; }" />
140       <MemberType>Property</MemberType>
141       <ReturnValue>
142         <ReturnType>System.Boolean</ReturnType>
143       </ReturnValue>
144       <Docs>
145         <value>To be added.</value>
146         <since version=".NET 2.0" />
147         <remarks>
148           <attribution license="cc4" from="Microsoft" modified="false" />
149           <para>Used by the query processor, this property is true if the aggregate returns null if no values have been accumulated.</para>
150           <para>Incorrectly setting this property can result in incorrect query results. This property is not an optimizer hint; it affects the plan selected and the results returned by the query.</para>
151         </remarks>
152         <summary>
153           <attribution license="cc4" from="Microsoft" modified="false" />
154           <para>Indicates whether the aggregate returns null if no values have been accumulated.</para>
155         </summary>
156       </Docs>
157       <AssemblyInfo>
158         <AssemblyVersion>2.0.0.0</AssemblyVersion>
159       </AssemblyInfo>
160     </Member>
161     <Member MemberName="MaxByteSize">
162       <MemberSignature Language="C#" Value="public int MaxByteSize { set; get; }" />
163       <MemberType>Property</MemberType>
164       <ReturnValue>
165         <ReturnType>System.Int32</ReturnType>
166       </ReturnValue>
167       <Docs>
168         <value>To be added.</value>
169         <since version=".NET 2.0" />
170         <remarks>
171           <attribution license="cc4" from="Microsoft" modified="false" />
172           <para>This property does not have to be specified for Native format serialization. </para>
173           <para>You must specify the <see cref="P:Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute.MaxByteSize" /> property with the UserDefined serialization <see cref="T:Microsoft.SqlServer.Server.Format" />. </para>
174           <para>The maximum allowed value for this property is specified by the <see cref="F:Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute.MaxByteSizeValue" /> field.</para>
175           <para>The maximum size allowed is 2 gigabytes (GB). You can specify a number from 1 to 8000 bytes, or -1 to represent a value larger than 8000 bytes, up to 2 gigabytes.</para>
176           <para>For an aggregate with user-defined serialization specified, <see cref="P:Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute.MaxByteSize" /> refers to the total size of the serialized data. Consider an aggregate serializing a string of 10 characters (<see cref="T:System.Char" />). When the string is serialized using a <see cref="T:System.IO.BinaryWriter" />, the total size of the serialized string is 22 bytes: 2 bytes per Unicode UTF-16 character, multiplied by the maximum number of characters, plus 2 control bytes of overhead incurred from serializing a binary stream. So, when determining the value of <see cref="P:Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute.MaxByteSize" />, the total size of the serialized data must be considered: the size of the data serialized in binary form plus the overhead incurred by serialization.</para>
177         </remarks>
178         <summary>
179           <attribution license="cc4" from="Microsoft" modified="false" />
180           <para>The maximum size, in bytes, of the aggregate instance.</para>
181         </summary>
182       </Docs>
183       <AssemblyInfo>
184         <AssemblyVersion>2.0.0.0</AssemblyVersion>
185       </AssemblyInfo>
186     </Member>
187     <Member MemberName="MaxByteSizeValue">
188       <MemberSignature Language="C#" Value="public const int MaxByteSizeValue = 8000;" />
189       <MemberType>Field</MemberType>
190       <ReturnValue>
191         <ReturnType>System.Int32</ReturnType>
192       </ReturnValue>
193       <MemberValue>8000</MemberValue>
194       <Docs>
195         <since version=".NET 2.0" />
196         <remarks>
197           <attribution license="cc4" from="Microsoft" modified="false" />
198           <para>An <see cref="T:System.Int32" /> value representing the maximum size of the aggregate instance.</para>
199         </remarks>
200         <summary>
201           <attribution license="cc4" from="Microsoft" modified="false" />
202           <para>The maximum size, in bytes, required to store the state of this aggregate instance during computation.</para>
203         </summary>
204       </Docs>
205       <AssemblyInfo>
206         <AssemblyVersion>2.0.0.0</AssemblyVersion>
207       </AssemblyInfo>
208     </Member>
209   </Members>
210 </Type>