| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
- Handle "(not loaded)" placeholders; this addresses http://spbug.com/l/1420
- Fix row inspection of widely-spaced rows for large, fast-loading tables, ensuring up to maxRows rows are inspected
|
|
|
|
|
|
|
|
| |
- Add automatic column sizing (for columns without saved widths) as part of the value loading process
- Rework table updates to be timer based, for time-based and more regular updates. This improves speed and allows tables to update more consistently.
This results in overall smoother table loads, faster table loads, and autosizing columns. This partially implements Issues #271 and #272.
Column autosizing will likely be tweaked, and this will all also be extended to Custom Query views in a future patch.
|
| |
|
| |
|
|
|
|
| |
rows. This addresses Issue #681
|
|
|
|
| |
and relations views. This fixes the copy parts of http://log.sequelpro.com/view/53
|
|
|
|
| |
variables, a few leaks, and additional nil setting/checking to prevent overreleases or releases of random areas of memory.
|
|
|
|
|
|
|
| |
they are shown - as strings. This addresses Issue #558.
- Remove some unused variables
|
|
|
|
| |
compatibility
|
|
|
|
|
|
|
|
|
|
| |
- Reverse the effects of the r1664/r1690 combination, restoring the original link from CMCopyTable to the underlying data source
- Adapt the code to retrieve information from the new SPDataStorage; update SPDataStorage as necessary if underlying data changes
- Refactor and speed up various checks and loops for speed and logic improvements
- Ensure the binary-encoded TEXT data is hex encoded rather than retrieved as "<123ABC 123ABC...>" NSData representations
- Fix some memory leaks
This resolves Issue #533 and the original "Copy as SQL" issue
|
|
|
|
|
|
|
|
| |
- 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)
|
|
|
|
|
| |
- accessing table data from [dataSource:tableView:objectValueForTableColumn:row] directly
- maybe related to issue 506
|
|
|
|
|
|
|
| |
release builds, including a large number of 64bit compatibility upgrades and tweaks
- Upgrade RegexKitLite to 3.3
|
|
|
|
|
|
| |
tableView:writeRows:toPasteboard:] method by [NSTableView tableView:writeRowsWithIndexes:toPasteboard:]
• some code cosmetics
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
memory leaks and fixing a couple of over-releases
|
|
|
|
|
|
|
| |
data rows or slow connections
- Remove a debug NSLog on "Copy as SQL insert"
|
|
|
|
| |
since 0.9.6)
|
| |
|
|
|
|
| |
issues such as the one fixed in revision 1419. All future preference usage should be done so using these constants.
|
|
|
|
| |
• 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")
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
| |
'selectedRowEnumerator'
|
|
|
|
| |
(eg selection changes with the arrow keys)
|
| |
|
|
|
|
|
|
| |
- fixed that the table is selectable again
- hitting ENTER/RETURN are enabled only for TableContent and ask the delegate's tableView:shouldEditTableColumn: method for validation
(by doing so a RETURN/ENTER is the same event as a double-click into a table cell for column 0 if table is in non-editing mode)
|
|
|
|
| |
used in CustomQuery
|
|
|
|
| |
definitions in CMCopyTable, the array wasn't being released on subsequent allocations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Includes all custom code from subclasses CMMCPConnection and CMMCPResult, meaning they have subsequently been removed from the project.
- All previous Sequel Pro specific code in the above subclasses has been removed in favour of the delegate (currently set to TableDocumet) informing the framework of such information.
- All references to CMMCPConnection and CMMCPResult have subsequently been changed to MCPConnection and MCPResult.
- Framework includes MySQL 5.1.36 client libraries and source headers.
- Framework is now built as a 4-way (32/64 bit, i386/PPC arch) binary.
- All import references to <MCPKit_bundled/MCPKit_bundled.h> have been changed to <MCPKit/MCPKit.h>.
- New script 'build-mysql-client.sh' can be used to build the MySQL client libraries from the MySQL source. See the script's header for a list of available options or run it with no arguments to display it's usage.
Note that there are still a few changes to be made to the framework with regard to removing Sequel Pro specific calls to the delegate. These however can be made later on as they have no effect on functionality and are merely design changes.
Also, note that any future development done on the framework should be made to be as 'generic' as possible, with no Sequel Pro specific references. This should allow the framework to be integrated into another project without the need for SP specific code.
|
|
|
|
|
|
|
|
|
|
|
|
| |
arrays, and make some editable CustomQuery improvements:
- Switch to using arrays for row storage rather than dictionaries. Use the data column index for table column identifiers.
- This fixes Issue #316 and also allows sorting by all custom query result columns using a column index rather than the name
- Offers significant speed and memory advantages: result building is now 2x-3x faster, memory used for results storage is 30-40% lower, and result access is slightly faster. (Note full 2x-3x speed results won't be seen - result fetching and mysql binary work isn't included in the timing)
- No longer need to fetch the first column of data for tables containing only blob types
- Correctly escape strings when editing CustomQuery results
- Rewrite NSArrayObjectAtIndex to use the native CFArrayGetValueAtIndex rather than cached selectors - neater code and I think slightly faster
|
|
|
|
|
|
| |
containing a `
• some minor code cleaning and commenting
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
| |
- up to now only available for the table content pane
- supports blobs
- if a primary key is given it also support (not yet loaded) blobs and long text data fields
|
|
|
|
| |
• disabled "Copy with Column Names" if Custom Query editor is active
|
|
|
|
| |
item is set to 'not hidden' in the MainMenu)
|
|
|
|
|
|
| |
• added to SPArrayAdditions.m - (NSArray *)subarrayWithIndexes:(NSIndexSet *)indexes
• added "Copy as SQL INSERT" to MainMenu (not yet activated)
• added to CMCopyTable - (NSString *)selectedRowsAsSqlInserts for copying selectedRows as INSERT INTO ... string (under constructions, up to now it works for strings)
|
|
|
|
| |
issue #233. Thanks to Ben for suggestion.
|
| |
|
|
|
|
|
|
| |
Implementation of copy with column names menu item
Removal of copy column names
|
|
structure.
|