Hi!

The fact that foreign key definitions do not honor lower_case_table_names=1
is mentioned in the manual. I have added the fix to this on the TODO list
for July 2002.

You have found the right place, this mailing list is the right place to
report bugs in InnoDB.

Best regards,

Heikki Tuuri
Innobase Oy
---
InnoDB - transactions, hot backup, and foreign key support for MySQL
See http://www.innodb.com, download MySQL-Max from http://www.mysql.com

----- Original Message -----
From: <[EMAIL PROTECTED]>
Newsgroups: mailing.database.mysql
Sent: Wednesday, May 22, 2002 9:52 PM
Subject: case-sensitivity broken in FK clause for MySQL+InnoDB


> >Description:
> When using MySQL with InnoDB table type, and turning on the
> table case-insensitivity flag in the config file
> (set-variable = lower_case_table_names=1), MySQL/InnoDB does not
> correctly handle the case-insensitivity of the target table name in
> the REFERENCES part of the FOREIGN KEY clause.  This is true for
> both the CREATE TABLE and ALTER TABLE variations.  Note the
> column names and the referer table name (in the case of the ALTER
> TABLE clause) are correctly treated as case insensitive.
>
> This problem may need to be posted to InnoDB, but I couldn't
> locate any method of notifying them of bug reports.
>
> Example script which shows the cases that work and the one that
> doesn't is attached in the How-To-Repeat.
> <precise description of the problem (multiple lines)>
> >How-To-Repeat:
> drop table if exists foo1;
> create table foo1(
>         pk1 integer NOT NULL,
>         primary key(pk1)
> ) type = innodb;
>
>
> ##
> ## This will work fine
> ##
> drop table if exists foo2;
> create table foo2(
>         pk1 integer NOT NULL,
>         fk1 integer,
>         foreign key (fk1) references foo1 (pk1),
>         index ix1 (fk1)
> ) type = innodb;
>
>
> ##
> ## As will this
> ##
> drop table if exists foo2;
> create table foo2(
>         pk1 integer NOT NULL,
>         fk1 integer,
>         foreign key (FK1) references foo1 (PK1),
>         index ix1 (fk1)
> ) type = innodb;
>
>
> ##
> ## But this won't
> ## In my case, the specific error was:
> ##    ERROR 1005: Can't create table './dbname/foo2.frm' (errno: 150)
> ##
> drop table if exists foo2;
> create table foo2(
>         pk1 integer NOT NULL,
>         fk1 integer,
>         foreign key (fk1) references FOO1 (pk1),
>         index ix1 (fk1)
> ) type = innodb;
>
>
> >Fix:
> <how to correct or work around the problem, if known (multiple lines)>
>
> >Submitter-Id: <submitter ID>
> >Originator: Eugene Bekker
> >Organization:
>  <organization of PR author (multiple lines)>
> >MySQL support: none
> >Synopsis: case-sensitivity broken in FK clause for MySQL+InnoDB
> >Severity: serious
> >Priority: medium
> >Category: mysql
> >Class: sw-bug
> >Release: mysql-3.23.50 (Official MySQL RPM)
>
> >Environment:
> RedHat 7.1
> Using pre-packaged 3.23.50 (Max) from www.mysql.com
> <machine, os, target, libraries (multiple lines)>
> System: Linux betelgeuse.powervision.com 2.4.2-2 #1 Sun Apr 8 20:41:30 EDT
2001 i686 unknown
> Architecture: i686
>
> Some paths:  /usr/bin/perl /usr/bin/make /usr/bin/gmake /usr/bin/gcc
/usr/bin/cc
> GCC: Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
> gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-81)
> Compilation info: CC='gcc'
 CFLAGS='-O6 -fno-omit-frame-pointer -mcpu=pentiumpro'  CXX='gcc'
CXXFLAGS='-O6 -fno-omit-frame-pointer           -felide-constructors -fno-ex
ceptions -fno-rtti -mcpu=pentiumpro'  LDFLAGS=''
> LIBC:
> lrwxrwxrwx    1 root     root           13 Feb  2 07:17 /lib/libc.so.6 ->
libc-2.2.2.so
> -rwxr-xr-x    1 root     root      1236396 Apr  6  2001 /lib/libc-2.2.2.so
> -rw-r--r--    1 root     root     26350254 Apr  6  2001 /usr/lib/libc.a
> -rw-r--r--    1 root     root          178 Apr  6  2001 /usr/lib/libc.so
> Configure command:
./configure  --disable-shared --with-mysqld-ldflags=-all-static --with-clien
t-ldflags=-all-static --with-other-libc=/usr/local/mysql-glibc --without-ber
keley-db --without-innodb --enable-assembler --enable-local-infile --with-my
sqld-user=mysql --with-unix-socket-path=/var/lib/mysql/mysql.sock --prefix=/
 --with-extra-charsets=complex --exec-prefix=/usr --libexecdir=/usr/sbin --s
ysconfdir=/etc --datadir=/usr/share --localstatedir=/var/lib/mysql --infodir
=/usr/info --includedir=/usr/include --mandir=/usr/man
'--with-comment=Official MySQL RPM'
>
>
>
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
>
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail <mysql-unsubscribe-##L=##[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
>



---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <mysql-unsubscribe-##L=##[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to