Commit bd98eb61 authored by unknown's avatar unknown

Fixed problem with "record not found" in BDB tables.


Docs/manual.texi:
  Fixed wrong reference to --with-thread-safe-client
mysql-test/r/bdb.result:
  New tests
mysql-test/t/bdb.test:
  New tests
parent c88dd9b2
......@@ -8218,7 +8218,7 @@ and that provides output about what is happening.
@item
If your client programs are using threads, you need to also compile a
thread-safe version of the MySQL client library with the
@code{--with-thread-safe-client} configure options. This will create a
@code{--enable-thread-safe-client} configure options. This will create a
@code{libmysqlclient_r} library with which you should link your threaded
applications. @xref{Threaded clients}.
......@@ -11899,7 +11899,7 @@ If you are compiling with @code{gcc}, you can use the following
@example
CC=gcc CXX=gcc CXXFLAGS=-O3 \
./configure --prefix=/usr/local/mysql --with-thread-safe-client --with-named-thread-libs=-lpthread
./configure --prefix=/usr/local/mysql --enable-thread-safe-client --with-named-thread-libs=-lpthread
@end example
On Irix 6.5.11 with native Irix C and C++ compilers ver. 7.3.1.2, the
......@@ -41997,11 +41997,11 @@ To make @code{mysql_real_connect()} thread safe, you must recompile the
client library with this command:
@example
shell> ./configure --with-thread-safe-client
shell> ./configure --enable-thread-safe-client
@end example
This will create a thread-safe client library @code{libmysqlclient_r}.
@code{--with-thread-safe-client}. This library is thread safe per
@code{--enable-thread-safe-client}. This library is thread safe per
connection. You can let two threads share the same connection as long
as you do the following:
......@@ -46853,6 +46853,9 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.43
@itemize @bullet
@item
Fixed problem with @code{BDB} tables and @code{UNIQUE} columns defined
as @code{NULL}.
@item
Fixed problem with @code{myisampack} when using pre-space filled CHAR columns.
@item
Applied patch from Yuri Dario for OS2.
......@@ -527,3 +527,8 @@ a b
id id2 id3 dummy1
id id2 id3 dummy1
NULL NULL NULL NULL
i p s
00000000-e6c4ddeaa6-003b8-83458387 programs/xxxxxxxx.wmv 00000000-e6c4ddeb32-003bc-83458387
INFO_NOTE
INFO_NOTE
INFO_NOTE
......@@ -748,3 +748,22 @@ SELECT t1.* FROM t1 WHERE id IN (1);
SELECT t1.* FROM t2 left outer join t1 on (t1.id=t2.id);
delete from t1 where id3 >= 0 and id3 <= 0;
drop table t1,t2;
#
# Test problems with NULL
#
CREATE TABLE t1 (i varchar(48) NOT NULL default '', p varchar(255) default NULL,s varchar(48) NOT NULL default '', PRIMARY KEY (i), UNIQUE(p,s)) TYPE=BDB;
INSERT INTO t1 VALUES ('00000000-e6c4ddeaa6-003b8-83458387','programs/xxxxxxxx.wmv','00000000-e6c4ddeb32-003bc-83458387');
SELECT * FROM t1 WHERE p='programs/xxxxxxxx.wmv';
drop table t1;
#
# Test problem which gave error 'Can't find record in 't1''
#
CREATE TABLE t1 ( STR_DATE varchar(8) NOT NULL default '',INFO_NOTE varchar(200) default NULL,PRIMARY KEY (STR_DATE) ) TYPE=BerkeleyDB;
select INFO_NOTE from t1 where STR_DATE = '20010610';
select INFO_NOTE from t1 where STR_DATE < '20010610';
select INFO_NOTE from t1 where STR_DATE > '20010610';
drop table t1;
......@@ -365,11 +365,9 @@ berkeley_cmp_packed_key(DB *file, const DBT *new_key, const DBT *saved_key)
{
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)))
......@@ -1399,7 +1397,7 @@ int ha_berkeley::index_read_idx(byte * buf, uint keynr, const byte * key,
statistic_increment(ha_read_key_count,&LOCK_status);
DBUG_ENTER("index_read_idx");
current_row.flags=DB_DBT_REALLOC;
active_index= -1;
active_index= (uint) -1;
DBUG_RETURN(read_row(key_file[keynr]->get(key_file[keynr], transaction,
pack_key(&last_key, keynr, key_buff, key,
key_len),
......@@ -1504,7 +1502,7 @@ int ha_berkeley::index_first(byte * buf)
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)
......
/* Copyright Abandoned 1997 TCX DataKonsult AB & Monty Program KB & Detron HB
* This is public domain and comes with NO WARRANTY of any kind
*
* Ukrainian translation by Roman Festchook <roma@orta.zt.ua>
* Encoding: KOI8-U
* Version: 13/09/2001 mysql-3.23.41
*/
"hashchk",
"isamchk",
"",
"",
" '%-.64s' (: %d)",
" '%-.64s' (: %d)",
" '%-.64s'. (: %d)",
" '%-.64s'. դ",
" '%-.64s'. դ",
" ( '%-.64s', : %d)",
" ( '%-.64s', : %d)",
" '%-.64s' (: %d)",
" ϧ æ",
" '%-.64s' (: %d)",
" (: %d)",
" (: %d)",
" צ : '%-.64s' (: %d)",
" : '%-.64s' (: %d)",
" '%-.64s' (: %d)",
" '%-.64s' (: %d)",
" ͦ æ '%-.64s'",
" (%s). , צ ͦ...",
" , æ '%-.64s'",
" '%-.64s' (: %d)",
" '%-.64s' (: %d)",
" '%-.64s' '%-.64s' (: %d)",
" '%-.64s' (: %d)",
"'%-.64s' ͦ",
" ",
" '%-.64s' դ '%-.64s'",
" %d צ æ",
" æ '%-.64s' æ Ԧ",
" '%-.64s'",
" æ ̦: '%-.64s'",
" æ: '%-.64s'. צ",
" æ '%-.64s'; צ !",
" '%-.64s' Ԧ ",
" 'Ԧ. (Ҧ %d Ԧ)",
" 'Ԧ . ¦ ͦ ",
" ˦ '%-.64s' (: %d)",
" '",
" 'Ԧ; צ mysqld ˦ ۦ '. Φ, 'ulimit', mysqld ¦ 'Ԧ ¦ ͦ Ц ",
" ' ϧ ",
"צ '",
" : '%-.32s@%-.64s' '%-.64s'",
" : '%-.32s@%-.64s' ( : %s)",
" ",
"צ ",
" '%-.64s' ",
"צ '%-.64s'",
" '%-.64s' դ",
"צ '%-.64s'",
" '%-.64s' %-.64s ",
"դ ",
"צ '%-.64s' '%-.64s'",
"'%-.64s' GROUP BY",
" '%-.64s'",
" ڦ Цަ æ æ",
"˦ æ Ц ˦˦ ",
"' Ʀ '%-.100s' ",
" ' '%-.64s'",
" ' '%-.64s'",
" '%-.64s' %d",
"צ Ʀ '%-.64s'",
"%s ¦ '%-.80s' æ %d",
" ",
"Φ /Φ: '%-.64s'",
"צ '%-.64s'",
" ",
" ަ . ¦ %d ަ",
" . ¦ %d ",
" . ¦ %d",
" '%-.64s' դ æ",
"BLOB '%-.64s' Φ Ц æ",
" '%-.64s' (max = %d). BLOB",
"צ æ; , ",
"%s: '!\n",
"%s: \n",
"%s: %d. !\n",
"%s: \n",
"%s: Ǧ %ld : '%-.32s'\n",
" IP '",
" '%-.64s' , Ц CREATE INDEX. Ҧ ",
" Ħ ̦. æ",
" BLOB. 'fields terminated by'",
" '%-.64s' æ Ӧ",
" '%-.80s' դ",
"Ӧ: %ld : %ld : %ld : %ld",
"Ӧ: %ld ̦Ԧ: %ld",
"צ . , ڦ æ Цդ Φ ",
" Ӧ æ ALTER TABLE. DROP TABLE",
" DROP '%-.64s'. צ, / դ",
"Ӧ: %ld ̦Ԧ: %ld : %ld",
"INSERT TABLE '%-.64s' ̦ FROM TABLE",
"צ Ʀ Ǧ: %lu",
" Ǧ %lu",
" ",
" %-.64s SET",
" Φ ' log- %-.64s.(1-999)\n",
" '%-.64s' Ԧ , ",
" '%-.64s' LOCK TABLES",
" BLOB '%-.64s' ",
"צ ' '%-.100s'",
"צ ' æ '%-.100s'",
" SELECT Ҧ Ӧ, , , . צ WHERE SET OPTION SQL_BIG_SELECTS=1, SELECT צ",
"צ ",
"צ '%-.64s'",
" ˦˦ Ҧ '%-.64s'",
" '%-.64s'",
"צ '%-.64s' %-.32s",
" '%-.64s' צަ",
" æ ",
" '%-.64s' դ , դ æ Ӧ MySQL",
" ",
" '%-.64s' ",
"צ : '%-.64s'",
" . MySQL %d 'Φ",
" æ",
" . ¦ , BLOB, %d. Ҧ ˦ æ BLOB",
" Ǧ : : %ld %ld. 'mysqld -O thread_stack=#' ¦ , Ȧ",
" Φ OUTER JOIN. צ ON",
" '%-.64s' դ UNIQUE INDEX, NOT NULL",
" æ '%-.64s'",
" Φæ̦ æ '%-.64s'; %-.80s",
" Ԧ Ħ ¦̦",
"æ '%-.64s' դ",
" צ Ħ ¦̦ '%-.64s' (: %d %-.64s)",
" æ '%-.64s' ¦̦æ'",
"æ '%-.64s' ",
" '%-.64s' ϧ ˦Ԧ '. 'mysqladmin flush-hosts'",
" '%-.64s' ' MySQL",
" դ MySQL Φ , ͦ ̦",
" Φ ڦ mysql, צ ͦ ",
" צצ Ӧ æ ",
"Ӧ צצ: %ld ͦ: %ld : %ld",
" Ǧ ( %d). ', æ ϧ - ",
"˦ æ Ц ˦˦ æ %ld",
" צ : '%-.64s'",
" NULL",
" '%-.64s' צ ",
"ͦ GROUP æ (MIN(),MAX(),COUNT()...) GROUP , GROUP BY",
" '%-.32s' '%-.64s'",
"%-.16s : '%-.32s@%-.64s' æ '%-.64s'",
"%-.16s : '%-.32s@%-.64s' '%-.64s' æ '%-.64s'",
" GRANT/REVOKE . æ , ˦ .",
" host user GRANT ",
" '%-.64s.%-.64s' դ",
" '%-.32s' '%-.64s' æ '%-.64s'",
" æ Ӧ MySQL",
" Ӧ SQL",
" INSERT DELAYED æ %-.64s",
" Ǧ դ",
" ' %ld : '%-.64s' : '%-.32s' (%-.64s)",
" ¦ Φ max_allowed_packet",
" Φæ ",
" צ fcntl()",
" ",
" Φæ ",
" Φæ Ԧ",
" Φæ Ԧ",
" Φæ Ԧ",
" Φæ Ԧ",
" Φ max_allowed_packet",
" æ Цդ BLOB/TEXT æ",
" æ Цդ AUTO_INCREMENT æ",
"INSERT DELAYED '%-.64s', LOCK TABLES",
"צ ' '%-.100s'",
" ڦ æ '%-.64s'",
"æ MERGE TABLE Ҧ ",
" æ '%-.64s', ΦԦ",
" BLOB '%-.64s' Φ ",
"Ӧ PRIMARY KEY Φ NOT NULL; դ NULL ަ, UNIQUE",
" ¦ Φ Φ æ",
" æ դ ",
" Ӧ MySQL Ц Ц RAID",
" ͦ WHERE, դ KEY ",
" '%-.64s' դ æ '%-.64s'",
" צ ",
"ڦ æ Ц צ/צ",
" æ",
" %d Ц COMMIT",
" %d Ц ROLLBACK",
" %d Ц FLUSH_LOGS",
" %d Ц CHECKPOINT",
" ' %ld : '%-.64s' : '%-.32s' : `%-.64s' (%-.64s)",
" æ Цդ ¦ æ",
"̦æ , RESET MASTER",
" צ ϧ æ '%-.64s'",
" צ : '%-.64s'",
" צ ",
" ",
" FULLTEXT , צצ ̦ æ",
" , դ æ",
"צ ͦ '%-.64'",
" '%-.64s' ڦ Ҧ צ",
" '%-.64s' ڦ Τ (?) צ ",
": ˦ æΦ ͦ ",
"æ ¦ Φ 'max_binlog_cache_size' Ԧ Ҧ. ¦ ͦ mysqld ',
"æ Ц, SLAVE STOP",
"æ Ц, Ʀ Ц SLAVE START",
" Ʀ Ц, ̦ Ʀæ CHANGE MASTER TO",
" Φæ̦ æ , צ master.info",
" Ц Ǧ, צ Φ ",
" %-.64s ¦ Φ 'max_user_connections' '",
" ڦ SET",
" ަ ",
" ˦˦ ͦ æ",
" ڦ æ READ UNCOMMITTED",
"DROP DATABASE Ǧ Ц ",
"CREATE DATABASE Ǧ Ц ",
" %s",
" %-.32s@%-.64s ަ",
"Incorrect table definition; All MERGE tables must be in the same database",
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment