(* DO NOT EDIT MANUALLY *) (* *) (* generated by sqlgg 0.2.2-79-gba19c51 on 2009-07-20T07:22Z *) (* visit http://ygrek.org/p/sqlgg/ *) module Make (T : Sqlgg_traits.M) = struct let create_greeting db = T.execute db "CREATE TABLE IF NOT EXISTS greeting (jid varchar, room varchar, msg varchar)" (fun _ -> ()) let create_gr_index db = T.execute db "CREATE UNIQUE INDEX IF NOT EXISTS gr_index ON greeting (jid, room)" (fun _ -> ()) let create_users db = T.execute db "CREATE TABLE IF NOT EXISTS users (jid varchar, room varchar, nick varchar, last integer, action varchar, reason varchar)" (fun _ -> ()) let create_users_index db = T.execute db "CREATE INDEX IF NOT EXISTS users_index on users (jid, room)" (fun _ -> ()) let get_greeting db ~jid ~room callback = let invoke_callback stmt = callback (T.get_column_Text stmt 0) in let set_params stmt = T.set_param_Text stmt 0 jid; T.set_param_Text stmt 1 room; () in T.select db "SELECT msg FROM greeting WHERE jid=@jid AND room=@room" set_params invoke_callback let add_greeting db ~jid ~room ~msg = let set_params stmt = T.set_param_Text stmt 0 jid; T.set_param_Text stmt 1 room; T.set_param_Text stmt 2 msg; () in T.execute db "INSERT OR REPLACE INTO greeting (jid, room, msg) VALUES (@jid,@room,@msg)" set_params let get_last_by_nick db ~nick ~room callback = let invoke_callback stmt = callback (T.get_column_Int stmt 0) in let set_params stmt = T.set_param_Text stmt 0 nick; T.set_param_Text stmt 1 room; () in T.select db "SELECT last FROM users where nick=@nick AND room=@room" set_params invoke_callback let get_last_by_jid db ~jid ~room callback = let invoke_callback stmt = callback (T.get_column_Int stmt 0) in let set_params stmt = T.set_param_Text stmt 0 jid; T.set_param_Text stmt 1 room; () in T.select db "SELECT last FROM users where jid=@jid AND room=@room" set_params invoke_callback let update_user_by_nick db ~last ~action ~reason ~nick ~room = let set_params stmt = T.set_param_Int stmt 0 last; T.set_param_Text stmt 1 action; T.set_param_Text stmt 2 reason; T.set_param_Text stmt 3 nick; T.set_param_Text stmt 4 room; () in T.execute db "UPDATE users SET last=@last, action=@action, reason=@reason WHERE nick=@nick AND room=@room" set_params let update_user_by_jid db ~last ~action ~reason ~jid ~room = let set_params stmt = T.set_param_Int stmt 0 last; T.set_param_Text stmt 1 action; T.set_param_Text stmt 2 reason; T.set_param_Text stmt 3 jid; T.set_param_Text stmt 4 room; () in T.execute db "UPDATE users SET last=@last, action=@action, reason=@reason WHERE jid=@jid AND room=@room" set_params let add_user db ~jid ~room ~nick ~last ~action ~reason = let set_params stmt = T.set_param_Text stmt 0 jid; T.set_param_Text stmt 1 room; T.set_param_Text stmt 2 nick; T.set_param_Int stmt 3 last; T.set_param_Text stmt 4 action; T.set_param_Text stmt 5 reason; () in T.execute db "INSERT INTO users VALUES (@jid,@room,@nick,@last,@action,@reason)" set_params let find_user db ~nick ~room = let get_row stmt = (T.get_column_Text stmt 0), (T.get_column_Int stmt 1), (T.get_column_Text stmt 2), (T.get_column_Text stmt 3) in let set_params stmt = T.set_param_Text stmt 0 nick; T.set_param_Text stmt 1 room; () in T.select1 db "SELECT jid, last, action, reason FROM users WHERE nick=@nick AND room=@room ORDER BY last DESC LIMIT 1" set_params get_row end (* module Make *)