X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=doc%2FTODO;h=3220070454f4de65fb5a4157c4c84eaf54fdd321;hp=c55c54bf59ee33ac822531068e515f19642c203c;hb=4c89485f5cdb21a334de9c35adfded30db0c75e7;hpb=2051cd1a64edc450319626f8ff1417c36e08a063 diff --git a/doc/TODO b/doc/TODO index c55c54b..3220070 100644 --- a/doc/TODO +++ b/doc/TODO @@ -4,29 +4,80 @@ DOCUMENTATION TO DO LIST - Ideally, this will be extremely minimal + - The SQL syntax state functions are macros in CLSQL. + 2. Underdocumented CommonSQL features: - Retrieval immediate - - SQL operators: ||, SUBSTR, EXCEPT, INTERSECT, UNION ... + - SQL operators: ||, SUBSTR, MINUS, INTERSECT, UNION, NVL 2. CLSQL extensions to CommonSQL - - RESULT-TYPES, FIELD-NAMES keywords for SELECT and QUERY + - RESULT-TYPES, FIELD-NAMES keywords for SELECT, QUERY, DO-QUERY and + MAP-QUERY. - New types such as wall-time, boolean, and bigint - SQL operators: group-by, limit, not-null, ==, is, having, the, uplike, - sql-view-class (just from a quick scan of operations.lisp) + sql-view-class, coalesce, except (just from a quick scan of + operations.lisp) - FDDL: list-views, view-exists-p, list-indexes, list-table-indexes, index-exists-p, create-sequence, drop-sequence, list-sequences, sequence-exists-p, sequence-next, sequence-last, set-sequence-position + - FDML: TRUNCATE-DATABASE, DESCRIBE-TABLE, FOR-EACH-ROW and large object + support. + - OODML: *db-auto-sync* -4. Documenting lower level, non-CommonSQL functions like connection - pools and database-query-result-set. Some of this is already done. + - SELECT: additional keyword arguments accepted include :LIMIT, :OFFSET, + :INNER-JOIN and :ON. + + - SQL-RECORDING-P: also accepts :both and :either values for the TYPE + parameter. + + - DROP-TABLE/DROP-VIEW/DROP-INDEX: keyword arg :if-does-not-exist. + + - DROP-INDEX: keyword arg :on (for MySQL). + + - DEF-VIEW-CLASS: DB-CONSTRAINTS and DB-TYPE slot options. + + - CREATE-TABLE: keyword args :TRANSACTIONS (for MySQL) and :CONSTRAINTS + description arg accepts optional DB-TYPE string. + + - transactions: START-TRANSACTION and IN-TRANSACTION-P. + + - FIND-DATABASE: :db-type keyword arg. + + - CONNECT: :make-default and :pool keyword args. + + +4. Documenting lower level, non-CommonSQL functions (some of this is already + done). + + - connection pools + - database-query-result-set + - with-default-database, with-database, create-database, probe-database, + destroy-database, list-databases. + + +5. Notes on any peculiarities of each of the backends (e.g., unsupported + features, notable extensions etc.). + + - MYSQL + + drop-index: requires a table to be specified with the :from parameter + views: mysql does not support views + queries: nested subqueries are not supported + syntax: doesn't support the sql concatenation operator (||). + doesn't support INTERSECT/EXCEPT set operations. + create-table: the transactions keyword arg controls whether the created + table is an InnoDB table (supporting transactions) or not. -5. Notes on any features unsupported by each of the backends. + - SQLITE + connection: specifying ":memory:" gives you an SQLite database in RAM. + create-view: column-list parameter not supported + syntax: doesn't support the sql SUBSTRING operator.