From 067c8d9d0e11ee60eed428a9f8472c2e1e6edff0 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Wed, 22 Aug 2012 08:46:32 -0400 Subject: show_sql_query --- lib/ur/basis.urs | 3 +++ src/monoize.sml | 6 ++++++ tests/showSql.ur | 5 +++++ tests/showSql.urp | 3 +++ 4 files changed, 17 insertions(+) create mode 100644 tests/showSql.ur create mode 100644 tests/showSql.urp diff --git a/lib/ur/basis.urs b/lib/ur/basis.urs index 4777be81..1bfd9da6 100644 --- a/lib/ur/basis.urs +++ b/lib/ur/basis.urs @@ -641,6 +641,9 @@ val query : tables ::: {{Type}} -> exps ::: {Type} -> state -> transaction state +val show_sql_query : freeTables ::: {{Type}} -> freeAggs ::: {{Type}} -> tables ::: {{Type}} -> exps ::: {Type} + -> show (sql_query freeTables freeAggs tables exps) + (*** Database mutators *) diff --git a/src/monoize.sml b/src/monoize.sml index 1b9c97ed..b5e2a5b6 100644 --- a/src/monoize.sml +++ b/src/monoize.sml @@ -1257,6 +1257,12 @@ fun monoExp (env, st, fm) (all as (e, loc)) = in ((L'.EAbs ("s", s, s, (L'.ERel 0, loc)), loc), fm) end + | L.ECApp ((L.ECApp ((L.ECApp ((L.ECApp ((L.EFfi ("Basis", "show_sql_query"), _), _), _), _), _), _), _), _) => + let + val s = (L'.TFfi ("Basis", "string"), loc) + in + ((L'.EAbs ("s", s, s, (L'.ERel 0, loc)), loc), fm) + end | L.ECApp ((L.EFfi ("Basis", "mkShow"), _), t) => let val t = monoType env t diff --git a/tests/showSql.ur b/tests/showSql.ur new file mode 100644 index 00000000..c373b21c --- /dev/null +++ b/tests/showSql.ur @@ -0,0 +1,5 @@ +table t : { A : int } + +fun main () : transaction page = return + {[(SELECT t.A FROM t ORDER BY t.A DESC) : sql_query [] [] _ _]} + diff --git a/tests/showSql.urp b/tests/showSql.urp new file mode 100644 index 00000000..415248cd --- /dev/null +++ b/tests/showSql.urp @@ -0,0 +1,3 @@ +database dbname=test + +showSql -- cgit v1.2.3