1.2.1
- Fixed a bug that happened after closing an Excel window containing an open MySQL for Excel add-in in Excel 2013, the custom task pane linked to the closed window was
  not being disposed of correctly and not removed from the collection of Excel task panes either.
  (Bug #18392674 - SEVERAL CLICKS NEEDED ON THE MYSQL FOR EXCEL RIBBON BUTTON TO START/CLOSE ADD-IN)
- Tables with Guid data are now imported correctly. Creation of the named tables is now working with Guid tables too.
  (Bug #17806468 - IMPORTING TABLES WITH GUID TO EXCEL - EXCEPTION)
- Fixed a bug in the MSIs present since version 1.1.2 that was trying to add Registry keys for MySQL for Excel during a product upgrade when the registry keys were
  already present and should not be added. The Registry keys are just added now when the product is installed for the first time.
  (Bug #18354533 - MYSQL FOR EXCELL ADDIN 1.2.0 (STAND ALONE) IS NOT ABLE TO UPDATE AN OLD VERSION)
- Fixed code that was causing the AutoPK column not to appear sometimes in the CREATE and INSERT statements, fixed the total count of inserted rows for Export Data and
  Append Data operations depending on the status of the "First Row Contains Column Names" checkbox. Fixed the starting value of the AutoPK column depending on the status
  of the "First Row Contains Column Names" checkbox.
  (Bug #18269654 - EXPORT DATA - ERROR ON CHANGING PRIMARY KEY OPTIONS)
- Changed functionality to always forcefully remove columns that contain no data. Empty columns will always be excluded now.
  (Bug #18113057 - EXPORT DATA: UNHANDLED EXCEPTION WHEN SELECTING THE WHOLE SPREADSHEEET'S DATA).
  (Bug #16501338 - EXPORT DATA - EMPTY COLUMNS ARE NOT ALWAYS FLAGGED AS EXCLUDED)
- Fixed code in the MySqlDataTable, MySqlDataColumn and MySqlDataRow classes that makes INSERT SQL queries recalculate after a column is excluded.
  (Bug #18269602 - EXPORT DATA - EXCLUDING COLUMNS CAUSE THE EXPORT DATA TO FAIL)
- Optimized INSERT statements which are now sent as single statements for each of the data rows. In average a 30-35% time improvement was achieved.
  Optimized the way SQL queries are created for a changed row (in average a 30-40% time improvement) so processing is faster and less memory is used.
  Optimized how the Excel data is loaded into a MySqlDataTable object (in average a 80% time improvement), so now a temporary hidden Excel worksheet is used to prepare
  the data to be loaded and then load it after it was preprocesed instead of preprocessing cell by cell as it was done before.
  Added an advanced option to the Insert Data dialog to create secondary indexes after all the data has been inserted, this saves a lot of disk I/O for bulk inserts
  (thousands of rows) since reindexing will not happen every time a row is inserted but only once at the very end of the data insertion. This option is enabled by default.
  Added an advanced option to the Append Data dialog to disable unique indexes and foreign keys temporarily for the duration of the data insertion. This option is
  disabled by default since the user must make sure that if unique indexes are present the data mapped to that column does not contain duplicate data.
  (Bug #17577014 - EXPORTING HUGE TABLE (250,000 ROWS) NEVER FINISH (SERVER LOST THE CONNECTION))
- Connector .NET, an internal component to MySQL for Excel fixed a bug that occurred when working with Unique keys, which caused this problem.
  (Bug #17891357 - ONLY ONE TABLE FROM A DATABASE WON'T IMPORT)
- Enabled MySQL for Excel to create default connections at startup for every MySQL service found locally when no default connections exist and MySQL Workbench
  is not installed. (Bug #16238788 - CONNECTIONS FOR FOUND MYSQL SERVICES SHOULD BE AUTOMATICALLY CREATED)
- New column mappings are selected by default when the user creates them.
  (Bug #17665496 - APPEND DATA - NEW STORED MAPPING NOT APPLIED AFTER CREATION)
- Changed the way the MySQL for Excel objects panel is refreshed on Windows XP.
  (Bug #16238484 - TABLE ICON IS CUTOFF ON THE TABLE LIST WHEN TABLE IS EXPORTED TO AN EMPTY SCHEMA)
- Implemented a new strategy for checking if a selection of Excel cells contain values to enable/disable the Export Data to New Table action label, this new
  strategy uses Excel native functions which are optimized for speed and memory usage. Optimized the way selected Excel data is fed to the Export Data's preview
  grid so the Export Data dialog loads faster with huge selections of data.
  (Bug #17349260 - ERROR WHEN SELECTING THE WHOLE SPREADSHEET'S CELLS)
  (Bug #14362824 - SELECTING A HUGE AMOUNT OF CELLS IN EXCEL FREEZES EXCEL)

1.2.0
- Added visual warnings to the Append Data dialog for source Excel columns being mapped to target MySQL columns where the source data is not suitable for the
  mapped target column's data type, so the user can make corrections before the data is attempted to be appended on the server.
- Added "Allow to save active editing sessions" global option. This will let users to save their opened edit sessions when saving the workbook, and restoring them
  by reopening the workbook.
- Added the "Create an Excel table for the imported MySQL table data" option to the Import Data dialog's advanced options to automatically create an Excel table
  object for every MySQL table imported to Excel so it can be used for Excel data analysis. Additionally the user can override the default style for the Excel
  table and choose one of the available styles displayed within a drop down list.
- Added a new label "Schema:" to the panel "Select a Database Object" that shows the name of the current schema, located just below the "User:" and "IP:" labels.
- Added "Preview SQL statements before they are sent to the server" and "Show executed SQL statements along with their results" global options. The first option
  lets users preview the SQL statements used in an Export, Append or Edit data operation before they are sent to the MySQL server and edit them if needed. The
  second option lets users apply the statements directly and show the executed SQL statements after they were applied along with the results of the operations.
- Fixed code that was not detecting an Excel row deletion but instead was detecting an Excel row change during an Edit Data operation.
  (Bug #17852774 - EDIT DATA - DELETING A ROW TRIGGERS A DATA CHANGE IN THE FOLLOWING ROW)
- Changes done to the Advanced Options dialogues for Import, Export and Append Data forms are immediately reflected without requiring to close and reopen those forms.
- Added support for optimistic updates to Edit Data operations via a configurable option, using optimistic updates will ensure that pushing changes in the current
  editing session does not overwrite changes done by another person to the set of data retrieved initially. This option can be set globally for all editing sessions
  open by the current user which is persisted in the settings file, or for a specific editing session so when the session is over the optimistic update value is
  reset to the global one.
- Added support for edition of MySQL Workbench connections right from the Welcome Panel where connections are shown. Any of the listed MySQL Workbench connections
  can be right-clicked and a new "Edit Connection" context menu is available for users to edit the Workbench connection properties.  This feature shines brighter
  when MySQL Workbench is not installed since users only relied on MySQL Workbench to edit a connection, without Workbench users had to delete a connection and
  create it again with updated values.

1.1.2
- Generate a password dynamically to protect Excel Worksheets during Edit Data operations instead of using a hardcoded GUID. If the user saves the Workbook while
  any of its Worksheets is in Edit mode, MySQL for Excel will ask the user if he wants to exit the Edit Mode before saving. If the user chooses not to close Edit
  Mode the passkeys used to protect those Worksheets will be output to the application log after closing MySQL for Excel.
- Set the color of the Excel cells containing column names from an Import Data operation to the same color used in Edit Data operations for consistency.
- Added a check on every connection test for an expired password, if the password has been expired a dialog is now shown to the user to reset the password. Also
  added a connection test before any operation against the database (schema creation, data import, append, export or edition).
  (Bug #17354118 - DON'T HANDLE EXPIRED PASSWORDS)
- Added code to escape text values to be imported to an Excel worksheet that start with an equals sign so Excel does not treat those values as formulas that will
  fail evaluation. This is an option turned on by default that can be turned off by users if they wish to import values to be treated as Excel formulas.
  (Bug #17354102 - ERROR IMPORTING TEXT VALUES TO EXCEL STARTING WITH AN EQUALS SIGN)
- Added code to properly check the reason for a failing connection, if it's a failing password the user gets a dialog to retry the connection with a different
  password until the connection succeeds, a connection error not related to the password is thrown or the user cancels. If the failing connection is not related
  to a bad password an error message is shown to the users indicating the reason of the failure.
  (Bug #16239007 - CONNECTIONS TO MYSQL SERVICES NOT RUNNING DISPLAY A WRONG PASSWORD ERROR MESSAGE)
- Added global options dialog that can be accessed from the Schema Selection and DB Object Selection panels where the timeouts for the connection to the DB
  Server and for the query commands can be changed from their default values (15 seconds for the connection timeout and 30 seconds for the query timeout).
  (MySQL Bug #68732, Bug #17191646 - QUERY TIMEOUT CANNOT BE ADJUSTED IN MYSQL FOR EXCEL)
- Changed the Varchar(65,535) data type shown in the Export Data data type combo box to Text since the maximum row size is 65,535 bytes and any autodetected
  column data type with a length greater than 4,000 should be set to Text actually for the table to be created successfully.
  (MySQL Bug #69779, Bug #17191633 - EXPORT FAILS FOR EXCEL FILES CONTAINING > 4000 CHARACTERS OF TEXT PER CELL)
- Removed code that was replacing all spaces typed by the user in an overriden data type for a new column in an Export Data operation, also improved the data
  type detection code to flag as invalid data types with parenthesis but without any text inside or where the contents inside the parenthesis are not valid for
  the specific data type. (Bug #17260260 - EXPORT DATA SET TYPE NOT WORKING WITH MEMBER VALUES CONTAINING SPACES)
- Added support for the year data type with a length of 2 or 4 and a validation that valid values are integers between 1901-2155 (for 4-digit years) or between
  0-99 (for 2-digit years). (Bug #17259915 - EXPORT DATA YEAR DATA TYPE NOT RECOGNIZED IF DECLARED WITH A DISPLAY WIDTH)
- Fixed code for Export Data operations where users overrode the data type for columns typing Text in the data type combobox, which is a valid data type but was
  not recognized as such. (Bug #17259490 - EXPORT DATA TEXT DATA TYPE NOT RECOGNIZED AS A VALID DATA TYPE)
- Changed the location of the registry where the MySQL for Excel add-in is installed to HKEY_LOCAL_MACHINE instead of HKEY_CURRENT_USER so the add-in is accessible
  by all users and not only to the user that installed it. For this to work with Excel 2007 a hotfix may be required (see http://support.microsoft.com/kb/976477).
  (MySQL Bug #68746, Bug #16675992 - EXCEL-ADD-IN IS ONLY INSTALLED FOR USER ACCOUNT THAT THE INSTALLATION RUNS UNDER)
- Added support for Excel 2013 Single Document Interface, now that Excel 2013 creates 1 window per workbook also the Excel Add-In maintains an independent
  custom task pane in each window. Also changed the way the toggle button works, instead of just showing or hiding the Add-In it actually opens and closes it.
  (MySQL Bug #68792, Bug #17272087 - MYSQL FOR EXCEL SIDEBAR DOES NOT APPEAR IN EXCEL 2013 (WITH WORKAROUND))
- Included the latest MySQL Utility with a code fix for the COM exception thrown when attempting to open Workbench in the Manage Connections window.
  (Bug #17258966 - MYSQL WORKBENCH NOT OPENED BY CLICKING MANAGE CONNECTIONS HOTLABEL)
- Fixed code for Append Data operations that was not applying a calculated automatic mapping correctly when the source and target tables had different number of
  columns, some columns with the same name but some of those lying on column indexes beyond the limit of the other source/target table.
  (MySQL Bug #69220, Bug #17278349	 APPEND DOESN'T AUTOMATICALLY DETECT EXCEL COL HEADER WITH SAME NAME AS SQL FIELD)
- Fixed some code for Edit Data operations that was escaping special characters twice (during edition in Excel and then upon sending the query to the MySQL server).
  (MySQL Bug #68669, Bug #17271693 - A BACKSLASH IS INSERTED BEFORE AN APOSTROPHE EDITING TABLE WITH MYSQL FOR EXCEL)
- Refactored all code to comply with SyleCop rules, upgraded MySQL Utility with latest version that encapsulates dialog base classes and introduces more classes
  to handle Workbench connections, and removed these from the Excel project. (Bug #16500331 - CAN'T DELETE CONNECTIONS CREATED WITHIN ADDIN)

1.1.1
- Added code to check for changes on the contents of the currently selected Excel cells, so if the contents become empty the Export and Append data actions are
  disabled in the same way as they are disabled when a new cells selection is made and they contain no data.
  (Bug #16495151 - EXPORT TABLE LINK IS NOT DISABLED WHEN DATA IS DELETED)
- Added code to clear the format of a target Excel range where MySQL data is to be imported to before copying the values to the Excel range so the format applied
  to the Excel cells from a previous import operation does not corrupt the format of newly imported data.
  (Bug #16495155 - DATA GETS CORRUPTED WHEN CELL FORMAT IS DIFFERENT THAN DATA EXPORTED)
- Fixed logic that detects data types for columns to check for empty columns instead of excluded ones and properly assigning the default generic data type of
  varchar(255) to empty columns as per design. (Bug #16495493 - EXPORT DATA - DATA TYPE FOR EMPTY COLUMNS IS NOT AUTO-DETECTED)
- Fixed code that detected data types for columns for the scenario where only 1 row of Excel data is selected for Export or for Append, in which case the data
  type was always being set as a varchar(255) which is used when data types between rows are not consistent. (Bug #16493139 - AUTOMATIC MAPPING NOT WORKING)
- Added a parameter to the LoadConnections method that refreshes connections from its corresponding file, set to true when the the Refresh Connections action
  is performed. (Bug #16493129 - CONNECTION DETAILS NOT REFRESHED)
- Added code to prevent the connections, schemas and DB objects lists from drawing while they are being filled with items.
  (Bug #16392862 - CONNECTIONS LIST FLICKERS WHEN A CONNECTION IS DELETED OR ADDED)
- Added performance_schema to the list of system schemas, so now it shows along with the mysql and information_schema schemas list.
  (Bug #16473033 - PERFORMANCE_SCHEMA NOT LISTED UNDER "SYSTEM SCHEMAS" GROUP)
- Added code that converts numbers to invariant culture strings when building the SQL statements used to push queries to the MySQL Server.
  (MySql bug #67663, Bug #15903921 - USING MYSQL FOR EXCEL IN FRANCE)
- Refactored code in Panels (AutoStyleableBasePanel.cs, DBObjectSelectionPanel.cs, SchemaSelectionPanel.cs, WelcomePanel.cs), in TaskPanelControl.cs and in 
  some Forms (ExportForm.cs, ImportTableViewForm.cs) to comply with StyleCop rules.
- Removed code that always forced the FirstDisplayedScrollingColumnIndex of the preview grid to the currently selected column every time the First Row Contains
  Column Names checkbox is checked or unchecked. (Bug #16419402 - EXPORT DATA FREEZES WHEN SWITCHING HEADERS ROW)
- Set the CreateIndex property value in each new column to be exported immediately after the column data type's is auto-detected.
  (Bug #16238445 - EXPORT DATA - CREATE INDEX CHECKBOX IS NOT AUTO-CHECKED ON DATATYPE DETECTION)
- Moved logic that handles Table and Column values and warnings from Export Form (frontend) to MySQLDataTable and MySQLDataColumn classes (backend).
  (Bug #16397637 - EXPORT DATA - FOCUS GOES TO FIRST COLUMN WHEN EXCLUDING ANY OTHER COLUMN)
- Added code to expand each of the connection group nodes after they are initialized with existing connections.
  (Bug #16238782 - REMOTE CONNECTIONS SHOULD BE EXPANDED ON THE WELCOME PANEL)
- The context menu opened by right-clicking the preview grid in the Import Data Form is now showing context menu actions depending on the number of selected columns
  as follows:
    Select All: Visible when # of selected columns < total columns
    Select None: Visible when # of selected columns > 0
  (Bug #16238663 - IMPORT DATA - CONTEXT MENU SHOULD SMARTLY SHOW SELECT ACTIONS)
- Removed the code that disabled the whole preview grid when the Import Form was used within an Edit Data operation, the disabling of the preview grid was disabling
  the horizontal scrollbar as well. Now the grid is not disabled but columns selection in the grid is cancelled when the Import Form is used by Edit Data which was
  the original intention since in Edit Data all columns must be imported to the worksheet. Disabled the context menu for the grid as well in this scenario.
  (Bug #16239011 - EDIT DATA - IMPORT DIALOG'S PREVIEW GRID HAS HORIZONTAL SCROLLBAR DISABLED)
- Added a link in the Welcome Panel to open an About box displaying the MySQLfor Excel version and copyright text. The About box can be closed by clicking on it or
  pressing the ESC key.(Bug #16238860 - MYSQL FOR EXCEL VERSION NOT VISIBLE UNLESS GOING TO ADD/REMOVE PROGRAMS)

  1.1.0
- Added Edit MySQL Data feature: users are now able to edit the data in a MySQL table using MS Excel in a very friendly and intuitive way. Edit Data supports
  inserting new rows, deleting existing rows and updating existing data as easy as playing with data in an Excel’s spreadsheet and pushing changes back to the server.
- Enabled the following checkboxes in the Append Data's Advanced Options dialog and added code in the Append Data dialog to use the checkboxes as follows:
  * Automatically store the column mapping for the given table
    - If checked the current mapping will be stored automatically after clicking the Append button if the append operation is successful and there is no mapping for
	  the current connection.schema.table already; the new mapping is stored with a proposed name of Mapping.
  * Reload stored column mapping for the selected table automatically
    - If checked the first Stored Mapping found where all column names in the source grid match all column names in the target grid is automatically selected and
	  applied when the Append Data dialog is loaded.
- Fixed code that applies a stored column mapping to skip target columns where the associated mapping is empty (saved as a -1).
- Enclosed the Add-In's startup code in a try-catch block in order to log any possible error thrown during startup; and added information messages to the log at the
  begginning of the Add-In's startup code and at the end of the shutdown code.  Also changed the wrapper method that calls the MySQLUtility to write messages to the
  log to make logging easier, thus changed the log call throughout all the code that contains a try-catch block.
- Added code to the main wix configuration file to check if a newer version is already installad and if so abort the installtion.
- Fixed code to refresh the Import Procedure Form's preview grid's data source to repaint its contents every time the Call button is pressed.
- Added code to re-pull connections after connections are migrated from Excel to Workbench.
- Fixed code so when the Append Data's Automatic Mapping is performed any subsequent change on a mapping resets the mapping to a Manual Mapping.
- Added code to the InfoDialog class to set the button text to "Show Details" or "Hide Details" depending on the status of the Details text container.
- Fixed a GUID in the main wix configuration file so now previous versions are uninstalled during a new installation.
- Added an option to the Export Data's Advanced Options dialog to remove columns with no data, by default the Export Dialog will only flag those columns as Excluded.
  Added code to display a warning and paint a column red if the column name is not set, display a warning if the table name is not set, and stack warnings but not
  display them if a column is Excluded, warnings are displayed normally for columns if they are not Excluded anymore.  Added code to prevent the Append and Export of
  Data if more than 1 selection is made (selecting more than 1 area holding the Ctrl key while selecting Excel cells).
- Fixed problem that prevented MySQL for Excel from loading when Display settings in Windows 7 is set to Adjust to Best Performance
  (Oracle bug 14521405 - UNHANDLED EXCEPTION IS THROWN WHEN LOADING MYSQL FOR EXCEL).
- Fixed code that renames the auto-generated Primary Key column when the Table name changes since it was not detecting if a column with the same name already existed
  in the table. The column duplication was not actually happening, it looked that way because the automatically generated PK column was not detecting a column had
  that same name.
- Fixed code to always set an empty string instead of null to the MySQLDataColumn properties that stores MySQL data types (MySQLDataType, RowsFrom1stDataType and
  RowsFrom2ndDataType). Added code to display a warning and color red a column which Data Type has not been set by the user or has been manually cleared.
- Added code to output to the application log exception messages consistently in all places where exceptions are catched.

1.0.7
- Changed code to conditionally detect the datatype of a column with no data in any of its cells as either a Varchar(255) when Exporting data (empty column falls back to a "safe"
  type that user can override) or as a null/empty datatype when Appending data so the empty column can be automatically mapped to any other column regardless of the target's
  column datatype. (Internal bug 35 - Append Data detects a column with no data as a varchar column which does not map to any column).
- Updated code so that when Workbench version 5.2.41 or earlier is installed and there are still no connections created in MySQL for Excel the Workbench connections are copied
  from Workbench to the MySQL for Excel connections file. (Internal bug 49 - Workbench connections are not copied to MySql for Excel).
- Updated version in AssemblyInfo to 1.0.7.
- Manage Connections action label is available in the Welcome Panel when MySQL Workbench 5.2.42 is installed.
  Database connections are shared with MySQL Workbench if version 5.2.42 or later is installed (meaning they are read from and saved to the Workbench connections file and on the
  first run of MySQL for Excel it will attempt to migrate all local connections to the Workbench connection file and delete the local connections file, otherwise they are still
  managed locally within MySQL for Excel. (Oracle bug 14368158 - CONNECTIONS CREATED IN MYSQL FOR EXCEL UNUSABLE IN WORKBENCH)
- Refactoring on TransparentPictureBox control to fix some flickering when resizing the Excel form.
  Added an upperPanel that contains all controls above the MyTreeView controls to all panels so when the form is resized to have a very small size the controls at the bottom
  actually go behind the new upperPanel so there is no overlapping at all. (Oracle bug 14406412 - OVERLAPPING CONTROLS ON ALL PANELS WHEN EXCEL WINDOW IS SMALL).
- Removed the code that reset the TaskPaneControl's height since the height can't be changed for a right-docking of the panel.
  (Oracle bug 14369568 - EXCEL WINDOW CAN'T BE RESIZED IF STARTS WITH A SMALL SIZE).
- Fixed code in custom PreviewDataViewGrid control to readjust the recalculation of the headers width when the HeaderText changes and to disable the AutoWidth feature of each
  column header when the automatically recalculated width exceeds the ColumnsMaximumWidth property. (Oracle Bug 14350168 - EXPORT DATA DIALOG'S PREVIEW GRID TRUNCATES COLUMN NAMES)
- Fixed code so now "text" columns can be automatically mapped to set or enum columns.
  Fixed code to properly change mapped column names when checking/unchecking the "First Row Contains Column Names" checkbox in the Append Data Form.
  (Oracle Bug 14370049 - THE AUTO MAPPING IS NOT WORKING PROPERLY)
- Disabled Export button when table name is empty (Oracle Bug 14389853 - EXPORT BUTTON IS ENABLED WHEN TABLE NAME IS EMPTY)