List:Commits« Previous MessageNext Message »
From:rburnett Date:November 12 2008 4:53pm
Subject:Connector/NET commit: r1459 - in trunk: . Installer MySql.Data/Provider/Source MySql.Data/Tests/Source MySql.VisualStudio
View as plain text  
Removed:
   trunk/Installer/main.iss
   trunk/Installer/misc.iss
   trunk/Installer/vs2005.iss
   trunk/Installer/vs2008.iss
Modified:
   trunk/CHANGES
   trunk/Installer/Installer.wixproj
   trunk/MySQLClient.sln
   trunk/MySql.Data/Provider/Source/CharSetMap.cs
   trunk/MySql.Data/Provider/Source/Driver.cs
   trunk/MySql.Data/Provider/Source/Field.cs
   trunk/MySql.Data/Provider/Source/ISSchemaProvider.cs
   trunk/MySql.Data/Provider/Source/MySqlConnectionStringBuilder.cs
   trunk/MySql.Data/Provider/Source/MySqlScript.cs
   trunk/MySql.Data/Provider/Source/command.cs
   trunk/MySql.Data/Provider/Source/datareader.cs
   trunk/MySql.Data/Provider/Source/transaction.cs
   trunk/MySql.Data/Tests/Source/CharacterSetTests.cs
   trunk/MySql.Data/Tests/Source/ConnectionStringBuilder.cs
   trunk/MySql.Data/Tests/Source/DataTypeTests.cs
   trunk/MySql.Data/Tests/Source/PoolingTests.cs
   trunk/MySql.Data/Tests/Source/ScriptExecution.cs
   trunk/MySql.Data/Tests/Source/SimpleTransactions.cs
   trunk/MySql.Data/Tests/Source/TimeoutAndCancel.cs
   trunk/MySql.VisualStudio/MySql.VisualStudio.csproj
Log:
merged

