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.
+ - CLSQL starts with in transaction AUTOCOMMIT mode.
2. Underdocumented CommonSQL features:
- New types such as wall-time, boolean, and bigint
- SQL operators: group-by, limit, not-null, ==, is, having, the, uplike,
- sql-view-class, coalesce, except (just from a quick scan of
- operations.lisp)
-
- - FDML: FOR-EACH-ROW, prepared statements and large object support.
+ view-class, coalesce, except, exists, substring, concat
- 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.
- - transactions: START-TRANSACTION and IN-TRANSACTION-P.
-
- - Tranactions: AUTOCOMMIT
-
4. Documenting lower level, non-CommonSQL functions (some of this is already
done).
features, notable extensions etc.).
- MYSQL
-
- 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
+- ORACLE
- FDDL: list-*/*-exists-p: :OWNER keyword argument ignored.