Commit b1cb5b6f authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi

Portability fixes.

Let myisamchk generate a new checksum for compressed data.
Don't unconditionally force filenames to lower case on windows.
Update mysqltest to match 4.0 source (to get some of the new bug fixes into 3.23)
parent bfbc3252
...@@ -1523,7 +1523,7 @@ Apart from the following links, you can find and download a lot of ...@@ -1523,7 +1523,7 @@ Apart from the following links, you can find and download a lot of
@subheading Tutorials and Manuals @subheading Tutorials and Manuals
@table @asis @table @asis
@item @uref{http://netgraft.com/~mbac/research/mysqlmyths.html, MySQL Myths Debunked} @item @uref{http://michael.bacarella.com/research/mysqlmyths.html, MySQL Myths Debunked}
@strong{MySQL} used in the real world. @strong{MySQL} used in the real world.
@item @uref{http://www.4t2.com/mysql} @item @uref{http://www.4t2.com/mysql}
...@@ -10030,6 +10030,12 @@ make_install ...@@ -10030,6 +10030,12 @@ make_install
and @strong{mysqld} should be ready to run. and @strong{mysqld} should be ready to run.
On Ia64 the @strong{MySQL} client binaries are using shared
libraries. This means that if you install our binary distribution in
some other place than @file{/usr/local/mysql} you need to either modify
@file{/etc/ld.so.conf} or add the path to the directory where you have
@file{libmysqlclient.so} to the @code{LD_LIBRARY_PATH} environment
variable. @xref{Link errors}.
@node Windows, Solaris, Linux, Operating System Specific Notes @node Windows, Solaris, Linux, Operating System Specific Notes
@subsection Windows Notes @subsection Windows Notes
...@@ -10635,7 +10641,7 @@ CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \ ...@@ -10635,7 +10641,7 @@ CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
If you have a ultra sparc, you can get 4 % more performance by adding If you have a ultra sparc, you can get 4 % more performance by adding
"-mcpu=v8 -Wa,-xarch=v8plusa" to CFLAGS and CXXFLAGS. "-mcpu=v8 -Wa,-xarch=v8plusa" to CFLAGS and CXXFLAGS.
If you have the Sun Workshop (SunPro) 4.2 (or newer) compiler, you can If you have Sun Workshop (Fortre) 5.3 (or newer) compiler, you can
run @code{configure} like this: run @code{configure} like this:
@example @example
...@@ -10644,6 +10650,15 @@ CXX=CC CXXFLAGS="-noex -xO4 -mt" \ ...@@ -10644,6 +10650,15 @@ CXX=CC CXXFLAGS="-noex -xO4 -mt" \
./configure --prefix=/usr/local/mysql --enable-assembler ./configure --prefix=/usr/local/mysql --enable-assembler
@end example @end example
In the MySQL benchmarks, we got a 6 % speedup on an Ultrasparc when
using Sun Workshop 5.3 compared to using gcc with -mcpu flags.
If you get a problem with @code{fdatasync} or @code{sched_yield},
you can fix this by adding @code{LIBS=-lrt} to the configure line
The following paragraph is only relevant for older compilers than
WorkShop 5.3:
You may also have to edit the @code{configure} script to change this line: You may also have to edit the @code{configure} script to change this line:
@example @example
...@@ -15496,7 +15511,7 @@ With this option, ...@@ -15496,7 +15511,7 @@ With this option,
@code{SHOW DATABASES} returns only those databases for which the user has @code{SHOW DATABASES} returns only those databases for which the user has
some kind of privilege. some kind of privilege.
@item @code{--safe-user-create} @item --safe-user-create
If this is enabled, an user can't create new users with the @code{GRANT} If this is enabled, an user can't create new users with the @code{GRANT}
command, if the user doesn't have @code{INSERT} privilege to the command, if the user doesn't have @code{INSERT} privilege to the
@code{mysql.user} table. If you want to give a user access to just create @code{mysql.user} table. If you want to give a user access to just create
...@@ -21385,7 +21400,7 @@ mysql> show variables like "have_%"; ...@@ -21385,7 +21400,7 @@ mysql> show variables like "have_%";
| have_bdb | YES | | have_bdb | YES |
| have_innodb | NO | | have_innodb | NO |
| have_isam | YES | | have_isam | YES |
| have_raid | YES | | have_raid | NO |
| have_ssl | NO | | have_ssl | NO |
+---------------+-------+ +---------------+-------+
@end example @end example
...@@ -46291,9 +46306,6 @@ Added prototypes for @code{my_thread_init()} and @code{my_thread_end()} to ...@@ -46291,9 +46306,6 @@ Added prototypes for @code{my_thread_init()} and @code{my_thread_end()} to
@item @item
Added option @code{--safe-user-create} to @code{mysqld}. Added option @code{--safe-user-create} to @code{mysqld}.
@item @item
Added options to the @code{--ansi} startup options to let the user
decide which @code{ansi} options one to enable.
@item
Fixed bug in @code{SELECT DISTINCT ... HAVING} that casued error message Fixed bug in @code{SELECT DISTINCT ... HAVING} that casued error message
@code{Can't find record in '#...} @code{Can't find record in '#...}
@end itemize @end itemize
This diff is collapsed.
...@@ -287,7 +287,6 @@ inline double ulonglong2double(ulonglong value) ...@@ -287,7 +287,6 @@ inline double ulonglong2double(ulonglong value)
#define FN_ROOTDIR "\\" #define FN_ROOTDIR "\\"
#define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */ #define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */
#define FN_NO_CASE_SENCE /* Files are not case-sensitive */ #define FN_NO_CASE_SENCE /* Files are not case-sensitive */
#define FN_LOWER_CASE TRUE /* Files are represented in lower case */
#define MY_NFILE 1024 #define MY_NFILE 1024
#define DO_NOT_REMOVE_THREAD_WRAPPERS #define DO_NOT_REMOVE_THREAD_WRAPPERS
......
...@@ -11,7 +11,9 @@ Created 1/20/1994 Heikki Tuuri ...@@ -11,7 +11,9 @@ Created 1/20/1994 Heikki Tuuri
#include "univ.i" #include "univ.i"
#include <time.h> #include <time.h>
#ifndef MYSQL_SERVER
#include <ctype.h> #include <ctype.h>
#endif
typedef time_t ib_time_t; typedef time_t ib_time_t;
......
...@@ -73,7 +73,7 @@ int _mi_read_cache(IO_CACHE *info, byte *buff, my_off_t pos, uint length, ...@@ -73,7 +73,7 @@ int _mi_read_cache(IO_CACHE *info, byte *buff, my_off_t pos, uint length,
if (!(flag & READING_HEADER) || info->error == -1 || if (!(flag & READING_HEADER) || info->error == -1 ||
(uint) info->error+in_buff_length < 3) (uint) info->error+in_buff_length < 3)
{ {
if (!my_errno) if (!my_errno || my_errno == -1)
my_errno=HA_ERR_WRONG_IN_RECORD; my_errno=HA_ERR_WRONG_IN_RECORD;
DBUG_RETURN(1); DBUG_RETURN(1);
} }
...@@ -87,7 +87,7 @@ int _mi_read_cache(IO_CACHE *info, byte *buff, my_off_t pos, uint length, ...@@ -87,7 +87,7 @@ int _mi_read_cache(IO_CACHE *info, byte *buff, my_off_t pos, uint length,
if (!(flag & READING_HEADER) || (int) read_length == -1 || if (!(flag & READING_HEADER) || (int) read_length == -1 ||
read_length+in_buff_length < 3) read_length+in_buff_length < 3)
{ {
if (!my_errno) if (!my_errno || my_errno == -1)
my_errno=HA_ERR_WRONG_IN_RECORD; my_errno=HA_ERR_WRONG_IN_RECORD;
DBUG_RETURN(1); DBUG_RETURN(1);
} }
......
...@@ -708,7 +708,7 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend) ...@@ -708,7 +708,7 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend)
puts("- check record links"); puts("- check record links");
} }
if (!(record= (byte*) my_alloca(info->s->base.pack_reclength))) if (!(record= (byte*) my_malloc(info->s->base.pack_reclength,MYF(0))))
{ {
mi_check_print_error(param,"Not Enough memory"); mi_check_print_error(param,"Not Enough memory");
DBUG_RETURN(-1); DBUG_RETURN(-1);
...@@ -924,7 +924,8 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend) ...@@ -924,7 +924,8 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend)
if (block_info.rec_len < (uint) info->s->min_pack_length || if (block_info.rec_len < (uint) info->s->min_pack_length ||
block_info.rec_len > (uint) info->s->max_pack_length) block_info.rec_len > (uint) info->s->max_pack_length)
{ {
mi_check_print_error(param,"Found block with wrong recordlength: %d at %s", mi_check_print_error(param,
"Found block with wrong recordlength: %d at %s",
block_info.rec_len, llstr(start_recpos,llbuff)); block_info.rec_len, llstr(start_recpos,llbuff));
got_error=1; got_error=1;
break; break;
...@@ -934,7 +935,8 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend) ...@@ -934,7 +935,8 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend)
goto err; goto err;
if (_mi_pack_rec_unpack(info,record,info->rec_buff,block_info.rec_len)) if (_mi_pack_rec_unpack(info,record,info->rec_buff,block_info.rec_len))
{ {
mi_check_print_error(param,"Found wrong record at %s", llstr(start_recpos,llbuff)); mi_check_print_error(param,"Found wrong record at %s",
llstr(start_recpos,llbuff));
got_error=1; got_error=1;
} }
if (static_row_size) if (static_row_size)
...@@ -1082,12 +1084,12 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend) ...@@ -1082,12 +1084,12 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend)
printf("Lost space: %12s Linkdata: %10s\n", printf("Lost space: %12s Linkdata: %10s\n",
llstr(empty,llbuff),llstr(link_used,llbuff2)); llstr(empty,llbuff),llstr(link_used,llbuff2));
} }
my_afree((gptr) record); my_free((gptr) record,MYF(0));
DBUG_RETURN (error); DBUG_RETURN (error);
err: err:
mi_check_print_error(param,"got error: %d when reading datafile",my_errno); mi_check_print_error(param,"got error: %d when reading datafile at record: %s",my_errno, llstr(records,llbuff));
err2: err2:
my_afree((gptr) record); my_free((gptr) record,MYF(0));
param->retry_without_quick=1; param->retry_without_quick=1;
DBUG_RETURN(1); DBUG_RETURN(1);
} /* chk_data_link */ } /* chk_data_link */
...@@ -1188,7 +1190,7 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, ...@@ -1188,7 +1190,7 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info,
del=info->state->del; del=info->state->del;
info->state->records=info->state->del=share->state.split=0; info->state->records=info->state->del=share->state.split=0;
info->state->empty=0; info->state->empty=0;
if (sort_info->new_data_file_type != COMPRESSED_RECORD && !rep_quick) if (!rep_quick)
share->state.checksum=0; share->state.checksum=0;
info->update= (short) (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED); info->update= (short) (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED);
for (i=0 ; i < info->s->base.keys ; i++) for (i=0 ; i < info->s->base.keys ; i++)
...@@ -1866,8 +1868,7 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info, ...@@ -1866,8 +1868,7 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info,
sort_param.sort_info=sort_info; sort_param.sort_info=sort_info;
del=info->state->del; del=info->state->del;
if (sort_info->new_data_file_type != COMPRESSED_RECORD && if (! rep_quick)
! rep_quick)
share->state.checksum=0; share->state.checksum=0;
rec_per_key_part= param->rec_per_key_part; rec_per_key_part= param->rec_per_key_part;
...@@ -2414,6 +2415,7 @@ static int sort_get_next_record(SORT_INFO *sort_info) ...@@ -2414,6 +2415,7 @@ static int sort_get_next_record(SORT_INFO *sort_info)
llstr(sort_info->pos,llbuff)); llstr(sort_info->pos,llbuff));
continue; continue;
} }
info->checksum=mi_checksum(info,sort_info->record);
if (!sort_info->fix_datafile) if (!sort_info->fix_datafile)
sort_info->filepos=sort_info->pos; sort_info->filepos=sort_info->pos;
sort_info->max_pos=(sort_info->pos=block_info.filepos+ sort_info->max_pos=(sort_info->pos=block_info.filepos+
...@@ -2492,6 +2494,7 @@ int sort_write_record(SORT_INFO *sort_info) ...@@ -2492,6 +2494,7 @@ int sort_write_record(SORT_INFO *sort_info)
DBUG_RETURN(1); DBUG_RETURN(1);
} }
sort_info->filepos+=block_length; sort_info->filepos+=block_length;
info->s->state.checksum+=info->checksum;
break; break;
case COMPRESSED_RECORD: case COMPRESSED_RECORD:
reclength=info->packed_length; reclength=info->packed_length;
...@@ -2504,6 +2507,7 @@ int sort_write_record(SORT_INFO *sort_info) ...@@ -2504,6 +2507,7 @@ int sort_write_record(SORT_INFO *sort_info)
mi_check_print_error(param,"%d when writing to datafile",my_errno); mi_check_print_error(param,"%d when writing to datafile",my_errno);
DBUG_RETURN(1); DBUG_RETURN(1);
} }
info->s->state.checksum+=info->checksum;
sort_info->filepos+=reclength+length; sort_info->filepos+=reclength+length;
break; break;
} }
......
...@@ -962,7 +962,7 @@ int _mi_read_rnd_pack_record(MI_INFO *info, byte *buf, ...@@ -962,7 +962,7 @@ int _mi_read_rnd_pack_record(MI_INFO *info, byte *buf,
b_type=_mi_pack_get_block_info(info,&block_info,info->dfile,filepos, b_type=_mi_pack_get_block_info(info,&block_info,info->dfile,filepos,
info->rec_buff); info->rec_buff);
if (b_type) if (b_type)
goto err; goto err; /* Error code is already set */
#ifndef DBUG_OFF #ifndef DBUG_OFF
if (block_info.rec_len > share->max_pack_length) if (block_info.rec_len > share->max_pack_length)
{ {
......
...@@ -201,7 +201,7 @@ static struct option long_options[] = ...@@ -201,7 +201,7 @@ static struct option long_options[] =
static void print_version(void) static void print_version(void)
{ {
printf("%s Ver 1.49 for %s at %s\n",my_progname,SYSTEM_TYPE, printf("%s Ver 1.50 for %s at %s\n",my_progname,SYSTEM_TYPE,
MACHINE_TYPE); MACHINE_TYPE);
} }
...@@ -953,7 +953,7 @@ static void descript(MI_CHECK *param, register MI_INFO *info, my_string name) ...@@ -953,7 +953,7 @@ static void descript(MI_CHECK *param, register MI_INFO *info, my_string name)
share->base.raid_chunks, share->base.raid_chunks,
share->base.raid_chunksize); share->base.raid_chunksize);
} }
if (share->options & HA_OPTION_CHECKSUM) if (share->options & (HA_OPTION_CHECKSUM | HA_OPTION_COMPRESS_RECORD))
printf("Checksum: %23s\n",llstr(info->s->state.checksum,llbuff)); printf("Checksum: %23s\n",llstr(info->s->state.checksum,llbuff));
; ;
if (share->options & HA_OPTION_DELAY_KEY_WRITE) if (share->options & HA_OPTION_DELAY_KEY_WRITE)
......
...@@ -693,7 +693,7 @@ drop table t1; ...@@ -693,7 +693,7 @@ drop table t1;
create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(30),primary key (id,id2),index index_id3 (id3)) type=bdb; create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(30),primary key (id,id2),index index_id3 (id3)) type=bdb;
insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL'); insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL');
LOCK TABLES t1 WRITE; LOCK TABLES t1 WRITE;
--error 690 --error 1062
insert into t1 values (99,1,2,'D'),(1,1,2,'D'); insert into t1 values (99,1,2,'D'),(1,1,2,'D');
select id from t1; select id from t1;
select id from t1; select id from t1;
...@@ -704,7 +704,7 @@ create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(3 ...@@ -704,7 +704,7 @@ create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(3
insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL'); insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL');
LOCK TABLES t1 WRITE; LOCK TABLES t1 WRITE;
begin; begin;
--error 690 --error 1062
insert into t1 values (99,1,2,'D'),(1,1,2,'D'); insert into t1 values (99,1,2,'D'),(1,1,2,'D');
select id from t1; select id from t1;
insert ignore into t1 values (100,1,2,'D'),(1,1,99,'D'); insert ignore into t1 values (100,1,2,'D'),(1,1,99,'D');
......
...@@ -10,7 +10,8 @@ create table t1 (a int); ...@@ -10,7 +10,8 @@ create table t1 (a int);
!$1054 select count(test.t1.b) from t1; !$1054 select count(test.t1.b) from t1;
!$1109 select count(not_existing_database.t1) from t1; !$1109 select count(not_existing_database.t1) from t1;
!$1109 select count(not_existing_database.t1.a) from t1; !$1109 select count(not_existing_database.t1.a) from t1;
!$1044 select count(not_existing_database.t1.a) from not_existing_database.t1; --error 1044,1146
select count(not_existing_database.t1.a) from not_existing_database.t1;
!$1054 select 1 from t1 order by 2; !$1054 select 1 from t1 order by 2;
!$1054 select 1 from t1 group by 2; !$1054 select 1 from t1 group by 2;
!$1054 select 1 from t1 order by t1.b; !$1054 select 1 from t1 order by t1.b;
......
...@@ -73,11 +73,15 @@ CREATE TABLE t3 ( ...@@ -73,11 +73,15 @@ CREATE TABLE t3 (
); );
--error 1210 --error 1210
select * from t2 having MATCH inhalt AGAINST (t1.id); select * from t2 where MATCH inhalt AGAINST (t2.inhalt);
--error 1210 --error 1210
select * from t2 having MATCH ticket AGAINST ('foobar'); select * from t2 where MATCH inhalt AGAINST (t2.inhalt);
--error 1191
select * from t2 where MATCH ticket AGAINST ('foobar');
--error 1210 --error 1210
select * from t2,t3 having MATCH (t2.inhalt,t3.inhalt) AGAINST ('foobar'); select * from t2,t3 where MATCH (t2.inhalt,t3.inhalt) AGAINST ('foobar');
drop table t1,t2,t3; drop table t1,t2,t3;
...@@ -414,8 +414,8 @@ drop table t1; ...@@ -414,8 +414,8 @@ drop table t1;
# #
CREATE TABLE t1 (a int unsigned NOT NULL) type=innodb; CREATE TABLE t1 (a int unsigned NOT NULL) type=innodb;
--error 1031 # Can't test this in 3.23
INSERT DELAYED INTO t1 VALUES (1); # INSERT DELAYED INTO t1 VALUES (1);
INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (1);
SELECT * FROM t1; SELECT * FROM t1;
DROP TABLE t1; DROP TABLE t1;
...@@ -437,7 +437,7 @@ drop table t1; ...@@ -437,7 +437,7 @@ drop table t1;
create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(30),primary key (id,id2),index index_id3 (id3)) type=innodb; create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(30),primary key (id,id2),index index_id3 (id3)) type=innodb;
insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL'); insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL');
LOCK TABLES t1 WRITE; LOCK TABLES t1 WRITE;
--error 690 --error 1062
insert into t1 values (99,1,2,'D'),(1,1,2,'D'); insert into t1 values (99,1,2,'D'),(1,1,2,'D');
select id from t1; select id from t1;
select id from t1; select id from t1;
...@@ -448,7 +448,7 @@ create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(3 ...@@ -448,7 +448,7 @@ create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(3
insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL'); insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL');
LOCK TABLES t1 WRITE; LOCK TABLES t1 WRITE;
begin; begin;
--error 690 --error 1062
insert into t1 values (99,1,2,'D'),(1,1,2,'D'); insert into t1 values (99,1,2,'D'),(1,1,2,'D');
select id from t1; select id from t1;
insert ignore into t1 values (100,1,2,'D'),(1,1,99,'D'); insert ignore into t1 values (100,1,2,'D'),(1,1,99,'D');
......
connect (con1,localhost,boo,,); connect (con1,localhost,boo,,);
connection con1; connection con1;
-- error 1064; -- error 1064,1102
drop database AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA; drop database AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;
...@@ -955,7 +955,7 @@ int ha_gemini::handleIndexEntry(const byte * record, dsmRecid_t recid, ...@@ -955,7 +955,7 @@ int ha_gemini::handleIndexEntry(const byte * record, dsmRecid_t recid,
thd = current_thd; thd = current_thd;
key_info=table->key_info+keynr; key_info=table->key_info+keynr;
thereIsAnull = false; thereIsAnull = FALSE;
rc = createKeyString(record, key_info, theKey.akey.keystr, rc = createKeyString(record, key_info, theKey.akey.keystr,
sizeof(theKey.apad),&keyStringLen, sizeof(theKey.apad),&keyStringLen,
(short)pindexNumbers[keynr], (short)pindexNumbers[keynr],
...@@ -1067,7 +1067,7 @@ int ha_gemini::createKeyString(const byte * record, KEY *pkeyinfo, ...@@ -1067,7 +1067,7 @@ int ha_gemini::createKeyString(const byte * record, KEY *pkeyinfo,
isNull = record[key_part->null_offset] & key_part->null_bit; isNull = record[key_part->null_offset] & key_part->null_bit;
if(isNull) if(isNull)
*thereIsAnull = true; *thereIsAnull = TRUE;
rc = gemFieldToIdxComponent(pos, rc = gemFieldToIdxComponent(pos,
(unsigned long) key_part_length, (unsigned long) key_part_length,
...@@ -1107,7 +1107,7 @@ int ha_gemini::update_row(const byte * old_record, byte * new_record) ...@@ -1107,7 +1107,7 @@ int ha_gemini::update_row(const byte * old_record, byte * new_record)
} }
for (uint keynr=0 ; keynr < table->keys ; keynr++) for (uint keynr=0 ; keynr < table->keys ; keynr++)
{ {
if(key_cmp(keynr,old_record, new_record,false)) if(key_cmp(keynr,old_record, new_record,FALSE))
{ {
error = handleIndexEntry(old_record,lastRowid,KEY_DELETE,keynr); error = handleIndexEntry(old_record,lastRowid,KEY_DELETE,keynr);
if(error) if(error)
...@@ -2430,8 +2430,8 @@ int ha_gemini::analyze(THD* thd, HA_CHECK_OPT* check_opt) ...@@ -2430,8 +2430,8 @@ int ha_gemini::analyze(THD* thd, HA_CHECK_OPT* check_opt)
uint saveIsolation; uint saveIsolation;
dsmMask_t saveLockMode; dsmMask_t saveLockMode;
check_opt->quick = true; check_opt->quick = TRUE;
check_opt->optimize = true; // Tells check not to get table lock check_opt->optimize = TRUE; // Tells check not to get table lock
saveLockMode = lockMode; saveLockMode = lockMode;
saveIsolation = thd->gemini.tx_isolation; saveIsolation = thd->gemini.tx_isolation;
thd->gemini.tx_isolation = ISO_READ_UNCOMMITTED; thd->gemini.tx_isolation = ISO_READ_UNCOMMITTED;
...@@ -2503,7 +2503,7 @@ int ha_gemini::check(THD* thd, HA_CHECK_OPT* check_opt) ...@@ -2503,7 +2503,7 @@ int ha_gemini::check(THD* thd, HA_CHECK_OPT* check_opt)
error = fetch_row(thd->gemini.context,buf); error = fetch_row(thd->gemini.context,buf);
if(!error) if(!error)
{ {
if(key_cmp(i,buf,indexBuf,false)) if(key_cmp(i,buf,indexBuf,FALSE))
{ {
gemini_msg((dsmContext_t *)thd->gemini.context, gemini_msg((dsmContext_t *)thd->gemini.context,
...@@ -2534,7 +2534,7 @@ int ha_gemini::check(THD* thd, HA_CHECK_OPT* check_opt) ...@@ -2534,7 +2534,7 @@ int ha_gemini::check(THD* thd, HA_CHECK_OPT* check_opt)
} }
} }
key_cmp(i,indexBuf,prevBuf,true); key_cmp(i,indexBuf,prevBuf,TRUE);
bcopy((void *)indexBuf,(void *)prevBuf,table->rec_buff_length); bcopy((void *)indexBuf,(void *)prevBuf,table->rec_buff_length);
if(!error) if(!error)
......
...@@ -177,19 +177,19 @@ ...@@ -177,19 +177,19 @@
"Can't write, because of unique constraint, to table '%-.64s'", "Can't write, because of unique constraint, to table '%-.64s'",
"BLOB column '%-.64s' used in key specification without a key length", "BLOB column '%-.64s' used in key specification without a key length",
"All parts of a PRIMARY KEY must be NOT NULL; If you need NULL in a key, use UNIQUE instead", "All parts of a PRIMARY KEY must be NOT NULL; If you need NULL in a key, use UNIQUE instead",
"Result consisted of more than one row", "Tulemis on rohkem kui ks kirje",
"This table type requires a primary key", "This table type requires a primary key",
"Antud MySQL ei ole kompileeritud RAID-i toega", "Antud MySQL ei ole kompileeritud RAID-i toega",
"You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column", "You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column",
"Key '%-.64s' doesn't exist in table '%-.64s'", "Key '%-.64s' doesn't exist in table '%-.64s'",
"Can't open table", "Ei suuda tabelit avada",
"The handler for the table doesn't support check/repair", "See tabelitp ei toeta kske CHECK/REPAIR",
"You are not allowed to execute this command in a transaction", "Puudub igus selle transaktsiooniksu andmiseks",
"Got error %d during COMMIT", "Sain vea %d COMMIT ksu titmisel",
"Got error %d during ROLLBACK", "Sain vea %d ROLLBACK ksu titmisel",
"Got error %d during FLUSH_LOGS", "Sain vea %d FLUSH_LOGS ksu titmisel",
"Got error %d during CHECKPOINT", "Sain vea %d CHECKPOINT ksu titmisel",
"Aborted connection %ld to db: '%-.64s' user: '%-.32s' host: `%-.64s' (%-.64s)", "hendus %ld katkestatud andmebaas: '%-.64s' kasutaja: '%-.32s' masin: `%-.64s' (%-.64s)",
"The handler for the table does not support binary table dump", "The handler for the table does not support binary table dump",
"Binlog closed while trying to FLUSH MASTER", "Binlog closed while trying to FLUSH MASTER",
"Failed rebuilding the index of dumped table '%-.64s'", "Failed rebuilding the index of dumped table '%-.64s'",
...@@ -198,9 +198,9 @@ ...@@ -198,9 +198,9 @@
"Net error writing to master", "Net error writing to master",
"Can't find FULLTEXT index matching the column list", "Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction", "Can't execute the given command because you have active locked tables or an active transaction",
"Unknown system variable '%-.64'", "Tundmatu ssteemne muutja '%-.64'",
"Table '%-.64s' is marked as crashed and should be repaired", "Tabel '%-.64s' on mrgitud vigaseks ja tuleb parandada",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Tabel '%-.64s' on mrgitud vigaseks ja viimane (automaatne?) parandamiskatse ebannestus",
"Warning: Some non-transactional changed tables couldn't be rolled back", "Warning: Some non-transactional changed tables couldn't be rolled back",
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', "Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
"This operation cannot be performed with a running slave, run SLAVE STOP first", "This operation cannot be performed with a running slave, run SLAVE STOP first",
......
...@@ -205,11 +205,11 @@ ...@@ -205,11 +205,11 @@
"Kunde inte initializera replications-strukturerna. Kontrollera privilegerna för 'master.info'", "Kunde inte initializera replications-strukturerna. Kontrollera privilegerna för 'master.info'",
"Kunde inte starta en tråd för replikering", "Kunde inte starta en tråd för replikering",
"Användare '%-.64s' har redan 'max_user_connections' aktiva inloggningar", "Användare '%-.64s' har redan 'max_user_connections' aktiva inloggningar",
"Du kan endast använda konstant-uttryck med SET", "Man kan endast använda konstant-uttryck med SET",
"Lock wait timeout exceeded", "Fick inte ett lås i tid",
"The total number of locks exceeds the lock table size", "Antal lås överskrider antalet reserverade lås",
"Update locks cannot be acquired during a READ UNCOMMITTED transaction", "Updaterings-lås kan inte göras när man använder READ UNCOMMITTED",
"DROP DATABASE not allowed while thread is holding global read lock", "DROP DATABASE är inte tillåtet när man har ett globalt läs-lås",
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE är inte tillåtet när man har ett globalt läs-lås",
"Felaktiga argument till %s", "Felaktiga argument till %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s har inte rättigheter att skapa nya användare",
...@@ -2667,7 +2667,7 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias, ...@@ -2667,7 +2667,7 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias,
DBUG_RETURN(0); DBUG_RETURN(0);
} }
#ifdef FN_LOWER_CASE #ifdef FN_NO_CASE_SENCE
if (!alias) /* Alias is case sensitive */ if (!alias) /* Alias is case sensitive */
if (!(alias_str=sql_strmake(alias_str,table->table.length))) if (!(alias_str=sql_strmake(alias_str,table->table.length)))
DBUG_RETURN(0); DBUG_RETURN(0);
......
...@@ -1125,7 +1125,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -1125,7 +1125,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
{ {
strmov(new_name_buff,new_name); strmov(new_name_buff,new_name);
fn_same(new_name_buff,table_name,3); fn_same(new_name_buff,table_name,3);
#ifdef FN_LOWER_CASE #ifdef FN_NO_CASE_SENCE
if (lower_case_table_names) if (lower_case_table_names)
casedn_str(new_name); casedn_str(new_name);
if ((lower_case_table_names && if ((lower_case_table_names &&
...@@ -1709,7 +1709,7 @@ copy_data_between_tables(TABLE *from,TABLE *to, ...@@ -1709,7 +1709,7 @@ copy_data_between_tables(TABLE *from,TABLE *to,
/* Turn off recovery logging since rollback of an /* Turn off recovery logging since rollback of an
alter table is to delete the new table so there alter table is to delete the new table so there
is no need to log the changes to it. */ is no need to log the changes to it. */
error = ha_recovery_logging(thd,false); error = ha_recovery_logging(thd,FALSE);
if (error) if (error)
{ {
error = 1; error = 1;
...@@ -1761,7 +1761,7 @@ copy_data_between_tables(TABLE *from,TABLE *to, ...@@ -1761,7 +1761,7 @@ copy_data_between_tables(TABLE *from,TABLE *to,
if (to->file->activate_all_index(thd)) if (to->file->activate_all_index(thd))
error=1; error=1;
tmp_error = ha_recovery_logging(thd,true); tmp_error = ha_recovery_logging(thd,TRUE);
/* /*
Ensure that the new table is saved properly to disk so that we Ensure that the new table is saved properly to disk so that we
can do a rename can do a rename
...@@ -1773,7 +1773,7 @@ copy_data_between_tables(TABLE *from,TABLE *to, ...@@ -1773,7 +1773,7 @@ copy_data_between_tables(TABLE *from,TABLE *to,
if (to->file->external_lock(thd,F_UNLCK)) if (to->file->external_lock(thd,F_UNLCK))
error=1; error=1;
err: err:
tmp_error = ha_recovery_logging(thd,true); tmp_error = ha_recovery_logging(thd,TRUE);
free_io_cache(from); free_io_cache(from);
*copied= found_count; *copied= found_count;
*deleted=delete_count; *deleted=delete_count;
......
...@@ -189,7 +189,10 @@ TEST_join(JOIN *join) ...@@ -189,7 +189,10 @@ TEST_join(JOIN *join)
void mysql_print_status(THD *thd) void mysql_print_status(THD *thd)
{ {
char current_dir[FN_REFLEN];
printf("\nStatus information:\n\n"); printf("\nStatus information:\n\n");
my_getwd(current_dir, sizeof(current_dir),MYF(0));
printf("Current dir: %s\n", current_dir);
if (thd) if (thd)
thd->proc_info="locks"; thd->proc_info="locks";
thr_print_locks(); // Write some debug info thr_print_locks(); // Write some debug info
......
...@@ -42,13 +42,13 @@ ...@@ -42,13 +42,13 @@
#include "my_sys.h" /* defines errno */ #include "my_sys.h" /* defines errno */
#include <errno.h> #include <errno.h>
#ifdef LONGLONG #ifdef USE_LONGLONG
#define UTYPE_MAX (~(ulonglong) 0) #define UTYPE_MAX (~(ulonglong) 0)
#define TYPE_MIN LONGLONG_MIN #define TYPE_MIN LONGLONG_MIN
#define TYPE_MAX LONGLONG_MAX #define TYPE_MAX LONGLONG_MAX
#define longtype longlong #define longtype longlong
#define ulongtype ulonglong #define ulongtype ulonglong
#ifdef UNSIGNED #ifdef USE_UNSIGNED
#define function ulongtype strtoull #define function ulongtype strtoull
#else #else
#define function longtype strtoll #define function longtype strtoll
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
#define TYPE_MAX LONG_MAX #define TYPE_MAX LONG_MAX
#define longtype long #define longtype long
#define ulongtype unsigned long #define ulongtype unsigned long
#ifdef UNSIGNED #ifdef USE_UNSIGNED
#define function ulongtype strtoul #define function ulongtype strtoul
#else #else
#define function longtype strtol #define function longtype strtol
...@@ -170,7 +170,7 @@ function (const char *nptr,char **endptr,int base) ...@@ -170,7 +170,7 @@ function (const char *nptr,char **endptr,int base)
if (endptr != NULL) if (endptr != NULL)
*endptr = (char *) s; *endptr = (char *) s;
#ifndef UNSIGNED #ifndef USE_UNSIGNED
/* Check for a value that is within the range of /* Check for a value that is within the range of
`unsigned long int', but outside the range of `long int'. */ `unsigned long int', but outside the range of `long int'. */
if (negative) if (negative)
...@@ -185,7 +185,7 @@ function (const char *nptr,char **endptr,int base) ...@@ -185,7 +185,7 @@ function (const char *nptr,char **endptr,int base)
if (overflow) if (overflow)
{ {
my_errno=ERANGE; my_errno=ERANGE;
#ifdef UNSIGNED #ifdef USE_UNSIGNED
return UTYPE_MAX; return UTYPE_MAX;
#else #else
return negative ? TYPE_MIN : TYPE_MAX; return negative ? TYPE_MIN : TYPE_MAX;
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include <global.h> #include <global.h>
#include <m_string.h> #include <m_string.h>
#if !defined(HAVE_STRTOULL) && defined(HAVE_LONG_LONG) #if !defined(HAVE_STRTOLL) && defined(HAVE_LONG_LONG)
#define LONGLONG #define USE_LONGLONG
#include "strto.c" #include "strto.c"
#endif #endif
...@@ -19,6 +19,6 @@ ...@@ -19,6 +19,6 @@
#include <global.h> #include <global.h>
#if !defined(MSDOS) && !defined(HAVE_STRTOUL) #if !defined(MSDOS) && !defined(HAVE_STRTOUL)
#define UNSIGNED #define USE_UNSIGNED
#include "strto.c" #include "strto.c"
#endif #endif
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#include <global.h> #include <global.h>
#include <m_string.h> #include <m_string.h>
#if !defined(HAVE_STRTOULL) && defined(HAVE_LONG_LONG) #if !defined(HAVE_STRTOULL) && defined(HAVE_LONG_LONG)
#define UNSIGNED #define USE_UNSIGNED
#define LONGLONG #define USE_LONGLONG
#include "strto.c" #include "strto.c"
#endif #endif
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