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