summaryrefslogtreecommitdiff
path: root/src/settings.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-06-28 13:49:32 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-06-28 13:49:32 -0400
commit5404041e9b6c6c8bba38c58e510327c129df4cc7 (patch)
treea31efa1a10c57b3b2db7f7ba7008b4871a70e2a6 /src/settings.sml
parentb43844e26af1f616ffb38e1b61a3f431218a63cd (diff)
Start of multi-DBMS support
Diffstat (limited to 'src/settings.sml')
-rw-r--r--src/settings.sml22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/settings.sml b/src/settings.sml
index 845683a7..ed3d1f14 100644
--- a/src/settings.sml
+++ b/src/settings.sml
@@ -274,4 +274,26 @@ val debug = ref false
fun setDebug b = debug := b
fun getDebug () = !debug
+type dbms = {
+ name : string,
+ header : string,
+ link : string,
+ global_init : Print.PD.pp_desc,
+ init : string * (string * int) list -> Print.PD.pp_desc
+}
+
+val dbmses = ref ([] : dbms list)
+val curDb = ref ({name = "",
+ header = "",
+ link = "",
+ global_init = Print.box [],
+ init = fn _ => Print.box []} : dbms)
+
+fun addDbms v = dbmses := v :: !dbmses
+fun setDbms s =
+ case List.find (fn db => #name db = s) (!dbmses) of
+ NONE => raise Fail ("Unknown DBMS " ^ s)
+ | SOME db => curDb := db
+fun currentDbms () = !curDb
+
end