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