aboutsummaryrefslogtreecommitdiffstats
path: root/Source/CustomQuery.m
Commit message (Collapse)AuthorAgeFilesLines
* Address Issue #546 (format string bugs):rowanbeentje2010-01-201-5/+6
| | | | | | - Fix incorrect uses of [NSString stringWithFormat:] with preconstructed strings and no arguments in SPUserManager - To fix display issues, replace NSBeginAlertSheet (which includes automatic sprintf expansion of the message) with a safely-escaped SPBeginAlertSheet in many files
* Add a new SPDataStorage class, and use it in TableContent and CustomQuery:rowanbeentje2010-01-171-33/+31
| | | | | | | | - SPDataStorage is a class designed for a 2D array of fixed-width data storage, replacing the current method of nested NSMutableArrays. NSFastEnumerator compatible. - Overall memory overhead for table storage in memory reduced by 1.2-1.4x - this almost gains back the large memory jump seen for 64 bit - Some operations (adding data, retrieving a single cell's data) are faster than nested NSMutableArrays; some operations (requesting a row as an NSArray) are slightly slower as the data needs to be converted, but overall result is a slight speed gain. (- Could be used in future to store SQL results in C datatypes, avoiding very high NSObject overhead for numbers and short strings)
* Replace COUNT(*) with COUNT(1) which is usually faster, and much faster in ↵bamse162010-01-141-2/+2
| | | | certain conditions
* - Upgrade Sequel Pro to be compiled as a 3-way PPC/i386/x86_64 binary for ↵rowanbeentje2010-01-091-68/+68
| | | | | | | release builds, including a large number of 64bit compatibility upgrades and tweaks - Upgrade RegexKitLite to 3.3
* Menu item label.stuconnolly2010-01-061-1/+1
|
* • next step to improve the Query Favorites/History search field behaviourBibiko2010-01-051-1/+20
| | | | | - ↑ or ↓ selects now immediately the next/prev menu item [many thanks to Rowan!]
* • first trial to improve the search field behaviour for Query Favorites ↵Bibiko2010-01-051-0/+16
| | | | | | | | and Query History popup menus - the keys ↑ or ↓ inside an activated search field abort the current text field editor to allow to navigate through the result menu items by using the keyboard - up to now one has to press ↑ or ↓ twice to select - still work in progress
* • fixed maximal number of history items settingBibiko2010-01-051-2/+2
|
* • added Save/Copy History List to "Query History"'s popup menuBibiko2010-01-051-16/+137
| | | | | | | | • moved "Clear History" from gear menu to "Query History"'s popup menu and added a confirmation sheet to it • "Clear History" now distinguishes between Untitled and SPF doc - if Untitled: clear global history list stored in the Prefs - if SPF doc: clear the document-based history list only
* • replaced the (10.4) deprecated [NSTableView ↵Bibiko2010-01-041-2/+2
| | | | | | tableView:writeRows:toPasteboard:] method by [NSTableView tableView:writeRowsWithIndexes:toPasteboard:] • some code cosmetics
* • remember scrollview port and selected row after editing in the Custom ↵Bibiko2010-01-041-9/+23
| | | | | | | | | | Query table view - after reloading the entire data the table view port will be restored but this leads up to now to a "tiny jitter" (maybe fixable in the near future) - the re-selection does NOT follow the actual edited row, e.g. if one changes a cell value whose column is used for sorting the actual edited row could appear somewhere • if the editing in the Custom Query table view was invoked by pressing RETURN/ENTER one can go through the columns by pressing ESC but up to now that editing will be interrupted after the user pressed OK - this behaviour is temporary and should be fixed in the near future by storing the new row data temporarily; after editing the last column AND if all columns have the same table origin the row data will be updated. To allow the row editing for columns which have different table origins could probably cause inconsistencies. - further discussion is needed
* - Ensure all results for server variable requests are returned as strings, ↵rowanbeentje2010-01-031-0/+1
| | | | | | | to avoid binary-mode result issues with certain versions of MySQL (including 4.1.14). This should address Issue #509. - TableDocument now requests the server version string from MCPConnection, aiding caching
* - Improve line selection for certain errors ending in numbers, and ↵rowanbeentje2009-12-291-1/+1
| | | | safety-check selections to prevent crashes. This should address Issue #511.
* - Replace /* */ notation in long comments with unicode look-alikes to fix ↵rowanbeentje2009-12-281-3/+3
| | | | warnings and improve source readability
* Random source tidy up changes.stuconnolly2009-12-181-10/+2
|
* - Work through static analysis of the source, fixing a number of small ↵rowanbeentje2009-12-141-5/+3
| | | | memory leaks and fixing a couple of over-releases
* Replace the main toolbar's #define'd identifier constants with extern's. ↵stuconnolly2009-12-121-2/+2
| | | | This completes the conversion of all constants in SPConstants to extern's.
* - Additional error checking when reading in query favorites to ensure a ↵rowanbeentje2009-12-071-0/+1
| | | | | | | malformed favorite does not break application launch - Move favorites update routine to a later revision check to upgrade any query favorites created by dual use of 0.9.6 and nightlies
* • fixed URL of MySQL web search for versions < = 4.1Bibiko2009-12-051-1/+6
|
* • fixed issue for "Update Help while typing" to suppress opening the MySQL ↵Bibiko2009-12-031-15/+34
| | | | documentation periodically if no internal help can be found
* - When working with the storage arrays for CustomQuery and TableContent, ↵rowanbeentje2009-11-281-16/+56
| | | | use thread locking to ensure data safety while the table is loading. This should fix intermittent loading and reload issues, including part of #463 and should address Issue #482
* Fix an occasional crasher by checking the size of the custom query result ↵stuconnolly2009-11-241-36/+36
| | | | set is not zero before attempting to get an object from it. As far as I'm aware this crash only seemed to occur when executing the second out of 2 queries that both contained multiple OUTER JOINS.
* • fixed: backtick the database name in an UPDATE statement executed in the ↵Bibiko2009-11-221-2/+2
| | | | | | Query Editor - fix for i478
* - Fix a nested loop using same same variable, fixing Issue #473rowanbeentje2009-11-211-4/+4
|
* When clearning the query history drop down only remove items from index 3 ↵stuconnolly2009-11-181-2/+2
| | | | onwards to prevent removing the separator.
* Query history drop down index should start at 3, not 2 to avoid adding items ↵stuconnolly2009-11-181-2/+2
| | | | before the separator.
* New separator in query favorites dropdown.stuconnolly2009-11-171-3/+8
|
* Change the placeholder value of a few search fields to simply 'Filter' to ↵stuconnolly2009-11-171-5/+17
| | | | make them look less cramped.
* Implement query cancellation support within MCPKit, and add it to the task ↵rowanbeentje2009-11-151-25/+59
| | | | | | | | | | functionality: - MCPKit now supports cancelling the active query; for MySQL servers >= 5.0.0 a query kill is attempted from a new connection, and if that fails or for MySQL < 5 a reconnect is triggered. - TableDocument now supports enabling a cancel task button on the task interface, including an optional callback - Implement query cancellation for custom queries. This addresses Issue #86. - Implement query cancellation for table content loads, filters, and sorts.
* Updates to the 'use monospaced font' preference, making it a lot more ↵stuconnolly2009-11-141-10/+17
| | | | consistent across all table views. Also includes live updating when the preference is changed as well as its implementation in the query console, process list and variables table views.
* Move query mode constants to SPConstants.h.stuconnolly2009-11-131-2/+2
|
* - Add safeguards to ensure sequential runs when holding down run all/run ↵rowanbeentje2009-11-101-0/+6
| | | | | | | selected keys in Custom Query, preventing NSLock deadlocks - Revery MCPConnection to locking on the *current* thread when running non-streaming queries, fixing deadlocks in some situations on background threads where the main thread is locked up via a modal loop - eg CSV import windows
* - Support nested task levels to allow tasks to overlaprowanbeentje2009-11-081-2/+8
| | | | | | | - Thread history loading, thus using the nested task elvels and fixing history interaction in recent builds - Thread initial database loads - Improve progress indicator slightly
* - Alter query start/stop notifications to apply to only the originating ↵rowanbeentje2009-11-051-5/+5
| | | | window, regardless of key state, by passing in and looking for the table document instance
* - Add task support to all the main interface viewsrowanbeentje2009-11-041-10/+6
| | | | | | | | - Improve task support on previously supported views - Use a threaded task load for all initial table loads - Support threaded task loads for table content loads, reloads, sorts, and filters - Improve upon previous threaded task loads by minimising view updates and supporting updates of the existing data arrays where valid
* - Tweak connection locking to avoid occasional NSLock warnings when running ↵rowanbeentje2009-11-011-8/+13
| | | | | | | custom queries - Add error connection to query reselection to avoid exceptions when editing queries while running them
* Replace the multiple occurrences of hard coded toolbar identifiers for the ↵stuconnolly2009-10-281-2/+2
| | | | main toolbar with constants.
* - When performing threaded data loads, no longer disable the tables and ↵rowanbeentje2009-10-271-3/+14
| | | | instead prevent selection/editing/sorting in code; this prevents the tableviews from going grey during the load and minimises flicker and loss of focussed elements.
* - Set up TableSource to respond to task notifications to prepare for ↵rowanbeentje2009-10-271-4/+10
| | | | | | | threaded queries - Alter task notifications to pass the TableDocument as the notification object so that only the current window responds to the notification, allowing other windows to be fully used while a window is performing a task
* • improved error highlightingBibiko2009-10-241-4/+14
| | | | | - remember the start position of query/queries and calculate an offset for error highlighting (this fixes issue 442 mostly) - avoid highlighting of empty "near messages"
* - Apply new document task support to the Custom Query tab, and run all ↵rowanbeentje2009-10-231-68/+214
| | | | | | | | custom queries in a background thread with the task interface active. - Rework custom query result processing to allow display of results as they come in - Fix a memory leak
* Replace the use of hard coded preference keys with constants to prevent ↵stuconnolly2009-10-171-37/+38
| | | | issues such as the one fixed in revision 1419. All future preference usage should be done so using these constants.
* • fixed three further typos for: objectForKey:@"NullValue"Bibiko2009-10-161-1/+1
| | | | • allow to enter the NULL value string even if the cell/field's maximal length is set to less then the actual NULL value string length (eg varchar(3) and NULL value string is @"NULL")
* Improve handling of NULL and "(not loaded)" placeholders:rowanbeentje2009-10-101-22/+8
| | | | | | | - Rewrite TableContent and CustomQuery to store NSNull and SPNotLoaded objects in the data arrays where appropriate, rather than providing string conversion on data load. Faster, simpler comparisons and processing code, slightly lower memory usage, and reduces the chance of bugs caused by inadvertantly processing the string values; we can now also distinguish easily between NULL and "NULL" etc, and further paves the ground for image representations of special values. - Fix a bug caused by consistent value reloading when editing BLOB/TEXT columns with deferred loading - if editing a row and revisiting an edited cell, the original value was restored; the original value is now only loaded once. This addresses the rest of Issue #423.
* Improve Growl interaction to reduce general Growl spammage and improve ↵rowanbeentje2009-10-031-2/+6
| | | | | | | | | | functionality: - Growls are now only shown by default if they are not fired from the frontmost window - Long-running tasks (>3 secs) will still Growl - Clicking on a Growl will now bring the associated window to the front This addresses the original concerns of Issue #98.
* • marked 'sequel-pro-print-template.html' as localizableBibiko2009-09-271-0/+2
| | | | | | | | | | | | • outsourced default QuickLook types into a localizable plist - prepared SP preferences and SP code to allow the user to add own QL types • prepared a localizable 'ContentFilter.plist' [not yet implemented fully] - this plist will held the default filter operators - this approach will give the user the chance to add own filters • removed three tiny memory leaks Note: In MCPResult.m variable 'MCPYear0000' was stored retained. Why? I removed it and couldn't encounter any problems.
* Improve .sql file loading into the query editor:rowanbeentje2009-09-151-1/+6
| | | | | | | - Allow undo of the insertion - Update scrollbar size/position after the update - Ensure the cursor is scrolled to
* • updated SPQueryFavoriteManager to mange document-based and global query ↵Bibiko2009-09-071-40/+24
| | | | | | | favorites • disabled "Select Active Query" in CMTextView if shown in the favorite manager • code cleaning and simplifications
* • improved behavior while closing a document windowBibiko2009-09-041-26/+29
| | | | | | | - if not connected close it without any checks - if an Untitled document contains stored query favorites - What should be done? - up to now it saves them to the global prefs • header in query favorites list keep visible while filtering • code cleaning
* • first steps to support global/document-based query favoritesBibiko2009-09-041-25/+45
| | | | - not yet fully implemented but workable