[corlib] Improve CancellationTokenSource test
[mono.git] / mcs / class / Mono.Data.Tds / Mono.Data.Tds.Protocol / ChangeLog
1 2011-05-05  Veerapuram Varadhan  <v.varadhan@gmail.com>
2
3         ** Fixes #681916
4         * Tds70.cs (WriteParameterInfo): Handle null value for Image 
5         or varbinary(max) parameters as well. 
6         
7 2010-09-29  Veerapuram Varadhan  <vvaradhan@novell.com>
8
9         ** Fixes failed test for smallmoney
10         * Tds70.cs (WriteParameterInfo): Round money values to 4 decimals, for smallmoney too.
11         
12 2010-07-13  Veerapuram Varadhan  <vvaradhan@novell.com>
13
14         ** Fixes #613845
15         * Tds70.cs (WriteParameterInfo): Round money values to 4 decimals.
16         
17 2010-07-12  Veerapuram Varadhan  <vvaradhan@novell.com>
18         
19         ** Fixes #569543
20         * Tds70.cs (ExecPrepared): Revert back to old changes.
21         * Tds80.cs (ExecPrepared): Override for Tds 8 version that optimizes 
22         network bandwidth.
23         
24 2010-07-10  Veerapuram Varadhan  <vvaradhan@novell.com>
25
26         ** Fixes 620860
27         * Tds70.cs (Precision): New virtual property to handle Precision values 
28         across different Tds versions.
29         (WriteParameterInfo): Use defined Precision property instead of 
30         constant value.  Also handle Ulong and long max/min values properly.
31         * Tds80.cs (Precision): Override property to provide Tds 8 precision value.
32         
33 2010-07-07  Veerapuram Varadhan  <vvaradhan@novell.com>
34
35         * TdsComm.cs (Append[DateTime]): Ugh.. ugh.. final fix for handling MinValue for DateTime.
36         
37 2010-07-07  Veerapuram Varadhan  <vvaradhan@novell.com>
38
39         ** Fixes #609109 - DateTime part
40         * TdsComm.cs (Append[DateTime]): More fix for handling SqlServer MinValue for DateTime.
41         
42 2010-07-06  Veerapuram Varadhan  <vvaradhan@novell.com>
43
44         ** Fixes #609109
45         * TdsComm.cs (Append[DateTime]): Handle datetime values sanely that are less than epoch.
46         (Append[string]): Fix boundary checking for availability of enough buffer
47         
48 2010-07-03  Veerapuram Varadhan  <vvaradhan@novell.com>
49
50         ** Fixes #609935
51         * TdsComm.cs (Append[string]): Fix boundary calculations of bytes 
52         to be written and available free buffer.
53         
54 2010-06-15 Jonathan Chambers  <joncham@gmail.com>
55
56         * Tds.cs: Add {} around default switch case.
57
58 2010-06-15  Veerapuram Varadhan  <vvaradhan@novell.com>
59
60         ** Fixes #613087
61         * Tds.cs (ProcessLoginAck): Fix server version being compared in 
62         the switch-case.
63         * Tds70.cs (BuildPreparedParameters, BuildProcedureCall): Set default 
64         precision to 18 as used by MS.Net when connecting to SqlServer 7.0.
65         (BuildExec, ExecRPC): Marked protected in order to be used by Tds80 
66         and henceforth.
67         * Tds80.cs (Execute): Separated from Tds70 to include Tds80 changes.
68         
69 2010-04-21  Veerapuram Varadhan  <vvaradhan@novell.com>
70
71         ** Fixes #595918
72         * Tds70.cs (WriteParameterInfo): Write updated decimal value according 
73         to specified scale value.
74         
75 2009-08-17  Veerapuram Varadhan  <vvaradhan@novell.com>
76
77         ** Fixes #381151 NRE 
78         * Tds.cs (ProcessColumnInfo): Use Columns instead of creating a new list.
79         * TdsDataColumnCollection.cs (Clear, Add): New utility methods 
80         * Tdsxx.cs: ProcessColumnInfo definition changes.
81         
82 2009-07-25  Veerapuram Varadhan  <vvaradhan@novell.com>
83
84         * Tds70.cs (ProcessColumnInfo): Update the new DataTypeName property.
85         * TdsDataColumn.cs: Added DataTypeName property accessors.
86         
87 2009-07-25  Gert Driesen  <drieseng@users.sourceforge.net>
88
89         * TdsConnectionPool.cs: Fixed typo in ResetConnectionPool.
90
91 2009-05-26  Veerapuram Varadhan  <vvaradhan@novell.com>
92
93         ** Fixes #382734
94         * Tds80.cs: Consider queries with Parameters as RPCs and avoid formatting 
95         param values as strings.  Fixes issues with locale specific string 
96         formatting/conversions.
97         
98         * TdsRpcProcId.cs: New - enum of rpc Ids to use with RPC packet type.
99         
100 2009-05-16  Veerapuram Varadhan  <vvaradhan@novell.com>
101
102         * Tds70.cs (WriteParameterInfo): Default precision is 29 and not 28.
103         
104 2009-05-16  Veerapuram Varadhan  <vvaradhan@novell.com>
105
106         * Tds70.cs (WriteParameterInfo): Do not change the original 
107         param.TypeName value.
108         
109 2009-05-16  Veerapuram Varadhan  <vvaradhan@novell.com>
110
111         ** Fixes #382589
112         * Tds.cs (ServerTdsVersion): New property to access ServerVersion.
113         
114         * Tds70.cs (WriteParameterInfo): Treat Decimal types as Numeric 
115         types from SQL Server 2000.
116         
117         * TdsVersion.cs: Add SQL Server 2008 version.
118         
119 2009-05-02  Veerapuram Varadhan  <vvaradhan@novell.com>
120
121         ** Fixes #462947 - Patch by Gert Driesen
122         * Tds.cs (InitExec): More intialization of variables. 
123         
124 2009-04-28  Veerapuram Varadhan  <vvaradhan@novell.com>
125
126         * Tds.cs (InitExec):  Move initialization of SequentialAccess related 
127         variables here.
128         
129 2009-04-28  Veerapuram Varadhan  <vvaradhan@novell.com>
130         
131         * Tds.cs (ExecuteQuery): Reset all the variables related to LoadData 
132         when performing queries with SequentialAccess set to true.  Fixes 
133         incorrect handling of data retrieval when multiple queries are run 
134         with SequentialAccess set to true for the same instance of Tds.
135         
136 2009-04-28  Veerapuram Varadhan  <vvaradhan@novell.com>
137
138         * Tds.cs (ExecuteQuery): Reset SequentialAccess read state variables 
139         in order to avoid blocking forever when two queries are executed with 
140         SequentialAccess set to true for the same instance of Tds.
141         
142 2009-04-28  Veerapuram Varadhan  <vvaradhan@novell.com>
143
144         ** Fixes#463011
145         * Tds70.cs (Reset): Call base.Reset to update Database being used.
146
147 2009-04-28 Gonzalo Paniagua Javier <gonzalo@novell.com>
148
149         * TdsConnectionPool.cs: if GetConnection() fails to create a
150         connection, try again several times and then throw. Improved
151         ResetConnectionPool() so that it does not immediately close
152         connections in use. Don't re-add connections that have been closed.
153
154         * Tds.cs: Connected tests the socket connection too. Made Disconnect()
155         not throw.
156
157         * TdsComm.cs: set more socket options (timeout and NoDelay) and have a
158         single entry point for reading from the stream.
159
160 2009-03-23  Veerapuram Varadhan  <vvaradhan@novell.com>
161
162         * Tds.cs: Properly handle TdsColumnType.BigInt as we support TDS 8 now.
163         
164 2009-03-15  Veerapuram Varadhan  <vvaradhan@novell.com>
165
166         ** Fixes #463011
167         * Tds70.cs (Reset): Call base.Reset to update Database being used.
168         
169 2009-03-14  Veerapuram Varadhan  <vvaradhan@novell.com>
170
171         * Tds70.cs (WriteParameterInfo): Handle scenarios of Partlentype, 
172         a TDS 9 feature.
173         
174 2009-03-04  Veerapuram Varadhan  <vvaradhan@novell.com>
175
176         * TdsComm.cs (Append (*)): Do not create temporary byte arrays, 
177         instead manipulate directly. Saves quite a bit of allocations 
178         and improves performance.
179         (AppendInternal) : Do the math here.
180         (TdsByteOrder) : Property that indicates the byte-order-encoding which, 
181         is independent of host's byte-order-encoding.
182         (SendPhysicalPacket): Add packet-id to the header
183         
184 2009-02-26  Veerapuram Varadhan  <vvaradhan@novell.com>
185
186         * Tds.cs (ProcessLoginAck): Set TdsVersion to the version
187         supported by the server.
188         (GetColumnValue): lcid and sortId are available only from Tds 8.
189
190         * Tds80.cs (ProcessColumnInfo, ProcessOutputParam): Call base
191         methods if the server version is less than Tds 8.
192         
193 2009-02-19  Veerapuram Varadhan  <vvaradhan@novell.com>
194
195         * Tds.cs: Tds 8 collation support
196           Tds80.cs: - ditto -
197           TdsComm.cs: - ditto -
198           TdsDataColumn.cs: - ditto -
199           TdsCollation.cs: New file. Based on patch from Dmitry S. Kataev  
200           <dmitryskey@hotmail.com>
201           
202 2009-02-02  Veerapuram Varadhan  <vvaradhan@novell.com>
203
204         * Tds.cs:       TDS 8 changes
205           Tds70.cs: - ditto -
206           Tds80.cs: - ditto -
207           TdsVersion.cs: - ditto -
208           TdsEnvPacketSubType.cs: - ditto -
209           TdsComm.cs:   - ditto -
210           
211 2009-01-29 Gonzalo Paniagua Javier <gonzalo@novell.com>
212
213         * Tds70.cs: fix for output parameters and '@'.
214         Fixes bug #470579. Patch from Varadhan.
215
216 2009-01-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
217
218         * TdsConnectionPool.cs: made getting/releasing connections thread safe.
219         If we have a release connection available, we return that without locking
220
221 2009-01-21 Christian Hergert <christian.hergert@gmail.com>
222
223         * TdsComm.cs: optimize Append(byte[],int,byte) for adding data to
224         the buffer in the largest size of chunks possible.  also optimize
225         other Append overloads to use this rather than lots of Append(byte).
226
227 2009-01-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
228
229         * TdsComm.cs: no need for the ManualResetEvent or the timeout instance
230         variables.
231
232 2009-01-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
233
234         * Tds70.cs: fix my mistake in the previous patch.
235
236 2009-01-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
237
238         * Tds70.cs: more '@' handling.
239
240 2009-01-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
241
242         * Tds70.cs: send the leading '@' for parameters that do not have one.
243         Fixes bug #466071.
244         Thanks to William Shallum.
245
246 2009-01-04  Gert Driesen  <drieseng@users.sourceforge.net>
247
248         * Tds.cs: Support detecting NULL value when sequentially reading
249         text/ntext/image column. Fixed typo in exception message in
250         GetSequentialColumnValue. Support reading zero-length binary data.
251
252 2008-12-30  Gert Driesen  <drieseng@users.sourceforge.net>
253
254         * Tds.cs: Added IsWideType method.
255         * Tds70.cs: Fixed columnsize for unicode columns. Set precision
256         and scale for non-decimal/numeric column.
257         * TdsColumnType.cs: Adds tds names as comment.
258
259 2008-12-30  Gert Driesen  <drieseng@users.sourceforge.net>
260
261         * Tds.cs (LoadData): Improve exception message when attempting to
262         read before the current position. Update the remaining length of the
263         stream when skipping bytes.
264
265 2008-12-05 Gonzalo Paniagua Javier <gonzalo@novell.com>
266
267         * Tds70.cs: support parameter names with or without a leading '@'.
268
269 2008-11-13  Veerapuram Varadhan  <vvaradhan@novell.com>
270
271         * TdsComm.cs (ResetConnection, IsConnected): Added a property and
272         method.  IsConnected will check for any connection-reset occurrance
273         from other end-point of the underlying socket.  ResetConnection
274         adds the "reset" bit in the Status flag field of packet header.
275         Set socket option to keep alive, whereever supported and also, let
276         the socket close along with the underlying stream.
277
278         * Tds70.cs (Reset): Use the new ResetConnection property instead
279         of executing sp_reset_connection.  Saves a round-trip.
280         
281 2008-11-11  Gert Driesen  <drieseng@users.sourceforge.net>
282
283         * Tds70.cs: Support writing negative (small)money values. Added 
284         overflow check for smallmoney values. Fixes bug #428139.
285         * Tds.cs: Fixed reading negative (small)money values.
286
287 2008-11-09  Gert Driesen  <drieseng@users.sourceforge.net>
288
289         * TdsConnectionPool.cs: Added TdsConnectionPoolManager.GetConnection
290         overload that can be used to retrieve an existing connection pool.
291         Modified ResetConnectionPool () to skip free slots in the pool and to
292         close pooled connections that are not in use. Pooled connections that
293         are in use are now marked as non-pooled so that they are no longer
294         returned to the pool when they are closed. Fixes bug #443131.
295
296 2008-09-16  Veerapuram Varadhan  <vvaradhan@novell.com>
297
298         Patch from Christian Hergert <christian.hergert@gmail.com>
299         * TdsComm.cs: Expose the stream to be internally used by other
300         classes
301         * Tds70.cs (Reset): Validate whether the connection is available
302         or not.
303         
304 2008-07-09  Veerapuram Varadhan  <vvaradhan@novell.com>
305
306         * TdsComm.cs:  Cleanup stray Console.WriteLine that got in during last commit
307         
308 2008-07-09  Veerapuram Varadhan  <vvaradhan@novell.com>
309
310         Patch by Jon Larimer <jlarimer@gmail.com> fixes ##407208
311         * TdsComm.cs: Call DNS.GetHostEntry() only for host names and not for IPs.
312         
313 2008-07-06  Gert Driesen  <drieseng@users.sourceforge.net>
314
315         * TdsConnectionPool.cs: When pooled connection cannot be reset, remove
316         it from pool and allow slot to be re-used for a newly established
317         connection. Fixes part of bug #360157. When pool is full, and no
318         connection becomes available before the connect timeout has elapsed,
319         then throw an InvalidOperationException instead of a SqlException.
320         * Tds50.cs: Fixed compiler warning. Removed extra tabs, and changed
321         spaces to tabs. Minor code formatting.
322         * Tds70.cs: Removed extra tabs, and changed spaces to tabs. Code
323         formatting. Avoid calling Environment.UserDomainName if username
324         contains domain. Use String.Empty instead of "".
325         * TdsConnectionParameters.cs: Invoke Reset method for initializing
326         fields. Spaces to tabs.
327
328 2008-07-04  Gert Driesen  <drieseng@users.sourceforge.net>
329
330         * TdsConnectionPool.cs: On 1.0 profile, use object[] for list of
331         connections. Patch provided by Christian Hergert. Fixes bug #406540.
332
333 2008-07-04  Gert Driesen  <drieseng@users.sourceforge.net>
334
335         * Tds.cs: Avoid accessing TdsDataColumnCollection indexer. On 2.0
336         profile, use predefined properties on TdsDataColumn for setting the
337         BaseColumnName and BaseTableName. Fixes bug #406556.
338         * Tds50.cs: Avoid accessing TdsDataColumnCollection indexer, and
339         fixed IsHidden.
340
341 2008-07-01  Gert Driesen  <drieseng@users.sourceforge.net>
342
343         * Tds70.cs: Avoid accessing TdsDataColumnCollection indexer.
344         * Tds.cs: Removed unused method.
345         * TdsComm.cs: Fixed compiler warning.
346
347 2008-07-01  Marek Habersack  <mhabersack@novell.com>
348
349         * TdsDataColumnCollection.cs, Tds50.cs, Tds42.cs, Tds70.cs,
350         Tds.cs: adjust for changes below.
351
352         * TdsDataColumn.cs: use the named properties only in the 2.0
353         profile. The reason is that Mono.Data.TdsClient.TdsDataReader
354         needs to know if a property has been set or not. With 2.0 it is
355         easy to implement using nullable types, with 1.x it would require
356         using e.g. BitArray to control which field was set, and in
357         addition extra code would be needed to check whether a field was
358         set or not. Also, it would clutter the code with #ifdefs all over
359         the map.
360
361 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
362
363         * TdsDataColumn.cs: Do not inherit from Hashtable, add always set properties
364         as normal properties so code can access them without doing a hashtable lookup.
365
366         * Tds.cs Tds42.cs Tds50.cs Tds70.cs: Adapt to the TdsDataColumn changes.
367
368 2008-06-09  Veerapuram Varadhan  <vvaradhan@novell.com>
369
370         Patch from Christian Hergert <christian.hergert@gmail.com>
371         * TdsConnectionPool.cs: Remove unnecessary locks and code refactoring 
372         * Tds.cs: Add member to hold status of the connection pool  
373         
374 2008-06-09  Ankit Jain  <jankit@novell.com>
375
376         Tds class doesn't need to inherit Component or implement ITds, fix.
377         * Tds.cs: Update
378         * Tds42.cs, Tds50.cs, Tds70.cs, Tds80.cs:
379         Make Tds-derived classes sealed.
380         * TdsConnectionPool.cs: Update.
381
382 2008-05-17  Gert Driesen  <drieseng@users.sourceforge.net>
383
384         * Tds.cs: Do not return 0 for decimal/numeric columns with value NULL.
385         Avoid unnecessary initialization of fields, and minor code formatting.
386
387 2008-05-15  Marek Habersack  <mhabersack@novell.com>
388
389         * Tds.cs: deal with null columns when getting value for a Numeric
390         or Decimal columns.
391
392 2008-05-05  Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
393
394         * Tds.cs: a numeric column with no decimal digits and a precision <= 80
395         is translated into a long.
396
397 2007-11-10  Gert Driesen  <drieseng@users.sourceforge.net>
398
399         * Tds.cs: Round milliseconds for datetime. Fixes part of bug #323646.
400         * Tds70.cs: Include milliseconds for datetime parameters. Fixes part
401         of bug #323646.
402
403 2007-10-17  Nagappan <anagappan@novell.com> 
404
405         * TdsConnectionPool.cs: Default the pooling is enabled. It has to be
406           disabled only when we clear all the pools.
407
408 2007-09-25  Nagappan A  <anagappan@novell.com>
409
410         * Tds.cs (Pooling): Added new property to get the internal
411         connection pooling list.
412
413         * ITds.cs (Pooling): Added new property to get the internal
414         connection pooling list.
415
416         * TdsConnectionPool.cs (ResetConnectionPool, GetConnectionPool)
417         (ReleaseConnection): Added new methods to clear connection pool.
418
419 2007-08-06  Nagappan A  <anagappan@novell.com>
420
421         * TdsComm.cs (TdsComm): Now connects to the SqlServer in Async
422         mode. Fixes bug # 81934.
423
424         * Tds.cs (ProcessEnvironmentChange): Gets the server locale to use
425         them when required. Fixes bug # 82047.
426         When the server resets the connection, now the client code also
427         disconnects the session and remove the instance. Fixes bug #
428         81933.
429         Added new protected property Locale.
430
431         * TdsEnvPacketSubType.cs (Locale): Added new enumerator
432         entry. This gets the Locale type of SqlServer. Fixes bug # 82047.
433
434         * Tds70.cs (FormatParameter): Fixes the error when trying to add a
435         row with a DateTime field into an Italian SqlServer, bug # 82047.
436
437 2007-07-23  Nagappan A  <anagappan@novell.com>
438
439         * TdsBulkCopy.cs: Removed all the Namespace that are not
440         required.
441
442 2007-07-22  Nagappan A  <anagappan@novell.com>
443
444         * TdsBulkCopy.cs: Added new file to handle the bulk copy
445         operation.
446
447         * Tds.cs (ExecBulkCopyMetaData, ExecBulkCopy): Added new methods
448         to send and receive bulk data information.
449
450         * Tds70.cs (IsBlobType, IsLargeType): Moved methods to Tds.cs.
451
452         * TdsComm.cs: Fixed 2.0 compilation warnings.
453
454         * Tds50.cs: Fixed compilation warnings.
455
456         * Tds42.cs: Fixed compilation warnings.
457
458         * TdsPacketType.cs: Added Bulk type.
459
460 2007-05-30  Nagappan A  <anagappan@novell.com>
461
462         * TdsColumnType.cs: Added new types BigNVarChar, Variant to
463         TdsColumnType enumerator.
464
465         * TdsComm.cs (Append): Appends new data types to the TDS data
466         stream and also implemented new Append overloaded method.
467
468         * Tds.cs (BeginLoad): New case to handle BigBinary.
469         (GetMoneyValue): Simplified the switch / case conditions.
470
471         * TdsDataRow.cs: Instance of index checks for the given index to
472         be less than list count, else an exception will be thrown.
473
474         * Tds70.cs (sqlserverMagic): Modified byte values.
475         (ExecProc): Now directly calls ExecRPC for any number of
476         parameters being passed.
477         (ExecRPC): New logic to handle parameters.
478         (WriteParameterInfo): New private method to generate information
479         about each parameter.
480         (ProcessReturnStatus): New protected method to process the return
481         status of output parameter value.
482
483 2007-03-21  Nagappan A  <anagappan@novell.com>
484
485         * Tds70.cs (BuildParameters, FormatParameter): Include @ before
486         parameter name, if doesnot exist.
487
488 2006-07-18  Dean Brettle <dean@brettle.com>
489
490         * Tds70.cs : Fixed bug in FormatParameter() which caused 
491         ArgumentOutOfRangeException when formatting 0-length varbinary values
492         under 1.0 profile.
493
494 2006-05-03  Senganal T  <tsenganal@novell.com>
495
496         * Tds.cs : 
497                 - SetCharset () : Fix to set the Charset correctly.
498                 Patch from Andrzej Kurzeja
499
500 2006-03-08  Senganal T  <tsenganal@novell.com>
501
502         * Tds70.cs :
503                 - ProcessColumnInfo () : Set IsAutoIncrement Value for the column.
504
505 2006-02-10  Senganal T  <tsenganal@novell.com>
506
507         * Tds.cs :
508                 - GetSequentialColumn,BeginLoad, EndLoad,
509                 LoadData, SkipRow, SkipToColumnIndex
510                 New Methods to Support sequential loading of row data
511         * TdsComm.cs :
512                 - Skip : Changed arugment type from int to long.
513
514 2006-01-27  Senganal T  <tsenganal@novell.com>
515
516         * Tds.cs :
517                 - Modified GetSqlMoney () , to set the precision and Scale correctly.
518                 - Modified ProcessColumnDetails , to set the schema values correctly.
519         * TdsDataColumn.cs : Added some default values for the column schema
520         
521 2005-12-07  Senganal T  <tsenganal@novell.com>
522
523         * Tds50.cs :
524                 - IsValidRowCount () : Find out if a row count is valid.
525                 Fixes bug #76280
526         * Tds.cs :
527                 - ProcessEndToken (): Removed some redundant code.
528
529 2005-12-03  Senganal T  <tsenganal@novell.com>
530
531         * Tds70.cs : 
532                 - FormatParameter () : For DateTime Parameters, convert the value if
533                 specified as a string. Fixes bug#76880
534
535 2005-11-24  Senganal T  <tsenganal@novell.com>
536
537         * Tds.cs 
538         * Tds70.cs : 
539                 - Modifications to set the desired packetsize info when connecting
540                 to database
541
542 2005-11-23  Senganal T  <tsenganal@novell.com>
543         
544         * TdsComm.cs : 
545                 - ResizeOutBuf : Modified to shrink the output buffer if
546                 the block size is reduced. Fixed bug #76778     
547
548 2005-10-27  Senganal T  <tsenganal@novell.com>
549         
550         * Tds.cs :
551                 - Added a virtual method IsValidRowCount ()
552                 - Modified the way RecordsAffected is being counted
553
554         * Tds70.cs :
555                 - Overrode IsValidRowCount(), to check if the rowcount
556                 returned by sqlserver is valid.
557
558 2005-10-19  Senganal T  <tsenganal@novell.com>
559
560         * TdsConnectionParameter.cs :
561                 - Added a class variable 'AttachDBFileName' to store the location
562                 of the DB file.
563
564         * Tds70.cs (Connect) :
565                 - Modified to append the bytes corresponding to AttachDBFileName 
566                 into the Tds Packets. 
567
568 2005-08-26  Sureshkumar T  <tsureshkumar@novell.com>
569
570         * Tds70.cs (ExecProc): if no parameters, execute via RPC. parameter
571         support has to be added.
572
573         * Tds.cs (ExecRPC): added virtual method to execute via RPC.
574
575         This fixes bug #68978 by enabling execution of sp_reset_connection.
576
577 2005-08-24  Sureshkumar T  <tsureshkumar@novell.com>
578
579         * Tds.cs: ProcessColumnDetail (): expression columns don't have
580         baseTableName.
581
582 2005-08-05  Sureshkumar T  <tsureshkumar@novell.com>
583
584         * Tds70.cs: Reset (): remove exec.
585
586 2005-07-01  Sureshkumar T  <tsureshkumar@novell.com>
587
588         * Tds70.cs: FormatParameter: For uniqueidentifier, pass the guid
589         as '..' rather than hex. Tested with SqlServer 2005.
590
591         patch from jsinger@eggmouse.com & Hubert FONGARNAND.
592
593 2005-06-29  Sureshkumar T  <tsureshkumar@novell.com>
594
595         * TdsInternalException.cs: Add ctor for InnerException.
596
597         * TdsComm.cs: Throw TdsInternalException rather than
598         SocketException.
599
600 2005-06-01  Sureshkumar T  <tsureshkumar@novell.com>
601
602         * Tds50.cs: add a special case for datetime parameters to convert
603         to invariant culture. fixes bug #74910.
604
605 2005-04-07  Sureshkumar T  <tsureshkumar@novell.com>
606             Ankit Jain     <radical@corewars.org>
607
608         * TdsComm.cs: GetPhysicalPacket is devided further into seperate
609         methods GetPhysicalPacketHeader and
610         GetPhysicalPacketData. Implemented asynchronous ReadPacket method.
611
612         * ITds.cs: Added additional methods for asynchronous operations.
613
614         * Tds.cs: Implemented base methods for asynchronous
615         operations. Version specific derivatives should override for
616         specific operations.
617
618         * Tds70.cs: For stored procedure, "exec" is prefixed by
619         default. Implemented asynchronous method for asynchronous command
620         execution.
621
622         * TdsAsyncState.cs: Added. Internal asynchronous state object.
623
624         * TdsAsyncResult.cs: Added. Internal asynchronous result
625         implementation.
626
627 2005-04-04  Sureshkumar T  <tsureshkumar@novell.com>
628
629         * Tds50.cs: Pass parameters to the server. cut & paste from
630         Tds70.cs. To make the parmeters work with SybaseClient.
631
632 2005-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
633
634         * Tds70.cs: turns out that sp_reset_connection procedure might not be
635         found ("Invalid object name 'sp_reset_connection'"). In this case, and
636         if we get a proper state ('Class' property in the SqlException), just
637         ignore the error.
638
639         * TdsConnectionPool.cs: if the connection cannot be reset, attemp to
640         disconnect it before losing the last reference to it.
641
642 2005-03-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
643
644         * Tds.cs: set the charset for MS SQL 2000. Patch from Aleksandar
645         Dezelin. Closes bug #73591.
646
647 2005-02-04  Sureshkumar T  <tsureshkumar@novell.com>
648
649         * Tds.cs (ProcessEndToken): Added a bool validRowCount and add to
650         recordsAffected count if we meet DoneInProc..
651
652 2005-02-02  Sureshkumar T  <tsureshkumar@novell.com>
653
654         * TdsConnectionParameters.cs: added a method Reset to initialize
655         parameters again.
656
657 2005-01-16  Daniel Morgan <danielmorgan@verizon.net>
658
659         * Tds.cs: TDS 5.0 (Sybase) needs to get a DECIMAL
660         differently than TDS 7.0 (SqlServer).  Fixes bug 70228.
661         Thanks to Sebastien Robitaille for the patch for Sybase.
662         
663 2005-01-07  Sureshkumar T  <tsureshkumar@novell.com>
664
665         * Tds70.cs : 
666         - add a special case for datetime parameters to convert to
667         invariant culture. fixes bug #70209.
668         - change format to MMM dd yyyy, this works for both client locale
669         change and server login locale change. fixes bug #66564.
670
671 2005-01-06  Sureshkumar T  <tsureshkumar@novell.com>
672
673         * Tds.cs: change the typecast to ushort for
674         GetDateTimeValue. fixes bug #70651.
675
676 2004-11-06 Gert Driesen <drieseng@users.sourceforge.net>
677         * Tds70.cs: avoid unnecessary property call.    
678
679 2004-11-01 Gert Driesen <drieseng@users.sourceforge.net>
680         
681         * Tds70.cs: when type of parameter value is enum, convert value to
682         underlying type before converting value to string as we'd otherwise
683         be using the enum field name
684
685 2004-10-30 Umadevi S <sumadevi@novell.com>
686         * Tds.cs : GetColumnValue method: handling null guid values correctly.
687                 This fixes bug #68804. 
688                 Thanks for the patch /bug report by Aleksandar Dezelin
689
690 2004-10-14 Umadevi S <sumadevi@novell.com>
691         * Tds.cs : GetTextValue method- handling zero length string correctly
692                 This fixes bug #67916
693
694 2004-08-14 Geoff Norton <gnorton@customerdna.com>
695
696         * TdsComm.cs: 
697           Tds70.cs: 
698                 Make Tds70 work on Big Endian machines.
699                 BitConverter uses unsafe and returns things in host order; we need to 
700                 swap some values to put them back into the approrpiate order for the wire.
701
702 2004-08-09 Sureshkumar T <tsureshkumar@novell.com>
703         * Tds70.cs - Prepare Method stored procedure handle read problem fixed.
704
705 2004-06-30 Umadevi S <sumadevi@novell.com>
706         * Tds.cs - In the NextResult method handling TdsPacketSubType. TableName. 
707
708
709 2004-04-22  Sebastien Pouliot <sebastien@ximian.com> 
710
711         * Tds70.cs: Updated to match changes in Mono.Security.dll.
712
713 2004-04-05  Lluis Sanchez Gual  <lluis@ximian.com>
714
715         * ITds.cs: Added method for reseting a connection.
716         * Tds.cs: Added base implementation for ITds.Reset.
717         * Tds70.cs: Implemented ITds.Reset().
718         * TdsConnectionPool.cs: Implemented connection pool that can be reused by 
719           all Tds clients.
720
721 2004-04-01  Lluis Sanchez Gual  <lluis@ximian.com>
722
723         * Tds.cs: All methods now return DBNull instead of null for null values.
724         * Tds50.cs, Tds70.cs: Support parameters with DBNull value.
725
726 2003-12-21  Tim Coleman <tim@timcoleman.com>
727         * Tds70.cs:
728                 Fix Integrated Security to work with Domain users.
729
730 2003-12-06  Sebastien Pouliot <spouliot@videotron.ca> 
731         for Daniel Morgan <danielmorgan@verizon.net>
732
733         Sebastien Pouliot (spouliot@motus.com) helped me greatly with his
734         NTLM stuff.
735         
736         * Mono.Data.Tds.Protocol/Tds.cs
737         * Mono.Data.Tds.Protocol/Tds70.cs
738         * Mono.Data.Tds.Protocol/TdsConnectionParameters.cs
739         * Mono.Data.Tds.Protocol/TdsPacketSubType.cs
740         * Mono.Data.Tds.Protocol/TdsPacketType.cs: added NT Authentication aka
741         Integrated Security aka Domain Login
742         
743 2003-10-19  Joerg Rosenkranz <joergr@voelcker.com>
744
745         * Tds.cs (GetStringValue): A string length of 0xFF (255) is not
746         misinterpreted as special value anymore.
747         
748         This is a fix to bug #49835.
749
750 2003-10-03  Diego Caravana  <diego@toth.it>
751
752         * Tds70.cs: Now handles parameters of type ReturnValue and
753         InputOutput.
754         (BuildParameters): skips the ReturnValue params and builds the
755         set string considering the assigned value for InputOutput ones.
756         (BuildProcedureCall): like the preceding one plus adds the return
757         value to the final select.
758         
759 2003-08-22  Duncan Mak  <duncan@ximian.com>
760
761         * Tds.cs (ProcessEndToken): RecordsAffected was not filled
762         correctly. I've found out that the record count was submitted for
763         TdsPacketSubType.Done. So I changed the behaviour to include this
764         (without deeper knowledge of the TDS protocol). Patch from Jörg
765         Rosenkranz <joergr@voelcker.com>.
766
767         This is part of a fix to bug #40315.
768         
769 2003-05-07  Miguel de Icaza  <miguel@ximian.com>
770
771         Patches from Igor Nosyryev <nosyryev@attbi.com>
772         
773         * TdsComm.cs: (GetString): GetString adds extra byte to a string
774         at end. It suppose to be '\0', but '\0' is valid value in .NET
775         string, so this byte must not be used.
776  
777         * Tds.cs (GetDecimalValue):Method reads extra byte if a DECIMAL
778         field contains NULL. As a result server's response is parsed
779         incorrectly and this method fires an exception.
780
781 2003-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
782
783         * Tds70.cs:
784         (FormatParameter): send input/output parameter names. This way we don't
785         depend on the parameter position being different of the index in the
786         parameter collection.
787
788 2002-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
789
790         * Tds.cs:
791         (Disconnect): close the stream and set connected to false.
792         (NextResult): check if after DoneProc we have a ColumnMetadata + Row,
793         which holds the values for the output parameters and read them.
794         (LoadRow): add the values to outputParameters if DoneProc.
795         When executing a stored procedure, we execute the procedure and then
796         select the parameter values.
797
798         * Tds70.cs:
799         (BuildParameters): check Parameters.
800
801         * TdsComm.cs: added Close () to close the stream.
802
803         * TdsConnectionParameters.cs: initialize all the string to be empty.
804
805 2002-11-04  Tim Coleman (tim@timcoleman.com)
806         * TdsBigDecimal.cs:
807                 New class added to handle (potentially) large
808                 decimal values
809         * Tds.cs:
810                 Modified to use TdsBigDecimal instead of
811                 decimal for transit of (potentially) large
812                 decimal values
813
814 2002-11-03  Tim Coleman (tim@timcoleman.com)
815         * TdsColumnStatus.cs:
816                 Newly added to handle column metadata
817         * Tds.cs
818                 Handle table name and column detail results
819         * Tds42.cs
820         * Tds50.cs
821         * Tds70.cs
822                 rename TableName BaseTableName for consistency
823         * TdsPacketSubType.cs:
824                 We now know what subtype 0xa5 is
825         * TdsPacketTableNameResult.cs:
826                 Add means to store table names
827         * TdsSchemaInfo.cs:
828                 Add new schema information
829
830 2002-11-01  Tim Coleman (tim@timcoleman.com)
831         * ITds.cs:
832                 Add DoneProc property
833         * Tds.cs:
834                 *Lots*.  Some stuff to get binary types
835                 to work, other stuff to get new prepares
836                 working.
837         * TdsPacketEndTokenResult.cs:
838                 Add Packetsubtype property
839         * TdsPacketRowResult:
840                 Now implements ICollection and IList.
841
842 2002-10-31  Tim Coleman (tim@timcoleman.com)
843         * TdsSchemaInfo.cs:
844                 Added because I can't really use SchemaInfo
845         * ITds.cs:
846         * Tds.cs :
847         * TdsPacketColumnInfoResult.cs :
848                 ChangeDefinition of schema
849         * Tds42.cs :
850         * Tds50.cs :
851         * Tds70.cs :
852                 Add new information to schema
853
854
855 2002-10-30  Tim Coleman (tim@timcoleman.com)
856         * TdsColumnSchema.cs:
857                 Ditch this in favor of System.Data.Common.SchemaInfo
858         * ITds.cs:
859                 Change ColumnInfo to Schema
860         * Tds.cs:
861                 Uses new SchemaInfo object
862                 Supports TEXT now.      
863         * Tds42.cs:
864         * Tds50.cs:
865         * Tds70.cs:
866         * TdsPacketColumnInfoResult.cs:
867         * TdsPacketRowResult.cs:
868                 Uses new SchemaInfo object
869         
870
871 2002-10-29  Tim Coleman (tim@timcoleman.com)
872         * ITds.cs:
873                 Add OutputParameters collection
874         * Tds.cs:
875                 Much reformatting, added handling for dates,
876                 fixed handling of output parameters, and a
877                 whole lot more
878         * TdsPacketEndTokenResult.cs:
879                 Remove incorrect exception
880         * TdsPacketType.cs:
881                 Add Logoff packet type.
882
883 2002-10-28  Tim Coleman (tim@timcoleman.com)
884         * Tds.cs:
885                 Add much handling to get the following types
886                 working in queries: string, int, decimal
887                 All sorts of other bug fixing and general
888                 purpose hackery.
889         * Tds42.cs:
890         * Tds50.cs:
891         * Tds70.cs:
892                 ProcessColumnInfo was abstracted in Tds.cs
893                 and subclassed, because 7.0 provides the information
894                 in a different format.
895         * TdsColumnSchema.cs:
896                 Added size, precision, scale
897         * TdsComm.cs:
898                 Fixed GetString because it wasn't working properly
899                 with TDS 7.0.
900         * TdsMessage.cs:
901                 Change state and severity to byte instead of int
902                 because that is more consitent.
903                 
904
905 2002-10-25  Tim Coleman (tim@timcoleman.com)
906         * TdsPacketErrorResultCollection.cs:
907                 New class added for exporting errors
908         * ITds.cs:
909         * Tds.cs:
910         * Tds70.cs:
911         * TdsComm.cs:
912         * TdsPacketEndTokenResult.cs:
913         * TdsPacketRowResult.cs:
914                 Changes to make SqlClient build.
915
916 2002-10-24  Tim Coleman (tim@timcoleman.com)
917         * ITds.cs:
918                 Added column info, and NextResult/NextRow
919                 to interface
920         * TdsColumnSchema.cs:
921                 New class added to keep track of column info
922         * Tds.cs:
923                 Many, many changes to get queries working
924                 for the most part.
925         * TdsPacketColumnInfoResult.cs:
926         * TdsPacketColumnNamesResult.cs:
927                 Doesn't use a DataColumnCollection anymore
928                 Also more complete.
929         * TdsPacketRowResult.cs:
930                 Added Add() method.
931
932 2002-10-23  Tim Coleman (tim@timcoleman.com)
933         * ITds.cs:
934         * Tds42.cs:
935         * Tds50.cs:
936         * Tds70.cs:
937         * Tds80.cs:
938                 New classes added.  Functionality
939                 is split up because different protocols
940                 have slight differences.
941         * Tds.cs:
942                 Remove some unnecessary code after
943                 the above split, and add in a whole
944                 lot more stuff for completeness.
945         * TdsColumnType.cs:
946                 Fix Int4.  Wrong enum value.
947         * TdsComm.cs:
948                 Move the encoder out of constructor
949                 because we don't know the charset at
950                 that point
951         * TdsConnectionParameters.cs:
952                 Small changes
953         * TdsPacketEndTokenResult.cs:
954                 Implement ToString ()
955
956
957 2002-10-22  Tim Coleman (tim@timcoleman.com)
958         * Tds.cs :
959                 More implementation.  Does some
960                 query stuff now.  Can also change
961                 database.
962         * TdsConnectionParameters.cs:
963                 Rename Host to DataSource, and
964                 add Hostname for the local hostname.
965         * TdsPacketEndTokenResult.cs:
966                 Change TODO attribute
967         * TODOAttribute.cs:
968                 New class added
969         
970
971 2002-10-21  Tim Coleman (tim@timcoleman.com)
972         * Tds.cs
973         * TdsComm.cs:
974                 A whole slew of changes to get logon
975                 to work (it now works in both TDS 7.0
976                 and TDS 4.2) ... danmorg can test with
977                 8.0 if he likes.
978                 TdsComm has some simplifications too,
979                 because C# has some features not present
980                 in the Java implementation.
981         * TdsConnectionParameters.cs:
982                 Change a few default values.
983         * TdsMessage.cs:
984                 Implement this class.
985
986 2002-10-20  Tim Coleman (tim@timcoleman.com)
987         * TdsColumnType.cs:
988         * TdsContext.cs:
989         * TdsEnvPacketSubType.cs:
990         * TdsMessage.cs:
991         * TdsPacketColumnInfoResult.cs:
992         * TdsPacketColumnNamesResult.cs:
993         * TdsPacketColumnOrderResult.cs:
994         * TdsPacketControlResult.cs:
995         * TdsPacketEndTokenResult.cs:
996         * TdsPacketErrorResult.cs:
997         * TdsPacketMessageResult.cs:
998         * TdsPacketOutputParam.cs:
999         * TdsPacketResult.cs:
1000         * TdsPacketRetStatResult.cs:
1001         * TdsPacketRowResult.cs:
1002         * TdsPacketSubType.cs:
1003         * TdsPacketTableNameResult.cs:
1004         * TdsPacketUnknown.cs:
1005                 New classes added as part of TDS internal implementation.
1006         * Tds.cs:
1007                 Some work on receiving and interpreting packages received from
1008                 SQL Server.  Still doesn't work completely.
1009         * TdsComm.cs:
1010                 Add some methods as part of the ongoing work with Tds.cs
1011         * TdsConnectionParameters.cs:
1012                 Add default values for Encoding ("iso-8859-1"), Port (1433), 
1013                 TDS Version (4.2).
1014
1015 2002-10-18  Tim Coleman (tim@timcoleman.com)
1016         * TdsConnectionInternal:
1017                 Add some implementation details
1018         * TdsCommInternal:
1019                 New class, which will handle the low-level
1020                 communication with the database
1021         * TdsPacketTypeInternal:
1022                 Add new packet type, TdsPacketTypeInternal.None
1023                 which is used when no packet is being constructed.
1024                 The value is 0.
1025
1026 2002-10-17  Tim Coleman (tim@timcoleman.com)
1027         * ChangeLog:
1028                 New changelog added
1029         * TdsCommandInternal.cs:
1030         * TdsConnectionInternal.cs:
1031         * TdsPacketTypeInternal.cs:
1032         * TdsServerTypeInternal.cs:
1033         * TdsTransactionInternal.cs:
1034         * TdsVersionInternal.cs:
1035                 New classes added.  These are the
1036                 internal implementations, meant for
1037                 "wrapping" from other locations.