| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
an occasional crasher when getting table cells by adding a retain
- Alter MCPStreamingResult to use pthread mutexes in a further attempt to address Issue #463
|
|
|
|
|
|
|
| |
button mouseover text, display no text when 0 or 1 pages of results for clarity
- No longer include the old app icon in the built product (but leave it in the project)
|
|
|
|
|
|
|
|
| |
at the bottom. This addresses the last of Issue #49 and implements Issue #133; jump-to and two prefs affecting loading are available in a popup when clicking the pagination interface.
- Format row counts at the bottom of the content pane
- Increase the MCPStreamingResult buffer for a stronger workaround for #463
|
|
|
|
|
|
|
| |
encoding changes, status requests, or blob/text lookups on slower connections
- Restore first responder in TableContent loads on the main thread to fix a potential crasher
|
|
|
|
|
|
|
| |
update early in the change process, but ensure the change notification occurs on the main thread for stability. Added NSNotificationAdditions from the Colloquy project for this.
- Change the design of the progress indicator layer, and tweak task progress for improved feedback and less flickering by correctly updating interface as appropriate, and delaying status changes for a short time. This partially addresses Issue #455.
|
|
|
|
| |
we are about the replace it to prevent threading issues. Also, in fieldListForQuery check that dataColumns array is not empty before constructing the field list as well as only obtaining the table's columns if the field list is going to be built in the first place.
|
| |
|
|
|
|
|
|
|
|
|
| |
relationship, remove the key before the field to prevent an error. Obviously warn the user that the key is being dropped as well. Fixes issue #462.
This check also needs to be implemented when removing indexes as foreign keys depend on the presence of indexes to prevent table scans.
Something to be discussed, the display of foreign keys that are made up of multiple fields in the relations table and link arrows in the content table.
|
|
|
|
|
| |
- Add some NSTextView editing notifications to maintain state correctly in an attempt to fix issue in crash log on comment 9 on #460
|
|
|
|
| |
results. This improves partial content displays (using the new code as of r1530) and also improves custom query error reporting.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- New connection column (been meaning to add this for a while)
- Display table view column headers
- Enable table view text cell line truncating
- Allow table view columns to be re-ordered
- The table view now respects the display table view vertical grid lines preference
- Support for including the connection when saving messages to a file
- Support for showing/hiding the connection column
- Increase table view row height to match that of all others
- Display message time stamps using the user's system wide medium time format
|
| |
|
|
|
|
|
|
|
| |
- Thread history loading, thus using the nested task elvels and fixing history interaction in recent builds
- Thread initial database loads
- Improve progress indicator slightly
|
|
|
|
|
|
| |
is set to "UTF-8 via Latin1" by changing the query/connection's encoding to Latin1 temporarily
• replaced 'int' to NS(U)Integer
|
|
|
|
| |
equivalent of return in order to be consistent with other data deletion dialogs.
|
|
|
|
| |
window, regardless of key state, by passing in and looking for the table document instance
|
| |
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
functionality in place. This addresses r447, and threading will be reimplemented at a per-task level in the near future.
|
|
|
|
| |
main toolbar with constants.
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
table redraw on new data, and increase the accuracy of the determinate progress as forced redraws are no longer an issue
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
with a foreign key link within the same table - this improves compatibility for Issue #428.
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
| |
placeholder values written to database. This addresses the data corruption part of Issue #423.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- user-defined content filter can be saved globally (Prefs) or in SPF files
- BETA - further tests are needed due to complexity
- SPQueryController now handles the local user-defined content filters
- tooltips are now generated automatically if not defined explicitly (incl. if $BINARY placeholder was used)
• if user added local query favorites or content filters to an Untitled document and s/he wants to close it the standard sheet will be displayed (Don't Save - Cancel - Save)
- due to that changed old [TableDocument displayName] to 'displaySPName' to be conform with Cocoa
• changed behavior while importing query favorites - now they will append at the list (not inserted after selected row - makes more sense)
• introduced to history filter dict the key 'menuLabel' which will be set to [TableContent tableFilterString] for displaying the history menu title and simplified the SPHistoryController logic for that
• minor code changes
|
|
|
|
|
| |
• fixed issue for "Add" a new favorite in SPQueryFavoriteManager:
- save pending changes in the query textView in beforehand
|
|
|
|
| |
selecting single tables after multiple tables are selected. This addresses Issue #372 and probably Issue #365
|
|
|
|
| |
a column, if that column value hasn't been changed by the user apply the CURRENT_TIMESTAMP appropriately. This addresses Issue #416
|
|
|
|
|
|
| |
• introduce a new placeholder $BINARY to the filter definition
- if user presses ⇧ while invoking the table filter and a filter had defined that placeholder the search will be case-sensitive; otherwise the placeholder $BINARY will be simply removed to search case-insensitive
- added tooltip for these string filters in ContentFilters.plist
|
|
|
|
|
|
|
|
| |
- 'is (not)' and 'contains (not)' are now defined as: take the argument literally, ie % and _ will be escaped automatically
- in string fields one can look for \n , \r , \t
- added LIKE and NOT LIKE operators to strings to be more transparent
- a routine detects automatically whether a placeholder was wrapped into ' or " and if so ' or " will be escaped
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- all default filters come from "ContentFilters.plist" which can be localized
main structure:
<plist>
<dict>
<key>number</key>
<array/>
<key>string</key>
<array/>
<key>date</key>
<array/>
</dict>
</plist>
filter item structure: [ ${} is a place holder for an argument ]
<dict>
<key>MenuLabel</key>
<string>BETWEEN</string>
<key>Tooltip>
<string>a tooltip</string>
<key>NumberOfArguments</key>
<integer>2</integer>
<key>ConjunctionLabels</key>
<array>
<string>AND</string>
</array>
<key>Clause</key>
<string>BETWEEN '${}' AND '${}'</string>
</dict>
- if NumberOfArguments == 0 then start filtering automatically
- now one can save his/her own filters in SP's preferences.plist (GUI follows soon)
- fixed issue for filters requiring two arguments that pressing RETURN if one is in the second argument input field invokes "Filter"
- added string operators: "IS EMPTY" and "IS NOT EMPTY"
- fixed issue that now one is able to look for eg \n in string fields
|
|
|
|
| |
slightly to increase the loading speed; this is up to now a compromise between speed and user information, the progress wheel will be updated every ~15%
|