Modified:
branches/5.1/CHANGES
branches/5.1/Driver/MySql.Data.CF.csproj
branches/5.1/Driver/Properties/Resources.resx
branches/5.1/Driver/Source/CommandBuilder.cs
branches/5.1/TestSuite/Source/CommandBuilderTests.cs
Log:
merged up to rev 1210
Modified: branches/5.1/CHANGES
===================================================================
--- branches/5.1/CHANGES 2008-03-27 15:02:28 UTC (rev 1210)
+++ branches/5.1/CHANGES 2008-04-04 17:02:31 UTC (rev 1211)
@@ -138,9 +138,12 @@
DbProviderFactory users can access the server error code (Bug #27436)
- fixed problem where changing the connection string of a connection to one that changes
the parameter marker after the connection had been assigned to a command but before
- the connection is opened can cause parameters to not be found (bug #13991)
-
-Version 5.0.8 8/16/2007
+ the connection is opened can cause parameters to not be found (bug #13991)
+ - added implementation of MySqlCommandBuilder methods QuoteIdentifier and UnquoteIdentifier
+ (bug #35492)
+
+Version 5.0.8 8/16/2007
+
Bug #28706 Log messages are truncated
- Fixed a problem with compression over a network. We were letting the inflate stream read
directly from the network stream. Under certain situations, two bytes were being left unread
@@ -470,661 +473,4 @@
Bug #9722 Connector does not recognize parameters separated by a linefeed
Bug #10281 Clone issue with MySqlConnection
Bug #11450 Connector/Net, current database and stored procedures
- Bug- Bug #8228 turkish character set causing the error [fixed]
- Bug #8387 Connecting with NAMES and character_set_results can be up to 18 times slower.
- Improved this by only issuing a SET NAMES if character_set_client or
- character_set_connection is different than what we are wanting.
- Bug #8382 Commandbuilder does not handle queries to other databases than the default one-
- fixed this one with the help of a patch from Henrik Johnson.
- Bug #10637 Fail connect to specified MySql Hosts
- The problem was that we were using BeginConnect/EndConnect to implement connect
- timeout. Each one of these uses a worker thread from the .NET thread pool. This
- thread pool only has a default of 25 threads so on a very heavily loaded system,
- it's possible it could run out. Connect has now been recoded to not use a
- worker thread.
- Bug #11542 Call to Stored Procedure throws exception when SP has no arguments [fixed]
- Bug #11550 Adding decimal parameters problem [fixed]
- Bug- Bug- All three of these bugs were related to the same problem
- Bug #11873 Invalid timestamp in query produces incorrect reader exception [added test case, already fixed]
- Bug- Bug #12163 Insert using prepared statement causes double insert
- Bug #12245 using Prepare() on an insert command causes null parameters to convert to "0"
- Bug #12646 Parameters are defaulted to Decimal [added a new test case]
- Bug #12628 off by one on random selection of multiple hosts/ip addresses [fixed]
- Bug #12551 Error at the ConnectionString - Property [fixed]
- Bug #8724 NullReferenceException in Designer [fixed]
- Bug #12771 Connector/Net can't connect to MySQL 4.1.14-nt [fixed]
-
- Other changes
- -------------
- Fixed problem parsing stored procedure parameter defs such as OUT val INT UNSIGNED
- Now supports the new decimal type introduced in 5.0.3
- Fixed bug where adding parameter objects that had been independently constructed did not work right.
- Changed internal class MySqlSingle to MySqlFloat
- Implemented new BIT data type
- Implemented Convert Zero DateTime connection option.
-
-Version 1.0.4
-
- Bug #7243 calling prepare causing exception [fixed]
- Fixed another small problem with prepared statements
- Bug #7258 MySqlCommand.Connection returns an IDbConnection [fixed]
- Bug #7345 MySqlAdapter.Fill method throws Error message : Non-negative number required [fixed]
- Bug #7478 Clone method bug in MySqlCommand [fixed]
- Bug #7612 MySqlDataReader.GetString(index) returns non-Null value when field is Null [fixed]
- Bug #7755 MySqlReader.GetInt32 throws exception if column is unsigned [fixed]
- Bug #7704 GetBytes is working no more [fixed]
- Bug #7724 Quote character \222 not quoted in EscapeString [fixed]
- Fixed problem that causes named pipes to not work with some blob functionality
- Fixed problem with shared memory connections
- Bug #7436 Problem with Multiple resultsets... [fixed]
- Added or filled out several more topics in the API reference documentation
-
-Version 1.0.3-gamma
-
- - Made MySQL the default named pipe name
- - Now SHOW COLLATION is used upon connection to retrieve the full list of charset ids
- - Fixed Invalid character set index: 200 (Bug #6547)
- - Installer now includes options to install into GAC and create Start Menu items
- - Bug #6863 - Int64 Support in MySqlCommand Parameters [fixed]
- - Connections now do not have to give a database on the connection string
- - Bug #6770 - MySqlDataReader.GetChar(int i) throws IndexOutOfRange Exception [fixed]
- - Fixed problem where multiple resultsets having different numbers of columns would cause a problem
- - Bug #6983 Exception stack trace lost when re-throwing exceptions [fixed]
- - Fixed major problem with detecting null values when using prepared statements
- - Bug #6902 Errors in parsing stored procedure parameters [fixed]
- - Bug #6668 Integer "out" parameter from stored procedure returned as string [fixed]
- - Bug #7032 MySqlDateTime in Datatables sorting by Text, not Date. [fixed]
- - Bug #7133 Invalid query string when using inout parameters [fixed]
- - Bug #6831 Test suite fails with MySQL 4.0 because of case sensitivity of table names [fixed]
- - Bug #7132 Inserting DateTime causes System.InvalidCastException to be thrown [fixed]
- - Bug #6879 InvalidCast when using DATE_ADD-function [fixed]
- - Bug #6634 An Open Connection has been Closed by the Host System [fixed]
- - Added ServerThread property to MySqlConnection to expose server thread id
- - Added Ping method to MySqlConnection
- - Changed the name of the test suite to MySql.Data.Tests.dll
-
-Version 1.0.2-gamma
-
- - Fixed problem with MySqlBinary where string values could not be used to update extended text columns
- - Fixed Installation directory ignored using custom installation (Bug #6329)
- - Fixed problem where setting command text leaves the command in a prepared state
- - Fixed double type handling in MySqlParameter(string parameterName, object value) (Bug #6428)
- - Fixed Zero date "0000-00-00" is returned wrong when filling Dataset (Bug #6429)
- - Fixed problem where calling stored procedures might cause an "Illegal mix of collations" problem.
- - Added charset connection string option
- - Fixed #HY000Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ (Bug #6322)
- - Added the TableEditor CS and VB sample
- - Fixed Charset-map for UCS-2 (Bug #6541)
- - Updated the installer to include the new samples
- - Fixed Long inserts take very long time (Bug #5453)
- - Fixed Objects not being disposed (Bug #6649)
- - Provider is now using character set specified by server as default
-
-Version 1.0.1-beta 2
-
- - Fixed BUG #5602 Possible bug in MySqlParameter(string, object) constructor
- - Fixed BUG #5458 Calling GetChars on a longtext column throws an exception
- - Fixed BUG #5474 cannot run a stored procedure populating mysqlcommand.parameters
- - Fixed BUG #5469 Setting DbType throws NullReferenceException
- - Fixed problem where connector was not issuing a CMD_QUIT before closing the socket
- - Fixed BUG #5392 MySqlCommand sees "?" as parameters in string literals
- - Fixed problem with ConnectionInternal where a key might be added more than once
- - CP1252 is now used for Latin1 only when the server is 4.1.2 and later
- - Fixed BUG #5388 DataReader reports all rows as NULL if one row is NULL
- - Virtualized driver subsystem so future releases could easily support client or embedded server support
- - Field buffers being reused to decrease memory allocations and increase speed
- - Fixed problem where using old syntax while using the interfaces caused problems
- - Using PacketWriter instead of Packet for writing to streams
- - Refactored compression code into CompressedStream to clean up NativeDriver
- - Added test case for resetting the command text on a prepared command
- - Fixed problem where MySqlParameterCollection.Add() would throw unclear exception when given a null value (Bug #5621)
- - Fixed construtor initialize problems in MySqlCommand() (Bug #5613)
- - Fixed Parsing the ';' char (Bug #5876)
- - Fixed missing Reference in DbType setter (Bug #5897)
- - Fixed System.OverflowException when using YEAR datatype (Bug #6036)
- - Added Aggregate function test (wasn't really a bug)
- - Fixed serializing of floating point parameters (double, numeric, single, decimal) (Bug #5900)
- - IsNullable error (Bug #5796)
- - Fixed problem where connection lifetime on the connect string was not being respected
- - Fixed problem where Min Pool Size was not being respected
- - Fixed MySqlDataReader and 'show tables from ...' behaviour (Bug #5256)
- - Implemented SequentialAccess
- - Fixed MySqlDateTime sets IsZero property on all subseq.records after first zero found (Bug #6006)
- - Fixed Can't display Chinese correctly (Bug #5288)
- - Fixed Russian character support as well
- - Fixed Method TokenizeSql() uses only a limited set of valid characters for parameters (Bug #6217)
- - Fixed NET Connector source missing resx files (Bug #6216)
- - Fixed DBNull Values causing problems with retrieving/updating queries. (Bug #5798)
- - Fixed Yet Another "object reference not set to an instance of an object" (Bug #5496)
- - Fixed problem in PacketReader where it could try to allocate the wrong buffer size in EnsureCapacity
- - Fixed GetBoolean returns wrong values (Bug #6227)
- - Fixed IndexOutOfBounds when reading BLOB with DataReader with GetString(index) (Bug #6230)
-
-
-Version 1.0.0-beta [released]
- - Fixed BUG# 3889 Thai encoding not correctly supported
- - Updated many of the test cases
- - Fixed problem with using compression
- - Bumped version number to 1.0.0 for beta 1 release
- - Added COPYING.rtf file for use in installer
- - Removed all of the XML comment warnings (I'll clean them up better later)
- - Removed some last references to ByteFX
-
-Version 0.9.0
-
- - Added test fixture for prepared statements
- - All type classes now implement a SerializeBinary method for sending their data to a PacketWriter
- - Added PacketWriter class that will enable future low-memory large object handling
- - Fixed many small bugs in running prepared statements and stored procedures
- - Changed command so that an exception will not be throw in executing a stored procedure with parameters in old syntax mode
- - SingleRow behavior now working right even with limit
- - GetBytes now only works on binary columns
- - Logger now truncates long sql commands so blob columns don't blow out our log
- - host and database now have a default value of "" unless otherwise set
- - FIXED BUG# 5214 Connection Timeout seems to be ignored
- - Added test case for bug# 5051: GetSchema not working correctly
- - Fixed problem where GetSchema would return false for IsUnique when the column is key
- - MySqlDataReader GetXXX methods now using the field level MySqlValue object and not performing conversions
- - FIXED BUG# 5097: DataReader returning NULL for time column
- - Added test case for LOAD DATA LOCAL INFILE
- - Added replacetext custom nant task
- - Added CommandBuilderTest fixture
- - Added Last One Wins feature to CommandBuilder
- - Fixed persist security info case problem
- - Fixed GetBool so that 1, true, "true", and "yes" all count as trueWL# 2024 Make parameter mark configurable
- - Added the "old syntax" connection string parameter to allow use of @ parameter marker
- - Fixed Bug- - Fixed Bug- - Updated license banner in all source files to include FLOSS exception
- - Added new .Types namespace and implementations for most current MySql types
- - Added MySqlField41 as a subclass of MySqlField
- - Changed many classes to now use the new .Types types
- - Changed type enum int to Int32, short to Int16, and bigint to Int64
- - Added dummy types UInt16, UInt32, and UInt64 to allow an unsigned parameter to be made
- - Connections are now reset when they are pulled from the connection pool
- - Refactored auth code in driver so it can be used for both auth and reset
- - Added UserReset test in PoolingTests.cs
- - Connections are now reset using COM_CHANGE_USER when pulled from the pool
- - Implemented SingleResultSet behavior
- - Implemented support of unicode
- - Added char set mappings for utf-8 and ucs-2
- - fixed Bug #4520 time fields overflow using bytefx .net mysql driver
- - Modified time test in data type test fixture to check for time spans where hours > 24
- - Fixed Bug #4505 Wrong string with backslash escaping in ByteFx.Data.MySqlClient.MySqlParameter
- - Added code to Parameter test case TestQuoting to test for backslashes
- - Fixed Bug #4486 mysqlcommandbuilder fails with multi-word column names
- - Fixed bug in TokenizeSql where underscore would terminate character capture in parameter name
- - Added test case for spaces in column names
- - Fixed bug# 4324 - MySqlDataReader.GetBytes don't works correctly
- - Added GetBytes() test case to DataReader test fixture
- - Now reading all server variables in InternalConnection.Configure into Hashtable
- - Now using string[] for index map in CharSetMap
- - Added CRInSQL test case for carriage returns in SQL
- - setting maxPacketSize to default value in Driver.ctor
- - Fixed bug #4442 - Setting MySqlDbType on a parameter doesn't set generic type
- - Removed obsolete column types Long and LongLong
- - Fixed bug# 4071 - Overflow exception thrown when using "use pipe" on connection string
- - Changed "use pipe" keyword to "pipe name" or just "pipe"
- - Allow reading multiple resultsets from a single query
- - Added flags attribute to ServerStatusFlags enum
- - Changed name of ServerStatus enum to ServerStatusFlags
- - Fixed BUG #4386 - Inserted data row doesn't update properly
- - Fixed bug #4074 - Error processing show create table
- - Change Packet.ReadLenInteger to ReadPackedLong and added packet.ReadPackedInteger that alwasy reads integers packed with 2,3,4
- - Added syntax.cs test fixture to test various SQL syntax bugs
- - Fixed bug# 4149 Improper handling of time values. Now time value of 00:00:00 is not treated as null.
- - Moved all test suite files into TestSuite folder
- - Fixed bug where null column would move the result packet pointer backward
- - Added new nant build script
- - Fixed BUG #3917 - clear tablename so it will be regen'ed properly during the next GenerateSchema.
- - Fixed bug #3915 - GetValues was always returning zero and was also always trying to copy all fields rather than respecting the size of the array passed in.
- - Implemented shared memory access protocol
- - Implemented prepared statements for MySQL 4.1
- - Implemented stored procedures for MySQL 5.0
- - Renamed MySqlInternalConnection to InternalConnection
- - SQL is now parsed as chars, fixes problems with other languages
- - Added logging and allow batch connection string options
- - Fixed bug #3888 - RowUpdating event not set when setting the DataAdapter property
- - Fixed bug in char set mapping
- - Implemented 4.1 authentication
- - Improved open/auth code in driver
- - Improved how connection bits are set during connection
- - Database name is now passed to server during initial handshake
- - Changed namespace for client to MySql.Data.MySqlClient
- - Changed assembly name of client to MySql.Data.dll
- - Changed license text in all source files to GPL
-
-==================================================================
-Transition to BitKeeper complete
-==================================================================
-6/18/2004
-* Added the MySqlClient.build Nant file
-* Removed the mono batch files
-* Moved some of the unused files into notused folder so nant build file can use wildcards
-
-6/17/2004 (this note covers several weeks of work)
-* Implemented shared memory accesss
-* Major revamp in code structure
-* Prepared statements now working for MySql 4.1.1 and later
-
-5/21/2004
-* Finished implementing auth for 4.0, 4.1.0, and 4.1.1
-* Changed namespace from MySQL.Data.MySQLClient back to MySql.Data.MySqlClient
-* Fixed bug in CharSetMapping where it was trying to use text names as ints
-
-5/17/2004 (and changes up to this date)
-* Changed namespace to MySQL.Data.MySQLClient
-* Integrated auth changes from UC2004
-
-
-======================================================================
-ACQUIRED BY MYSQL
-======================================================================
-3/17/2004
-Fixed bug where calling any of the GetXXX methods on a datareader before or after reading data would not throw
-the appropriate exception (thanks Luca Morelli <morelli.luca@stripped>)
-Added TimeSpan code in parameter.cs to properly serialize a timespan object to mysql time format (thanks Gianluca Colombo <g.colombo@stripped>)
-
-3/16/2004
-Added TimeStamp to parameter serialization code. Prevented DataAdatper updates from working right (thanks MIchael King)
-
-3/14/2004
-Fixed a misspelling in MySqlHelper.cs (thanks Patrick Kristiansen)
-
-=============0.76 released===============================
-
-3/12/2004
-MySql - Driver now using charset number given in handshake to create encoding
-
-3/11/2004
-MySql - Changed command editor to point to MySqlClient.Design
-
-3/4/2004
-Common - Fixed bug in Version.isAtLeast
-Common - Changed DBConnectionString to support changes done to MySqlConnectionString
-Common - Removed SqlCommandEditor and DataAdapterPreviewDialog
-
-3/3/2004
-MySql - Using new long return values in many places
-MySql - Integrated new CompressedStream class
-
-3/2/2004
-MySql - Changed ConnectionString and added attributes to allow it to be used in MySqlClient.Design
-MySql - Changed packet.cs to support newer lengths in ReadLenInteger
-MySql - changed other classes to use new properties and fields of MySqlConnectionString
-MySql - ConnectionInternal is now using PING to see if the server is alive
-
-3/1/2004
-MySql - Moved toolbox bitmaps into resource/
-MySql - Changed field.cs to allow values to come directly from row buffer
-
-2/25/2004
-MySql - Changed to use the new driver.Send syntax
-MySql - Using a new packet queueing system
-MySql - started work handling the "broken" compression packet handling
-
-2/20/2004
-Common - Fixed bug in StreamCreator where failure to connect to a host would continue
-to loop infinitly (thanks Kevin Casella)
-
-2/8/2004
-MySql - Improved connectstring handling
-MySql - Moved designers into Pro product
-
-2/4/2004
-MySql - Removed some old commented out code from command.cs
-MySql - Fixed a problem with compression
-
-2/2/2004
-MySql - Fixed connection object where an exception throw prior to the connection opening would not leave
- the connection in the connecting state (thanks Chris Cline )
-
-1/31/2004
-MySql - Added GUID support
-MySql - Fixed sequence out of order bug (thanks Mark Reay)
-
-=========================== 0.75 released =============================
-
-1/26/2004
-MySql - Enum values now supported as parameter values (thanks Philipp Sumi)
-1/22/2004
-MySql - Year datatype now supported
-
-1/21/2004
-MySql - fixed compression
-
-1/20/2004
-MySql - Fixed bug where a parameter with a TimeSpan as the value would not serialize properly
-MySql,Common - Fixed bug where default ctor would not set default connection string values
-MySql - Added some XML comments to some members
-MySql - Work to fix/improve compression handling
-
-1/13/2004
-MySql,Common - Improved ConnectionString handling so that it better matches the standard set by SqlClient.
-MySql - A MySqlException is now thrown if a username is not included in the connection string
-MySql- Localhost is now used as the default if not specified on the connection string
-MySql - An exception is now thrown if an attempt is made to set the connection string while the connection is open
-MySql - Small changes to ConnectionString docs
-MySql,common - Removed MultiHostStream and MySqlStream. Replaced it with Common/StreamCreator
-MySql - Added support for Use Pipe connection string value
-MySql - Added Platform class for easier access to platform utility functions
-MySql - Fixed small pooling bug where new connection was not getting created after IsAlive fails
-Common - Added Platform.cs and StreamCreator.cs
-
-12/30/2003
-MySql - Fixed Field.cs to properly handle 4.1 style timestamps
-MySql - Changed Common.Version to Common.DBVersion to avoid name conflict
-
-
-12/29/2003
-MySql - Fixed field.cs so that text columns return the right field type (thanks beni27@stripped)
-
-12/22/2003
-MySql - Added MySqlError class to provide some reference for error codes (thanks Geert Veenstra)
-
-------------0.74 released ------------------------
-
-12/6/2003
-MySql - Added Unix socket support (thanks Mohammad DAMT [md@stripped])
-
-12/4/2003
-MySql - only calling Thread.Sleep when no data is available
-MySql - improved escaping of quote characters in parameter data
-MySql - removed misleading comments from parameter.cs
-
-12/1/2003
-Mysql -fixed pooling bug
-MySql - same pooling bug fixed again!! ;-)
-
-11/30/2003
-MySql - Fixed ConnectionSTring editor dialog (thanks marco p (pomarc))
-Common - UserId now supported in connection strings (thanks Jeff Neeley)
-MySql - Attempting to create a parameter that is not input throws an exception (thanks Ryan Gregg)
-
-11/29/2003
-MySql - Added much documentation
-
-11/26/2003
-MySql - checked in new MultiHostStream capability. Big thanks to Dan Guisinger for this. he originally submitted the code and idea of supporting multiple machines on the connect string.
-
-11/25/2003
-MySql - Added alot of documentation. Still alot to do.
-
-11/24/2003
-MySql - Fixed speed issue with 0.73
-
-11/14/2003
-MySql - changed to Thread.Sleep(0) in MySqlDataStream to help optimize the case where it doesn't need to wait (thanks Todd German)
-11/1/2003
-MySql - Prepopulating the idlepools to MinPoolSize
-
-10/31/2003
-MySql - Fixed MySqlPool deadlock condition as well as stupid bug where CreateNewPooledConnection
- was not ever adding new connections to the pool.
- Also fixed MySqlStream.ReadBytes and ReadByte to not use TicksPerSecond which does not appear
- to always be right.
- (thanks Matthew J. Peddlesden)
-MySql - Fix for precision and scale (thanks Matthew J. Peddlesden)
-
-10/28/2003
-MySql - Added Thread.Sleep(1) to stream reading methods to be more cpu friendly (thanks Sean McGinnis)
-
-10/24/2003
-MySql - Fixed problem where ExecuteReader would sometime return null (thanks Lloyd Dupont )
-
-10/17/2003
-MySql - Fixed major bug with null field handling (thanks Naucki)
-
-10/15/2003
-MySql - enclosed queries for max_allowed_packet and characterset inside try catch (and set defaults)
-MySql - fixed problem where socket was not getting closed properly (thanks Steve!)
-
-10/14/2003
-MySql - Fixed problem where ExecuteNonQuery was not always returning the right value
-
-10/13/2003
-MySql - Fixed InternalConnection to not use @@session.max_allowed_packet but use @@max_allowed_packet. (Thanks Miguel)
-
-10/12/2003
-MySql - Added many new XML doc lines
-
-10/10/2003
-MySql - Fixed sql parsing to not send empty queries (thanks Rory)
-MySql - Fixed problem where the reader was not unpeeking the packet on close
-MySql - Fixed problem where user variables were not being handled (thanks Sami Vaaraniemi)
-MySql - Fixed loop checking in the MySqlPool (thanks Steve M. Brown)
-
-10/7/2003
-MySql - Fixed ParameterCollection.Add method to match SqlClient (thanks Joshua Mouch)
-Common & MySql - Fixed ConnectionSTring parsing to handle no and yes for boolean and not lowercase values (thanks Naucki)
-
-10/3/2003
-MySql - Added InternalConnection class, changes to pooling
-Common - Implemented Persist Security Info
-
-9/26/2003
-Common - Added security.cs and version.cs to project
-
-9/25/2003
-MySql - Fixed DateTime handling in Parameter.cs (thanks Burkhard Perkens-Golomb)
-MySql - Fixed parameter serialization where some types would throw a cast exception
-MySql - Fixed DataReader to convert all returned values to prevent casting errors (thanks Keith Murray)
-MySql - Added code to Command.ExecuteReader to return null if the initial SQL command throws an exception (thanks Burkhard Perkens-Golomb)
-
-9/24/2003
-MySql - Fixed ExecuteScalar bug introduced with restructure
-
-9/23/2003
-MySql - Restructure to allow for LOCAL DATA INFILE and better sequencing of packets
-MySql - Fixed several bugs related to restructure.
-
-9/10/2003
-MySql - Early work done to support more secure passwords in Mysql 4.1. Old passwords in 4.1 not supported yet
-
-8/22/2003
-MySql- Parameters appearing after system parameters are now handled correctly (Adam M. (adammil))
-MySql - strings can now be assigned directly to blob fields (Adam M.)
-
-8/20/2003
-MySql - Fixed float parameters (thanks Pent)
-
-8/7/2003
-MySql - Improved Parameter ctor and ParameterCollection.Add methods to better match SqlClient (thx Joshua Mouch )
-MySql - Corrected Connection.CreateCommand to return a MySqlCommand type
-MySql - Fixed connection string designer dialog box problem (thanks Abraham Guyt)
-
-7/24/2003
-MySql - Fixed problem with sending commands not always reading the response packet (thanks Joshua Mouch )
-MySql - Fixed parameter serialization where some blobs types were not being handled (thanks Sean McGinnis )
-
-7/22/2003
-MySql - Removed spurious MessageBox.show from DataReader code (thanks Joshua Mouch )
-
-7/17/2003
-MySql - Fixed a nasty bug in the split sql code (thanks everyone! :-) )
-
-*************Released 0.71***********************
-7/15/2003
-MySql - Fixed bug in MySqlStream where too much data could attempt to be read (thanks Peter Belbin)
-
-7/11/2003
-MySql - Implemented HasRows (thanks Nash Pherson)
-MySql - Fixed bug where tables with more than 252 columns cause an exception ( thanks Joshua Kessler )
-MySql - Fixed bug where SQL statements ending in ; would cause a problem ( thanks Shane Krueger )
-MySql - Fixed bug in driver where error messsages were getting truncated by 1 character (thanks Shane Krueger)
-
-7/6/2003
-========MySql===============
-* Made MySqlException serializable (thanks Mathias Hasselmann)
-
-========PgSql===============
-* Made PgSqlException serializable (thanks Mathias Hasselmann)
-
-***********Released 0.70*********************
-
-6/25/2003
-========MySql===============
-* Updated some of the character code pages to be more accurate
-* Fixed problem where readers could be opened on connections that had readers open
-* Release of 0.70
-
-6/20/2003
-========MySql===============
-* Moved test to separate assembly MySqlClientTests
-
-6/19/2003
-========MySql===============
-* Fixed stupid problem in driver with sequence out of order (Thanks Peter Belbin)
-
-6/18/2003
-========MySql===============
-* Added some pipe tests
-* Increased default max pool size to 50
-* Compiles with Mono 0-24
-
-6/17/2003
-========MySql===============
-* Fixed connection and data reader dispose problems
-* Added String datatype handling to parameter serialization
-
-6/13/2003
-========MySql===============
-* Fixed sequence problem in driver that occured after thrown exception
- (thanks Burkhard Perkens-Golomb)
-
-6/10/2003
-========MySql===============
-* Added support for CommandBehavior.SingleRow to DataReader
-* Fixed command sql processing so quotes are better handled (thanks Theo Spears)
-
-6/9/2003
-========MySQL===============
-* Fixed parsing of double, single, and decimal values to account for non-English separators.
- You still have to use the right syntax if you using hard coded sql, but if you use parameters
- the code will convert floating point types to use '.' appropriately internal both into the server
- and out.
- [ Thanks anonymous ]
-* Added MySqlStream class to simplify timeOuts and driver coding.
-* Fixed DataReader so that it is closed properly when the associated connection is closed.
- [thanks smishra]
-* Made client more SqlClient compliant so that DataReaders have to be closed before the connection
- can be used to run another command
-* Improved DBNull.Value handling in the fields
-* Added several unit tests
-* Fixed MySqlException so that the base class is actually called :-o
-* Improved driver coding
-
-=============PgSql=================
-* Too many changes to document. Still basic structuring of driver. Driver not really usable yet.
-
-
-
-5/28/2003
-* Fixed bug where NextResult was returning false on the last resultset
-* Added more tests for MySQL
-* Improved casting problems by equating unsigned 32bit values to Int64 and usigned 16bit values to Int32, etc
-
-5/6/2003
-* Added new ctor for MySqlParameter for (name, type, size, srccol)
-* Fixed bug in MySqlDataReader where it didn't check for null fieldlist before returning field count
-
-4/23/2003
-* Started adding MySqlClient unit tests (added MySqlClient/Tests folder and some test cases)
-* Fixed some things in Connection String handling
-
-4/7/2003
-* Moved INIT_DB to MySqlPool. I may move it again, this is in preparation of the conference.
-
-4/6/2003
-* Fixed bug inside CommandBuilder that prevented inserts from happening properly
-* Reworked some of the internals so that all three execute methods of Command worked properly
-* FIxed many small bugs found during benchmarking
-
-4/5/2003
-* The first cut of CoonectionPooling is working. "min pool size" and "max pool size" are respected.
-
-4/3/2003
-* Work to enable multiple resultsets to be returned
-* Character sets are handled much more intelligently now. The driver queries MySQL at startup for the default character set.
- That character set is then used for conversions if that code page can be loaded. If not, then the default code
- page for the current OS is used.
-
-3/31/2003
-* Added code to save the inferred type in the name,value ctor of Parameter
-* Also, inferred type if value of null parameter is changed using Value property
-* Converted all files to use proper Camel case. MySQL is now MySql in all files. PgSQL is now PgSql
-* Added attribute to PgSql code to prevent designer from trying to show
-
-3/17/2003
-* Added MySQLDbType property to Parameter object and added proper conversion code to convert from DbType to MySQLDbType)
-* Removed unused ObjectToString method from MySQLParameter.cs
-* Fixed Add(..) method in ParameterCollection so that it doesn't use Add(name, value) instead.
-* Fixed IndexOf and Contains in ParameterCollection to be aware that parameter names are now stored without @
-* Fixed Command.ConvertSQLToBytes so it only allows characters that can be in MySQL variable names
-* Fixed DataReader and Field so that blob fields read their data from Field.cs and GetBytes works right
-* Added simple query builder editor to CommandText property of MySQLCommand
-* Fixed CommandBuilder and Parameter serialization to account for Parameters not storing @ in their names
-* Removed MySQLFieldType enum from Field.cs. Now using MySQLDbType enum
-
-3/15/2003
-* Added Designer attribute to several classes to prevent designer view when using VS.Net
-
-3/13/2003
-* Fixed Initial catalog typo in ConnectionString designer
-* Removed 3 parameter ctor for MySQLParameter that conflicted with (name, type, value)
-* changed MySQLParameter so paramName is now stored without leading @ (this fixed null inserts when using designer)
-* Changed TypeConverter for MySQLParameter to use the ctor with all properties
-
-0.68
-========================================================================
-Note that this build has not been checked out with Mono.
-
-3/10/2003
-* Fixed sequence issue in driver
-
-3/9/2003
-* Added DbParametersEditor to make parameter editing more like SqlClient
-* Fixed Command class so that parameters can be edited using the designer
-
-3/7/2003
-* Update connection string designer to support Use Compression flag
-
-2/15/2003
-* Fixed string encoding so that European characters like าค will work correctly
-
-2/9/2003
-* Creating base classes to aid in building new data providers
-* Added support for UID key in connection string
-
-2/10/2003
-* Field, parameter, command now using DBNull.Value instead of null
-* CommandBuilder using DBNull.Value
-* CommandBuilder now builds insert command correctly when an auto_insert field is not present
-* Field now uses typeof keyword to return System.Types (performance)
-
-0.65
-====================
-* MySQLCommandBuilder now implemented
-* Transaction support now implemented (not all table types support this)
-* GetSchemaTable fixed to not use xsd (for Mono)
-* Driver is now Mono-compatible!!
-* TIME data type now supported
-* More work to improve Timestamp data type handling
-* Changed signatures of all classes to match corresponding SqlClient classes
-
-0.60
-======================
-* Protocol compression using SharpZipLib (www.icsharpcode.net)
-* Named pipes on Windows now working properly
-* Work done to improve Timestamp data type handling
-* Implemented IEnumerable on DataReader so DataGrid would work
-
-0.50
-======================
-* Speed increased dramatically by removing bugging network sync code
-* Driver no longer buffers rows of data (more ADO.Net compliant)
-* Conversion bugs related to TIMESTAMP and DATETIME fields fixed
+ Bug
Modified: branches/5.1/Driver/MySql.Data.CF.csproj
===================================================================
--- branches/5.1/Driver/MySql.Data.CF.csproj 2008-03-27 15:02:28 UTC (rev 1210)
+++ branches/5.1/Driver/MySql.Data.CF.csproj 2008-04-04 17:02:31 UTC (rev 1211)
@@ -61,10 +61,8 @@
<Compile Include="Source\cf\WinCE.cs" />
<Compile Include="Source\CharSetMap.cs" />
<Compile Include="Source\command.cs">
- <SubType>Component</SubType>
</Compile>
<Compile Include="Source\CommandBuilder.cs">
- <SubType>Component</SubType>
</Compile>
<Compile Include="Source\common\Cache.cs" />
<Compile Include="Source\common\ContextString.cs" />
@@ -81,7 +79,6 @@
</Compile>
<Compile Include="Source\Crypt.cs" />
<Compile Include="Source\dataadapter.cs">
- <SubType>Component</SubType>
</Compile>
<Compile Include="Source\datareader.cs" />
<Compile Include="Source\Driver.cs" />
Modified: branches/5.1/Driver/Properties/Resources.resx
===================================================================
--- branches/5.1/Driver/Properties/Resources.resx 2008-03-27 15:02:28 UTC (rev 1210)
+++ branches/5.1/Driver/Properties/Resources.resx 2008-04-04 17:02:31 UTC (rev 1211)
@@ -301,7 +301,7 @@
<value>Unable to connect to any of the specified MySQL hosts.</value>
</data>
<data name="UnableToRetrieveSProcData" xml:space="preserve">
- <value>Unable to retrieve stored procedure metadata. Either grant SELECTprivilege to mysql.proc for this user or use "use procedure bodies=false" with your connection string.</value>
+ <value>Unable to retrieve stored procedure metadata. Either grant SELECT privilege to mysql.proc for this user or use "use procedure bodies=false" with your connection string.</value>
</data>
<data name="NextResultIsClosed" xml:space="preserve">
<value>Invalid attempt to call NextResult when the reader is closed.</value>
Modified: branches/5.1/Driver/Source/CommandBuilder.cs
===================================================================
--- branches/5.1/Driver/Source/CommandBuilder.cs 2008-03-27 15:02:28 UTC (rev 1210)
+++ branches/5.1/Driver/Source/CommandBuilder.cs 2008-04-04 17:02:31 UTC (rev 1211)
@@ -183,6 +183,42 @@
base.RefreshSchema();
finalSelect = null;
}
+
+ public override string QuoteIdentifier(string unquotedIdentifier)
+ {
+ if (unquotedIdentifier == null) throw new
+ ArgumentNullException("unquotedIdentifier");
+
+ // don't quote again if it is already quoted
+ if (unquotedIdentifier.StartsWith(QuotePrefix) &&
+ unquotedIdentifier.EndsWith(QuoteSuffix))
+ return unquotedIdentifier;
+
+ unquotedIdentifier = unquotedIdentifier.Replace(QuotePrefix, QuotePrefix + QuotePrefix);
+
+ return String.Format("{0}{1}{2}", QuotePrefix, unquotedIdentifier, QuoteSuffix);
+ }
+
+ public override string UnquoteIdentifier(string quotedIdentifier)
+ {
+ if (quotedIdentifier == null) throw new
+ ArgumentNullException("quotedIdentifier");
+
+ // don't unquote again if it is already unquoted
+ if (!quotedIdentifier.StartsWith(QuotePrefix) ||
+ !quotedIdentifier.EndsWith(QuoteSuffix))
+ return quotedIdentifier;
+
+ if (quotedIdentifier.StartsWith(QuotePrefix))
+ quotedIdentifier = quotedIdentifier.Substring(1);
+ if (quotedIdentifier.EndsWith(QuoteSuffix))
+ quotedIdentifier = quotedIdentifier.Substring(0, quotedIdentifier.Length - 1);
+
+ quotedIdentifier = quotedIdentifier.Replace(QuotePrefix + QuotePrefix, QuotePrefix);
+
+ return quotedIdentifier;
+ }
+
#endregion
Modified: branches/5.1/TestSuite/Source/CommandBuilderTests.cs
===================================================================
--- branches/5.1/TestSuite/Source/CommandBuilderTests.cs 2008-03-27 15:02:28 UTC (rev 1210)
+++ branches/5.1/TestSuite/Source/CommandBuilderTests.cs 2008-04-04 17:02:31 UTC (rev 1211)
@@ -369,6 +369,7 @@
da.Update(changes);
dt.AcceptChanges();
+<<<<<<< .working
dt.Rows[0]["id"] = 7;
dt.Rows[0]["name"] = "test7";
dt.Rows[1]["id"] = 8;
@@ -421,4 +422,34 @@
}
}
}
+=======
+ dt.Clear();
+ da.SelectCommand.CommandText = "SELECT * FROM test WHERE cod=6";
+ da.Fill(dt);
+ Assert.AreEqual(6, dt.Rows[0]["cod"]);
+ }
+ catch (Exception ex)
+ {
+ Assert.Fail(ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// Bug #35492 Please implement DbCommandBuilder.QuoteIdentifier
+ /// </summary>
+ [Test]
+ public void QuoteAndUnquoteIdentifiers()
+ {
+ MySqlCommandBuilder cb = new MySqlCommandBuilder();
+ Assert.AreEqual("`boo`", cb.QuoteIdentifier("boo"));
+ Assert.AreEqual("`bo``o`", cb.QuoteIdentifier("bo`o"));
+ Assert.AreEqual("`boo`", cb.QuoteIdentifier("`boo`"));
+
+ // now do the unquoting
+ Assert.AreEqual("boo", cb.UnquoteIdentifier("`boo`"));
+ Assert.AreEqual("`boo", cb.UnquoteIdentifier("`boo"));
+ Assert.AreEqual("bo`o", cb.UnquoteIdentifier("`bo``o`"));
+ }
+ }
+>>>>>>> .merge-right.r1210
}
| Thread |
|---|
| • Connector/NET commit: r1211 - in branches/5.1: . Driver Driver/Properties Driver/Source TestSuite/Source | rburnett | 4 Apr |