view base/database/datasets-setup.lisp @ 233:eb4d239f5437

add some time-related generic functions to base Ignore-this: 8ad91dcfa5c8a0301c29dda7d2f27802 darcs-hash:20100212101520-16a00-6821cd98b78bf27be148e3e7e4b46c8f0b80928b.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 e1842efb1dd4
children
line wrap: on
line source
(cl:in-package #:amuse-database-admin)

(defun create-datasets-table (&optional (database *amuse-database*))
  (%create-datasets-table database)
  (%create-datasets-join-table database))

(defun drop-datasets-table (&optional (database *amuse-database*))
  (%drop-datasets-table database)
  (%drop-datasets-join-table database))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Helper functions

(defun %create-datasets-table (database)
  #.(clsql:locally-enable-sql-reader-syntax)
  (clsql:create-table "amuse_datasets"
		      '(([|dataset-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-datasets-join-table (database)
  #.(clsql:locally-enable-sql-reader-syntax)
  (clsql:create-table "amuse_datasets_join"
		      '(([|dataset-id|] clsql:smallint :unsigned
			 :not-null)
			([|implementation-id|] clsql:smallint
			 :unsigned :not-null)
			([|composition-id|] clsql:smallint :not-null))
		      :constraints '("KEY (dataset_id)")
		      :database database
		      :transactions t)
  #.(clsql:locally-disable-sql-reader-syntax))

(defun %drop-datasets-table (database)
  (clsql:drop-table "amuse_datasets"
		    :database database
		    :if-does-not-exist :ignore))

(defun %drop-datasets-join-table (database)
  (clsql:drop-table "amuse_datasets_join"
		    :database database
		    :if-does-not-exist :ignore))