[前][次][番号順一覧][スレッド一覧]

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]