Mercurial > hg > amuse
diff implementations/meredith/database-setup.lisp @ 215:4eceac78e7c6
add minimal backend for Dave Meredith's data
Ignore-this: 91608f727967a4c5709bd41634ab9ae2
darcs-hash:20090524193956-16a00-038e6f7cb235dea4e7efcc70c4d1a7bc7fd402a6.gz
committer: Jamie Forth <j.forth@gold.ac.uk>
author | j.forth <j.forth@gold.ac.uk> |
---|---|
date | Thu, 24 Feb 2011 11:23:18 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/implementations/meredith/database-setup.lisp Thu Feb 24 11:23:18 2011 +0000 @@ -0,0 +1,61 @@ +(cl:in-package #:amuse-meredith) + +(defun create-meredith-tables (database) + (%create-compositions-table database) + (%create-events-table database)) + +(defun drop-meredith-tables (database) + (%drop-compositions-table database) + (%drop-events-table database)) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Helper functions + +(defun %create-compositions-table (database) + #.(clsql:locally-enable-sql-reader-syntax) + (clsql:create-table "meredith_compositions" + '(([|composition-id|] clsql:smallint :unsigned + :not-null :auto-increment :primary-key) + ([|description|] (clsql:varchar 255) + :not-null)) + :database database + :transactions t) + #.(clsql:locally-disable-sql-reader-syntax)) + +(defun %create-events-table (database) + #.(clsql:locally-enable-sql-reader-syntax) + (clsql:create-table "meredith_events" + '(([|composition-id|] clsql:smallint :unsigned + :not-null) + ([|event-id|] clsql:smallint :unsigned + :not-null :auto-increment :unique) + ([|tatum-on|] clsql:smallint :unsigned :not-null) + ([|pitch-name|] (clsql:varchar 32) :not-null) + ([|tatum-dur|] clsql:smallint :unsigned :not-null) + ([|voice|] clsql:smallint :unsigned :not-null) + ([|tactus-on|] clsql::float :unsigned :not-null) + ([|tactus-dur|] clsql::float :unsigned :not-null) + ([|crot-on|] clsql::float :unsigned :not-null) + ([|crot-dur|] clsql::float :unsigned :not-null) + ([|midi-note-number|] clsql:smallint :unsigned :not-null) + ([|chrom-pitch|] clsql:smallint :unsigned :not-null) + ([|morph-pitch|] clsql:smallint :unsigned :not-null) + ([|tatum-on-ms|] clsql:smallint :unsigned :not-null) + ([|tatum-dur-ms|] clsql:smallint :unsigned :not-null) + ([|beat-on-ms|] clsql:smallint :unsigned :not-null) + ([|beat-dur-ms|] clsql:smallint :unsigned :not-null) + ([|crot-on-ms|] clsql:smallint :unsigned :not-null) + ([|crot-dur-ms|] clsql:smallint :unsigned :not-null)) + :constraints '("PRIMARY KEY (composition_id, event_id)") + :database database + :transactions t) + #.(clsql:locally-disable-sql-reader-syntax)) + +(defun %drop-compositions-table (database) + (clsql:drop-table "meredith_compositions" + :database database)) + +(defun %drop-events-table (database) + (clsql:drop-table "meredith_events" + :database database))