* collations you get exactly what the collation says.
*/
for (p = result; *p; p++)
- *p = tolower_l((unsigned char) *p, mylocale->info.lt);
+ {
+ if (mylocale->is_default)
+ *p = pg_tolower((unsigned char) *p);
+ else
+ *p = tolower_l((unsigned char) *p, mylocale->info.lt);
+ }
}
}
}
* collations you get exactly what the collation says.
*/
for (p = result; *p; p++)
- *p = toupper_l((unsigned char) *p, mylocale->info.lt);
+ {
+ if (mylocale->is_default)
+ *p = pg_toupper((unsigned char) *p);
+ else
+ *p = toupper_l((unsigned char) *p, mylocale->info.lt);
+ }
}
}
}
*/
for (p = result; *p; p++)
{
- if (wasalnum)
- *p = tolower_l((unsigned char) *p, mylocale->info.lt);
+ if (mylocale->is_default)
+ {
+ if (wasalnum)
+ *p = pg_tolower((unsigned char) *p);
+ else
+ *p = pg_toupper((unsigned char) *p);
+ }
else
- *p = toupper_l((unsigned char) *p, mylocale->info.lt);
+ {
+ if (wasalnum)
+ *p = tolower_l((unsigned char) *p, mylocale->info.lt);
+ else
+ *p = toupper_l((unsigned char) *p, mylocale->info.lt);
+ }
wasalnum = isalnum_l((unsigned char) *p, mylocale->info.lt);
}
}
result->provider = collform->collprovider;
result->deterministic = collform->collisdeterministic;
+ result->is_default = false;
if (collform->collprovider == COLLPROVIDER_BUILTIN)
{
default_locale.provider = dbform->datlocprovider;
+ default_locale.is_default = true;
/*
* Default locale is currently always deterministic. Nondeterministic