Modified: trunk/CHANGES
===================================================================
--- trunk/CHANGES	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/CHANGES	2008-11-12 16:53:36 UTC (rev 1459)
@@ -32,6 +32,27 @@
   values (bug #39294)  
 - fixed problem where using a stored procedure with parameters with a table adapter
   was no longer working after our parameter schema changes (bug #39252)  
+- Defaulting max allowed packet to 1024 to account for the possible case where the
+  value doesn't come in as a server variable  
+- fixed bug #39728 by making MySqlConnectionStringBuilder.GetConnectionString an internal method.
+  It should not have been publicly available anyway.  It is used internally by the 
+  MySqlConnection.ConnectionString property
+- implemented Disposable pattern on MySqlTransaction class so including one in a using statement
+  and then not calling commit will cause a rollback when the using exits (bug #39817)
+- fixed MySqlScript object so that it handles scripts with user variables
+- fixed bug where specifying 'functions return string=yes' would cause strings to be returned
+  using the 'binary' charset which would not properly render some characters.  Now the 
+  connection character set is used. (bug #40076)  
+- fixed problem that caused in use connection strings to be modified when a pooled connection
+  timed out and was cancelled.  (bug #40091)
+- fixed problem where using respect binary flags would not use the connection char set
+  and therefore return strings with a bad encoding.
+- fixed bug where provider was attempting to use the new parameters I_S view on servers
+  that didn't have it (bug #40382)
+- fixed problem where CharSetMap.GetDefaultCollation and CharSetMap.GetMaxLengths
+  might have a thread sync issue on high load systems.  They were not locking
+  the static collections there were initializing. (bug #40231)  
+- added GetSByte to the reader for returning tinyint columns (bug #40571)
   
 Version 5.2.3 - 8/14/08
 - Increased the speed of MySqlDataReader.GetOrdinal dramatically by using a couple

Modified: trunk/Installer/Installer.wixproj
===================================================================
--- trunk/Installer/Installer.wixproj	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/Installer/Installer.wixproj	2008-11-12 16:53:36 UTC (rev 1459)
@@ -97,7 +97,7 @@
     </WixVariables>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'GPL|x86' ">
-    <DefineConstants>Version=5.2.3;IsGPL=1</DefineConstants>
+    <DefineConstants>Version=5.2.4;IsGPL=1</DefineConstants>
     <WixVariables>
     </WixVariables>
   </PropertyGroup>
@@ -129,5 +129,11 @@
       <HintPath>C:\Program Files (x86)\Windows Installer XML v3\bin\WixVSExtension.dll</HintPath>
     </WixExtension>
   </ItemGroup>
+  <ItemGroup>
+    <Content Include="VS2005_Data.wxi" />
+    <Content Include="VS2005_Registry.wxi" />
+    <Content Include="VS2008_Data.wxi" />
+    <Content Include="VS2008_Registry.wxi" />
+  </ItemGroup>
   <Import Project="$(MSBuildExtensionsPath)\Microsoft\WiX\v3.0\Wix.targets" />
 </Project>
\ No newline at end of file

Deleted: trunk/Installer/main.iss
===================================================================
--- trunk/Installer/main.iss	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/Installer/main.iss	2008-11-12 16:53:36 UTC (rev 1459)
@@ -1,168 +0,0 @@
-; Script generated by the Inno Setup Script Wizard.
-; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
-
-[Setup]
-AppName=MySQL Connector/Net
-AppVersion=5.2.2
-AppVerName=MySQL Connector/Net {#SetupSetting("AppVersion")}
-AppPublisher=MySQL, Inc.
-AppPublisherURL=http://www.mysql.com.com/
-AppSupportURL=http://www.mysql.com.com/
-AppUpdatesURL=http://www.mysql.com.com/
-DefaultDirName={pf}\MySQL\MySQL Connector Net {#SetupSetting("AppVersion")}
-DefaultGroupName=MySQL\MySQL Connector Net {#SetupSetting("AppVersion")}
-AllowNoIcons=true
-OutputBaseFilename=setup
-Compression=lzma
-SolidCompression=true
-PrivilegesRequired=admin
-WizardImageFile=Bitmaps\dlgbmp-is.bmp
-WizardImageStretch=false
-WizardSmallImageFile=compiler:wizmodernsmallimage-is.bmp
-VersionInfoVersion={#SetupSetting("AppVersion")}
-
-[Languages]
-Name: english; MessagesFile: compiler:Default.isl
-
-[Files]
-Source: ..\MySql.Data\Provider\bin\net-2.0\Release\MySql.Data.dll; DestDir: {app}\.NET Framework; Flags: ignoreversion; AfterInstall: AfterMySqlDataInstall
-Source: ..\MySql.Data\Provider\bin\net-2.0\Release\MySql.Data.CF.dll; DestDir: {app}\Compact Framework; Flags: ignoreversion; Components: CF
-Source: ..\CHANGES; DestDir: {app}; Flags: ignoreversion
-Source: ..\Release Notes.txt; DestDir: {app}; Flags: ignoreversion
-Source: ..\MySql.Web\Providers\bin\release\MySql.Web.dll; DestDir: {app}\Web Providers; Flags: ignoreversion; AfterInstall: AfterWebInstall; Components: Providers
-
-; Handle conditional licensing
-#if defined (GPL)
-Source: ..\COPYING; DestDir: {app}; Flags: ignoreversion
-Source: ..\EXCEPTIONS; DestDir: {app}; Flags: ignoreversion
-#else
-Source: ..\License.txt; DestDir: {app}; Flags: ignoreversion
-#endif
-
-Source: ..\Samples\*.*; DestDir: {app}\Samples; Excludes: bin,obj,bin\debug,bin\release,obj\debug,obj\release; Flags: ignoreversion createallsubdirs recursesubdirs
-Source: binary\installtools.dll; DestDir: {app}; Attribs: hidden
-Source: binary\globalinstaller.exe; DestDir: {app}; Attribs: hidden
-
-; Documentation files
-Source: ..\Documentation\Output\MySql.Data.chm; DestDir: {app}\Documentation; Components: Docs
-Source: ..\Documentation\CollectionFiles\COL_Master.HxC; DestDir: {app}\Documentation; Components: Docs
-Source: ..\Documentation\CollectionFiles\COL_Master.HxT; DestDir: {app}\Documentation; Components: Docs
-Source: ..\Documentation\CollectionFiles\COL_Master_A.HxK; DestDir: {app}\Documentation; Components: Docs
-Source: ..\Documentation\CollectionFiles\COL_Master_F.HxK; DestDir: {app}\Documentation; Components: Docs
-Source: ..\Documentation\CollectionFiles\COL_Master_K.HxK; DestDir: {app}\Documentation; Components: Docs
-Source: ..\Documentation\CollectionFiles\COL_Master_N.HxK; DestDir: {app}\Documentation; Components: Docs
-Source: ..\Documentation\Output\MySql.Data.HxS; DestDir: {app}\Documentation; Components: Docs
-
-; Documentation registration tools
-Source: ..\Installer\Binary\H2Reg.exe; DestDir: {app}\Uninstall; Components: Docs
-Source: ..\Installer\Binary\h2reg.ini; DestDir: {app}\Uninstall; Components: Docs
-
-; VS integration
-Source: ..\MySql.VisualStudio\bin\Release\MySql.VisualStudio.dll; DestDir: {app}\Visual Studio Integration; Components: VS
-
-[Icons]
-Name: {group}\{cm:UninstallProgram,MySQL Connector Net}; Filename: {uninstallexe}
-Name: {group}\Change Log; Filename: {app}\CHANGES
-Name: {group}\Release Notes; Filename: {app}\Release Notes.txt
-Name: {group}\Help; Filename: {app}\Documentation\MySql.Data.chm
-
-[Components]
-Name: Core; Description: Core assemblies; Flags: fixed; Types: full custom compact
-Name: Docs; Description: Documentation; Types: full custom
-Name: Providers; Description: ASP.NET 2.0 Web Providers; Types: full custom
-Name: VS; Description: Visual Studio Integration; Types: full custom
-Name: VS/2005; Description: Visual Studio 2005; Types: full custom; Check: VS2005Installed
-Name: VS/2008; Description: Visual Studio 2008; Types: full custom; Check: VS2008Installed
-Name: CF; Description: Compact Framework Support; Types: full custom
-Name: Samples; Description: Samples; Types: full custom
-
-[Registry]
-Root: HKLM; Subkey: Software\MySQL AB\MySQL Connector/Net; Flags: uninsdeletekey
-Root: HKLM; Subkey: Software\MySQL AB\MySQL Connector/Net; ValueType: string; ValueName: Location; ValueData: {app}
-Root: HKLM; Subkey: Software\MySQL AB\MySQL Connector/Net; ValueType: string; ValueName: Version; ValueData: {#SetupSetting('AppVersion')}
-
-; make our assembly visible to Visual Studio
-Root: HKLM; Subkey: Software\Microsoft\.NETFramework\AssemblyFolders\MySQL Connector/Net {#SetupSetting('AppVersion')}; Flags: uninsdeletekey
-Root: HKLM; Subkey: Software\Microsoft\.NETFramework\AssemblyFolders\MySQL Connector/Net {#SetupSetting('AppVersion')}; ValueType: string; ValueData: {app}\.NET Framework
-
-[Run]
-Filename: "{code:GetVersion2InstallUtil}"; Parameters: {app}\.NET Framework\mysql.data.dll; WorkingDir: {app}; StatusMsg: Adding data provider to machine.config; Flags: runhidden
-Filename: "{code:GetVersion2InstallUtil}"; Parameters: {app}\Web Providers\mysql.web.dll; WorkingDir: {app}; StatusMsg: Adding web providers to machine.config; Flags: runhidden; Components: Providers
-Filename: {app}\GlobalInstaller.exe; Parameters: mysql.visualstudio.dll version=VS2005; WorkingDir: {app}\Visual Studio Integration; StatusMsg: Integrating with Visual Studio 2005; Flags: runhidden; Components: VS/2005
-Filename: {app}\GlobalInstaller.exe; Parameters: mysql.visualstudio.dll version=VS2008; WorkingDir: {app}\Visual Studio Integration; StatusMsg: Integrating with Visual Studio 2008; Flags: runhidden; Components: VS/2008
-Filename: "{code:GetVS2005Path}"; Parameters: /setup; WorkingDir: {app}; StatusMsg: Reconfiguring Visual Studio 2005.  Please wait...; Flags: runhidden; Components: VS/2005
-Filename: "{code:GetVS2008Path}"; Parameters: /setup; WorkingDir: {app}; StatusMsg: Reconfiguring Visual Studio 2008  Please wait...; Flags: runhidden; Components: VS/2008
-Filename: {app}\Uninstall\h2reg.exe; Parameters: -r -q; WorkingDir: {app}\Uninstall; StatusMsg: Registering help collection; Flags: runhidden; Components: docs and (VS/2005 or VS/2008)
-
-[UninstallRun]
-Filename: {app}\GlobalInstaller.exe; Parameters: /u mysql.visualstudio.dll version=VS2005; WorkingDir: {app}\Visual Studio Integration; StatusMsg: Removing Visual Studio 2005 integration; Flags: runhidden; Components: VS/2005
-Filename: {app}\GlobalInstaller.exe; Parameters: /u mysql.visualstudio.dll version=VS2008; WorkingDir: {app}\Visual Studio Integration; StatusMsg: Removing Visual Studio 2008 integration; Flags: runhidden; Components: VS/2008
-Filename: "{code:GetVS2005Path}"; Parameters: /setup; WorkingDir: {app}; StatusMsg: Reconfiguring Visual Studio 2005; Flags: runhidden runascurrentuser; Components: VS/2005
-Filename: "{code:GetVS2008Path}"; Parameters: /setup; WorkingDir: {app}; StatusMsg: Reconfiguring Visual Studio 2008; Flags: runhidden runascurrentuser; Components: VS/2008
-Filename: "{code:GetVersion2InstallUtil}"; Parameters: /u {app}\.NET Framework\mysql.data.dll; WorkingDir: {app}; StatusMsg: Removing data provider from machine.config; Flags: runhidden
-Filename: "{code:GetVersion2InstallUtil}"; Parameters: /u {app}\Web Providers\mysql.web.dll; WorkingDir: {app}; StatusMsg: Removing web providers from machine.config; Flags: runhidden; Components: Providers
-Filename: {app}\Uninstall\h2reg.exe; Parameters: -u -q; WorkingDir: {app}\Uninstall; Flags: runhidden; Components: docs and (VS/2005 or VS/2008)
-
-[Code]
-#include "misc.iss"
-
-function InitializeSetup(): Boolean;
-begin
-  Result := true;
-	if not CheckForFramework('2.0', true) then
-		Result := false
-		
-  if PreviousVersionsInstalled() then
-  begin
-    MsgBox('There is already a version of Connector/Net installed.  ' +
-           'Please uninstall all versions before installing this product.', mbError, MB_OK);
-    Result := false
-  end;
-end;
-
-procedure AfterMySqlDataInstall();
-begin
-    if Not RegisterAssembly(ExpandConstant('{app}' + '\.NET Framework\mysql.data.dll'), 2) then
-      MsgBox('Registration of the Connector/Net core components failed.', mbError, MB_OK);
-end;
-
-procedure AfterWebInstall();
-begin
-    if Not RegisterAssembly(ExpandConstant('{app}' + '\Web Providers\mysql.web.dll'), 2) then
-      MsgBox('Registration of the Connector/Net web components failed.', mbError, MB_OK);
-end;
-
-procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
-begin
-  if CurUninstallStep = usUninstall then
-  begin
-    if Not UnRegisterAssembly(ExpandConstant('{app}' + '\.NET Framework\mysql.data.dll'), 'mysql.data', 2) then
-      MsgBox('Unregistration of the Connector/Net core components failed.', mbError, MB_OK);
-
-    if FileExists(ExpandConstant('{app}' + '\Web Providers\mysql.web.dll')) then
-      if Not UnRegisterAssembly(ExpandConstant('{app}' + '\Web Providers\mysql.web.dll'), 'mysql.web', 2) then
-        MsgBox('Unregistration of the Connector/Net web components failed.', mbError, MB_OK);
-
-    // Now that we're finished with it, unload MyDll.dll from memory.
-    // We have to do this so that the uninstaller will be able to remove the DLL and the {app} directory.
-    UnloadDLL(ExpandConstant('{app}\installtools.dll'));
-  end
-end;
-
-function VS2005Installed() : Boolean;
-begin
-  Result := RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Microsoft\VisualStudio\8.0\Setup\VS');
-end;
-
-function VS2008Installed() : Boolean;
-begin
-  Result := RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Microsoft\VisualStudio\9.0\Setup\VS');
-end;
-
-function GetVersion2InstallUtil(Param: String) : String;
-begin
-  Result := GetInstallUtilPath(2);
-end;
-
-
-

Deleted: trunk/Installer/misc.iss
===================================================================
--- trunk/Installer/misc.iss	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/Installer/misc.iss	2008-11-12 16:53:36 UTC (rev 1459)
@@ -1,107 +0,0 @@
-function InstallToGAC(filename: String; ver: Integer): Boolean;
-external 'InstallToGAC@files:installtools.dll cdecl';
-
-function RemoveFromGAC(name: String; ver: Integer): Boolean;
-external 'RemoveFromGAC@{app}\installtools.dll cdecl uninstallonly';
-
-function CheckForFramework(version: String; required: Boolean): Boolean;
-var
-    regkey : String;
-    msg : String;
-begin
-	Result := true;
-	regkey := Format('SOFTWARE\Microsoft\.NETFramework\policy\v%s', [version]);
-	if not RegKeyExists(HKLM, regkey) then
-	begin
-		msg := Format('This setup requires .NET Framework %s.', [version]);
-		MsgBox(msg, mbError, MB_OK);
-		Result:=false;
-	end
-end;
-
-function GetInstallUtilPath(version: Integer) : String;
-var
-  installroot : String;
-begin
-  if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\.NETFramework', 'InstallRoot', installroot) then
-  begin
-    if version = 2 then
-      Result := Format('%s\v2.0.50727\installutil.exe', [installroot]);
-    if version = 11 then
-      Result := Format('%s\v1.1.4322\installutil.exe', [installroot]);
-  end
-  Log('Returning ' + Result + ' as path to installutil');
-end;
-
-function RegisterAssembly(name: String; version: Integer) : Boolean;
-var
-  ResultCode : Integer;
-begin
-    Result := true;
-    Log(Format('Registering %s for version %d', [name, version]));
-
-    // Install our assembly to the GAC now
-    if Not InstallToGAC(name, version) then
-    begin
-      Log('Installing ' + name + ' into the GAC failed.');
-      Result := false;
-    end
-end;
-
-function UnRegisterAssembly(assemblyFile: String; assemblyName: String; version: Integer) : Boolean;
-var
-  ResultCode : Integer;
-  InstallutilPath: String;
-begin
-    Result := true;
-    Log(Format('Unregistering %s for version %d', [assemblyName, version]));
-
-    // Remove our assembly from the GAC now
-    if Not RemoveFromGAC(Format('%s, Version={#SetupSetting("AppVersion")}', [assemblyName]), version) then
-    begin
-      Log('Removing ' + assemblyName + ' from the GAC failed.');
-      Result := false;
-    end
-    else
-    begin
-      InstallUtilPath := GetInstallUtilPath(version);
-
-      Exec(InstallUtilPath, '/LogFile= /u "' + assemblyFile + '"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
-      if ResultCode <> 0 then
-      begin
-        Log('Running remove methods in ' + assemblyName + ' failed.');
-        Result := false;
-      end
-      else
-        Log('Successfully unregistered ' + assemblyName);
-    end
-end;
-
-function PreviousVersionsInstalled() : Boolean;
-var
-  Names: TArrayOfString;
-  I : Integer;
-begin
-  Result := false;
-  if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, 'Software\MySQL AB', Names) then
-  begin
-    for I := 0 to GetArrayLength(Names)-1 do
-      if Pos('MySQL Connector/Net', Names[I]) = 1 then
-        Result := true;
-  end
-end;
-
-function GetVS2005Path(Param: String) : String;
-begin
-  if Not RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\VisualStudio\8.0\Setup\VS', 'EnvironmentDirectory', Result) Then
-    RaiseException('Unable to locate the Visual Studio 2005 installation directory');
-  Result := Format('%sdevenv.com', [Result]);
-end;
-
-function GetVS2008Path(Param: String) : String;
-begin
-  if Not RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\VisualStudio\9.0\Setup\VS', 'EnvironmentDirectory', Result) Then
-    RaiseException('Unable to locate the Visual Studio 2008 installation directory');
-  Result := Format('%sdevenv.com', [Result]);
-end;
-

Deleted: trunk/Installer/vs2005.iss
===================================================================
--- trunk/Installer/vs2005.iss	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/Installer/vs2005.iss	2008-11-12 16:53:36 UTC (rev 1459)
@@ -1,52 +0,0 @@
-; Visual Studio integration
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}; Flags: uninsdeletekey; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}; ValueData: "MySQL Server"; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}\SupportingProviders; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}\SupportingProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}\SupportingProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "Description"; ValueData: "Provider_Description, MySql.Data.VisualStudio.Properties.Resources"; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}\SupportingProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "DisplayName"; ValueData: "Datasource_Displayname, MySql.Data.VisualStudio.Properties.Resources"; Components: VS/2005
-
-; Data Providers
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; Flags: uninsdeletekey; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueData: ".NET Framework Data Provider for MySQL"; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "DisplayName"; ValueData: "Provider_DisplayName, MySql.Data.VisualStudio.Properties.Resources"; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "ShortDisplayName"; ValueData: "Provider_ShortDisplayName, MySql.Data.VisualStudio.Properties.Resources"; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "Description"; ValueData: "Provider_Description, MySql.Data.VisualStudio.Properties.Resources"; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "FactoryService"; ValueData: "{{D949EA95-EDA1-4b65-8A9E-266949A99360}}"; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "InvariantName"; ValueData: "MySql.Data.MySqlClient"; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataConnectionPromptDialog; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataConnectionProperties; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataConnectionSupport; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataConnectionUIControl; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataObjectSupport; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataSourceInformation; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataViewSupport; Components: VS/2005
-
-; Menus
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Menus\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType:string; ValueName:"{{79A115C9-B133-4891-9E7B-242509DAD272}}"; ValueData:",1000,1"; Flags: uninsdeletekey; Components: VS/2005
-
-; Service
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Services\{{D949EA95-EDA1-4b65-8A9E-266949A99360}}; Flags: uninsdeletekey; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Services\{{D949EA95-EDA1-4b65-8A9E-266949A99360}}; ValueType:string; ValueData:"{{79A115C9-B133-4891-9E7B-242509DAD272}}"; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Services\{{D949EA95-EDA1-4b65-8A9E-266949A99360}}; ValueType:string; ValueName:"Name"; ValueData:"MySQL Provider Object Factory"; Components: VS/2005
-
-; Installed products
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\InstalledProducts\[ProductName]; Flags: uninsdeletekey; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\InstalledProducts\[ProductName]; ValueData: [Productname]; ValueType:string; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\InstalledProducts\[ProductName]; ValueName: "Package"; ValueData: "{{79A115C9-B133-4891-9E7B-242509DAD272}}"; ValueType:string; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\InstalledProducts\[ProductName]; ValueName: "UseInterface"; ValueData: "1"; ValueType:dword; Components: VS/2005
-
-; Package section
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; Flags: uninsdeletekey; Components: VS/2005
-
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueData: [ProductName]; ValueType: string; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "InprocServer32"; ValueData: "[WindowsFolder]system32\mscoree.dll"; ValueType: string; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "Class"; ValueData: "MySql.Data.VisualStudio.MySqlDataProviderPackage"; ValueType: string; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "CodeBase"; ValueData: "[INSTALLDIR]\Visual Studio Integration\MySql.VisualStudio.dll"; ValueType: string; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "ProductName"; ValueData: "MySQL Tools for Visual Studio"; ValueType: string; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "ProductVersion"; ValueData: "1.1"; ValueType: string; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "CompanyName"; ValueData: "MySQL AB c/o MySQL, Inc."; ValueType: string; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "MinEdition"; ValueData: "standard"; ValueType: string; Components: VS/2005
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\8.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "ID"; ValueData: "100"; ValueType: dword; Components: VS/2005
-

Deleted: trunk/Installer/vs2008.iss
===================================================================
--- trunk/Installer/vs2008.iss	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/Installer/vs2008.iss	2008-11-12 16:53:36 UTC (rev 1459)
@@ -1,52 +0,0 @@
-; Visual Studio integration
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}; Flags: uninsdeletekey; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}; ValueData: "MySQL Server"; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}\SupportingProviders; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}\SupportingProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}\SupportingProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "Description"; ValueData: "Provider_Description, MySql.Data.VisualStudio.Properties.Resources"; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataSources\{{98FBE4D8-5583-4233-B219-70FF8C7FBBBD}}\SupportingProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "DisplayName"; ValueData: "Datasource_Displayname, MySql.Data.VisualStudio.Properties.Resources"; Components: VS/2008
-
-; Data Providers
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; Flags: uninsdeletekey; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueData: ".NET Framework Data Provider for MySQL"; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "DisplayName"; ValueData: "Provider_DisplayName, MySql.Data.VisualStudio.Properties.Resources"; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "ShortDisplayName"; ValueData: "Provider_ShortDisplayName, MySql.Data.VisualStudio.Properties.Resources"; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "Description"; ValueData: "Provider_Description, MySql.Data.VisualStudio.Properties.Resources"; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "FactoryService"; ValueData: "{{D949EA95-EDA1-4b65-8A9E-266949A99360}}"; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType: string; ValueName: "InvariantName"; ValueData: "MySql.Data.MySqlClient"; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataConnectionPromptDialog; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataConnectionProperties; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataConnectionSupport; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataConnectionUIControl; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataObjectSupport; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataSourceInformation; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\DataProviders\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}\SupportedObjects\DataViewSupport; Components: VS/2008
-
-; Menus
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Menus\{{C6882346-E592-4da5-80BA-D2EADCDA0359}}; ValueType:string; ValueName:"{{79A115C9-B133-4891-9E7B-242509DAD272}}"; ValueData:",1000,1"; Flags: uninsdeletekey; Components: VS/2008
-
-; Service
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Services\{{D949EA95-EDA1-4b65-8A9E-266949A99360}}; Flags: uninsdeletekey; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Services\{{D949EA95-EDA1-4b65-8A9E-266949A99360}}; ValueType:string; ValueData:"{{79A115C9-B133-4891-9E7B-242509DAD272}}"; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Services\{{D949EA95-EDA1-4b65-8A9E-266949A99360}}; ValueType:string; ValueName:"Name"; ValueData:"MySQL Provider Object Factory"; Components: VS/2008
-
-; Installed products
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\InstalledProducts\[ProductName]; Flags: uninsdeletekey; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\InstalledProducts\[ProductName]; ValueData: [Productname]; ValueType:string; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\InstalledProducts\[ProductName]; ValueName: "Package"; ValueData: "{{79A115C9-B133-4891-9E7B-242509DAD272}}"; ValueType:string; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\InstalledProducts\[ProductName]; ValueName: "UseInterface"; ValueData: "1"; ValueType:dword; Components: VS/2008
-
-; Package section
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; Flags: uninsdeletekey; Components: VS/2008
-
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueData: [ProductName]; ValueType: string; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "InprocServer32"; ValueData: "[WindowsFolder]system32\mscoree.dll"; ValueType: string; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "Class"; ValueData: "MySql.Data.VisualStudio.MySqlDataProviderPackage"; ValueType: string; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "CodeBase"; ValueData: "[INSTALLDIR]\Visual Studio Integration\MySql.VisualStudio.dll"; ValueType: string; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "ProductName"; ValueData: "MySQL Tools for Visual Studio"; ValueType: string; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "ProductVersion"; ValueData: "1.1"; ValueType: string; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "CompanyName"; ValueData: "MySQL AB c/o MySQL, Inc."; ValueType: string; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "MinEdition"; ValueData: "standard"; ValueType: string; Components: VS/2008
-Root: HKLM; Subkey: Software\Microsoft\VisualStudio\9.0\Packages\{{79A115C9-B133-4891-9E7B-242509DAD272}}; ValueName: "ID"; ValueData: "100"; ValueType: dword; Components: VS/2008
-

Modified: trunk/MySQLClient.sln
===================================================================
--- trunk/MySQLClient.sln	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySQLClient.sln	2008-11-12 16:53:36 UTC (rev 1459)
@@ -15,8 +15,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySql.VisualStudio", "MySql.VisualStudio\MySql.VisualStudio.csproj", "{E7E48744-7BB3-463E-9A9A-7B4553D79C0E}"
 EndProject
-Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Installer", "Installer\Installer.wixproj", "{F533FC43-6C05-4A64-8AF6-72B690EB06C3}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySql.Data.Entity", "MySql.Data.Entity\Provider\MySql.Data.Entity.csproj", "{A8E799B1-D6AC-42BD-907E-B213D7E9B3C5}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySql.Data.Entity.Tests", "MySql.Data.Entity\Tests\MySql.Data.Entity.Tests.csproj", "{77EC4E20-293A-48BA-8415-D0AD869D91FA}"
@@ -211,30 +209,6 @@
 		{E7E48744-7BB3-463E-9A9A-7B4553D79C0E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{E7E48744-7BB3-463E-9A9A-7B4553D79C0E}.Release|x64.ActiveCfg = Release|Any CPU
 		{E7E48744-7BB3-463E-9A9A-7B4553D79C0E}.Release|x86.ActiveCfg = Release|Any CPU
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Commercial|Any CPU.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Commercial|Mixed Platforms.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Commercial|Mixed Platforms.Build.0 = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Commercial|x64.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Commercial|x86.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Commercial|x86.Build.0 = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Debug|Any CPU.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Debug|Mixed Platforms.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Debug|Mixed Platforms.Build.0 = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Debug|x64.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Debug|x86.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Debug|x86.Build.0 = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.GPL|Any CPU.ActiveCfg = GPL|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.GPL|Mixed Platforms.ActiveCfg = GPL|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.GPL|Mixed Platforms.Build.0 = GPL|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.GPL|x64.ActiveCfg = GPL|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.GPL|x86.ActiveCfg = GPL|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.GPL|x86.Build.0 = GPL|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Release|Any CPU.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Release|Mixed Platforms.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Release|Mixed Platforms.Build.0 = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Release|x64.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Release|x86.ActiveCfg = Commercial|x86
-		{F533FC43-6C05-4A64-8AF6-72B690EB06C3}.Release|x86.Build.0 = Commercial|x86
 		{A8E799B1-D6AC-42BD-907E-B213D7E9B3C5}.Commercial|Any CPU.ActiveCfg = Release|Any CPU
 		{A8E799B1-D6AC-42BD-907E-B213D7E9B3C5}.Commercial|Any CPU.Build.0 = Release|Any CPU
 		{A8E799B1-D6AC-42BD-907E-B213D7E9B3C5}.Commercial|Mixed Platforms.ActiveCfg = Release|Any CPU

Modified: trunk/MySql.Data/Provider/Source/CharSetMap.cs
===================================================================
--- trunk/MySql.Data/Provider/Source/CharSetMap.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Provider/Source/CharSetMap.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -166,8 +166,11 @@
 
         internal static string GetDefaultCollation(string charset, MySqlConnection connection)
         {
-            if (defaultCollations == null)
-                InitCollections(connection);
+            lock (defaultCollations)
+            {
+                if (defaultCollations == null)
+                    InitCollections(connection);
+            }
             if (!defaultCollations.ContainsKey(charset))
                 return null;
             return defaultCollations[charset];
@@ -175,8 +178,13 @@
 
         internal static int GetMaxLength(string charset, MySqlConnection connection)
         {
-            if (maxLengths == null)
-                InitCollections(connection);
+            // we lock on defaultCollations here too so GetDefaultCollation
+            // is on the same lock as us.
+            lock (defaultCollations)
+            {
+                if (maxLengths == null)
+                    InitCollections(connection);
+            }
 
             if (!maxLengths.ContainsKey(charset))
                 return 1;

Modified: trunk/MySql.Data/Provider/Source/Driver.cs
===================================================================
--- trunk/MySql.Data/Provider/Source/Driver.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Provider/Source/Driver.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -59,6 +59,7 @@
             connectionString = settings;
             threadId = -1;
             serverCharSetIndex = -1;
+            maxPacketSize = 1024;
         }
 
         #region Properties
@@ -129,6 +130,11 @@
             get { return maxPacketSize; }
         }
 
+        internal int ConnectionCharSetIndex
+        {
+            get { return serverCharSetIndex; }
+        }
+
         #endregion
 
         public string Property(string key)

Modified: trunk/MySql.Data/Provider/Source/Field.cs
===================================================================
--- trunk/MySql.Data/Provider/Source/Field.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Provider/Source/Field.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -190,6 +190,9 @@
                 connection.Settings.FunctionsReturnString)
             {
                 mySqlDbType = MySqlDbType.VarString;
+                // we are treating a binary as string so we have to choose some
+                // charset index.  Connection seems logical.
+                CharacterSetIndex = connection.driver.ConnectionCharSetIndex;
                 binaryOk = false;
             }
 
@@ -270,6 +273,9 @@
                     mySqlDbType = MySqlDbType.VarBinary;
             }
 
+            if (CharacterSetIndex == 63)
+                CharacterSetIndex = connection.driver.ConnectionCharSetIndex;
+
             if (Type == MySqlDbType.Binary && ColumnLength == 16)
                 mySqlDbType = MySqlDbType.Guid;
         }

