summaryrefslogtreecommitdiff
path: root/innobase/pars
diff options
context:
space:
mode:
authorheikki@hundin.mysql.fi <>2004-10-31 15:43:29 +0200
committerheikki@hundin.mysql.fi <>2004-10-31 15:43:29 +0200
commitd22a24d871bc3bfaec17621d23352f2da9473569 (patch)
treeb1dc2682b042c48923623d30c4590faa4b4b8fd8 /innobase/pars
parent35e8670301f854b5b1541cd39deaab2f0c046bbd (diff)
downloadmariadb-git-d22a24d871bc3bfaec17621d23352f2da9473569.tar.gz
row0mysql.c, pars0pars.c, eval0eval.c, dict0load.c, dict0dict.c, dict0crea.c:
Fix bug #3478: InnoDB's FOREIGN KEY tables treated table and database names as case-insensitive; RENAME TABLE t to T would hang in an endless loop if t had a foreign key constraint defined on it dict0dict.c: Fix bug #3478: InnoDB's FOREIGN KEY tables treated table and database names as case-insensitive; RENAME TABLE t to T would hang in an endless loop if t had a foreign key constraint defined on it; fix also a hang that would occur if one tried in ALTER TABLE or RENAME TABLE to create a foreign key constraint name that collided with another existing name
Diffstat (limited to 'innobase/pars')
-rw-r--r--innobase/pars/pars0pars.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/innobase/pars/pars0pars.c b/innobase/pars/pars0pars.c
index a4124672df0..5be0e52d0c8 100644
--- a/innobase/pars/pars0pars.c
+++ b/innobase/pars/pars0pars.c
@@ -259,9 +259,13 @@ pars_resolve_func_data_type(
dtype_set(que_node_get_data_type(node), DATA_VARCHAR,
DATA_ENGLISH, 0, 0);
} else if (func == PARS_TO_BINARY_TOKEN) {
- ut_a(dtype_get_mtype(que_node_get_data_type(arg)) == DATA_INT);
- dtype_set(que_node_get_data_type(node), DATA_VARCHAR,
+ if (dtype_get_mtype(que_node_get_data_type(arg)) == DATA_INT) {
+ dtype_set(que_node_get_data_type(node), DATA_VARCHAR,
DATA_ENGLISH, 0, 0);
+ } else {
+ dtype_set(que_node_get_data_type(node), DATA_BINARY,
+ 0, 0, 0);
+ }
} else if (func == PARS_TO_NUMBER_TOKEN) {
ut_a(dtype_get_mtype(que_node_get_data_type(arg))
== DATA_VARCHAR);