mysql:1824
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Wed, 29 Mar 2000 00:39:49 +0900
Subject: [mysql 01824] Re: Quoted column name on mysqldump output
とみたです。 At Tue, 28 Mar 2000 18:38:06 +0900, takeshi@xxxxxxxxxx wrote: > > mysqldumpでダンプすると、日本語の項目名がquoteされます。 > > それでそのままmysqlにかけると、「You have an error in your > > SQL syntax near '`項目名`」と怒られてしまいます。 > mysqldump version 7 から quote が導入された際に、 > multibytes 文字のことが考慮されていないようです。 おや、そういう問題があったとは…。 > MySQL-3.22.27 付属の mysqldump コマンドは version 6.4 で > この問題は起きないです。 > > 古いバージョンの mysqldump コマンドを使用するか、 > 以下のパッチを当てて、quote をつけないように mysqldump コマンドを > 変更してみてください やはり正当な方法としては mysqldump を MB 対応にするってもんでしょう :-) ということでパッチです。 -- とみたまさひろ <tommy@xxxxxxxxxx> --- mysqldump.c.orig Fri Feb 11 06:07:42 2000 +++ mysqldump.c Wed Mar 29 00:08:17 2000 @@ -469,10 +469,22 @@ static bool test_if_special_chars(const char *str) { +#if defined(USE_MB) && defined(USE_MB_IDENT) + const char *end; + end = str+strlen(str); + while (str < end) { + int l = 0; + if (!isvar(*str) && *str != '$' && (l = ismbchar(str, end)) == 0) + return 1; + str += l? l: 1; + } + return 0; +#else for ( ; *str ; str++) if (!isvar(*str) && *str != '$') return 1; return 0; +#endif } /*
1818 2000-03-28 17:36 [Kengo Jinno <kengo@x] Quoted column name on mysqldump output 1819 2000-03-28 18:38 ┗[<takeshi@xxxxxxxxxx>] 1820 2000-03-28 19:18 ┣[Kengo Jinno <kengo@x] -> 1824 2000-03-29 00:39 ┗[とみたまさひろ <tomm] 1829 2000-03-29 10:08 ┗[<takeshi@xxxxxxxxxx>]