Modified: trunk/MySql.Data/Provider/Source/ISSchemaProvider.cs
===================================================================
--- trunk/MySql.Data/Provider/Source/ISSchemaProvider.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Provider/Source/ISSchemaProvider.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -286,7 +286,7 @@
         public virtual DataTable GetProcedureParameters(string[] restrictions,
             DataTable routines)
         {
-            if (connection.driver.Version.isAtLeast(6, 0, 0))
+            if (connection.driver.Version.isAtLeast(6, 0, 6))
                 return GetParametersFromIS(restrictions);
             else
             {

Modified: trunk/MySql.Data/Provider/Source/MySqlConnectionStringBuilder.cs
===================================================================
--- trunk/MySql.Data/Provider/Source/MySqlConnectionStringBuilder.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Provider/Source/MySqlConnectionStringBuilder.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -1017,7 +1017,7 @@
         /// stripping out the password info
         /// </summary>
         /// <returns></returns>
-        public string GetConnectionString(bool includePass)
+        internal string GetConnectionString(bool includePass)
         {
             if (includePass)
                 return originalConnectionString;

Modified: trunk/MySql.Data/Provider/Source/MySqlScript.cs
===================================================================
--- trunk/MySql.Data/Provider/Source/MySqlScript.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Provider/Source/MySqlScript.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -145,6 +145,13 @@
                 connection.Open();
             }
 
+            // since we don't allow setting of parameters on a script we can 
+            // therefore safely allow the use of user variables.  no one should be using
+            // this connection while we are using it so we can temporarily tell it
+            // to allow the use of user variables
+            bool allowUserVars = connection.Settings.AllowUserVariables;
+            connection.Settings.AllowUserVariables = true;
+
             try
             {
                 string mode = connection.driver.Property("sql_mode");
@@ -179,6 +186,7 @@
             }
             finally
             {
+                connection.Settings.AllowUserVariables = allowUserVars;
                 if (openedConnection)
                 {
                     connection.Close();

Modified: trunk/MySql.Data/Provider/Source/command.cs
===================================================================
--- trunk/MySql.Data/Provider/Source/command.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Provider/Source/command.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -252,9 +252,11 @@
 			if (!connection.driver.Version.isAtLeast(5, 0, 0))
 				throw new NotSupportedException(Resources.CancelNotSupported);
 
-			using(MySqlConnection c = new MySqlConnection(connection.Settings.GetConnectionString(true)))
+            MySqlConnectionStringBuilder cb = new MySqlConnectionStringBuilder(
+                connection.Settings.GetConnectionString(true));
+            cb.Pooling = false;
+			using(MySqlConnection c = new MySqlConnection(cb.ConnectionString))
 			{
-                c.Settings.Pooling = false;
                 c.Open();
                 MySqlCommand cmd = new MySqlCommand(String.Format("KILL QUERY {0}",
                      connection.ServerThread), c);

Modified: trunk/MySql.Data/Provider/Source/datareader.cs
===================================================================
--- trunk/MySql.Data/Provider/Source/datareader.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Provider/Source/datareader.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -242,6 +242,30 @@
 				return (byte)((MySqlByte)v).Value;
 		}
 
+        /// <summary>
+        /// Gets the value of the specified column as a sbyte.
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public byte GetSByte(string name)
+        {
+            return GetByte(GetOrdinal(name));
+        }
+
+        /// <summary>
+        /// Gets the value of the specified column as a sbyte.
+        /// </summary>
+        /// <param name="i"></param>
+        /// <returns></returns>
+        public sbyte GetSByte(int i)
+        {
+            IMySqlValue v = GetFieldValue(i, false);
+            if (v is MySqlByte)
+                return ((MySqlByte)v).Value;
+            else
+                return (sbyte)((MySqlByte)v).Value;
+        }
+
 		/// <summary>
 		/// Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
 		/// </summary>

Modified: trunk/MySql.Data/Provider/Source/transaction.cs
===================================================================
--- trunk/MySql.Data/Provider/Source/transaction.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Provider/Source/transaction.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -77,6 +77,13 @@
 
         #endregion
 
+        protected override void Dispose(bool disposing)
+        {
+            if ((conn != null && conn.State == ConnectionState.Open || conn.SoftClosed) && open)
+                Rollback();
+            base.Dispose(disposing);
+        }
+
         /// <include file='docs/MySqlTransaction.xml' path='docs/Commit/*'/>
         public override void Commit()
         {

Modified: trunk/MySql.Data/Tests/Source/CharacterSetTests.cs
===================================================================
--- trunk/MySql.Data/Tests/Source/CharacterSetTests.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Tests/Source/CharacterSetTests.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -552,6 +552,82 @@
 
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 
Modified: trunk/MySql.Data/Tests/Source/ConnectionStringBuilder.cs
===================================================================
--- trunk/MySql.Data/Tests/Source/ConnectionStringBuilder.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Tests/Source/ConnectionStringBuilder.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -92,7 +92,7 @@
             MySqlConnectionStringBuilder s = new MySqlConnectionStringBuilder();
             s["database"] = "test";
             s["database"] = "test2";
-            Assert.AreEqual("database=test2", s.GetConnectionString(false));
+            Assert.AreEqual("database=test2", s.ConnectionString);
         }
     }
 }

Modified: trunk/MySql.Data/Tests/Source/DataTypeTests.cs
===================================================================
--- trunk/MySql.Data/Tests/Source/DataTypeTests.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Tests/Source/DataTypeTests.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -768,7 +768,27 @@
             }
         }
 
