From 1be7e54fa70a40b16164f69e7153ada0e4935994 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sat, 31 Oct 2009 15:51:50 -0400 Subject: Start of bidding implementation compiles --- demo/more/bid.ur | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 demo/more/bid.ur (limited to 'demo/more/bid.ur') diff --git a/demo/more/bid.ur b/demo/more/bid.ur new file mode 100644 index 00000000..5bcaea3a --- /dev/null +++ b/demo/more/bid.ur @@ -0,0 +1,34 @@ +functor Make(M : Conference.INPUT) = struct + open M + + table bid : {User : userId, Paper : paperId, Interest : char} + PRIMARY KEY (User, Paper) + + table assignment : {User : userId, Paper : paperId} + PRIMARY KEY (User, Paper) + + fun isOnPc id = + ro <- oneOrNoRows1 (SELECT user.OnPc + FROM user + WHERE user.Id = {[id]}); + return (case ro of + None => False + | Some r => r.OnPc) + + val linksForPc = + let + fun bid () = + me <- getLogin; + return Bidding time! + in + +
  • Bid on papers
  • +
    + end + + con yourPaperTables = [Assignment = _] + constraint [Paper] ~ yourPaperTables + fun joinYourPaper [tabs] [paper] [[Paper] ~ tabs] [[Paper] ~ _] [tabs ~ yourPaperTables] [[Id] ~ paper] + (fi : sql_from_items ([Paper = [Id = paperId] ++ paper] ++ tabs)) = + sql_inner_join fi (sql_from_table [#Assignment] assignment) (WHERE Paper.Id = Assignment.Paper) +end -- cgit v1.2.3