| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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
|
| |
|
| |
|
| |
|
|
|
|
| |
(eg selection changes with the arrow keys)
|
|
|
|
|
|
|
| |
- Allow undo of the insertion
- Update scrollbar size/position after the update
- Ensure the cursor is scrolled to
|
|
|
|
| |
DEFAULT NULL, but don't allow definition of tables as that - fix the export of temporary placeholder tables for those views. Thanks to Andreas Falk for report and details.
|
|
|
|
| |
the app - this fixes keyboard shortcuts not working when a tooltip is visible
|
|
|
|
|
|
|
|
| |
- Rework CSV export to stream data, significantly reducing memory consumption and so increasing speed and stability when exporting large tables. By default safe/fast streaming is used, but a checkbox is available to select "low memory mode" full streaming, allowing export of any size table in theory. This addresses Issue #224.
- Rework XML export to stream data in the same way, also significantly reducing memory usage and providing the option of using low memory mode.
- Make SQL, CSV and XML export progress bars update more smoothly
- When exporting the current browse view or custom query result, show an indeterminate progress bar when copying large resultsets to avoid the app appearing to hang
|
|
|
|
| |
incorrect navigation and menu item validation.
|
|
|
|
| |
shortcuts of cmd+[ and cmd+].
|
|
|
|
|
|
| |
written to file [ this fixes issue 404 ]
• FieldEditorSheet: if string cell content is "NULL" select the entire string for convenience
|
|
|
|
|
|
|
|
|
|
|
|
| |
• fixed issue while retrieving possible encodings/collations from information_schema
- in many cases
"SHOW TABLES IN information_schema LIKE 'character_sets'"
returns NULL whereby
"SELECT * FROM `information_schema`.`character_sets`"
returns the correct list
- change the test query to the latter syntax
- if the retrieving of possible encodings fails return an array of the hard-coded list with dictionaries containing the keys for name AND description
-- [this fix solves i400 due to the fact that the chosen encoding title from the popup list must be of the format: "description (name)"; otherwise the following regexp returns (null) because it's looking for the content of parentheses]
|
|
|
|
| |
• prepared QueryController for future steps
|
|
|
|
| |
usage following TableContent cleanups in r1183/r1204
|
|
|
|
|
| |
- disabled sorting by clicking at table headers
- added drag&drop support of multiple selected items
|
|
|
|
|
|
| |
Favorites of all opened documents to synchronize changes in global favorites
• "Import Favorites" in the Query Favorite Manager adds the imported favorites after the last selected item, if no selected item is found it adds them
|
|
|
|
|
|
|
| |
favorites
• disabled "Select Active Query" in CMTextView if shown in the favorite manager
• code cleaning and simplifications
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
- not yet fully implemented but workable
|
|
|
|
| |
query favorite (global or not)
|
|
|
|
|
|
| |
must be a \0 terminated cString
- fixed that and replaced the deprecated method [NSString stringWithCString:length] again
|
|
|
|
| |
r1313 leads to the issue that no password can be read from the keychain; reverted to r1212 in order to keep SP workable until a fix is found
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- each history is doc-based even if you have opened not only one instance of the same spf file
- for each SPF file identified by its file URL SP remembers each history item regardless from which doc instance it comes from internally ( to make sure that after closing the last instance of a doc all executed queries are saved in that file - if the user wants to change that s/he has to save that file under a different name )
- the history list for each Untitled doc will be initialized by the items stored in the global SP's prefs
- the history list for each SPF doc will be initialized by the items stored in the SPF file unless an instance of the same file is already open - then the new instance inherits the history list from the opened one(s)
- all history items executed in any Untitled docs will be added to SP's prefs - in other words SP's global prefs plist is the historyrepository for each new Untitled doc
- if the user saves an untitled doc or rename an opened SPF file the _current_ history list for that doc will be saved to the chosen file unless an other doc instance is still open
- all history lists are saved automatically if SP quits or the user closes a doc window
Note: This should be tested for any logical pitfalls - each desired logic can be implemented :)
|
|
|
|
| |
definition warning.
|
|
|
|
| |
SPQueryConsole rename.
|
|
|
|
| |
for mysql errors - if information_schema is not accessible for some reasons omit adding procedures and functions silently
|
|
|
|
|
|
| |
the query console but also query favorites and history application-wide
- accessible via: [SPQueryController sharedQueryController]
|
|
|
|
|
|
|
|
| |
• added and applied removeRegisteredDocumentWithURL to remove a registered document from the app-wide query fav/history controller
• saveDocumentWithFilePath now returns the success status after saving
- if saving fails for some reasons SP suggests to save that doc under a new name
• fixed issues for "Save" an Untitled doc
• improved error handling
|
|
|
|
|
|
| |
order to be able to open files from Finder correctly
Note: I tested it with 21 spf files (different connections, encrypt state, auto connect state, non-readable spf files etc) selected in Finder ⇢ ⌘O ⇢ all of them were handled correctly
|
|
|
|
| |
• fixed bug for Save As (suggested name is now Unicode-safe )
|
|
|
|
|
|
| |
• each new connection which is non-SPF file-based gets the document name "Untitled x"
• prepared SPQueryConsole to manage all query favorite and history data application-wide
• minor code fixes and renaming issues
|
|
|
|
|
|
| |
- Improve error messages encountered when deleting multiple tables, asking whether to stop or continue; also now shows all errors, not just the last (if it showed any!)
- Fix various exceptions caused by the table list attempting to redraw while the underlying data is being changed
|
|
|
|
| |
selectRowIndexes:byExtendingSelection:
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- everything will be configured in [TableDocument displayName]
- to update the title call [TableDocument setTitle:[TableDocument displayName]]
- this removes dozens of lines
• first steps to support more the document-based approach
( a document is nothing else than a connection with view properties and preferences )
- renamed/added/changed in Main Menu items into "New", "Open", "Save", and "Save As"
- if user opened a spf file -> fileURL will be set
- "Save" will save the current connection/view data according to the "Save As" setting - ie if one saved a doc with do not "Remember window state" - "Save" won't save the window state; to enable this hit "Save As" [this works for encrypted file data as well]
- if the current doc was opened from file and the user closes it or quits the entire app all connection/document-based preferences (up to now query favs and history) will be updated silently [not yet implemented fully in CustomQuery] [works for encrypted file as well]
• delete saveSPFAccessory view from DBView since it was outsourced
• fixed some issues for the NSSecureTextField in the Save accessory panel (but still a warning appears)
|