+        /// <summary>
+        /// Bug #40571  	Add GetSByte to the list of public methods supported by MySqlDataReader
+        /// </summary>
         [Test]
+        public void SByteFromReader()
+        {
+            execSQL("DROP TABLE IF EXISTS Test");
+            execSQL("CREATE TABLE Test (c1 TINYINT, c2 TINYINT UNSIGNED)");
+            execSQL("INSERT INTO Test VALUES (99, 217)");
+
+            MySqlCommand cmd = new MySqlCommand("SELECT * FROM Test", conn);
+            using (MySqlDataReader reader = cmd.ExecuteReader())
+            {
+                reader.Read();
+                Assert.AreEqual(99, reader.GetSByte(0));
+                Assert.AreEqual(217, reader.GetByte(1));
+                Assert.AreEqual(99, reader.GetByte(0));
+            }
+        }
+
+        [Test]
         public void NewGuidDataType()
         {
             execSQL("CREATE TABLE Test(id INT, g BINARY(16))");

Modified: trunk/MySql.Data/Tests/Source/PoolingTests.cs
===================================================================
--- trunk/MySql.Data/Tests/Source/PoolingTests.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Tests/Source/PoolingTests.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -728,7 +728,7 @@
 
 
-
 

Modified: trunk/MySql.Data/Tests/Source/ScriptExecution.cs
===================================================================
--- trunk/MySql.Data/Tests/Source/ScriptExecution.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Tests/Source/ScriptExecution.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -155,11 +155,18 @@
         [Test]
         public void ExecuteScriptWithUserVariables()
         {
-            string scriptText = "SET @myvar = 1";
-            MySqlScript script = new MySqlScript(scriptText);
-            script.Connection = conn;
-            int count = script.Execute();
-            Assert.AreEqual(2, count);
+            string connStr = conn.ConnectionString.ToLowerInvariant();
+            connStr = connStr.Replace("allow user variables=true",
+                "allow user variables=false");
+            using (MySqlConnection c = new MySqlConnection(connStr))
+            {
+                c.Open();
+                string scriptText = "SET @myvar = 1";
+                MySqlScript script = new MySqlScript(scriptText);
+                script.Connection = c;
+                int count = script.Execute();
+                Assert.AreEqual(1, count);
+            }
         }
     }
 }

