aboutsummaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* • first steps to synchronize CustomQuery table and ContentTableBibiko2009-06-224-8/+90
| | | | | | - CustomQuery table now allows to copy selected rows as SQL INSERT (table name is set to "<table>" - if a field is a blob display only the first 255 bytes/chars in the CQ table for speed reasons - blob fields in CQ does not listen to the pref setting for "LoadBlobsAsNeeded" because it could happen that no one-to-one relation to their original data will be found
* - Allow connections via SSH tunnels to reattempt using the specified host ↵rowanbeentje2009-06-216-30/+122
| | | | | | | | | if 127.0.0.1 was retried automatically. - Store the SSH debug logs and allow viewing on connection error - Clean up CMMCPConnections on connection failure - Fix connection keepalive instantiation
* • changed: if the current edited field is a "ENUM" fieldBibiko2009-06-211-1/+5
| | | | | - show NULL in the combobox only if NULL value is allowed for the current field - display NULL value according to prefs' setting for NULL value
* • some code cleaning and tiny performance enhancements for various ↵Bibiko2009-06-213-84/+100
| | | | for/while loops
* Issue #305 now fully resolved, remove debug.stuconnolly2009-06-211-3/+1
|
* Sparkle delegate methods doesn't seem to be getting called, so set the ↵stuconnolly2009-06-211-1/+6
| | | | delegate globally.
* Typo, should be the sheet not the window.stuconnolly2009-06-211-2/+2
|
* Fix for issue #305. Close all sheets attached to all open windows just ↵stuconnolly2009-06-211-0/+22
| | | | before Sparkle relaunches the app.
* • some code cleaning and tiny performance enhancements for syntax highlightingBibiko2009-06-212-39/+41
|
* • queryString: code cleaning and processing each encoding equallyBibiko2009-06-193-30/+39
| | | | | | | | - Since we are using mysql_real_query() there is no need to generate a \0 terminated cString. - The disadvantage of using UTF8String is that it returns NULL if the encoding fails. - To process each encoding equally we can now use [NSString dataUsingEncoding:enc allowLossyConversion:lossy]. In oder to avoid the overhead while calling it the following inline function is introduced: NSStringDataUsingLossyEncoding(aStr, enc, lossy) := [aStr dataUsingEncoding:enc allowLossyConversion:lossy] • import of CSV: code cleaned and optimized for speed a little
* • added: SPDataAdditions.mBibiko2009-06-194-68/+146
| | | | | | | - base64EncodingWithLineLength: • improved printing of blobs which contain image data - not it supports PDF preview - set maximum width to 100px or less
* Fix for issue #285. Also tidy up the add/change row method including ↵stuconnolly2009-06-191-42/+83
| | | | friendlier error message dialogs.
* • added to TableContent.m:Bibiko2009-06-193-1/+121
| | | | | | | | - (NSArray * )currentDataResult -- like currentResult but returns "BLOB" for blob data and a base64 encoded string for images à la <IMG SRC="data:image/auto;base64,"> - (NSString * ) base64EncodingOfData:(NSData * )data withLineLength:(unsigned int)lineLength -- it returns a base64 encoded string of data • changed: currentDataResult is now called for printing from the Table Content Browser
* Accommodate all MySQL versions when getting the list of storage engines.stuconnolly2009-06-192-5/+74
|
* • added: by holding ⌘, ⇧, or/and ⌥ dragged selected rows will be ↵Bibiko2009-06-191-2/+10
| | | | copied as SQL INSERTS (up to now only in table content browser)
* • fixed: avoid displaying µs for query execution timeBibiko2009-06-191-3/+7
| | | | | - minimum resolution now is set to 0.1ms - display “< 0,1ms” if time is less than minimum resolution
* • added support to drag&drop textClipping files to Custom Query Editor and ↵Bibiko2009-06-193-4/+25
| | | | | | | to editSheet • fixed tiny issue for narrow-down completion
* • added to SPArrayAdditions.h: NSArrayObjectAtIndex() inline functionBibiko2009-06-1816-125/+164
| | | | | | | | | - id o = NSArrayObjectAtIndex(anArray, index) :== id o = [anArray objectAtIndex:index] - this speed up it ~3µs per call - replaced that inline function for such calls within loops to speed up them • used IMP function pointers for keepAlive calls within queryString: • set -O3 (Fastest) compiler option • allow in preference pane "Tables" to set the Limit up to 50000
* • introduced inline function NSStringUTF8String() to SPStringAdditions.hBibiko2009-06-183-5/+22
| | | | | | - NSData *d = [aStr UTF8String]; :== NSData *d = NSStrignUTF8String(aStr) but a tick faster • implemented NSStringUTF8String() in queryString: and for the lex parser (syntax highlighting)
* • further tiny improvements for queryString's speedBibiko2009-06-182-4/+15
| | | | | | - cStringFromString function pointer is cached - if utf8 encoding make usage of UTF8String but implemented inside of queryString (otherwise no effect) • tiny code cosmetics
* • added: init consoleLoggingEnabled: for new connectionBibiko2009-06-181-0/+3
|
* • added to CMMCPConnection: observeValueForKeyPath:@"ConsoleEnableLogging"Bibiko2009-06-182-2/+15
| | | | | | - now [delegate willQueryString:] will only be called if user set ConsoleEnableLogging to YES (~8% faster) --Note: this option to disable logging should be placed in the Import dialog with default = NO for importing as well
* • some tiny improvements to speed up queryString:Bibiko2009-06-188-30/+49
| | | | | | | | | - cache the function pointer for delegate willPerformQuery: - if Console Log window is NOT visible suppress reloadData and scrolling to last line (this speeds it up remarkably); if user opens the Console log window it will be synchronized - timeIntervall for execution time will be divide by CLOCKS_PER_SEC in [NSString stringForTimeInterval] - removed for utf8 enc in cString the return UTF8String (no significant difference) • now execution time shows only the time for mysql_real_query
* • some improvement to speed up queryString:Bibiko2009-06-173-10/+26
| | | | | | | - caching of delegate && respondsToSelector - use clock() to calculate query's execution time • converting to cString: if utf8 encoding make usage of UTF8String • added to StringAddition to display µs for a timeIntervall
* • changed regex of trigger a reload of table/db according to executed queriesBibiko2009-06-171-3/+4
| | | | | - now it also recognizes such keywords with leading comments - still further improvements are needed
* • in r801 the code for inserting a new field containing a PRIMARY KEY ↵Bibiko2009-06-171-9/+19
| | | | | | | after the selected one was commented out - it's fixed now - improved code to ensure that in this case AFTER ... will be only appended for a new field
* Significant connection improvements:rowanbeentje2009-06-172-35/+98
| | | | | | | | | | - Restored MySQL 3 compatibility - max_packet_size details are now cached per connection for query speedup and to fix network recovery problems - Improved disconnection recovery - Errors during results fetching are correctly detected for the first time - Error strings are now correctly set in several places - The correct number of rows affected is now returned for queries which triggered reconnects or max_packet_size increases
* • added to CMMCPConnection:Bibiko2009-06-162-20/+81
| | | | | | | | | | | - register notification "SMySQLQueryWillBePerformed" to be able to identify the sender of the current query - (void)willPerformQuery:(NSNotification *)notification -- receives the "SMySQLQueryWillBePerformed" notification -- if CustomQuery was the sender retryAllowed will be set to NO • changed: now using mysql_real_query() because we've already calculated the length of the current query • changed: now the query length will be checked in beforehand against max_allowed_packet - if max_allowed_packet is editable increase it and reconnect - if not outputs an informative error alert
* • fixed: "Duplicate field" will be disabled explicitly if selected table ↵Bibiko2009-06-161-4/+6
| | | | is not a BASE TABLE
* • changed the behaviour of the "Duplicate Field" button in TableSource:Bibiko2009-06-161-5/+12
| | | | - if no field definition is selected "Duplicate Field" copies the last field structure defined in the table
* • fixed: if the user tries to delete the last defined field in a given ↵Bibiko2009-06-161-0/+18
| | | | table show an alert saying that this isn't allowed
* Rework queryString:withEncoding:, and ensure memory is correctly released ↵rowanbeentje2009-06-152-38/+88
| | | | | | | | | | | where used in our overwrites: - Check allocated memory and ensure it is released in our code - Consolidate code controlling both an initial query and any retries following connection failures - Perform additional checking to ensure a connection error was the cause - Correctly capture any result sets after the max_allowed_packet setting was changed - Check and cache the error strings and numbers for the intended queries, not any helper queries, and return them when requested.
* Move the QuickLook interface to its own header file.stuconnolly2009-06-154-94/+118
|
* • subclassed the editSheet textViewBibiko2009-06-153-22/+279
| | | | | - added drag&drop feature of file content or path resp. - added feature to in/decrease font size via ⌘+/- or two-finger zoom gesture
* • different log message for changing max_allowed_packet for increasing it ↵Bibiko2009-06-154-20/+39
| | | | | | | | and for resetting it (a bit more transparent info) - now also check the delegate if queryGaveError: method is implemented • while adding/updating a row to the db Table Content's pane now indicates that process better via spinning wheel • after TRUNCATE TABLE reload that table content
* Replace the change table type button with an edit button that switches the ↵stuconnolly2009-06-152-84/+7
| | | | current view to the table info pane.
* Implementation of enhancement #273: Allow user to truncate table by right ↵stuconnolly2009-06-152-45/+97
| | | | clicking.
* • deleted the drag&drop feature of file path or content from ↵Bibiko2009-06-156-180/+187
| | | | | | | | | | | SPTextViewAdditions - that feature should be added by subclassing NSTextView • fixed focus setting of editSheet • fixed general issue if SP tries to execute a query which is longer than max_allowed_packet - now it reconnects after changing max_allowed_packet (if it's editable) - the user will be informed via a log entry about that change - the new max_allowed_packet size will be valid during the current session; after reconnection to that db the default size will be used
* • improved event handling while showing QuickLook preview in editSheetBibiko2009-06-151-6/+39
| | | | | | - this also fixes the issue to play sound files properly • QuickLook's temp file will be deleted after closing the editSheet to allow double-click at the QuickLook preview for opening it in the default app • fixed some issues of loading data into the editSheet (data/string recognition)
* Cleanups and improvements within queryString:encoding:rowanbeentje2009-06-152-35/+52
| | | | | | | - The correct result set is returned even if extra internal queries are used - The correct error message is written even if extra internal queries are used - If the mysql thread is altered as a result of a query - resetting the connection - the encoding details are now restored on the connection
* Add support for titlebar connection status images, and use for SSH tunnels.rowanbeentje2009-06-144-3/+66
| | | | | | | - Add view and code to support drawing a connection status icon at the left of the titlebar - Use for SSH tunnels; completes Issue #114. - Remove reference to an image resource "j" in the DBView - fixes console log errors.
* - Default the index type picker to INDEX if a primary key already exists on ↵rowanbeentje2009-06-131-1/+15
| | | | | | | the table (addresses #290) - Set the default focus correctly on the add index sheet
* - Correct ability to look up passwords for connection names, user names, or ↵rowanbeentje2009-06-131-6/+6
| | | | databases containing non-alphanumeric characters. Resolves Issue #292.
* • moved code for de/increasing font and drag&drop feature (content or ↵Bibiko2009-06-137-275/+299
| | | | | | | | | | | | | | while holding ⌘ path) to SPTextViewAddition - two finger zooming gesture is disabled for NSTableView cells - i.e. all NSTextViews including NSTableView cells inherit these feature • simplified QuickLookFormat IBActions - added bin/text storing type to each action • QuickLook animation set to SP's window middle point • fixed issue that while having an image in editSheet an attribute change (font/size) in the editTextView destroyed the image data • fix to allow again drag&drop an image to editSheet • hide text/image/hex segment controll and QuickLook pull down button if user chose multipleLineEditingButton for non-blob fields • disabled NSLog of print result in TableDocument
* • cleaned and commented the rewritten editSheet codeBibiko2009-06-122-30/+75
| | | | - TODO: if a row contains large blob data addRowToDb: “sometimes” doesn't get rid of the correct encoding; e.g. inserted into a varchar field a ü; changed the table; went back to the table; the ü is still there; after closing and reopen the connection the ü is shown as two latin1 char.
* • rewrote editSheet for editing and displaying BLOB or TEXT data completelyBibiko2009-06-122-20/+300
| | | | • added the possibility to QuickLook the current data by choosing a data format
* • fixed position for scanning error 2006 to increase max_allowed_packetBibiko2009-06-121-6/+6
|
* Fixes connection timeouts during queries of over three seconds, and speeds ↵rowanbeentje2009-06-122-79/+21
| | | | | | | up queries further (1.5x faster for short socket queries). Doing further research, it turns out that mysql_query should effectively lock the connection, and mysql_ping should not be performed while a query is active as mysql is specifically not thread-safe in this one regard. This fixes #293. However, it means that we will suffer from http://bugs.mysql.com/bug.php?id=9678 again; if we don't complete the framework integration before 0.9.6, we should roll back this patch and r831 to allow all connections to behave properly and avoid hangs.
* - Fix saving of SSH tunnel passwords entered in preferencesrowanbeentje2009-06-112-2/+6
| | | | | | - Select favourites added in preferences - Scroll to newly added or duplicated favourites in both preferences and connection sheet
* • fix to allow insert large blob dataBibiko2009-06-112-21/+37
| | | | | | If a query gave the error 2006 (server has gone away) try to increase max_allowed_packet - if the user has SUPER privileges - and redo the query. If max_allowed_packet was changed reset it to default after executing. In addition if error 2006 occurred and max_allowed_packet can't be set write an additional error message to the log "(Please check if query size < max_allowed_packet)". - 10MB of data are no problem - while trying to insert 67MB MySQL gave the error : ... X'(null)' plus malloc: mmap(size=141287424) failed (error code=12); can't allocate region