aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/MCPKit/MCPFoundationKit
Commit message (Collapse)AuthorAgeFilesLines
* Fix encoding issues, particularly giving errors when selecting tables and ↵rowanbeentje2011-08-071-112/+109
| | | | | | | | | | | displaying NULLs within tables when the connection encoding is incorrectly detected (Issue #1100): - No longer rely on a combination of mysql_options(..., MYSQL_SET_CHARSET_NAME, ...utf8...) and mysql_character_set_name() to detect the connection encoding; this incorrectly misses init_connect commands; instead use SHOW_VARIABLES a$ - Combine initial version check/timezone check/encoding check on startup, reducing connection queries and thus improving connection speed - Add support for abbreviated MySQL timezone definitions - Combine MCPKit's -connect and -connectWithLogin:password:host:port:socket: methods to reduce code duplication and fix argument handling for the latter method
* - Ensure the CLIENT_INTERACTIVE is correctly set for MySQL connections, ↵rowanbeentje2011-07-271-1/+1
| | | | addressing Issue #1132 and improving #877
* - Copy some NSStringAdditions to MCPStringAdditions to improve framework ↵rowanbeentje2011-06-193-2/+54
| | | | separation/standaloneness
* - Ensure the connection delegate is nil on initialisationrowanbeentje2011-06-191-1/+2
|
* - After reviewing crash logs, improve query cancellation for increased ↵rowanbeentje2011-05-301-3/+14
| | | | stability (mostly in the kill query/thread failure path) and improve disconnection for increased stability
* • improve BIT field type supportBibiko2011-05-051-3/+13
| | | | | | | | - caught some more exceptional cases - re-factored byte to bit conversion (really do not know why the old code wasn't working anymore); this should fix i1042 - disabled unisgned/zerofill check boxes in Structure for BIT - insert correct default BIT field default value if any after adding a new row -- this works for 5.5 but for MySQL 5.0.x it seems that providing a default value is a MySQL bug (further checks are needed)
* Alter result string processing to use returned string length and not ↵rowanbeentje2011-04-232-15/+5
| | | | | | | | | | null-terminated string processing: - This fixes issues caused by null characters in strings - addressing Issue 1029 - Also appears to be a few percent faster than the old approach when processing lots of short strings - Allows significant simplification of MCPResult and low-memory MCPStreamingResult code, avoiding a memory copy; this also gives a significant speedup and can actually make full streaming in MCPStreamingResult faster than "fast streaming". The code will be reviewed further in future to improve on the gains seen here.
* Fix more compiler warnings, including a few bugsrowanbeentje2011-03-081-0/+1
|
* - Fix compiler warnings for MCPKit - largely typecast relatedrowanbeentje2011-03-0210-128/+130
| | | | | | | | | - Fix further compiler warnings, including a couple of bugs - Disable the -wselector warnings (Multiple definition types for selector) as they're currently unsupported in LLVM - Disable the -wconversion warnings (Prototype conversion) warnings as we usually can't affect protocol declaration - Disable the -wstrict-selector-match (Strict selector matching) due to too many false positives
* - Fix problems correctly resetting state when a query affects no rows on ↵rowanbeentje2011-01-141-4/+5
| | | | | | | creating new tables; this could be responsible for -release errors in SPDataStorage, as well as out-of-bounds errors in SPDataStorage or SPTableContent. - Fix incorrect reporting of affected rows in MCPKit due to the use of meta/status queries; only track affected rows for framework-usage queries (already largely implemented in previous revisions)
* • changed spatial SRIDs to int32 as it is declared in ↵Bibiko2011-01-091-16/+18
| | | | http://www.opengeospatial.org/standards/sfa
* • fixed SP's internal spatial wkt calculation for large amount of data pointsBibiko2011-01-091-43/+43
|
* * Recognize "performance_schema" as system DB (added in 5.5)dmoagx2010-12-181-1/+2
|
* - Fix a race condition in conditions where the network has dropped, ↵rowanbeentje2010-12-072-0/+21
| | | | preventing possible MySQL library crashes
* - Tweak connection/reconnection to use locking, to prevent race condition ↵rowanbeentje2010-11-121-1/+7
| | | | issues when reconnecting after a network loss causing a drop in connection and proxy at the same time.
* - Alter connection details to be sent over UTF8 instead of Latin1 - this ↵rowanbeentje2010-11-101-16/+33
| | | | | | | | improves handling of special characters in passwords, improving Issue #890 - Improve code in (the unused) [MCPConnection connectWithLogin:password:host:socket:] to match latest updates in the rest of the framework - Fix creation of new users
* - Improve query disconnection/reconnection while pings or queries are still ↵rowanbeentje2010-11-031-3/+28
| | | | active or cleaning up
* • convert the Field Editor Sheet into a document-modal sheet, i.e. now the ↵Bibiko2010-10-291-5/+2
| | | | | | | | sheet doesn't block the entire app - fixed various layout issues - fixed some tiny memory leaks • fixed tiny memory leak in MCPStreamingResult
* • if a geometry field is empty '' return @"" instead of Header Error since ↵Bibiko2010-10-251-2/+2
| | | | mysql return that special value as X''
* • CSV Import Field Mapper SheetBibiko2010-10-231-1/+1
| | | | | - added the possibility to apply any sql function while importing set via "Add value or expression" sheet eg concat('$2', '$1', length('$3')) whereby $1 $2 $3 are the placeholder for the csv file columns 1 2 3 [first column starts with 1] • fixed ' escaping issue in MCPConnection
* Split MCPConnection's delegate methods into it's own protocol.stuconnolly2010-10-204-91/+115
|
* • enabled SRID editing of spatial fields via WKT stringBibiko2010-10-091-12/+21
| | | | | - the SRID value will be appended at the WKT string like POINT(1 1),101 which will be transformed to GeomFromText('POINT(1 1)',101) on the fly - otherwise the SRID information will be deleted after editing a geometry field
* • implemented geometrycollection thumbnail images as tooltips for spatial ↵Bibiko2010-10-091-123/+148
| | | | fields
* • some further work on displaying geometry fields as imageBibiko2010-10-081-59/+90
|
* • some further work on displaying geometry fields as imageBibiko2010-10-082-0/+299
| | | | - to enable the very first approach simply uncomment code in SPTableContent tableView:toolTipForCell:rect:tableColumn:row:mouseLocation: for MCPGeometryData class
* • finished spatial field supportBibiko2010-10-082-11/+213
| | | | | - added missing MULTIPOLYGON and GEOMETRYCOLLECTION support
* • spatial field supportBibiko2010-10-071-29/+64
| | | | | - fixed issue while editing geometry data in Content View; once a geometry field was edited it will be stored as NSString, if not it keeps a MCPGeometryData - some code cosmetics and commenting
* • enhanced spatial supportBibiko2010-10-074-10/+145
| | | | | - implemented native routine to immediate AsText() [MULTIPOLYGON and GEOMETRYCOLLECTION are not yet ready] - enabled editing of spatial data in Content View for tables and views and in Custom Query via wkt strings which will be saved automatically as wkb by using GeomFromText()
* • removed approach to query spatial data by using AsText() since it breaks ↵Bibiko2010-10-075-165/+287
| | | | | | | some column definition approaches - instead introduced a new MCPKit class MCPGeometryData - up to now the spatial data will be displayed as hex bytes - work on it will come soon
* • added basic support for spatial dataBibiko2010-10-011-0/+4
| | | | | | - while querying and writing back make usage of AsText() and GeomFromText() to allow to edit each GEOMETRY field as text simple string - works only in Content Tab so far - the spatial data are not yet editable inside views
* - Make the initial maximum packet fetch fail silently if it fails, ↵rowanbeentje2010-09-301-10/+4
| | | | defaulting to the default MySQL max packet size (1MB). This improves compatibility with MySQL-like systems like sphinx, addressing Issue #844.
* Consolidate and improve ping code:rowanbeentje2010-09-252-171/+153
| | | | | | | | - Foreground and keepalive pings now use the same code, which has been tidied and improved - Global variables are no longer incorrectly shared across multiple instances - If a ping thread blocks in a state where pthread_cancel no longer functions, the connection is assumed to have failed (network issues etc) This should further improve MySQL crashes linked to pings, and will hopefully address Issue #830. Also update localizable strings
* - A further attempt to improve MySQL library crashes by improving threaded ↵rowanbeentje2010-09-201-1/+33
| | | | | | | pings. This returns to an old approach by attempting to use interrupt signals to force a hung network read to close; however, the signal is now sent by the watchdog thread in a thread-safe fashion to specifically target the locking thread. If this approach works we'll probably consolidate the ping code to use it throughout. - Update localizable strings
* - Clean up warnings when building with GCCrowanbeentje2010-09-183-10/+15
|
* - Fix crashes triggered by connection unlocking after disconnection; this ↵rowanbeentje2010-09-181-2/+2
| | | | addresses http://spbug.com/l/1269 and possibly improves the vio_delete crashes
* - Consolidate structure and content row editing cancellation code into a ↵rowanbeentje2010-09-161-1/+0
| | | | | | | | | | single function in each class - Tweak NSTableView subclasses to catch presses of the Escape key and ask the class to abort row editing. This makes Esc key behaviour much more consistent, and allows cancelling/reverting edits made via the mouse (eg checkboxes, dropdowns, enums), or after the cell editing has finished but the row is still selected. - Remove debug - Update localisable strings
* • (re?)enabled BIT field editing esp. for field types like BIT(9) or ↵Bibiko2010-09-141-35/+34
| | | | | | | BIT(63) since the old _int2bin routine didn't work because we're dealing with a char* containing bytes if BIT(>8) - also for views and CustomQuery editing • started to clean up (VAR)BINARY editing (work in progress)
* - Implement support for MySQL over SSL for both TCP/IP and Socket ↵rowanbeentje2010-09-132-5/+94
| | | | | | | | | | connection modes. - Upgrade the MySQL binaries to version 5.1.50 (was 5.1.46) - Enable SSL support in the MySQL libraries (this leads to a large increase in library size, unfortunately) - Enable more optimisations in the MySQL libraries (especially --enable-assembler for faster in-library string processing and --with-mysqld-ldflags=-all-static) This completes support for Issue #27.
* Update background keepalive pings:rowanbeentje2010-09-031-11/+33
| | | | | | | - Fully lock the connection for background pings; this may slow down queries after connection disuse (when the keepalive is still active/blocked), but strengens thread safety to hopefully fix vio_delete crashes - Fix pthread_cancel use; previously pthread_cancel after a keepalive may have resulted in cancelling unrelated threads where the thread ID was reused This should increase stability and improve program consistency.
* - Add connection checks before uses of mysql_hex_string and ↵rowanbeentje2010-08-311-16/+51
| | | | mysql_real_escape_string (which require an active connection). This addresses http://spbug.com/l/54 .
* - Attempt more status checking before closing the MySQL connection, in an ↵rowanbeentje2010-08-301-3/+3
| | | | | | | attempt to further address http://spbug.com/l/13 - Update localisable strings
* - Improve background thread reconnect interaction with the interface; if ↵rowanbeentje2010-08-291-3/+10
| | | | the application is in a modal state, the background thread waits. This improves interface behaviour on multiple SSH disconnections after sleep/wake (finishing Issue #798) and also disconnections while the interface is modally locked (eg editing text/blobs).
* Encoding changes and improvements, particularly to increase compatibility ↵rowanbeentje2010-08-252-74/+180
| | | | | | | | | | | with extended characters in MySQL identifiers (names of dbs/tables/cols): - Move encoding queries and control into MCPKit, with newly cleaned-up methods, and switch a number of locations to using the new code. - Use UTF8 connections for many identifier-based queries (selecting and listing databases, tables, stored procs, table information). This fixes selection and creation of table and database names containing extended characters, also fixing exceptions and errors. - Improve UTF8 over Latin1 to correctly set the client character set encoding as well, fixing custom queries and edits; remove custom code in SPTableContent achieving the same thing in a single location. - Fix database encoding detection routines - Update localisable strings
* • made SP more robust against issues which are caused by different table ↵Bibiko2010-08-151-0/+4
| | | | name encodings
* • fixed: display tables and views correctly in auto-completion list and in ↵Bibiko2010-08-151-1/+1
| | | | the Navigator
* - Add support for automatically converting \r and \r\n linebreaks in query ↵rowanbeentje2010-07-291-0/+52
| | | | | | | | syntax to \n. This addresses Issue #652. - Clean up SPSQLParser, and use a few more CFString methods to avoid obj-c messaging in loops - When importing SQL using autodetect, perform a manual SET NAMES if possible to cope with poorly-exported files.
* - Clean up SPDataImport, removing unused methods and cleaning up order and ↵rowanbeentje2010-07-192-0/+15
| | | | | | | | | methods - Improve error handling when the connecting dies during import (previous the sheet would stay open) - Fix localised strings for error messages (label and text the wrong way round) - Improve comments
* Improve handling of BIT fields, including:stuconnolly2010-07-151-3/+32
| | | | | | | | | - Exporting BIT fields properly in SQL dumps using b'x' notation. - Properly handling editing of BIT fields in both the content and custom query results views. - Correctly display BIT fields in the content view, where binary values are zero-padded to the specified length of the field. (Note, that the new BIT handling logic has only been added to MCPKit's MCPStreamingResult and MCPResult as the latter does not keep a record of the field's length which the new functionality depends on. Needs to be discussed).
* - Clean up automatic reconnection coderowanbeentje2010-07-142-27/+50
| | | | | | - Allow keepalive pings to perform automatic reconnections after a few consecutive failures - Fix a number of keepalive ping bugs, including compatibility with the new threaded connection methods and reconnection timing issues causing keepalive pings to not fire correctly
* Improve handling of network drops, including a new automatic reconnection ↵rowanbeentje2010-07-132-7/+71
| | | | | | | | | | | | | attempt, as well as improved handling of networks not present. This addresses Issue #657. In MCPKit: - Disable MySQL automatic reconnection, and add our own reconnection code for greater consistency - If no network is available, delay reconnects by a short period to allow the network to come back up - Improved handling of proxy disconnects In SPSSHTunnel: - Improved handling of SSH tunnel disconnects, improving automatic reconnection via MCPKit and fixing potential memory/logic tramping. Also remove the "Retry" button from the Disconnected dialog, leaving only the choices "Reconnect" or "Disconnect".