aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/MCPKit/MCPFoundationKit/MCPStreamingResult.m
Commit message (Collapse)AuthorAgeFilesLines
* • improve BIT field type supportBibiko2011-05-051-3/+13
| | | | | | | | - caught some more exceptional cases - re-factored byte to bit conversion (really do not know why the old code wasn't working anymore); this should fix i1042 - disabled unisgned/zerofill check boxes in Structure for BIT - insert correct default BIT field default value if any after adding a new row -- this works for 5.5 but for MySQL 5.0.x it seems that providing a default value is a MySQL bug (further checks are needed)
* Alter result string processing to use returned string length and not ↵rowanbeentje2011-04-231-8/+3
| | | | | | | | | | null-terminated string processing: - This fixes issues caused by null characters in strings - addressing Issue 1029 - Also appears to be a few percent faster than the old approach when processing lots of short strings - Allows significant simplification of MCPResult and low-memory MCPStreamingResult code, avoiding a memory copy; this also gives a significant speedup and can actually make full streaming in MCPStreamingResult faster than "fast streaming". The code will be reviewed further in future to improve on the gains seen here.
* - Fix compiler warnings for MCPKit - largely typecast relatedrowanbeentje2011-03-021-8/+8
| | | | | | | | | - Fix further compiler warnings, including a couple of bugs - Disable the -wselector warnings (Multiple definition types for selector) as they're currently unsupported in LLVM - Disable the -wconversion warnings (Prototype conversion) warnings as we usually can't affect protocol declaration - Disable the -wstrict-selector-match (Strict selector matching) due to too many false positives
* • convert the Field Editor Sheet into a document-modal sheet, i.e. now the ↵Bibiko2010-10-291-5/+2
| | | | | | | | sheet doesn't block the entire app - fixed various layout issues - fixed some tiny memory leaks • fixed tiny memory leak in MCPStreamingResult
* • enhanced spatial supportBibiko2010-10-071-1/+1
| | | | | - implemented native routine to immediate AsText() [MULTIPOLYGON and GEOMETRYCOLLECTION are not yet ready] - enabled editing of spatial data in Content View for tables and views and in Custom Query via wkt strings which will be saved automatically as wkb by using GeomFromText()
* • removed approach to query spatial data by using AsText() since it breaks ↵Bibiko2010-10-071-1/+2
| | | | | | | some column definition approaches - instead introduced a new MCPKit class MCPGeometryData - up to now the spatial data will be displayed as hex bytes - work on it will come soon
* • added basic support for spatial dataBibiko2010-10-011-0/+4
| | | | | | - 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
* - Clean up warnings when building with GCCrowanbeentje2010-09-181-2/+2
|
* • (re?)enabled BIT field editing esp. for field types like BIT(9) or ↵Bibiko2010-09-141-35/+34
| | | | | | | BIT(63) since the old _int2bin routine didn't work because we're dealing with a char* containing bytes if BIT(>8) - also for views and CustomQuery editing • started to clean up (VAR)BINARY editing (work in progress)
* Improve handling of BIT fields, including:stuconnolly2010-07-151-3/+32
| | | | | | | | | - Exporting BIT fields properly in SQL dumps using b'x' notation. - Properly handling editing of BIT fields in both the content and custom query results views. - Correctly display BIT fields in the content view, where binary values are zero-padded to the specified length of the field. (Note, that the new BIT handling logic has only been added to MCPKit's MCPStreamingResult and MCPResult as the latter does not keep a record of the field's length which the new functionality depends on. Needs to be discussed).
* Enable all *reasonable* warnings for all build configurations and fix a few ↵stuconnolly2010-04-261-1/+1
| | | | of them.
* - changed the query locking mechanism for MCPConnection to be more thread ↵jakob2010-04-161-12/+32
| | | | | | | | safe. From now on, always use [self lockConnection] rather than [queryLock lock], independent of what thread you are running on - A warning is written to the console when the connection is unlocked multiple times (to identify potential race conditions) - modified MCPStreamingResult to ensure it only closes the connection once - added a check to prevent arrow key navigation past the last row
* Minor MCPKit tidy up, including the resolution of potential issues raised ↵stuconnolly2010-03-261-2/+2
| | | | during static analysis.
* - Move streaming query result connection unlocking to the download thread ↵rowanbeentje2010-03-181-3/+4
| | | | rather than the data processing thread. This ensures the connection unlock is walys called - even when no data is present - thus addressing Issue #594. (Prior to r1931 manual memory management caught this case anyway)
* - Make a number of changes to attempt to improve disconnection/quit ↵rowanbeentje2010-03-161-1/+6
| | | | | | | | | crashes: prevent multiple disconnects, add more checks, cancel current queries, and add a tiny delay to allow mysql cleanup. - Alter MCPStreamingResult to no longer return a retained instance, setting up correct result disposal on autorelease but changing callers to retain as soon as they receive. - Review and change a number of local variables shadowing/shielding other local or global variables.
* Following a manual code review, fix some local variables overriding global ↵rowanbeentje2010-03-151-1/+1
| | | | variables, a few leaks, and additional nil setting/checking to prevent overreleases or releases of random areas of memory.
* - Ensure all results for server variable requests are returned as strings, ↵rowanbeentje2010-01-031-2/+2
| | | | | | | to avoid binary-mode result issues with certain versions of MySQL (including 4.1.14). This should address Issue #509. - TableDocument now requests the server version string from MCPConnection, aiding caching
* - Make a change to the area covered by threading locks in ↵rowanbeentje2009-11-281-4/+2
| | | | MCPStreamingConnection for a ~10-15% speedup in CPU-bound loops (eg data sets with lots of rows but little data) by reducing lock contention. (To be tested against #463)
* - Fix a couple of thread safety issues in TableContent, and attempt to fix ↵rowanbeentje2009-11-241-4/+43
| | | | | | | an occasional crasher when getting table cells by adding a retain - Alter MCPStreamingResult to use pthread mutexes in a further attempt to address Issue #463
* - Replace the LIMIT interface on the content view with a pagination control ↵rowanbeentje2009-11-231-2/+2
| | | | | | | | at the bottom. This addresses the last of Issue #49 and implements Issue #133; jump-to and two prefs affecting loading are available in a popup when clicking the pagination interface. - Format row counts at the bottom of the content pane - Increase the MCPStreamingResult buffer for a stronger workaround for #463
* - Keep a buffer of at least one full row between the downloading and ↵rowanbeentje2009-11-201-3/+6
| | | | processing rows - eg don't process the newly downloaded rows at once - as a workaround for Issue #463
* - Correctly report errors triggered *during* result download for streaming ↵rowanbeentje2009-11-161-0/+5
| | | | results. This improves partial content displays (using the new code as of r1530) and also improves custom query error reporting.
* - Make some thread safety improvements to try to address Issue #460rowanbeentje2009-11-161-1/+1
|
* - Add support for createing fields of type BINARY and VARBINARY in the ↵stuconnolly2009-10-211-17/+31
| | | | | | | structure view. Fixes issue #223. - Fix for correctly displaying data within fields of type BINARY/VARBINARY. Fixes issue #348.
* Make the MCPkit framework truly 64 bit compatible by using the appropriate ↵stuconnolly2009-08-261-3/+3
| | | | data types.
* Alter CustomQuery to use StreamingResult to download and process result sets:rowanbeentje2009-08-261-2/+46
| | | | | | | - 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
* - Fix NSLock console linesrowanbeentje2009-08-251-2/+5
| | | | | | | - Speed up table content processing a bit - Make the table content download/processing determinate where an approximate row count is available - Clean up table content source, assuming MCPStreamingResult will remain in use
* • bug fixed for _downloadAllDataBibiko2009-08-201-183/+177
| | | | | - do not check "if (rowDataLength)" due to the fact that a row could have the length 0 ( if all columns are set to NULL ), otherwise the entire row will be set to NULL and this causes a mismatch in the number of columns for that row later on • minor code cleaning (indentions)
* - Change MCPStreamingResult to use a safer streaming mode by default - ↵rowanbeentje2009-08-201-120/+314
| | | | | | | download all results as fast as possible from the server, to avoid blocking, but do so in a background thread to allow results processing to start as soon as data is available. Many thanks to Hans-Jörg Bibiko for assistance with this. - Add an option to the SQL export dialog to allow selection of the full-streaming method, with a warning that it may block table UPDATES/INSERTS.
* - Add a note to warn about use of MCPStreamingResultrowanbeentje2009-08-171-0/+8
|
* Rework SQL export:rowanbeentje2009-08-171-0/+203
- Added an MCPStreamingResult class to MCPKit, to allow streaming results from the server including fast array access of each row - Tweak SQL export to use the streaming result class and to keep memory usage lower End result is generally faster exports, more accurate progress bars, and much much lower (and consistent) memory usage.