summaryrefslogtreecommitdiff
path: root/strings/conf_to_src.c
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2016-09-06 12:50:02 +0400
committerAlexander Barkov <bar@mariadb.org>2016-09-06 12:50:02 +0400
commitee19806b8e6bb00fa1cd547fe3e75193859d300d (patch)
tree27568e9cc17e2717785af028c65deb912731bfb9 /strings/conf_to_src.c
parente4f6fd5e1252f8c68f449fe820bae88c18bca8f5 (diff)
downloadmariadb-git-ee19806b8e6bb00fa1cd547fe3e75193859d300d.tar.gz
MDEV-9711 NO PAD collations
Based on the patch from Daniil Medvedev (a Google Summer of Code task)
Diffstat (limited to 'strings/conf_to_src.c')
-rw-r--r--strings/conf_to_src.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/strings/conf_to_src.c b/strings/conf_to_src.c
index 1382ec69a0a..c7f25331534 100644
--- a/strings/conf_to_src.c
+++ b/strings/conf_to_src.c
@@ -338,16 +338,23 @@ print_array_ref(FILE *f,
}
+static const char *nopad_infix(CHARSET_INFO *cs)
+{
+ return (cs->state & MY_CS_NOPAD) ? "_nopad" : "";
+}
+
+
void dispcset(FILE *f,CHARSET_INFO *cs)
{
fprintf(f,"{\n");
fprintf(f," %d,%d,%d,\n",cs->number,0,0);
- fprintf(f," MY_CS_COMPILED%s%s%s%s%s,\n",
+ fprintf(f," MY_CS_COMPILED%s%s%s%s%s%s,\n",
cs->state & MY_CS_BINSORT ? "|MY_CS_BINSORT" : "",
cs->state & MY_CS_PRIMARY ? "|MY_CS_PRIMARY" : "",
cs->state & MY_CS_CSSORT ? "|MY_CS_CSSORT" : "",
cs->state & MY_CS_PUREASCII ? "|MY_CS_PUREASCII" : "",
- cs->state & MY_CS_NONASCII ? "|MY_CS_NONASCII" : "");
+ cs->state & MY_CS_NONASCII ? "|MY_CS_NONASCII" : "",
+ cs->state & MY_CS_NOPAD ? "|MY_CS_NOPAD" : "");
if (cs->name)
{
@@ -402,10 +409,11 @@ void dispcset(FILE *f,CHARSET_INFO *cs)
fprintf(f," 0, /* escape_with_backslash_is_dangerous */\n");
fprintf(f," 1, /* levels_for_order */\n");
fprintf(f," &my_charset_8bit_handler,\n");
+
if (cs->state & MY_CS_BINSORT)
- fprintf(f," &my_collation_8bit_bin_handler,\n");
+ fprintf(f," &my_collation_8bit%s_bin_handler,\n", nopad_infix(cs));
else
- fprintf(f," &my_collation_8bit_simple_ci_handler,\n");
+ fprintf(f," &my_collation_8bit_simple%s_ci_handler,\n", nopad_infix(cs));
fprintf(f,"}\n");
}