| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
documentation periodically if no internal help can be found
|
|
|
|
| |
use thread locking to ensure data safety while the table is loading. This should fix intermittent loading and reload issues, including part of #463 and should address Issue #482
|
| |
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
query favorite (global or not)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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 :)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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)
|
|
|
|
|
|
|
| |
- added to History list "Replace Editor Content" (stored in the prefs) and a search field
- "Save ... to Favorites" menu title changes according to selection in the textView
Problem: How can we allow if the user hits RETURN in a search field (fav/history) to select the next menu item if any and to change the first responder to popup button menu list?
|
|
|
|
|
|
| |
- "Replace Editor Content" check box menu item; if checked the chosen query will replace the editor's content if not it will insert it (setting will be saved in the prefs)
- Search Text Field to filter the list of names (by using a regular expressions)
- added a tooltip to each menu item displaying the query behind the name
|
|
|
|
|
|
|
|
|
|
|
| |
- The ability to name query favorites
- The ability to edit query favorites using the same editor in the cutom query view
- The ability to save your query favorites to a file
Note that any already saved query favorites will be upgraded to accommodate the new format, that is including a name associated with the query. The default name is the first 32 chars of the query with '...' appended.
Also, added menu item validation to the 'Save Query to Favorites' menu item.
|
|
|
|
|
|
|
| |
- Significantly improve memory usage
- Minor speedup (1.1x faster?) to overall query/display times
- Improvements to MCPStreamingResult and MCPConnection to accurately report affected row count
|
|
|
|
| |
issue #357.
|
|
|
|
|
|
|
|
| |
- renamed "Open" into "Open…" plus tooltip
- added "Save Query…" (enabled if a query is in the editor and rename 'Query' to 'Queries' dynamically) [still hidden]
- added "Save Connection…" [still hidden]
• added method numberOfQueries to CustomQuery
• 'Save Query…" and "Save Connection…" are bound to the same connector distinguished via their tags
|
|
|
|
|
|
|
| |
app for sql files) will insert the file content into the Custom Query editor of the current active doc
- this action starts SP and asks for a connection if it is not running
- same for drag&drop a SQL file onto SP's dock icon
|
|
|
|
|
| |
- now fields are also identified via the database which the field belongs to in order to allow to select/join/etc. fields coming from different databases and to improve the unambiguity of the field origin
- sped up editing check for fields with no table or database origin (then no "select count(*)" is needed)
|
|
|
|
|
|
|
| |
width memory to set column widths
- Save custom query result columns back to the master column width store for columns witch map to SQL fields
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
| |
- SP tried to select the erroneous part in customQueryView which could lead to an range exception
- now it shows a proper error message
- it suppresses column highlighting and setting of the NSSortIndicator
|
|
|
|
|
|
|
|
|
|
|
| |
- ⌘/ (un)comment current line only if no selection is given (by using "-- ")
-- caret jumps to the next line to (un)comment lines quickly
-- # sign will be recognized for uncommenting as well as if the entire line is wrapped into /* */
- ⌘/ (un)comment current selection (by wrapping it into /* */)
-- it (un)escapes present */ into *\/ automatically
- ⌥⌘/ (un)comment the current query (by wrapping it into /* */)
-- the GUI element will be found in the Gear Menu by pressing ⌥
• added shortcut ⌫ to Table Content's "Delete selected row(s)" tooltip
|
|
|
|
|
|
|
| |
- changed comment string to "-- "
- fixed bug in uncomment
- added gear menu item
-- TODO: change menu item title according to selection/current query (coming soon)
|
|
|
|
|
|
| |
current query or selection by inserting "# " at the begin of each line
- Note: not yet finished completely
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
at a column header
|
|
|
|
|
| |
- preserve table width/order after editing
- updated data source code to avoid having the data twice in the memory
|
| |
|
|
|
|
|
|
| |
containing a `
• some minor code cleaning and commenting
|
|
|
|
| |
such fields which can be identified bijectively by the given table data
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
| |
- "Query Background" color
- checkbox "Highlight Current Query"
|
|
|
|
| |
• added: "Select Active Query ^Y" context menu item to the Custom Query Editor
|
|
|
|
|
|
| |
• added queryRangeAtPosition: method because this is needed also for other purposes
• moved the commands for highlighting the current query from queryAtPosition: to textViewDidChangedSelection: (where it belongs to)
• some minor changes in error highlighting code
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- added
(NSArray *) splitSqlStringByCharacter:(unichar)character;
(NSArray *) splitSqlStringIntoRangesByCharacter:(unichar)character;
(long) firstOccurrenceInSqlOfCharacter:
to the SQLParser which recognize a “delimiter” command
• queryAtPosition now works with ranges to speed it up
- the current query ranges resp. the just activated query range are cached in order to avoid parsing if the user only navigates through the textView buffer, or if the user calls Run Prev/Current Query only
• the "import dump" function makes usage of that new “delimiter” support
- i.e. dumps with procs/funcs declaration could be imported
IMPORTANT: Please check the new SQLParser exhaustively in order to prove that new approach
|
| |
|
|
|
|
|
|
| |
- it shows the MySQL Help TOC of the front most tableDocument mysql connection, i.e. each tableDocument has its own Help window (due to the fact that the Help is version specific), and makes it the keyWindow
- changed the way for getting the mySQLversion into the CustomQuery; now a new tableDocument set it via [customQueryInstance setMySQLversion:foo]; the other way was to unsafe regarding to get the version if MySQL Help was invoked via MainMenu
• Help window and Create Table Syntax window will be released while closing the tableDocument
|
|
|
|
|
| |
• prepared code to work with autoHelp
• improved getRangeForCurrentWord (fix for " |a")
|
|
|
|
|
|
| |
- updated autoHelp, now it recognizes cursor movement via mouse
• if the chunk in CQ's textview is too large remove all attributes
• some minor code cosmetics
|
|
|
|
|
| |
- refactored and cleaned contextMenuItems for the webview
- help-html-template will be loaded only once
|
| |
|
|
|
|
|
| |
- change help target buttons into a NSSegmentedControl
- fixed minor typo
|
|
|
|
|
|
|
| |
- added history: go back/forward
- window now has auto save name MYSQL_HELP_WINDOW
- disabled contextual menu for safety reasons (temporarily)
- some minor stuff
|
|
|
|
|
|
|
|
|
| |
- added help target (online, in current page, in MySQL help ⌥⌘O,P,M)
- GUI support for go back/forward (not yet implemented)
- ⌘G, ⇧⌘G for find next/prev in current page
- ⌘F selects search field; ⌘+ and ⌘- support
- online search is version sensitive
|
|
|
|
|
|
| |
- better HTML view, list topics for multi-matching keywords
- for test cases invoke it by CTRL+H in the Custom Query textView
- GUI is really tentative!
|
|
|
|
|
|
| |
Custom Query text view
- work in progress!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
asked to "Stop", "Continue" or "Run All"
- Stop: the execution will stop at the erroneous query (if other queries would follow "Execution stopped!" will be prompted in the error message field)
- Continue: continues the execution but shows that alert for a next error
- Run All: runs all following queries regardless of possible errors
• improved the error selection
- fixed the issue for Run Current/Previous (even for duplicates)
- if no error line is given it selects the first query which caused an error entirely
- due to the localization of mysql error messages changed the regexps for catching the:
-- line number to /([0-9]+)$/ because the line number always should be outputted at the end
-- "near message" to / '(.*?)' / (important the last space because after that space the line number will be outputted)
-- further checks are needed
|
|
|
|
| |
behaviour for the "Run current"/"Run selection" button is triggered if the text caret is only separated by whitespace from the last query, to allow easy running of a just-typed query
|
|
|
|
|
|
|
|
|
| |
• added error highlighting of the first mentioned error
- if a "near message" error is provided select that message otherwise select the entire error line and scrolls to it
- if no "at line x" and no "near message" is given do nothing
- if a selection was given and the user pressed "runAll" destroy the selection before error checking; if no error was found reconstruct that selection (to be able to distinguish between "runSelection" and "runAll" plus selection)
* changed slightly the trigger for syntax highlighting/auto-uppercasing for better scrollToRange behaviour
|
| |
|