DOCUMENTATION TO DO LIST
-1. Variances from CommonSQL
-
- - Ideally, this will be extremely minimal
-
- - The SQL syntax state functions are macros in CLSQL.
+1. Variances from CommonSQL (Ideally, this will be extremely minimal)
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, QUERY, DO-QUERY and
- MAP-QUERY.
-
- - New types such as wall-time, boolean, and bigint
+3. CLSQL extensions to CommonSQL
- SQL operators: group-by, limit, not-null, ==, is, having, the, uplike,
- 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*
-
- - 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.
+ view-class, coalesce, except, exists, substring, concat
- - DROP-INDEX: keyword arg :on (for MySQL).
-
- - DEF-VIEW-CLASS: DB-CONSTRAINTS, DB-TYPE and VOID-VALUE 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.
-
- - Tranactions: AUTOCOMMIT
+ - SELECT: additional keyword arguments accepted include :INNER-JOIN and :ON.
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.
-
- 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.
+ - ODBC
+- ORACLE