X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=TODO;h=fee5fe3e7ab461357f01334fd37a8dd7aac38b77;hb=89465a80557c2b03b9701b4239a34ded292eb018;hp=a648df17ccdab28fde7907f956a10aa5fe9863f6;hpb=6cee91ae8461fd78454da4781c008398ad06abe2;p=clsql.git diff --git a/TODO b/TODO index a648df1..fee5fe3 100644 --- a/TODO +++ b/TODO @@ -1,57 +1,31 @@ -GENERAL +TESTS TO ADD -* test on mcl. SCL no longer affordable to individuals; -* implement remaining functions for CLSQL AODBC backend; -* port Oracle backend to UFFI. +* CACHE-TABLE-QUERIES +* Test that ":db-kind :key" adds an index for that key. This is complicated by different + backends showing autogenerated primary key in different ways. +* Large object testing +* Test bigint type +* :db-constraint tests +* *update-records-on-make-instance* COMMONSQL SPEC * Missing: - CACHE-TABLE-QUERIES - *CACHE-TABLE-QUERIES-DEFAULT* - *DEFAULT-UPDATE-OBJECTS-MAX-LEN* UPDATE-OBJECT-JOINS - INSTANCE-REFRESHED - * Incompatible - - >> Initialisation and connection - - INITIALIZE-DATABASE-TYPE - o should initialise appropriate backend - - STATUS - o what is the behaviour in CommonSQL (esp :full parameter)? - - >> The functional sql interface SELECT - o should accept keyword arg :refresh and call INSTANCE-REFRESHED - o should return (values result-list field-names) - o should coerce values returned as strings to appropriate lisp type - - QUERY - o should return (values result-list field-names) - o should coerce values returned as strings to appropriate lisp type - - LIST-ATTRIBUTE-TYPES - o should return list of (attribute datatype precision scale nullable) - - + o keyword arg :refresh should function as advertised + >> The object-oriented sql interface DEF-VIEW-CLASS - o get :target-slot working o implement :retrieval :immediate - DO-QUERY,MAP-QUERY,LOOP - o should work with object queries as well as functional ones - - >> Symbolic SQL syntax o Complete sql expressions (see operations.lisp) @@ -70,6 +44,20 @@ COMMONSQL SPEC o variables (e.g., table identifiers) should be instantiated at runtime +OPTIMIZATIONS + +* Revisit result-type list creation,perhaps caching +* Use an inner join for :target-slot in SELECTS rather than multiple + queries. For example, in the test suite: + SELECT address.addressid,address.street_number,... FROM address + INNER JOIN employee_address ON employe_address.address_id=address.address_id + AND emplid= + +POSSIBLE EXTENSIONS + +* port Oracle backend to UFFI +* large object support +* add support for prepared statements NOTES ABOUT THE BACKENDS @@ -77,9 +65,8 @@ NOTES ABOUT THE BACKENDS MYSQL drop-index: requires a table to be specified with the :from keyword parameter -transactions: don't seem to work views: mysql does not support views -queries: nested subqueries do not seem to work +queries: nested subqueries are not supported SQLITE