TODO for the Ingres Ruby Driver Clean up ======== 1. Build and install 1. Make it easier, simpler and more foolproof 2. Auto detect II_SYSTEM 3. Detect Ingres 2.6 installation 2. Beautify C code 1. Re-factor code 1. For example - connect calls connect_with_credentials which in turn calls connect2ingres - needs to be simplified. 2. Organize the code 1. Order functions 2. Separate Ingres.c into separate functional areas, ala python dbi interface 3. Documentation 1. Indentation etc. 2. Document each function 1. Use rdoc tags to simplify the documentation process 2. Enter TODO tags to identify known issues Features ======== 1. Data type support 1. SQL Date Time 2. Money 3. Decimal 4. Float4/8 5. BigInt/Integer8 6. long nvarchar 2. Multiple concurrent connections 1. Current implementation uses a global variable to hold the OpenAPI connection information. In multi-threaded environments only a single connection can be maintained. In a multi-process environment, such as Apache-Prefork, only one connection per process can be made. 3. Concurrent result-sets 1. At the present results are returned as multi-dimensional array and the OpenAPI statement is closed. It might be useful to have ruby functions that can query the data values. 4. Scrollable cursors (IIAPI_VERSION_6) 1. Only required if an object is returned from Ingres.execute(). The current implementation's result set is not connected to OpenAPI and can be navigated using standard array functions. 5. It should be possible to alter the output from Ingres.table() to only user tables, only system tables or all tables (current default) 6. Determine if II_DATE_FORMAT=SWEDEN is required for Ruby or RoR. If the former this can be enforced on connect calling IIapi_setEnvParam() with IIAPI_EP_DATE_FORMAT. If it is required for RoR then there needs to be some sort of mechanism to set the date format. 1. Determine other localization needs 7. Compare the NCMEC adapter to the native adaptor, implementing missing changes 8. Add each method to ingres_adaptor.rb 1. Required for AR unit tests 9. Create a RubyGem? (installable package) Testing ======= 1. Improve test coverages from the active_record unit-tests 1. test_base.rb 2. All other AR unit tests 2. Enhance unit-tests for the ruby driver 1. At least cover data types, all methods and exceptions /* vim: ts=4 sw=4 expandtab fileencoding=utf-8 fileencoding=utf-8 */