Modified: trunk/MySql.Data/Tests/Source/SimpleTransactions.cs
===================================================================
--- trunk/MySql.Data/Tests/Source/SimpleTransactions.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Tests/Source/SimpleTransactions.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -24,6 +24,7 @@
 using NUnit.Framework;
 #if NET20
 using System.Data.Common;
+using System.Reflection;
 #endif
 
 namespace MySql.Data.MySqlClient.Tests
@@ -133,12 +134,31 @@
                     trans.Commit();
                     Assert.Fail("Should have thrown an exception");
                 }
-                catch (Exception ex)
+                catch (Exception)
                 {
                 }
                 Assert.AreEqual(ConnectionState.Closed, c.State);
                 c.Close();    // this should work even though we are closed
             }
         }
+
+        /// <summary>
+        /// Bug #39817	Transaction Dispose does not roll back
+        /// </summary>
+        [Test]
+        public void DisposingCallsRollback()
+        {
+            MySqlCommand cmd = new MySqlCommand("INSERT INTO Test VALUES ('a', 'b', 'c')", conn);
+            MySqlTransaction txn = conn.BeginTransaction();
+            using (txn)
+            {
+                cmd.ExecuteNonQuery();
+            }
+            // the txn should be closed now as a rollback should have happened.
+            Type t = txn.GetType();
+            FieldInfo fi = t.GetField("open", BindingFlags.Instance | BindingFlags.NonPublic);
+            bool isOpen = (bool)fi.GetValue(txn);
+            Assert.IsFalse(isOpen);
+        }
     }
 }

