X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-oracle%2FREADME;fp=db-oracle%2FREADME;h=3164ad4269c3e8c31674724e30667e8484eb4d77;hb=7b296f477e74a6db6e319e6cb6dff16be44e6a60;hp=0000000000000000000000000000000000000000;hpb=b0770ce015dd263398ea13f1df810173574a6752;p=clsql.git diff --git a/db-oracle/README b/db-oracle/README new file mode 100644 index 0000000..3164ad4 --- /dev/null +++ b/db-oracle/README @@ -0,0 +1,74 @@ +This is the header of the cadabra source file. + + +;;;; a CMUCL/OCI implementation of a subset of the DBI interface +;;;; +;;;; The original version of this code was copyright (c) 1999-2000 Cadabra Inc. +;;;; It was placed in the public domain by Cadabra in January 2000. +;;;; +;;;; The implementors of the original version were Winton Davies +;;;; and William Newman . +;;;; The code will be maintained by Winton Davies. + +;;;; known issues: +;;;; * The code will leak C resources if errors occur in the the wrong +;;;; places, since it doesn't wrap its allocation/deallocation +;;;; logic in the necessary EVAL-WHENs to prevent this. (This could be +;;;; easily be an issue for long-running processes which recover from +;;;; database errors instead of simply terminating when they occur. It's +;;;; not an issue for programs which consider database errors so abnormal +;;;; that they die immediately when they encounter one.) +;;;; * Instead of reading Oracle header files automatically, this code +;;;; uses constants, types, and function signatures manually transcribed +;;;; from the Oracle header files. Thus, changes in the header files +;;;; may require manual maintenance of the code. (This version was written +;;;; for Oracle 8.1.5.) +;;;; * various KLUDGEs noted in the code + +;;;; log: +;;;; 6. * moved test suite to separate file +;;;; * removed trailing spaces from all strings returned from database +;;;; * fixed error in LIST-ALL-DATABASE-TABLES interface: DB should be +;;;; a &KEY argument, not an &OPTIONAL argument +;;;; 7. * merged Winton's code to allow the SQL function to ask OCI +;;;; whether an operation returns a table, and not to worry about +;;;; the TYPE keyword argument if no table is returned +;;;; * reduced +N-BUF-ROWS+ from 1000 to reduce probability of +;;;; hitting CMUCL 18b 8Mb-of-C-data limit +;;;; * changed NOT-USED argument of FETCH-ROW to EOF-ERRORP, to +;;;; conform to Allegro interface +;;;; * found apparent bug in OCI (wrong size of value returned for the +;;;; +oci-attr-data-size+ attribute); added workaround +;;;; * found and documented the unnecessariness of "workaround" for +;;;; "WITH-ALIEN not working" (which was actually a conceptual error +;;;; on WHN's part, expecting WITH-ALIEN to work the same way as +;;;; MAKE-ALIEN, not expecting one less level of indirection) +;;;; * cleaned up NULLS-OK-USE-THIS-ERRHP weirdness and inflexibility, +;;;; splitting the one argument into separate NULLS-OK and ERRHP +;;;; arguments +;;;; * added :ERRHP optional arguments to various OERR expressions, +;;;; so that now failures are more likely to generate informative +;;;; error messages instead of just "OCI Error (and no ERRHP +;;;; available to find subcode)" +;;;; 8. * added code to deallocate C resources +;;;; 9. * Added in an extra field for DATE-FORMAT and DATE-FORMAT-LENGTH +;;;; Munged the code for datatype and colsize. Winton Davies. +;;;; 10. * cleaned up remnants of old date-is-fixed-length-field design +;;;; assumption, getting rid of +OCi-date-bytes+ +;;;; * reduced consing in FETCH-ROW and associated functions +;;;; * replaced WARN with IWARN for implementor-only warnings +;;;; 11. * fixed bad (THE (ALIEN (* FLOAT)) B) declaration for +;;;; SQLT_FLT buffers (should be (ALIEN (* DOUBLE)) instead; +;;;; and for some reason fell through the cracks of CMUCL's +;;;; "declarations are assertions" principle) +;;;; * deleted various FIXME notes a la "does this code ever get +;;;; exercised?" and "are these really all the cases we need?" +;;;; * changed the IWARN call to a KLUDGE comment, deleted IWARN +;;;; * tidied up comments +;;;; * changed page breaks from lots-of-semicolons Cadabra style +;;;; to ^L CMUCL style +;;;; * declared DBI-ERROR to be INLINE +;;;; * fixed definition of +oci-htype-env+ +;;;; * reviewed and corrected C resource deallocation code +;;;; 12. * Made load-foreign depend on ORACLE-HOME for more portability. +