DOCUMENTATION TO DO LIST
-1. Variances from CommonSQL
-
- - Ideally, this will be extremely minimal
+1. Variances from CommonSQL (Ideally, this will be extremely minimal)
- The SQL syntax state functions are macros in CLSQL.
+ - CLSQL starts with in transaction AUTOCOMMIT mode. To begin a transaction,
+ START-TRANSACTION has to be called.
+
+
2. Underdocumented CommonSQL features:
- Retrieval immediate
- SQL operators: ||, SUBSTR, MINUS, INTERSECT, UNION, NVL
-2. CLSQL extensions to CommonSQL
- - RESULT-TYPES, FIELD-NAMES keywords for SELECT and QUERY
+3. CLSQL extensions to CommonSQL
- New types such as wall-time, boolean, and bigint
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: FOR-EACH-ROW, prepared statements and large object support.
- OODML: *db-auto-sync*
- 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.
+ - DEF-VIEW-CLASS: DB-CONSTRAINTS, DB-TYPE and VOID-VALUE slot options.
- - SQL-EXPRESSION: also accepts a :params keyword arg which is passed
4. Documenting lower level, non-CommonSQL functions (some of this is already
done).
- connection pools
- database-query-result-set
+
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
+ drop-index: requires a table to be specified with the :on 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.
+ FDDL: list-*/*-exists-p: :OWNER keyword argument ignored.
- 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.
+ FDDL: list-*/*-exists-p: :OWNER keyword argument ignored.
+
+ - ODBC
+ FDDL: list-*/*-exists-p: :OWNER keyword argument ignored.