aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/settings.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2015-01-22 11:26:24 -0500
committerGravatar Adam Chlipala <adam@chlipala.net>2015-01-22 11:26:24 -0500
commitd3e13c67397dd99d4aa30681c05a02cd31d9e386 (patch)
treec854b205dda5a0e0cfcb2e10684db40c574ed5b9 /src/settings.sml
parentdf953c3e45f9360ee3523ebf0541bdf962fbe7b9 (diff)
Fix case issue in name mangling for MySQL
Diffstat (limited to 'src/settings.sml')
-rw-r--r--src/settings.sml45
1 files changed, 38 insertions, 7 deletions
diff --git a/src/settings.sml b/src/settings.sml
index 343ea358..19ee0b4a 100644
--- a/src/settings.sml
+++ b/src/settings.sml
@@ -744,15 +744,46 @@ fun capitalize s =
"" => ""
| _ => str (Char.toUpper (String.sub (s, 0))) ^ String.extract (s, 1, NONE)
+val allLower = CharVector.map Char.toLower
+
val mangle = ref true
fun setMangleSql x = mangle := x
-fun mangleSqlTable s = if !mangle then "uw_" ^ capitalize s
- else if #name (currentDbms ()) = "mysql" then capitalize s
- else lowercase s
-fun mangleSql s = if !mangle then "uw_" ^ s
- else if #name (currentDbms ()) = "mysql" then lowercase s
- else lowercase s
-fun mangleSqlCatalog s = if !mangle then "uw_" ^ s else lowercase s
+
+fun mangleSqlTable s =
+ if #name (currentDbms ()) = "mysql" then
+ if !mangle then
+ "uw_" ^ allLower s
+ else
+ allLower s
+ else
+ if !mangle then
+ "uw_" ^ capitalize s
+ else
+ lowercase s
+
+fun mangleSql s =
+ if #name (currentDbms ()) = "mysql" then
+ if !mangle then
+ "uw_" ^ allLower s
+ else
+ allLower s
+ else
+ if !mangle then
+ "uw_" ^ s
+ else
+ lowercase s
+
+fun mangleSqlCatalog s =
+ if #name (currentDbms ()) = "mysql" then
+ if !mangle then
+ "uw_" ^ allLower s
+ else
+ allLower s
+ else
+ if !mangle then
+ "uw_" ^ s
+ else
+ lowercase s
val html5 = ref false
fun setIsHtml5 b = html5 := b