| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
creating a new relation. Fixes issue #428.
|
|
|
|
|
|
|
|
| |
contains a '#' or '/*'
- this fixes issue 431
- furthermore if the parsing process fails for some other reasons, i.e. a table name is NULL or empty SP alerts the user about it instead of stalling
|
|
|
|
|
|
| |
mainThread to avoid crashes if SP shows the data in the Content Browser in which the data will be imported.
[It occurred sometimes that the current table should be updated but no data were available due to threading.]
|
|
|
|
|
|
| |
values after re-invoking it
- store the accessory settings in SP's preferences
|
|
|
|
| |
- now the parser will be initialized by the import dialog's settings (was unintentionally deleted)
|
| |
|
|
|
|
| |
flaw in that exporter instances (NSOperation subclasses) are not reusable and so we have to create a new instance for every 'chunk' of data we want to process.
|
|
|
|
|
|
| |
alternated menu item bound to "Open…"
- this action opens the current file-based connection in a new window by reading <file> again
|
| |
|
|
|
|
|
|
|
|
|
| |
- if no passwords are stored inside the SPF file try to retrieve the passwords from the KeyChain
- for that purpose store the key 'kcid' in the SPF file if available
- changed the accessory view: 'auto_connect' is always enabled (even no pw will be saved due to new routine)
• fixed issue for Open Recent of SQL files
• add a saved SPF file to Open Recent list if the user saved an Untitled doc or saved an open SPF file under an other name
|
|
|
|
| |
the old non-streaming code, but does not yet write to any files. Please note that this is still very much a work in progress.
|
|
|
|
| |
value pairs, just the variable or just the variable value.
|
|
|
|
|
|
|
| |
details which are currently unhandled (column formats, storage, references). This addresses the data loss part of Issue #180.
- Parse out column comments in SPTableData to allow displaying or editing comments in future
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
since 10.6 that list expects a clean file URL created via [NSURL fileURLWithPath:path] (having the suffix file://localhost/....)
Note: should be tested for Leopard.
|
|
|
|
| |
placeholder values written to database. This addresses the data corruption part of Issue #423.
|
|
|
|
| |
present AUTO_INCREMENT value. Fixes issue #391.
|
|
|
|
| |
foreign key references as the names must be unique. MySQL will create the new names based on the new table name. Fixes issue #398.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
| |
- Fix the Growl notification prefs message as well as making the dialog a sheet.
- Re-run genstrings to update localizable.strings and also remove use of multiple comments for a single string.
|
|
|
|
|
|
|
|
|
| |
which displays the create syntax in the same non-editable version of the custom query editor. Addresses issue #411.
- Add the ability to save the displayed create syntax to a file on disk.
- Change the 'Show Create Syntax' shortcut from shift+cmd+S (its already in use) to alt+cmd+S.
- Make both the create syntax and server variables sheets not run application modally and thus prevent them from blocking the main thread. Part of issue #351.
|
|
|
|
| |
This addresses Issue #396
|
|
|
|
| |
for the BETWEEN filter
|
|
|
|
|
| |
• 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
|
|
|
|
| |
custom (and partial) code; fixes issues of showing old columns/data from the previous table when creating new tables.
|
|
|
|
| |
'selectedRowEnumerator'
|
|
|
|
|
|
| |
• 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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Replace the CSV parsing function (arrayForCSV:) with a new SPCSVParser class
- Make speed improvements to SPCSVParser to achieve 1.9x faster parsing than the old arrayForCSV: function
- Rewrite CSV imports to be performed as a streaming import, keeping memory usage much much lower
- CSV field mapping preview is now shown very early on in the import process, as soon as the first hundred rwos are available for a preview
- Progress bars are more consistent and accurate
- CSV rows are grouped into batches of up to 50 (depending on line length) for import, falling back to one-query-per-row if errors occur. The current error reporting level is therefore maintained, but imports of non-erroring data are much much faster.
- Improve processing speed slightly
- Fix some odd edge cases in CSV parsing
This addresses issue #389.
|
|
|
|
|
|
|
|
|
|
|
|
| |
• 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.
|
|
|
|
| |
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%
|
|
|
|
| |
for confirmation, furthermore if a connection is available the user can choose 'Import' instead of loading it into the Query Editor for cases that an user invoked 'Open…' accidentally instead of 'Import…'
|
|
|
|
|
|
|
|
|
| |
- This is up to now a kind of a 'hack' since SP will be compiled against SDK10.5 but if SP runs on 10.6 it'll use code from a 10.6 framework.
- Under 10.6 full screen mode is available and QL does run in its own run loop ie now it's non-modal
- Changed the way of removing temp files; now all files will be deleted while closing the sheet to fix issues if the user double-click at the QL item and the called app was too slow - this ended up in getting the message 'File not found'
- Changed default container extension for images since 'pict' isn't support under 64bit 10.6; now SP makes usage of 'icns'
• outsourced QuickLook types (show as pull down menu) to SP's preference plist. (up to now only 'power users' can change that type list via a Property List editor)
• enhanced the caching behaviour of the sheet editor in terms of triggering a refresh if the text content was changed (this fixes the issue that it could happen that binary data were interpreted as text data)
|
|
|
|
| |
method 'dataToFormattedHexString' a bit (this fixes the issue for broken lines as well - seen under OSX 10.6)
|
|
|
|
|
|
|
|
|
|
| |
a table an error sheet will be ordered out (order out the first sheet explicitly in beforehand)
- this solves issue 418
• improved table name check for renaming/duplicating/adding a table
- it checks for trailing white spaces since 'foo ' is not valid
- it checks for length
- it checks whether the entered table name doesn't occur as table/view name in the current database (case-insensitively and only while entering the name in sheets)
|
|
|
|
| |
possibility to choose an other connection from the favorites' list; otherwise the SPF file could run out of sync
|
| |
|
| |
|
| |
|