Modified: trunk/MySql.Data/Tests/Source/TimeoutAndCancel.cs
===================================================================
--- trunk/MySql.Data/Tests/Source/TimeoutAndCancel.cs	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.Data/Tests/Source/TimeoutAndCancel.cs	2008-11-12 16:53:36 UTC (rev 1459)
@@ -23,6 +23,7 @@
 using System.IO;
 using System.Threading;
 using NUnit.Framework;
+using System.Globalization;
 
 namespace MySql.Data.MySqlClient.Tests
 {
@@ -210,5 +211,35 @@
             }
             Assert.IsTrue(rows < 10000);
         }        
+
+        /// <summary>
+        /// Bug #40091	mysql driver 5.2.3.0 connection pooling issue
+        /// </summary>
+        [Test]
+        public void ConnectionStringModifiedAfterCancel()
+        {
+            bool isPooling = pooling;
+            pooling = true;
+            string connStr = GetConnectionString(true);
+            pooling = isPooling;
+            connStr = connStr.Replace("persist security info=true", "persist security info=false");
+
+            using (MySqlConnection c = new MySqlConnection(connStr))
+            {
+                c.Open();
+                string connStr1 = c.ConnectionString;
+
+                MySqlCommand cmd = new MySqlCommand("SELECT SLEEP(10)", c);
+                cmd.CommandTimeout = 5;
+
+                using (MySqlDataReader reader = cmd.ExecuteReader())
+                {
+                    string connStr2 = c.ConnectionString.ToLower(CultureInfo.InvariantCulture);
+                    Assert.AreEqual(-1, connStr2.IndexOf("pooling=true"));
+                    Assert.AreEqual(-1, connStr2.IndexOf("pooling=false"));
+                    reader.Read();
+                }
+            }
+        }
     }
 }

