| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
- 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"
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
- Correctly update the table content count when duplicating a row, and cancelling the add. This addresses issue #440.
|
|
|
|
|
| |
- Tidy up a bunch of interface controls and bahaviour
|
|
|
|
| |
something other than a table or view is currently selected.
|
|
|
|
| |
table redraw on new data, and increase the accuracy of the determinate progress as forced redraws are no longer an issue
|
| |
|
|
|
|
|
|
|
| |
structure view. Fixes issue #223.
- Fix for correctly displaying data within fields of type BINARY/VARBINARY. Fixes issue #348.
|
|
|
|
|
|
|
|
|
| |
data loading:
- Removal of AMIndeterminateProgressIndicatorCell, and addition of a custom fork of YRKSpinningProgressIndicator which fixes bugs, adds threaded drawing, and adds a determinate mode.
- Addition of a task system within TableDocument, triggering display of a large central progress indicator and stopping the window from being interacted with in any way that would cause a query while the task is running.
- Add threaded TableContent content fetching, including use of the new task system and determinate progress bar; make fixes to improve threading stability and interaction.
|
| |
|
| |
|
|
|
|
| |
occurrences of it's use.
|
|
|
|
| |
LMITed or FILTERed but the table content is increasing. This addresses Issue #421.
|
|
|
|
| |
issues such as the one fixed in revision 1419. All future preference usage should be done so using these constants.
|
|
|
|
|
|
|
| |
'componentsJoinedAndBacktickQuoted'
• improved deletion of rows in tables which have no primary keys
- check for duplicated rows first; if no duplicates are found use all columns as 'primary keys' and delete the rows via … WHERE (a='…' AND b='…') OR (a='…' AND b='…') OR …
|
|
|
|
|
|
|
|
| |
construction loop, enormously reducing memory usage in big loops
- Use 64k chunks instead of 256k chunks - seems to give *much* better performance, possibly due to MySQL parsing/cache sizes (?)
- When restoring the query console to allow updates again after a loop, trigger a refresh of the view if the console is visible
|
|
|
|
|
|
|
| |
FROM `table` WHERE (`prikey1`='…' AND `prikey2`='…') OR (`prikey1 `='…' AND `prikey2`='…');
- changed error messages slightly while deletion
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mutable string to avoid crashes if array has a very large number of items (malloc error due to reassigning a NSString pointer)
• added to SPTableData method - (NSArray *) primaryKeyColumnNames
- returns all column names which are set as PRIMARY KEYs
- return nil if no PRIMARY KEY is set
• improved the deletion of rows
- if current table has only one PRIMARY KEY field delete all rows via DELETE FROM table WHERE pri_key IN (…) whereby the deletion query will be splitted into 256k chunks
Note: line 1790ff
It has to be implemented a workaround for tables with more than one PRIMARY KEY – maybe via DELETE FROM table WHERE ( (pri_key1='…' AND pri_key2='…') OR (… AND …) OR … ) splitted in 256k chunks as well
|
|
|
|
| |
• 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")
|
|
|
|
| |
editing of NULL fields in the editor sheet.
|
|
|
|
|
|
|
|
| |
LoadBlobsAsNeeded are not editable
• fixed issue if user tries to delete a row from a table without a primary key and Pref is set to LoadBlobsAsNeeded that a warning comes up and the table data keep unchanged
• if an error occurred while deleting rows reload the table data automatically for safety reasons
• fixed data cell class detection for returning argumentForRow: (typo after changing the internal logic)
|
|
|
|
|
|
|
|
|
|
|
|
| |
- When reading data from the server, correctly map values to the SPUser object values to prevent data loss
- Ask server for priv support; disable unsupported privs in the interface, and only try to grant/revoke supported privs. Fixes errors saving users on MySQL < 6.
- Make "check all" and "uncheck all" buttons functional
- Add checkboxes for MySQL 6 privs as we already map the data for them
- Fix double retain of priv mapping dictionary
- Error dialogs stay on screen for longer than half a second
- New hosts are now selected for editing when added
This addresses some of the issues in Issue #349.
|
|
|
|
| |
http://www.sequelpro.com/docs/Contact_the_developers.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
due to the fact that SP would crash if an error alert sheet follows
• fixed NULL value detection in method 'argumentForRow'
Notes:
- isSPNotLoaded check has to be implemented in line 1658
- hide blob data "(not loaded)" can be applied for tables which have no primary keys - we have to check the code again here
|
| |
|
|
|
|
|
|
| |
Log window
- make usage of a NSMutableString to speed it up and to avoid crashes
|
|
|
|
|
|
|
|
| |
- if set to YES the Console Log won't be updated after adding a new message even if the window is visible; this is useful if SP has to execute a large number of queries
• first steps to increase the deletion of a large number of rows in the Content pane
- removed deprecated 'selectedRowEnumerator'
- set Console Log's 'allowConsoleUpdate' to NO if more than 10 rows should be deleted
- instead of adding the successful deleted row indexes into a new array delete these indexes from the selectedRows NSIndexSet
|
| |
|
| |
|
|
|
|
| |
• fixed validation of the main menu item "Print" - only enabled if one table is selected (otherwise it throws an exception)
|
|
|
|
|
|
| |
- now 'activate' & 'quit' works due to that fact that if an app is scriptable the Dock's "Quit" command calls handleQuitScriptCommand: which has to be implemened
- fixed issue that SPAppController has to be the delegate for NSApp to support AS
- added support for AS à la: "get name of first document" or "close every window" etc.
|
|
|
|
| |
releasing locks on different threads from which they were locked (which generates a console message)
|
|
|
|
|
|
|
| |
- suppress spell checking
- set left alignment
- set a minimum window size
- set font size to 12pt (to make it easier to read)
|
|
|
|
|
| |
- removed unnecessary method 'handleQuitScriptCommand' from SPAppController
- set main class to SPAppController
|
|
|
|
| |
- this fixed issue 434
|
|
|
|
|
|
| |
'ImageAndTextCell' class
• simplified the tooltip of Preference's Favorite List
|
|
|
|
|
| |
- now favorite name/host will be truncated correctly
- added tooltip for truncated favorites
|
|
|
|
| |
connections are selected, synthesising "localhost" where necessary. This addresses Issue #384.
|
| |
|
|
|
|
| |
with a foreign key link within the same table - this improves compatibility for Issue #428.
|
|
|
|
| |
creating the log file on every launch.
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
| |
functional area. This isn't definite so please feel free to make any further changes.
|
|
|
|
| |
tables, but produces deadlock errors when attempting to export multiple tables as a result of the initial streaming request for the tables' data all being done from the same thread. To resolve this each of the streaming requests will be made concurrently in separate operations and once the data is available a new concurrent operation (SPExporter subclass instance) will be spawned to perform the data conversion process.
|
| |
|
| |
|