changeset 235:ea45a3d0730c

Add some generic functions for querying the database in amuse-database-admin. Ignore-this: d2516f9e731f2e7a079d8a094c70e927 How much general functionality should there be here? The basic idea is a generalisation of mtp-admin, but there is a lot still to do. darcs-hash:20100223150341-16a00-46cb41323450b18e21a4fff2cdaf7d38e9c572dc.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 e3353261523e
children a5d065905f6d
files base/database/generics.lisp base/database/package.lisp
diffstat 2 files changed, 23 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/base/database/generics.lisp	Thu Feb 24 11:23:18 2011 +0000
+++ b/base/database/generics.lisp	Thu Feb 24 11:23:18 2011 +0000
@@ -1,3 +1,24 @@
 (cl:in-package #:amuse-database-admin)
 
 (defgeneric make-composition-identifier (package composition-id))
+
+
+;;;====================================================================
+;;; Generic functions for querying the database
+;;;
+;;; FIXME: how sane is this? The idea was to have a general mtp-admin.
+;;;
+;;; What about arbitrary SQL conditions? Might be useful for general
+;;; searching, and defining new datasets (which I currently do by
+;;; writing the resuls of a SQL query to a file (e.g. `all the Beatles
+;;; songs'), and then reading the file into lisp). Amuse-midi-db
+;;; implements these methods.
+;;;
+;;; Also, should this kind of generality be extended to data import
+;;; and export?
+;;; =====================================================================
+
+(defgeneric list-collections (package-object &key compositions stream))
+
+(defgeneric list-compositions (package-object &key
+					      collection-identifier stream))
--- a/base/database/package.lisp	Thu Feb 24 11:23:18 2011 +0000
+++ b/base/database/package.lisp	Thu Feb 24 11:23:18 2011 +0000
@@ -13,6 +13,8 @@
  	   #:make-amuse-dataset-identifier
 
 	   #:make-composition-identifier ; generics
+	   #:list-collections
+	   #:list-compositions
 
 	   #:register-new-implementation ; implementation functions
 	   #:implementation-package