Modified: trunk/MySql.VisualStudio/MySql.VisualStudio.csproj
===================================================================
--- trunk/MySql.VisualStudio/MySql.VisualStudio.csproj	2008-11-12 16:42:28 UTC (rev 1458)
+++ trunk/MySql.VisualStudio/MySql.VisualStudio.csproj	2008-11-12 16:53:36 UTC (rev 1459)
@@ -77,7 +77,6 @@
       <HintPath>C:\Program Files (x86)\Visual Studio 2005 SDK\2007.02\VisualStudioIntegration\Common\Assemblies\Microsoft.VisualStudio.TextManager.Interop.8.0.dll</HintPath>
     </Reference>
     <Reference Include="System" />
-    <Reference Include="System.Configuration.Install" />
     <Reference Include="System.Data" />
     <Reference Include="System.Design" />
     <Reference Include="System.Drawing" />
@@ -162,9 +161,6 @@
     <Compile Include="Guids.cs" />
     <Compile Include="LanguageService\MySqlScanner.cs" />
     <Compile Include="LanguageService\Source.cs" />
-    <Compile Include="MyInstaller.cs">
-      <SubType>Component</SubType>
-    </Compile>
     <Compile Include="MySqlProviderObjectFactory.cs" />
     <Compile Include="Nodes\BaseNode.cs" />
     <Compile Include="DbObjects\Column.cs" />

Thread
Connector/NET commit: r1459 - in trunk: . Installer MySql.Data/Provider/Source MySql.Data/Tests/Source MySql.VisualStudiorburnett12 Nov