aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPTableData.h
Commit message (Collapse)AuthorAgeFilesLines
* - Rework SPTableData PRIMARY KEY and UNIQUE KEY parsing to use SPSQLParser ↵rowanbeentje2012-03-221-0/+1
| | | | | | | | | | instead of regexes - Support multiple primary keys in the SPTableData parse - If possible, use primary keys to preserve table content selection instead of row indexes - Improve SPTableData primary keys method to use cached value instead of using another query - Preserve selection when filtering tables if appropriate
* - Fix a bug in the SPMySQL integration branch causing the table triggers ↵rowanbeentje2012-03-161-1/+1
| | | | list never to be initialised - 10.7 magically fixed this and worked, but 10.6 didn't show any triggers. Thanks to schlabberdog for spotting and diagnosing this issue!
* Warning: this branch commit is largely untested, and known to throw ↵rowanbeentje2012-02-231-6/+3
| | | | | | | | | | | | exceptions as database structure retrieval is currently missing! Further work on SPMySQLFramework integration: - Improve SPMySQL framework build settings including correct ppc builds and a Distribution configuration for the build distributions to match - Add new convenience querying and result methods to the framework - Amend Sequel Pro source to use the new SPMySQL.framework methods everywhere, replacing MCPKit methods where they differ and improving some functions - Remove MCPKit from the source - Fix a number of warnings on Release-style builds
* initial commit of SP_REFACTOR ifdefs, the start of a long quest to separate ↵sqlprodev2011-04-111-2/+10
| | | | UI code from functional code
* Fix compiler warnings.stuconnolly2011-03-011-1/+0
|
* - Revert r3187, which only masked an underlying bug and caused double ↵rowanbeentje2011-02-111-2/+2
| | | | | | | | | columns in views - In SPTableStructureDelete, don't request the encoding if the table is reloading; this prevents multithreaded data fetches and race conditions causing Issue #974. - Alter SPTableData to use thread mutexes instead of a boolean to prevent threading issues, which also fixes Issue #974 in a different way. Alter race condition checks to block their threads instead of returning bogus information to prevent state issues. - Alter table loading to no longer load trigger information until required, speeding up use of other views and cleaning up the console log.
* • improved Structure editing logic to allow to choose auto_increment for ↵Bibiko2010-11-011-0/+3
| | | | | | Extra only if table has no auto_increment field set since MySQL allows only one auto column - the user has still the chance to type 'auto_increment' into the Extra manually
* Tidy up.stuconnolly2010-10-191-1/+0
|
* • added basic support for spatial dataBibiko2010-10-011-0/+1
| | | | | | - while querying and writing back make usage of AsText() and GeomFromText() to allow to edit each GEOMETRY field as text simple string - works only in Content Tab so far - the spatial data are not yet editable inside views
* • fixed issue836 by avoiding the fact that while selecting a new table ↵Bibiko2010-09-221-0/+4
| | | | | | | | the CREATE SYNTAX will be parsed twice under certain circumstances which led to this issue - introduced a isWorking mechanism to SPTableData; while SPTableData is updating its cache (ie the CREATE SYNTAX is being parsed) each request for values will return nil or an empty array; the caller is responsible to decide what to do • various commenting stuff • various speed improvements
* Review trigger fetching and storage:rowanbeentje2010-05-011-0/+1
| | | | | | | - Trigger queries are no longer made for MySQL < 5.0.2 - Trigger loading has been deferred until the trigger tab is active, reducing queries when switching tables and thus increasing overall responsiveness - Export triggers in MySQL dumps even if the Table Content switch is unchecked
* Tidy up imports and fix 'Reverse Sort Order' when sorting connection ↵stuconnolly2010-03-311-0/+1
| | | | favorites (Thanks Hans).
* Added preliminary support for triggers. You can access the tab via the bamse162010-01-311-0/+2
| | | | | | | | | | | | | | | | | | | | menu item View > Table Triggers (apple-6). Heavily copied from Relations tab, lots of functionality missing. Just lists the triggers for the table now. M Source/SPTableData.m M Source/SPConstants.h M Source/SPConstants.m A Source/SPTableTriggers.h A Source/SPTableTriggers.m M Source/TableDocument.h M Source/TableDocument.m M Source/SPTableData.h M Interfaces/English.lproj/MainMenu.xib M Interfaces/English.lproj/DBView.xib M sequel-pro.xcodeproj/project.pbxproj
* - Upgrade Sequel Pro to be compiled as a 3-way PPC/i386/x86_64 binary for ↵rowanbeentje2010-01-091-1/+1
| | | | | | | release builds, including a large number of 64bit compatibility upgrades and tweaks - Upgrade RegexKitLite to 3.3
* Tidy up.stuconnolly2009-11-071-1/+0
|
* • fixed SPArrayAdditions method 'componentsJoinedByCommas' to use a ↵Bibiko2009-10-161-0/+2
| | | | | | | | | | | | | 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
* Merge framework integration branch back to trunk. Summary of changes:stuconnolly2009-07-211-2/+2
| | | | | | | | | | | | | | | - 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.
* Improvements to reporting the correct row count for tables. See issue #141.stuconnolly2009-07-211-0/+1
|
* Redesigned table information pane.stuconnolly2009-05-271-3/+6
|
* More header updates for source files, including Subversion Id property.stuconnolly2009-05-191-0/+2
|
* preliminary support for constraint editingmtvee2009-05-141-0/+2
|
* Issue #201 Duplicating a row resets values of text/blob fields in the new rowbamse162009-03-221-0/+1
|
* A patch to improve View support, addressing Issue #130. This patch undoes ↵rowanbeentje2009-02-231-2/+5
| | | | the damage caused by r333, making views viewable again, and extends support by preventing errors in the info pane, by drawing views with a different icon to easily differentiate them, by making all source/index information non-editable to match GUI to behaviour, and to tweak the interface slightly to match.
* Visible improvements in this build:rowanbeentje2009-02-181-0/+54
- Significantly reduce the queries that have to be performed, improving lag - especially over slow connections (Issue #118; see new controller info under headline code changes). - Fix Issue #117 properly (export numeric quoting - we now have access to column types and so can quote appropriately). - Fix Issue #145 (loss of unsigned/null/default attributes when reordering columns). - Fixes Issue #90 (support for filtering DECIMAL column types) - Improve table scrolling speed when the table contains long items. (Added a NSFormatter to automatically truncate strings > 150 chars for display purposes only) - Improved SQL compatibility - for example /* C style comments */ are now correctly ignored in imports and custom queries. - Add text and symbols emphasising that the table info pane / status view row count is an approximation (partially addresses Issue #141) - Fixes a major memory leak whenever opening or scrolling tables containing text/blob data. - SQL import is now faster (SQL parsing part is 3x faster). - Speed up SQL export (1.5x faster for numeric data; 1.1x faster for string data) and slightly speed up CSV export (~1.1x faster). - Display sizes on the status view using the byte size formatter, as per table info pane. Headline code changes: - Add a new NSMutableString subclass, SPSQLParser. See the header file for documentation and overview, but in short it's a centralised place for SQL parsing. Centralises and improves parsing, improves comment support, improves quoting support. Despite the improved featureset this is also faster than the previous distributed implementations - for example, when used to replace the old splitQueries:, > 3x speedup. - Implement a new controller which handles a structure and status cache for the current table, and provides structure parsing for specified tables. This cache is now used throughout the code, reducing the queries that have to be performed and providing additional information about the table structure for use; I think it also improves column type format slightly. - The table info pane and the status view now draw all their data from the cache. Tweaks: - Table encoding is now detected directly instead of being derived from the collation - increased accuracy and cope with the DEFAULT encoding. - Comments and formatting cleaned up in bits I was working on, obviously. - A couple of methods - particularly [tablesListInstance table] and [tableDocument encoding] - have been renamed to avoid conflicts and fix code warnings. Future improvements now possible: - As we now have access to column types and other information, we can provide per-type behaviour where desired. - The table parsing doesn't currently pull out comments or table indices, together with one or two other attributes. Some of this would be useful for display; some, such as indices, could be used to draw the table structure view as long as we're happy discarding a couple of columns (ie cardinality!)