mysql:4320
From: <takeshi@xxxxxxxxxx>
Date: Fri, 14 Sep 2001 20:10:51 +0900
Subject: [mysql 04320] Re: 空の BDB テーブル検索で ERROR 1032
At Wed, 11 Jul 2001 10:46:44 +0900, Noriyuki Sakimura wrote: > レコードが1件もないBDBタイプのテーブルをSELECTしようとすると > 本来は Empty set となるものが、ある条件で ERROR 1032になってしまいます。 > 条件は > ・VARCHARとCHARのカラムが存在するレコード長が可変のBDB型テーブル > ・テーブルが空の状態 > ・SELECTのWHERE句でCHARカラムに対し不等号'<'を使った絞り込み > を満たすと起こります。 やっとなおりました..... パッチ: --- mysql-3.23.42.orig/sql/ha_berkeley.cc Fri Sep 14 19:16:07 2001 +++ mysql-3.23.42/sql/ha_berkeley.cc Fri Sep 14 19:17:00 2001 @@ -1504,7 +1504,7 @@ statistic_increment(ha_read_first_count,&LOCK_status); bzero((char*) &row,sizeof(row)); DBUG_RETURN(read_row(cursor->c_get(cursor, &last_key, &row, DB_FIRST), - (char*) buf, active_index, &row, &last_key, 0)); + (char*) buf, active_index, &row, &last_key, 1)); } int ha_berkeley::index_last(byte * buf) --- mysql-3.23.42.orig/sql/ha_berkeley.cc Fri Sep 14 08:26:49 2001 +++ mysql-3.23.42/sql/ha_berkeley.cc Fri Sep 14 08:27:47 2001 @@ -365,11 +365,9 @@ { if (*new_key_ptr != *saved_key_ptr++) return ((int) *new_key_ptr - (int) saved_key_ptr[-1]); + key_length--; if (!*new_key_ptr++) - { - key_length--; continue; - } } if ((cmp=key_part->field->pack_cmp(new_key_ptr,saved_key_ptr, key_part->length))) -- 村上 毅 takeshi@xxxxxxxxxx Soft Agency Co., Ltd. TEL +81-48-661-1527 PGP fingerprint = 45 5D 54 12 B4 55 77 7F D4 52 66 EC 03 3F 1B E9
3965 2001-07-11 10:46 [Noriyuki Sakimura <s] 空の BDB テーブル検索で ERROR 1032 3972 2001-07-11 18:43 ┣[崎村 典行 <sakimura@] 4067 2001-07-27 10:20 ┣[Noriyuki Sakimura <s] -> 4320 2001-09-14 20:10 ┗[<takeshi@xxxxxxxxxx>] 4328 2001-09-17 16:44 ┗[Noriyuki Sakimura <s]