[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/emacsql 53b2e98515 131/427: Fill out README for new schema
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/emacsql 53b2e98515 131/427: Fill out README for new schema table constraints. |
Date: |
Tue, 13 Dec 2022 02:59:35 -0500 (EST) |
branch: elpa/emacsql
commit 53b2e98515284c17f13cf30cfa273ec847e48bbf
Author: Christopher Wellons <wellons@nullprogram.com>
Commit: Christopher Wellons <wellons@nullprogram.com>
Fill out README for new schema table constraints.
---
README.md | 33 +++++++++++++++++++++------------
1 file changed, 21 insertions(+), 12 deletions(-)
diff --git a/README.md b/README.md
index c3f7a0267b..e3beb5d452 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,8 @@ requests are synchronous.
Any [readable lisp value][readable] can be stored as a value in
Emacsql, including numbers, strings, symbols, lists, vectors, and
closures. Emacsql has no concept of "TEXT" values; it's all just lisp
-objects.
+objects. The lisp object `nil` corresponds 1:1 with `NULL` in the
+database.
Requires Emacs 24 or later and SQLite 3.7.15 or later.
@@ -52,21 +53,29 @@ shouldn't impact normal use of the database.
## Schema
-A table schema is a vector of column specification. A column
-identifier is a symbol and a specification can either be just this
-symbol or it can include constraints, such as type and uniqueness.
-Because Emacsql stores entire lisp objects as values, the only
-relevant types are `integer`, `float`, and `object` (default).
+A table schema is a vector of column specifications, or a list
+containing a vector of column specifications followed by table
+specifications. A column identifier is a symbol and a specification
+can either be just this symbol or it can include constraints. Because
+Emacsql stores entire lisp objects as values, the only relevant (and
+allowed) types are `integer`, `float`, and `object` (default).
-Additional columns constraints include `:primary` (aka `PRIMARY KEY`),
-`:unique`, `:non-nil` (aka `NOT NULL`), `:default`, and `:check`.
+Columns constraints include `:primary` (aka `PRIMARY KEY`), `:unique`,
+`:non-nil` (aka `NOT NULL`), `:default`, and `:check`.
+
+Table constraints can be `:primary`, `:unique`, and `:check`.
```el
-;; Example schema:
-[name (badge-no integer :primary :unique) address]
-```
+;; No constraints schema with four columns:
+[name id building room]
-The lisp object `nil` corresponds 1:1 with `NULL` in the database.
+;; Add some column constraints:
+[(name :unique) (id integer :primary) building room]
+
+;; Add some table constraints:
+([(name :unique) (id integer :primary) building room]
+ :unique [building room] :check ())
+```
## Operators
- [nongnu] elpa/emacsql 51224aab7a 288/427: Add unit test for last change., (continued)
- [nongnu] elpa/emacsql 51224aab7a 288/427: Add unit test for last change., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql c5845884f4 021/427: Rename type to column., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 7caa63c11e 023/427: Allow any sequence for table spec., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 963f221b82 049/427: Add expr expansion function., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 109664b88b 060/427: Memoize emacsql-expand., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 1fb97f7d4a 092/427: Drop unusable macro emacsql-with-connection., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql add06c47b9 117/427: Bring back :into for :replace (oops!)., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql d7a05db54e 080/427: Add :replace expander., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 0f0840ffbf 128/427: Add :default column constraint., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql bbe3031a50 130/427: Add table constraints., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 53b2e98515 131/427: Fill out README for new schema table constraints.,
ELPA Syncer <=
- [nongnu] elpa/emacsql 364c3cacb6 133/427: More advanced :from sources, again., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 99a8069389 135/427: Add support for foreign keys., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql e6ab07e16b 140/427: Switch to a friendlier name., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql bec6af6940 148/427: Add VACUUM., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 03aebdecd1 160/427: Rename :log option to :debug., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql bb221f6134 161/427: Drop .print command flushing., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 72b34f6522 173/427: Add some more autoloading., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 3229cd41af 180/427: Change the requirements for front-end implementations., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 431a3b325f 200/427: Toss "reap" and switch to new finalize with Cask., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql ed86b098ce 197/427: Add prefix arg to emacsql-show-last-sql., ELPA Syncer, 2022/12/13