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