| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
| |
- NSData *d = [aStr UTF8String]; :== NSData *d = NSStrignUTF8String(aStr) but a tick faster
• implemented NSStringUTF8String() in queryString: and for the lex parser (syntax highlighting)
|
|
|
|
| |
Will be implemented in near future.
|
|
|
|
|
|
| |
- cStringFromString function pointer is cached
- if utf8 encoding make usage of UTF8String but implemented inside of queryString (otherwise no effect)
• tiny code cosmetics
|
| |
|
| |
|
|
|
|
|
|
| |
- now [delegate willQueryString:] will only be called if user set ConsoleEnableLogging to YES (~8% faster)
--Note: this option to disable logging should be placed in the Import dialog with default = NO for importing as well
|
|
|
|
|
|
|
|
|
| |
- cache the function pointer for delegate willPerformQuery:
- if Console Log window is NOT visible suppress reloadData and scrolling to last line (this speeds it up remarkably); if user opens the Console log window it will be synchronized
- timeIntervall for execution time will be divide by CLOCKS_PER_SEC in [NSString stringForTimeInterval]
- removed for utf8 enc in cString the return UTF8String (no significant difference)
• now execution time shows only the time for mysql_real_query
|
|
|
|
|
|
|
| |
- caching of delegate && respondsToSelector
- use clock() to calculate query's execution time
• converting to cString: if utf8 encoding make usage of UTF8String
• added to StringAddition to display µs for a timeIntervall
|
|
|
|
|
| |
- now it also recognizes such keywords with leading comments
- still further improvements are needed
|
|
|
|
|
|
|
| |
after the selected one was commented out
- it's fixed now
- improved code to ensure that in this case AFTER ... will be only appended for a new field
|
|
|
|
|
|
|
|
|
|
| |
- Restored MySQL 3 compatibility
- max_packet_size details are now cached per connection for query speedup and to fix network recovery problems
- Improved disconnection recovery
- Errors during results fetching are correctly detected for the first time
- Error strings are now correctly set in several places
- The correct number of rows affected is now returned for queries which triggered reconnects or max_packet_size increases
|
|
|
|
|
|
|
|
|
|
|
| |
- register notification "SMySQLQueryWillBePerformed" to be able to identify the sender of the current query
- (void)willPerformQuery:(NSNotification *)notification
-- receives the "SMySQLQueryWillBePerformed" notification
-- if CustomQuery was the sender retryAllowed will be set to NO
• changed: now using mysql_real_query() because we've already calculated the length of the current query
• changed: now the query length will be checked in beforehand against max_allowed_packet
- if max_allowed_packet is editable increase it and reconnect
- if not outputs an informative error alert
|
|
|
|
| |
is not a BASE TABLE
|
|
|
|
| |
- if no field definition is selected "Duplicate Field" copies the last field structure defined in the table
|
|
|
|
| |
table show an alert saying that this isn't allowed
|
|
|
|
|
|
|
|
|
|
|
| |
where used in our overwrites:
- Check allocated memory and ensure it is released in our code
- Consolidate code controlling both an initial query and any retries following connection failures
- Perform additional checking to ensure a connection error was the cause
- Correctly capture any result sets after the max_allowed_packet setting was changed
- Check and cache the error strings and numbers for the intended queries, not any helper queries, and return them when requested.
|
| |
|
|
|
|
|
| |
- added drag&drop feature of file content or path resp.
- added feature to in/decrease font size via ⌘+/- or two-finger zoom gesture
|
|
|
|
|
|
|
|
| |
and for resetting it (a bit more transparent info)
- now also check the delegate if queryGaveError: method is implemented
• while adding/updating a row to the db Table Content's pane now indicates that process better via spinning wheel
• after TRUNCATE TABLE reload that table content
|
|
|
|
| |
current view to the table info pane.
|
|
|
|
| |
clicking.
|
|
|
|
|
|
|
|
|
|
|
| |
SPTextViewAdditions
- that feature should be added by subclassing NSTextView
• fixed focus setting of editSheet
• fixed general issue if SP tries to execute a query which is longer than max_allowed_packet
- now it reconnects after changing max_allowed_packet (if it's editable)
- the user will be informed via a log entry about that change
- the new max_allowed_packet size will be valid during the current session; after reconnection to that db the default size will be used
|
|
|
|
|
|
| |
- this also fixes the issue to play sound files properly
• QuickLook's temp file will be deleted after closing the editSheet to allow double-click at the QuickLook preview for opening it in the default app
• fixed some issues of loading data into the editSheet (data/string recognition)
|
|
|
|
|
|
|
| |
- The correct result set is returned even if extra internal queries are used
- The correct error message is written even if extra internal queries are used
- If the mysql thread is altered as a result of a query - resetting the connection - the encoding details are now restored on the connection
|
|
|
|
|
|
|
| |
- Add view and code to support drawing a connection status icon at the left of the titlebar
- Use for SSH tunnels; completes Issue #114.
- Remove reference to an image resource "j" in the DBView - fixes console log errors.
|
|
|
|
|
|
|
| |
the table (addresses #290)
- Set the default focus correctly on the add index sheet
|
|
|
|
| |
databases containing non-alphanumeric characters. Resolves Issue #292.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
while holding ⌘ path) to SPTextViewAddition
- two finger zooming gesture is disabled for NSTableView cells
- i.e. all NSTextViews including NSTableView cells inherit these feature
• simplified QuickLookFormat IBActions
- added bin/text storing type to each action
• QuickLook animation set to SP's window middle point
• fixed issue that while having an image in editSheet an attribute change (font/size) in the editTextView destroyed the image data
• fix to allow again drag&drop an image to editSheet
• hide text/image/hex segment controll and QuickLook pull down button if user chose multipleLineEditingButton for non-blob fields
• disabled NSLog of print result in TableDocument
|
|
|
|
| |
- TODO: if a row contains large blob data addRowToDb: “sometimes” doesn't get rid of the correct encoding; e.g. inserted into a varchar field a ü; changed the table; went back to the table; the ü is still there; after closing and reopen the connection the ü is shown as two latin1 char.
|
|
|
|
| |
• added the possibility to QuickLook the current data by choosing a data format
|
| |
|
|
|
|
|
|
|
| |
up queries further (1.5x faster for short socket queries).
Doing further research, it turns out that mysql_query should effectively lock the connection, and mysql_ping should not be performed while a query is active as mysql is specifically not thread-safe in this one regard. This fixes #293. However, it means that we will suffer from http://bugs.mysql.com/bug.php?id=9678 again; if we don't complete the framework integration before 0.9.6, we should roll back this patch and r831 to allow all connections to behave properly and avoid hangs.
|
|
|
|
|
|
| |
- Select favourites added in preferences
- Scroll to newly added or duplicated favourites in both preferences and connection sheet
|
|
|
|
|
|
| |
If a query gave the error 2006 (server has gone away) try to increase max_allowed_packet - if the user has SUPER privileges - and redo the query. If max_allowed_packet was changed reset it to default after executing. In addition if error 2006 occurred and max_allowed_packet can't be set write an additional error message to the log "(Please check if query size < max_allowed_packet)".
- 10MB of data are no problem
- while trying to insert 67MB MySQL gave the error : ... X'(null)' plus malloc: mmap(size=141287424) failed (error code=12); can't allocate region
|
|
|
|
|
|
|
| |
- (int) getMaxAllowedPacket;
- (BOOL) isMaxAllowedPacketEditable;
- (int) setMaxAllowedPacketTo:(int)newSize;
|
| |
|
|
|
|
|
|
| |
- Move the new disable query logging to the 'Alerts & Logs' pane.
- Hide the display of the new 'Shortcuts' toolbar item.
|
|
|
|
|
|
| |
but the table data are not accessible (e.g. for information_schema)
- this fix sets the content table view into a defined state as well
|
|
|
|
| |
expanded upon to disable different types of queries.
|
|
|
|
| |
and views as a different header color
|
|
|
|
|
|
|
|
|
| |
MySQL error while retrieving data
- [SPTableData tableEncoding] returns nil if no encoding can be found
- [TableList tableViewSelectionDidChange:] checks in beforehand for a valid table encoding; this avoids to get the same MySQL error message twice and cleaned the structure view
• if a MySQL error occurred while retrieving table data for the content view set the content view to a defined and clean status
• bound TableContent's filterButton to DBView.xib to disable it if an error occurred (otherwise the status bar shows unexplainable results )
|
|
|
|
|
| |
- Table Info pane is collapsable
- Export Controller code cleanup
|
| |
|
|
|
|
| |
fk relations
|
|
|
|
|
| |
- detection tiny/medium blob now uses length/max_lengthOfCharOfEnc
- dropped mac_char_length key from dict because it's not possible to calculate the correct max_length in a given encoding
|
|
|
|
| |
table structure view did not recognize the change after a reload
|
| |
|
|
|
|
| |
SPSQLParser usage - fixes errors like closing brackets (")") truncating ENUM/SET definitions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- it returns an array of dicts containing general information about each field of the result array of the last executed query
dict example so far for:
SELECT ucs_comp AS co FROM comp_ucs3 AS co_table
AUTO_INCREMENT_FLAG = 0;
BINARY_FLAG = 0;
BLOB_FLAG = 0;
ENUM_FLAG = 0;
MULTIPLE_KEY_FLAG = 1;
NOT_NULL_FLAG = 0;
NUM_FLAG = 0;
PART_KEY_FLAG = 1;
PRI_KEY_FLAG = 0;
SET_FLAG = 0;
UNIQUE_KEY_FLAG = 0;
UNSIGNED_FLAG = 0;
ZEROFILL_FLAG = 0;
byte_length = 30;
char_length = 10;
charset_collation = utf8_general_ci;
charset_name = utf8;
charsetnr = 33;
db = test;
decimals = 0;
flags = 16392;
max_byte_length = 4;
max_char_length = 1;
name = co;
org_name = ucs_comp;
org_table = comp_ucs3;
table = co_table;
type = VARCHAR;
typegrouping = string;
Hint: To test that new method one can add the following code after the execution of a mysql query:
NSArray *fStruct = [NSArray arrayWithArray:[theResult fetchResultFieldsStructure]];
|