Mercurial > urweb
diff src/mysql.sml @ 998:ad434669f299
Fix some MySQL hijinks
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Mon, 12 Oct 2009 18:16:42 -0400 |
parents | 6b1d960e2616 |
children | 16f7cb0891b6 |
line wrap: on
line diff
--- a/src/mysql.sml Fri Oct 09 09:50:26 2009 -0400 +++ b/src/mysql.sml Mon Oct 12 18:16:42 2009 -0400 @@ -73,19 +73,21 @@ fun checkRel (table, checkNullable) (s, xts) = let val sl = CharVector.map Char.toLower s + val both = "table_name IN ('" ^ sl ^ "', '" ^ s ^ "')" - val q = "SELECT COUNT(*) FROM information_schema." ^ table ^ " WHERE table_name = '" - ^ sl ^ "'" + val q = "SELECT COUNT(*) FROM information_schema." ^ table ^ " WHERE " ^ both - val q' = String.concat ["SELECT COUNT(*) FROM information_schema.columns WHERE table_name = '", - sl, - "' AND (", + val q' = String.concat ["SELECT COUNT(*) FROM information_schema.columns WHERE ", + both, + " AND (", String.concatWith " OR " (map (fn (x, t) => - String.concat ["(column_name = 'uw_", + String.concat ["(column_name IN ('uw_", CharVector.map Char.toLower (ident x), - "' AND data_type = '", + "', 'uw_", + ident x, + "') AND data_type = '", p_sql_type_base t, "'", if checkNullable then @@ -100,9 +102,9 @@ ")"]) xts), ")"] - val q'' = String.concat ["SELECT COUNT(*) FROM information_schema.columns WHERE table_name = '", - sl, - "' AND column_name LIKE 'uw_%'"] + val q'' = String.concat ["SELECT COUNT(*) FROM information_schema.columns WHERE ", + both, + " AND column_name LIKE 'uw_%'"] in box [string "if (mysql_query(conn->conn, \"", string q,