Merge bk-internal.mysql.com:/home/bk/mysql-5.0

into mysql.com:/home/my/mysql-5.0


sql/sp_pcontext.cc:
  Auto merged
This commit is contained in:
unknown 2005-02-25 19:51:29 +02:00
commit 0be32e7e5a
65 changed files with 233 additions and 241 deletions

View File

@ -332,13 +332,13 @@ static int create_sys_files(struct languages *lang_head,
head[30]= csnum; head[30]= csnum;
my_fseek(to, 0l, MY_SEEK_SET, MYF(0)); my_fseek(to, 0l, MY_SEEK_SET, MYF(0));
if (my_fwrite(to, head, HEADER_LENGTH, MYF(MY_WME | MY_FNABP))) if (my_fwrite(to, (byte*) head, HEADER_LENGTH, MYF(MY_WME | MY_FNABP)))
goto err; goto err;
for (i= 0; i < row_count; i++) for (i= 0; i < row_count; i++)
{ {
int2store(head, file_pos[i]); int2store(head, file_pos[i]);
if (my_fwrite(to, head, 2, MYF(MY_WME | MY_FNABP))) if (my_fwrite(to, (byte*) head, 2, MYF(MY_WME | MY_FNABP)))
goto err; goto err;
} }
my_fclose(to, MYF(0)); my_fclose(to, MYF(0));

View File

@ -250,7 +250,8 @@ int main(int argc,char *argv[])
'Unknown Error' (without regard to case). 'Unknown Error' (without regard to case).
*/ */
if (msg && if (msg &&
my_strnncoll(&my_charset_latin1, msg, 13, "Unknown Error", 13) && my_strnncoll(&my_charset_latin1, (const uchar*) msg, 13,
(const uchar*) "Unknown Error", 13) &&
(!unknown_error || strcmp(msg, unknown_error))) (!unknown_error || strcmp(msg, unknown_error)))
{ {
found=1; found=1;

View File

@ -26,10 +26,14 @@ extern "C" {
extern const char * NEAR globerrs[]; /* my_error_messages is here */ extern const char * NEAR globerrs[]; /* my_error_messages is here */
/* Error message numbers in global map */ /* Error message numbers in global map */
/* Do not add error numbers before EE_ERROR_FIRST. */ /*
/* If necessary to add lower numbers, change EE_ERROR_FIRST accordingly. */ Do not add error numbers before EE_ERROR_FIRST.
#define EE_ERROR_FIRST 0 /*Copy first error nr.*/ If necessary to add lower numbers, change EE_ERROR_FIRST accordingly.
#define EE_FILENOTFOUND 0
We start with error 1 to not confuse peoples with 'error 0'
*/
#define EE_ERROR_FIRST 1 /*Copy first error nr.*/
#define EE_CANTCREATEFILE 1 #define EE_CANTCREATEFILE 1
#define EE_READ 2 #define EE_READ 2
#define EE_WRITE 3 #define EE_WRITE 3
@ -57,7 +61,8 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
#define EE_REALPATH 26 #define EE_REALPATH 26
#define EE_SYNC 27 #define EE_SYNC 27
#define EE_UNKNOWN_COLLATION 28 #define EE_UNKNOWN_COLLATION 28
#define EE_ERROR_LAST 28 /*Copy last error nr.*/ #define EE_FILENOTFOUND 29
#define EE_ERROR_LAST 29 /*Copy last error nr.*/
/* Add error numbers before EE_ERROR_LAST and change it accordingly. */ /* Add error numbers before EE_ERROR_LAST and change it accordingly. */
/* exit codes for all MySQL programs */ /* exit codes for all MySQL programs */

View File

@ -2472,7 +2472,7 @@ dict_scan_id(
my_isspace(). Only after that, convert id names to UTF-8. */ my_isspace(). Only after that, convert id names to UTF-8. */
b = (byte*)(*id); b = (byte*)(*id);
id_len = strlen(b); id_len = strlen((char*) b);
if (id_len >= 3 && b[id_len - 1] == 0xA0 if (id_len >= 3 && b[id_len - 1] == 0xA0
&& b[id_len - 2] == 0xC2) { && b[id_len - 2] == 0xC2) {

View File

@ -184,7 +184,7 @@ loop:
if (table == NULL) { if (table == NULL) {
fputs("InnoDB: Failed to load table ", stderr); fputs("InnoDB: Failed to load table ", stderr);
ut_print_namel(stderr, NULL, field, len); ut_print_namel(stderr, NULL, (char*) field, len);
putc('\n', stderr); putc('\n', stderr);
} else { } else {
/* The table definition was corrupt if there /* The table definition was corrupt if there

View File

@ -220,7 +220,7 @@ sym_tab_add_id(
node->resolved = FALSE; node->resolved = FALSE;
node->indirection = NULL; node->indirection = NULL;
node->name = mem_heap_strdupl(sym_tab->heap, name, len + 1); node->name = mem_heap_strdupl(sym_tab->heap, (char*) name, len + 1);
node->name_len = len; node->name_len = len;
UT_LIST_ADD_LAST(sym_list, sym_tab->sym_list, node); UT_LIST_ADD_LAST(sym_list, sym_tab->sym_list, node);

View File

@ -430,7 +430,7 @@ row_build_row_ref(
dfield_set_len(dfield, dfield_set_len(dfield,
dtype_get_at_most_n_mbchars( dtype_get_at_most_n_mbchars(
dfield_get_type(dfield), dfield_get_type(dfield),
clust_col_prefix_len, len, field)); clust_col_prefix_len, len, (char*) field));
} }
} }
} }
@ -525,7 +525,7 @@ row_build_row_ref_in_tuple(
dfield_set_len(dfield, dfield_set_len(dfield,
dtype_get_at_most_n_mbchars( dtype_get_at_most_n_mbchars(
dfield_get_type(dfield), dfield_get_type(dfield),
clust_col_prefix_len, len, field)); clust_col_prefix_len, len, (char*) field));
} }
} }
} }

View File

@ -112,7 +112,7 @@ row_sel_sec_rec_is_for_clust_rec(
clust_len = dtype_get_at_most_n_mbchars( clust_len = dtype_get_at_most_n_mbchars(
cur_type, cur_type,
ifield->prefix_len, ifield->prefix_len,
clust_len, clust_field); clust_len, (char*) clust_field);
} }
if (0 != cmp_data_data(dict_col_get_type(col), if (0 != cmp_data_data(dict_col_get_type(col),

View File

@ -28,10 +28,6 @@ extern "C"
extern unsigned long max_allowed_packet, net_buffer_length; extern unsigned long max_allowed_packet, net_buffer_length;
} }
static int fake_argc= 1;
static char *fake_argv[]= {(char *)"", 0};
static const char *fake_groups[] = { "server", "embedded", 0 };
#if defined (__WIN__) #if defined (__WIN__)
#include "../sql/mysqld.cpp" #include "../sql/mysqld.cpp"
#else #else

View File

@ -186,7 +186,7 @@ uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key,
FIX_LENGTH(cs, pos, length, char_length); FIX_LENGTH(cs, pos, length, char_length);
memcpy((byte*) key, pos, char_length); memcpy((byte*) key, pos, char_length);
if (length > char_length) if (length > char_length)
cs->cset->fill(cs, key+char_length, length-char_length, ' '); cs->cset->fill(cs, (char*) key+char_length, length-char_length, ' ');
key+= length; key+= length;
} }
_mi_dpointer(info,key,filepos); _mi_dpointer(info,key,filepos);
@ -296,7 +296,7 @@ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old,
FIX_LENGTH(cs, pos, length, char_length); FIX_LENGTH(cs, pos, length, char_length);
memcpy((byte*) key, pos, char_length); memcpy((byte*) key, pos, char_length);
if (length > char_length) if (length > char_length)
cs->cset->fill(cs,key+char_length, length-char_length, ' '); cs->cset->fill(cs, (char*) key+char_length, length-char_length, ' ');
key+= length; key+= length;
k_length-=length; k_length-=length;
} }

View File

@ -5,6 +5,8 @@ backup table t4 to '../bogus';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t4 backup error Failed copying .frm file (errno: X) test.t4 backup error Failed copying .frm file (errno: X)
test.t4 backup status Operation failed test.t4 backup status Operation failed
Warnings:
Error 1 Can't create/write to file 'MYSQL_TEST_DIR/var/bogus/t4.frm' (Errcode: X)
backup table t4 to '../tmp'; backup table t4 to '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t4 backup status OK test.t4 backup status OK
@ -12,6 +14,8 @@ backup table t4 to '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t4 backup error Failed copying .frm file (errno: X) test.t4 backup error Failed copying .frm file (errno: X)
test.t4 backup status Operation failed test.t4 backup status Operation failed
Warnings:
Error 1 Can't create/write to file 'MYSQL_TEST_DIR/var/tmp/t4.frm' (Errcode: X)
drop table t4; drop table t4;
restore table t4 from '../tmp'; restore table t4 from '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
@ -28,6 +32,8 @@ drop table t1;
restore table t1 from '../bogus'; restore table t1 from '../bogus';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
t1 restore error Failed copying .frm file t1 restore error Failed copying .frm file
Warnings:
Error 29 File 'MYSQL_TEST_DIR/var/bogus/t1.frm' not found (Errcode: X)
restore table t1 from '../tmp'; restore table t1 from '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 restore status OK test.t1 restore status OK

View File

@ -1453,18 +1453,18 @@ test.t1 2948697075
test.t2 NULL test.t2 NULL
test.t3 NULL test.t3 NULL
test.t4 NULL test.t4 NULL
checksum table t1, t2, t3, t4; Warnings:
Error 1146 Table 'test.t4' doesn't exist
checksum table t1, t2, t3;
Table Checksum Table Checksum
test.t1 2948697075 test.t1 2948697075
test.t2 968604391 test.t2 968604391
test.t3 968604391 test.t3 968604391
test.t4 NULL checksum table t1, t2, t3 extended;
checksum table t1, t2, t3, t4 extended;
Table Checksum Table Checksum
test.t1 3092701434 test.t1 3092701434
test.t2 968604391 test.t2 968604391
test.t3 968604391 test.t3 968604391
test.t4 NULL
drop table t1,t2,t3; drop table t1,t2,t3;
create table t1 (id int, name char(10) not null, name2 char(10) not null) engine=innodb; create table t1 (id int, name char(10) not null, name2 char(10) not null) engine=innodb;
insert into t1 values(1,'first','fff'),(2,'second','sss'),(3,'third','ttt'); insert into t1 values(1,'first','fff'),(2,'second','sss'),(3,'third','ttt');

View File

@ -193,6 +193,8 @@ cache index t1 key (unknown_key) in keycache1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 assign_to_keycache error Key column 'unknown_key' doesn't exist in table test.t1 assign_to_keycache error Key column 'unknown_key' doesn't exist in table
test.t1 assign_to_keycache status Operation failed test.t1 assign_to_keycache status Operation failed
Warnings:
Error 1072 Key column 'unknown_key' doesn't exist in table
select @@keycache2.key_buffer_size; select @@keycache2.key_buffer_size;
@@keycache2.key_buffer_size @@keycache2.key_buffer_size
4194304 4194304

View File

@ -516,16 +516,22 @@ Table Checksum
test.t1 2948697075 test.t1 2948697075
test.t2 NULL test.t2 NULL
test.t3 NULL test.t3 NULL
Warnings:
Error 1146 Table 'test.t3' doesn't exist
checksum table t1, t2, t3; checksum table t1, t2, t3;
Table Checksum Table Checksum
test.t1 2948697075 test.t1 2948697075
test.t2 3092701434 test.t2 3092701434
test.t3 NULL test.t3 NULL
Warnings:
Error 1146 Table 'test.t3' doesn't exist
checksum table t1, t2, t3 extended; checksum table t1, t2, t3 extended;
Table Checksum Table Checksum
test.t1 3092701434 test.t1 3092701434
test.t2 3092701434 test.t2 3092701434
test.t3 NULL test.t3 NULL
Warnings:
Error 1146 Table 'test.t3' doesn't exist
drop table t1,t2; drop table t1,t2;
create table t1 (a int, key (a)); create table t1 (a int, key (a));
show keys from t1; show keys from t1;

View File

@ -145,6 +145,8 @@ load index into cache t3, t2 key (primary,b) ;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t3 preload_keys error Table 'test.t3' doesn't exist test.t3 preload_keys error Table 'test.t3' doesn't exist
test.t2 preload_keys status OK test.t2 preload_keys status OK
Warnings:
Error 1146 Table 'test.t3' doesn't exist
show status like "key_read%"; show status like "key_read%";
Variable_name Value Variable_name Value
Key_read_requests 355 Key_read_requests 355
@ -160,6 +162,9 @@ Table Op Msg_type Msg_text
test.t3 preload_keys error Table 'test.t3' doesn't exist test.t3 preload_keys error Table 'test.t3' doesn't exist
test.t2 preload_keys error Key column 'c' doesn't exist in table test.t2 preload_keys error Key column 'c' doesn't exist in table
test.t2 preload_keys status Operation failed test.t2 preload_keys status Operation failed
Warnings:
Error 1146 Table 'test.t3' doesn't exist
Error 1072 Key column 'c' doesn't exist in table
show status like "key_read%"; show status like "key_read%";
Variable_name Value Variable_name Value
Key_read_requests 0 Key_read_requests 0

View File

@ -27,11 +27,15 @@ drop table t1;
repair table t1 use_frm; repair table t1 use_frm;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 repair error Table 'test.t1' doesn't exist test.t1 repair error Table 'test.t1' doesn't exist
Warnings:
Error 1146 Table 'test.t1' doesn't exist
create table t1 engine=myisam SELECT 1,"table 1"; create table t1 engine=myisam SELECT 1,"table 1";
flush tables; flush tables;
repair table t1; repair table t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 repair error Incorrect file format 't1' test.t1 repair error Incorrect file format 't1'
Warnings:
Error 130 Incorrect file format 't1'
repair table t1 use_frm; repair table t1 use_frm;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 repair warning Number of rows changed from 0 to 1 test.t1 repair warning Number of rows changed from 0 to 1

View File

@ -10,6 +10,10 @@ INSERT INTO t1 VALUES (1);
OPTIMIZE TABLE t1; OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 optimize status Operation failed test.t1 optimize status Operation failed
Warnings:
Error 1205 Lock wait timeout exceeded; try restarting transaction
OPTIMIZE TABLE non_existing; OPTIMIZE TABLE non_existing;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.non_existing optimize error Table 'test.non_existing' doesn't exist test.non_existing optimize error Table 'test.non_existing' doesn't exist
Warnings:
Error 1146 Table 'test.non_existing' doesn't exist

View File

@ -1598,6 +1598,8 @@ insert into t1 values (2);
set sort_buffer_size = (select s1 from t1); set sort_buffer_size = (select s1 from t1);
ERROR 21000: Subquery returns more than 1 row ERROR 21000: Subquery returns more than 1 row
do (select * from t1); do (select * from t1);
Warnings:
Error 1242 Subquery returns more than 1 row
drop table t1; drop table t1;
create table t1 (s1 char); create table t1 (s1 char);
insert into t1 values ('e'); insert into t1 values ('e');

View File

@ -10,10 +10,10 @@ set SQL_LOG_BIN=0;
drop table if exists t1, t2, t3; drop table if exists t1, t2, t3;
--enable_warnings --enable_warnings
create table t4(n int); create table t4(n int);
--replace_result "errno: 1" "errno: X" "errno: 2" "errno: X" "errno: 22" "errno: X" "errno: 23" "errno: X" --replace_result ": 1" ": X" ": 2" ": X" ": 22" ": X" ": 23" ": X" $MYSQL_TEST_DIR MYSQL_TEST_DIR
backup table t4 to '../bogus'; backup table t4 to '../bogus';
backup table t4 to '../tmp'; backup table t4 to '../tmp';
--replace_result "errno: 7" "errno: X" "errno: 17" "errno: X" --replace_result ": 7" ": X" ": 17" ": X" $MYSQL_TEST_DIR MYSQL_TEST_DIR
backup table t4 to '../tmp'; backup table t4 to '../tmp';
drop table t4; drop table t4;
restore table t4 from '../tmp'; restore table t4 from '../tmp';
@ -23,6 +23,7 @@ create table t1(n int);
insert into t1 values (23),(45),(67); insert into t1 values (23),(45),(67);
backup table t1 to '../tmp'; backup table t1 to '../tmp';
drop table t1; drop table t1;
--replace_result ": 1" ": X" ": 2" ": X" ": 22" ": X" ": 23" ": X" $MYSQL_TEST_DIR MYSQL_TEST_DIR
restore table t1 from '../bogus'; restore table t1 from '../bogus';
restore table t1 from '../tmp'; restore table t1 from '../tmp';
select n from t1; select n from t1;

View File

@ -1058,8 +1058,8 @@ insert t1 values (1, "aaa", "bbb"), (NULL, "", "ccccc"), (0, NULL, "");
insert t2 select * from t1; insert t2 select * from t1;
insert t3 select * from t1; insert t3 select * from t1;
checksum table t1, t2, t3, t4 quick; checksum table t1, t2, t3, t4 quick;
checksum table t1, t2, t3, t4; checksum table t1, t2, t3;
checksum table t1, t2, t3, t4 extended; checksum table t1, t2, t3 extended;
#show table status; #show table status;
drop table t1,t2,t3; drop table t1,t2,t3;

View File

@ -552,7 +552,7 @@ system rm ./var/master-data/test/t1.MYI ;
drop table t1; drop table t1;
create table t1 (a int) engine=myisam; create table t1 (a int) engine=myisam;
system rm ./var/master-data/test/t1.MYD ; system rm ./var/master-data/test/t1.MYD ;
--error 1105,6 --error 1105,6,29
drop table t1; drop table t1;
--error 1051 --error 1051
drop table t1; drop table t1;

View File

@ -24,7 +24,7 @@ drop table if exists t1, t2, t3, t4;
# START SLAVE will fail because it can't read the file (mode 000) # START SLAVE will fail because it can't read the file (mode 000)
# (system error 13) # (system error 13)
--replace_result $MYSQL_TEST_DIR TESTDIR --replace_result $MYSQL_TEST_DIR TESTDIR
--error 1105,1105 --error 1105,1105,29
start slave; start slave;
system chmod 600 var/slave-data/master.info; system chmod 600 var/slave-data/master.info;
# It will fail again because the file is empty so the slave cannot get valuable # It will fail again because the file is empty so the slave cannot get valuable

View File

@ -21,7 +21,6 @@
const char * NEAR globerrs[GLOBERRS]= const char * NEAR globerrs[GLOBERRS]=
{ {
"File '%s' not found (Errcode: %d)",
"Can't create/write to file '%s' (Errcode: %d)", "Can't create/write to file '%s' (Errcode: %d)",
"Error reading file '%s' (Errcode: %d)", "Error reading file '%s' (Errcode: %d)",
"Error writing file '%s' (Errcode: %d)", "Error writing file '%s' (Errcode: %d)",
@ -50,6 +49,8 @@ const char * NEAR globerrs[GLOBERRS]=
"Error on realpath() on '%s' (Error %d)", "Error on realpath() on '%s' (Error %d)",
"Can't sync file '%s' to disk (Errcode: %d)", "Can't sync file '%s' to disk (Errcode: %d)",
"Collation '%s' is not a compiled collation and is not specified in the '%s' file", "Collation '%s' is not a compiled collation and is not specified in the '%s' file",
"File '%s' not found (Errcode: %d)",
""
}; };
void init_glob_errs(void) void init_glob_errs(void)
@ -61,7 +62,6 @@ void init_glob_errs(void)
void init_glob_errs() void init_glob_errs()
{ {
EE(EE_FILENOTFOUND) = "File '%s' not found (Errcode: %d)";
EE(EE_CANTCREATEFILE) = "Can't create/write to file '%s' (Errcode: %d)"; EE(EE_CANTCREATEFILE) = "Can't create/write to file '%s' (Errcode: %d)";
EE(EE_READ) = "Error reading file '%s' (Errcode: %d)"; EE(EE_READ) = "Error reading file '%s' (Errcode: %d)";
EE(EE_WRITE) = "Error writing file '%s' (Errcode: %d)"; EE(EE_WRITE) = "Error writing file '%s' (Errcode: %d)";
@ -89,5 +89,6 @@ void init_glob_errs()
EE(EE_REALPATH)= "Error on realpath() on '%s' (Error %d)"; EE(EE_REALPATH)= "Error on realpath() on '%s' (Error %d)";
EE(EE_SYNC)= "Can't sync file '%s' to disk (Errcode: %d)"; EE(EE_SYNC)= "Can't sync file '%s' to disk (Errcode: %d)";
EE(EE_UNKNOWN_COLLATION)= "Collation '%s' is not a compiled collation and is not specified in the %s file"; EE(EE_UNKNOWN_COLLATION)= "Collation '%s' is not a compiled collation and is not specified in the %s file";
EE(EE_FILENOTFOUND) = "File '%s' not found (Errcode: %d)";
} }
#endif #endif

View File

@ -256,7 +256,7 @@ sopno stopst;
register char *ssp; /* start of string matched by subsubRE */ register char *ssp; /* start of string matched by subsubRE */
register char *sep; /* end of string matched by subsubRE */ register char *sep; /* end of string matched by subsubRE */
register char *oldssp; /* previous ssp */ register char *oldssp; /* previous ssp */
register char *dp; register char *dp; /* used in debug mode to check asserts */
AT("diss", start, stop, startst, stopst); AT("diss", start, stop, startst, stopst);
sp = start; sp = start;

View File

@ -78,7 +78,6 @@ static bool read_texts(const char *file_name,const char ***point,
char name[FN_REFLEN]; char name[FN_REFLEN];
const char *buff; const char *buff;
uchar head[32],*pos; uchar head[32],*pos;
CHARSET_INFO *cset; // For future
DBUG_ENTER("read_texts"); DBUG_ENTER("read_texts");
*point=0; // If something goes wrong *point=0; // If something goes wrong
@ -104,7 +103,7 @@ Please install the latest version of this file.",name);
} }
/* TODO: Convert the character set to server system character set */ /* TODO: Convert the character set to server system character set */
if (!(cset= get_charset(head[30],MYF(MY_WME)))) if (!get_charset(head[30],MYF(MY_WME)))
{ {
sql_print_error("Character set #%d is not supported for messagefile '%s'", sql_print_error("Character set #%d is not supported for messagefile '%s'",
(int)head[30],name); (int)head[30],name);

View File

@ -575,7 +575,7 @@ error:
int ha_archive::write_row(byte * buf) int ha_archive::write_row(byte * buf)
{ {
z_off_t written; z_off_t written;
uint *bptr, *end; uint *ptr, *end;
DBUG_ENTER("ha_archive::write_row"); DBUG_ENTER("ha_archive::write_row");
if (share->crashed) if (share->crashed)
@ -596,17 +596,17 @@ int ha_archive::write_row(byte * buf)
We should probably mark the table as damagaged if the record is written We should probably mark the table as damagaged if the record is written
but the blob fails. but the blob fails.
*/ */
for (bptr= table->s->blob_field, end=bptr + table->s->blob_fields ; for (ptr= table->s->blob_field, end= ptr + table->s->blob_fields ;
bptr != end ; ptr != end ;
bptr++) ptr++)
{ {
char *ptr; char *data_ptr;
uint32 size= ((Field_blob*) table->field[*bptr])->get_length(); uint32 size= ((Field_blob*) table->field[*ptr])->get_length();
if (size) if (size)
{ {
((Field_blob*) table->field[*bptr])->get_ptr(&ptr); ((Field_blob*) table->field[*ptr])->get_ptr(&data_ptr);
written= gzwrite(share->archive_write, ptr, (unsigned)size); written= gzwrite(share->archive_write, data_ptr, (unsigned)size);
if (written != size) if (written != size)
goto error; goto error;
} }
@ -630,7 +630,6 @@ error:
int ha_archive::rnd_init(bool scan) int ha_archive::rnd_init(bool scan)
{ {
DBUG_ENTER("ha_archive::rnd_init"); DBUG_ENTER("ha_archive::rnd_init");
int read; // gzread() returns int, and we use this to check the header
if (share->crashed) if (share->crashed)
DBUG_RETURN(HA_ERR_CRASHED_ON_USAGE); DBUG_RETURN(HA_ERR_CRASHED_ON_USAGE);

View File

@ -797,7 +797,7 @@ bool Field::needs_quotes(void)
{ {
DBUG_ENTER("Field::type_quote"); DBUG_ENTER("Field::type_quote");
switch(type()) { switch (type()) {
//FIX this when kernel is fixed //FIX this when kernel is fixed
case MYSQL_TYPE_VARCHAR : case MYSQL_TYPE_VARCHAR :
case FIELD_TYPE_STRING : case FIELD_TYPE_STRING :
@ -827,10 +827,9 @@ bool Field::needs_quotes(void)
case FIELD_TYPE_SET : case FIELD_TYPE_SET :
case FIELD_TYPE_ENUM : case FIELD_TYPE_ENUM :
DBUG_RETURN(0); DBUG_RETURN(0);
default:
default: DBUG_RETURN(0);
}
DBUG_RETURN(0); DBUG_RETURN(0);
}
} }
@ -5034,7 +5033,7 @@ int Field_str::store(double nr)
double anr= fabs(nr); double anr= fabs(nr);
int neg= (nr < 0.0) ? 1 : 0; int neg= (nr < 0.0) ? 1 : 0;
if (field_length > 4 && field_length < 32 && if (field_length > 4 && field_length < 32 &&
(anr < 1.0 ? anr > 1/(log_10[max(0,field_length-neg-2)]) /* -2 for "0." */ (anr < 1.0 ? anr > 1/(log_10[max(0,(int) field_length-neg-2)]) /* -2 for "0." */
: anr < log_10[field_length-neg]-1)) : anr < log_10[field_length-neg]-1))
use_scientific_notation= FALSE; use_scientific_notation= FALSE;
@ -5453,7 +5452,6 @@ int Field_varstring::cmp(const char *a_ptr, const char *b_ptr)
int Field_varstring::key_cmp(const byte *key_ptr, uint max_key_length) int Field_varstring::key_cmp(const byte *key_ptr, uint max_key_length)
{ {
char *blob1;
uint length= length_bytes == 1 ? (uint) (uchar) *ptr : uint2korr(ptr); uint length= length_bytes == 1 ? (uint) (uchar) *ptr : uint2korr(ptr);
uint char_length= max_key_length / field_charset->mbmaxlen; uint char_length= max_key_length / field_charset->mbmaxlen;
@ -5752,8 +5750,6 @@ void Field_varstring::set_key_image(char *buff,uint length)
int Field_varstring::cmp_binary(const char *a_ptr, const char *b_ptr, int Field_varstring::cmp_binary(const char *a_ptr, const char *b_ptr,
uint32 max_length) uint32 max_length)
{ {
char *a,*b;
uint diff;
uint32 a_length,b_length; uint32 a_length,b_length;
if (length_bytes == 1) if (length_bytes == 1)
@ -7202,11 +7198,12 @@ uint32 calc_pack_length(enum_field_types type,uint32 length)
case FIELD_TYPE_GEOMETRY: return 4+portable_sizeof_char_ptr; case FIELD_TYPE_GEOMETRY: return 4+portable_sizeof_char_ptr;
case FIELD_TYPE_SET: case FIELD_TYPE_SET:
case FIELD_TYPE_ENUM: case FIELD_TYPE_ENUM:
case FIELD_TYPE_NEWDECIMAL: abort(); return 0; // This shouldn't happen case FIELD_TYPE_NEWDECIMAL:
abort(); return 0; // This shouldn't happen
case FIELD_TYPE_BIT: return length / 8; case FIELD_TYPE_BIT: return length / 8;
default: return 0; default:
return 0;
} }
return 0; // Keep compiler happy
} }

View File

@ -772,7 +772,7 @@ static void make_sortkey(register SORTPARAM *param,
*/ */
SORT_ADDON_FIELD *addonf= param->addon_field; SORT_ADDON_FIELD *addonf= param->addon_field;
uchar *nulls= to; uchar *nulls= to;
DBUG_ASSERT(addonf); DBUG_ASSERT(addonf != 0);
bzero((char *) nulls, addonf->offset); bzero((char *) nulls, addonf->offset);
to+= addonf->offset; to+= addonf->offset;
for ( ; (field= addonf->field) ; addonf++) for ( ; (field= addonf->field) ; addonf++)

View File

@ -494,7 +494,6 @@ int ha_heap::create(const char *name, TABLE *table_arg,
for (; key_part != key_part_end; key_part++, seg++) for (; key_part != key_part_end; key_part++, seg++)
{ {
uint flag= key_part->key_type;
Field *field= key_part->field; Field *field= key_part->field;
if (pos->algorithm == HA_KEY_ALG_BTREE) if (pos->algorithm == HA_KEY_ALG_BTREE)

View File

@ -2594,8 +2594,6 @@ ha_innobase::write_row(
int error; int error;
longlong auto_inc; longlong auto_inc;
longlong dummy; longlong dummy;
ibool incremented_auto_inc_for_stat = FALSE;
ibool incremented_auto_inc_counter = FALSE;
ibool auto_inc_used= FALSE; ibool auto_inc_used= FALSE;
DBUG_ENTER("ha_innobase::write_row"); DBUG_ENTER("ha_innobase::write_row");
@ -5098,17 +5096,16 @@ ha_innobase::get_foreign_key_list(THD *thd, List<FOREIGN_KEY_INFO> *f_key_list)
while (tmp_buff[i] != '/') while (tmp_buff[i] != '/')
i++; i++;
tmp_buff+= i + 1; tmp_buff+= i + 1;
f_key_info.forein_id= make_lex_string(thd, f_key_info.forein_id, f_key_info.forein_id= make_lex_string(thd, 0,
tmp_buff, strlen(tmp_buff), 1); tmp_buff, strlen(tmp_buff), 1);
tmp_buff= foreign->referenced_table_name; tmp_buff= foreign->referenced_table_name;
i= 0; i= 0;
while (tmp_buff[i] != '/') while (tmp_buff[i] != '/')
i++; i++;
f_key_info.referenced_db= make_lex_string(thd, f_key_info.referenced_db, f_key_info.referenced_db= make_lex_string(thd, 0,
tmp_buff, i, 1); tmp_buff, i, 1);
tmp_buff+= i + 1; tmp_buff+= i + 1;
f_key_info.referenced_table= make_lex_string(thd, f_key_info.referenced_table= make_lex_string(thd, 0,
f_key_info.referenced_table,
tmp_buff, strlen(tmp_buff), 1); tmp_buff, strlen(tmp_buff), 1);
for (i= 0;;) for (i= 0;;)
@ -5717,15 +5714,12 @@ innodb_mutex_show_status(
Protocol *protocol= thd->protocol; Protocol *protocol= thd->protocol;
List<Item> field_list; List<Item> field_list;
mutex_t* mutex; mutex_t* mutex;
const char* file_name;
ulint line;
ulint rw_lock_count= 0; ulint rw_lock_count= 0;
ulint rw_lock_count_spin_loop= 0; ulint rw_lock_count_spin_loop= 0;
ulint rw_lock_count_spin_rounds= 0; ulint rw_lock_count_spin_rounds= 0;
ulint rw_lock_count_os_wait= 0; ulint rw_lock_count_os_wait= 0;
ulint rw_lock_count_os_yield= 0; ulint rw_lock_count_os_yield= 0;
ulonglong rw_lock_wait_time= 0; ulonglong rw_lock_wait_time= 0;
DBUG_ENTER("innodb_mutex_show_status"); DBUG_ENTER("innodb_mutex_show_status");
field_list.push_back(new Item_empty_string("Mutex", FN_REFLEN)); field_list.push_back(new Item_empty_string("Mutex", FN_REFLEN));

View File

@ -735,7 +735,7 @@ int ha_commit_or_rollback_by_xid(LEX_STRING *ident, bool commit)
*/ */
int ha_recover(HASH *commit_list) int ha_recover(HASH *commit_list)
{ {
int error= 0, len, got; int len, got;
handlerton **ht= handlertons, **end_ht=ht+total_ha; handlerton **ht= handlertons, **end_ht=ht+total_ha;
XID *list=0; XID *list=0;
DBUG_ENTER("ha_recover"); DBUG_ENTER("ha_recover");
@ -907,7 +907,7 @@ int ha_rollback_to_savepoint(THD *thd, SAVEPOINT *sv)
for (; ht < end_ht; ht++) for (; ht < end_ht; ht++)
{ {
int err; int err;
DBUG_ASSERT((*ht)->savepoint_set); DBUG_ASSERT((*ht)->savepoint_set != 0);
if ((err= (*(*ht)->savepoint_rollback)(thd, (byte *)(sv+1)+(*ht)->savepoint_offset))) if ((err= (*(*ht)->savepoint_rollback)(thd, (byte *)(sv+1)+(*ht)->savepoint_offset)))
{ // cannot happen { // cannot happen
my_error(ER_ERROR_DURING_ROLLBACK, MYF(0), err); my_error(ER_ERROR_DURING_ROLLBACK, MYF(0), err);
@ -2219,7 +2219,7 @@ TYPELIB *ha_known_exts(void)
(found_exts.elements+1), (found_exts.elements+1),
MYF(MY_WME | MY_FAE)); MYF(MY_WME | MY_FAE));
DBUG_ASSERT(ext); DBUG_ASSERT(ext != 0);
known_extensions.count= found_exts.elements; known_extensions.count= found_exts.elements;
known_extensions.type_names= ext; known_extensions.type_names= ext;

View File

@ -131,7 +131,6 @@ my_decimal *Item::val_decimal_from_string(my_decimal *decimal_value)
{ {
String *res; String *res;
char *end_ptr; char *end_ptr;
int error;
if (!(res= val_str(&str_value))) if (!(res= val_str(&str_value)))
return 0; // NULL or EOM return 0; // NULL or EOM
@ -1102,6 +1101,7 @@ bool Item_field::val_bool_result()
case ROW_RESULT: case ROW_RESULT:
default: default:
DBUG_ASSERT(0); DBUG_ASSERT(0);
return 0; // Shut up compiler
} }
} }
@ -2179,7 +2179,7 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list)
else else
return NULL; return NULL;
DBUG_ASSERT(field_name); DBUG_ASSERT(field_name != 0);
for (ORDER *cur_group= group_list ; cur_group ; cur_group= cur_group->next) for (ORDER *cur_group= group_list ; cur_group ; cur_group= cur_group->next)
{ {
@ -2188,7 +2188,7 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list)
cur_field= (Item_field*) *cur_group->item; cur_field= (Item_field*) *cur_group->item;
cur_match_degree= 0; cur_match_degree= 0;
DBUG_ASSERT(cur_field->field_name); DBUG_ASSERT(cur_field->field_name != 0);
if (!my_strcasecmp(system_charset_info, if (!my_strcasecmp(system_charset_info,
cur_field->field_name, field_name)) cur_field->field_name, field_name))
@ -2317,7 +2317,7 @@ resolve_ref_in_select_and_group(THD *thd, Item_ident *ref, SELECT_LEX *select)
{ {
if (select_ref != not_found_item && !ambiguous_fields) if (select_ref != not_found_item && !ambiguous_fields)
{ {
DBUG_ASSERT(*select_ref); DBUG_ASSERT(*select_ref != 0);
if (!select->ref_pointer_array[counter]) if (!select->ref_pointer_array[counter])
{ {
my_error(ER_ILLEGAL_REFERENCE, MYF(0), my_error(ER_ILLEGAL_REFERENCE, MYF(0),
@ -2514,7 +2514,7 @@ bool Item_field::fix_fields(THD *thd, TABLE_LIST *tables, Item **reference)
} }
} }
DBUG_ASSERT(ref); DBUG_ASSERT(ref != 0);
if (!from_field) if (!from_field)
return TRUE; return TRUE;
if (ref == not_found_item && from_field == not_found_field) if (ref == not_found_item && from_field == not_found_field)
@ -2960,7 +2960,7 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table)
void Item_field::make_field(Send_field *tmp_field) void Item_field::make_field(Send_field *tmp_field)
{ {
field->make_field(tmp_field); field->make_field(tmp_field);
DBUG_ASSERT(tmp_field->table_name); DBUG_ASSERT(tmp_field->table_name != 0);
if (name) if (name)
tmp_field->col_name=name; // Use user supplied name tmp_field->col_name=name; // Use user supplied name
} }
@ -3457,7 +3457,7 @@ Item_ref::Item_ref(Item **item, const char *table_name_par,
/* /*
This constructor used to create some internals references over fixed items This constructor used to create some internals references over fixed items
*/ */
DBUG_ASSERT(ref); DBUG_ASSERT(ref != 0);
if (*ref) if (*ref)
set_properties(); set_properties();
} }
@ -3528,9 +3528,6 @@ bool Item_ref::fix_fields(THD *thd, TABLE_LIST *tables, Item **reference)
{ {
SELECT_LEX_UNIT *prev_unit= current_sel->master_unit(); SELECT_LEX_UNIT *prev_unit= current_sel->master_unit();
SELECT_LEX *outer_sel= prev_unit->outer_select(); SELECT_LEX *outer_sel= prev_unit->outer_select();
ORDER *group_list= (ORDER*) current_sel->group_list.first;
bool ambiguous_fields= FALSE;
Item **group_by_ref= NULL;
if (!(ref= resolve_ref_in_select_and_group(thd, this, current_sel))) if (!(ref= resolve_ref_in_select_and_group(thd, this, current_sel)))
return TRUE; /* Some error occurred (e.g. ambiguous names). */ return TRUE; /* Some error occurred (e.g. ambiguous names). */
@ -3644,7 +3641,7 @@ bool Item_ref::fix_fields(THD *thd, TABLE_LIST *tables, Item **reference)
break; /* Do not consider derived tables. */ break; /* Do not consider derived tables. */
} }
DBUG_ASSERT(ref); DBUG_ASSERT(ref != 0);
if (!from_field) if (!from_field)
return TRUE; return TRUE;
if (ref == not_found_item && from_field == not_found_field) if (ref == not_found_item && from_field == not_found_field)
@ -4595,7 +4592,7 @@ void Item_cache_row::bring_value()
Field *get_holder_example_field(THD *thd, Item *item, TABLE *table) Field *get_holder_example_field(THD *thd, Item *item, TABLE *table)
{ {
DBUG_ASSERT(table); DBUG_ASSERT(table != 0);
Item_func *tmp_item= 0; Item_func *tmp_item= 0;
if (item->type() == Item::FIELD_ITEM) if (item->type() == Item::FIELD_ITEM)

View File

@ -1514,7 +1514,7 @@ int subselect_indexsubquery_engine::exec()
uint subselect_single_select_engine::cols() uint subselect_single_select_engine::cols()
{ {
DBUG_ASSERT(select_lex->join); // should be called after fix_fields() DBUG_ASSERT(select_lex->join != 0); // should be called after fix_fields()
return select_lex->join->fields_list.elements; return select_lex->join->fields_list.elements;
} }

View File

@ -532,7 +532,7 @@ bool Item_sum_sum_distinct::setup(THD *thd)
void Item_sum_sum_distinct::clear() void Item_sum_sum_distinct::clear()
{ {
DBUG_ENTER("Item_sum_sum_distinct::clear"); DBUG_ENTER("Item_sum_sum_distinct::clear");
DBUG_ASSERT(tree); /* we always have a tree */ DBUG_ASSERT(tree != 0); /* we always have a tree */
null_value= 1; null_value= 1;
tree->reset(); tree->reset();
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
@ -554,7 +554,7 @@ bool Item_sum_sum_distinct::add()
my_decimal value, *val= args[0]->val_decimal(&value); my_decimal value, *val= args[0]->val_decimal(&value);
if (!args[0]->null_value) if (!args[0]->null_value)
{ {
DBUG_ASSERT(tree); DBUG_ASSERT(tree != 0);
null_value= 0; null_value= 0;
my_decimal2binary(E_DEC_FATAL_ERROR, val, (char *) dec_bin_buff, my_decimal2binary(E_DEC_FATAL_ERROR, val, (char *) dec_bin_buff,
args[0]->max_length, args[0]->decimals); args[0]->max_length, args[0]->decimals);
@ -567,7 +567,7 @@ bool Item_sum_sum_distinct::add()
double val= args[0]->val_real(); double val= args[0]->val_real();
if (!args[0]->null_value) if (!args[0]->null_value)
{ {
DBUG_ASSERT(tree); DBUG_ASSERT(tree != 0);
null_value= 0; null_value= 0;
DBUG_PRINT("info", ("real: %lg, tree 0x%lx", val, (ulong)tree)); DBUG_PRINT("info", ("real: %lg, tree 0x%lx", val, (ulong)tree));
if (val) if (val)
@ -1179,7 +1179,6 @@ double Item_sum_hybrid::val_real()
DBUG_ASSERT(0); DBUG_ASSERT(0);
return 0; return 0;
} }
return 0; // Keep compiler happy
} }
longlong Item_sum_hybrid::val_int() longlong Item_sum_hybrid::val_int()

View File

@ -701,7 +701,6 @@ public:
int err_not_used; int err_not_used;
char *end; char *end;
String *res; String *res;
longlong value;
CHARSET_INFO *cs; CHARSET_INFO *cs;
if (!(res= val_str(&str_value))) if (!(res= val_str(&str_value)))

View File

@ -608,7 +608,7 @@ bool MYSQL_LOG::open(const char *log_name,
write_file_name_to_index_file= 1; write_file_name_to_index_file= 1;
} }
DBUG_ASSERT(my_b_inited(&index_file)); DBUG_ASSERT(my_b_inited(&index_file) != 0);
reinit_io_cache(&index_file, WRITE_CACHE, reinit_io_cache(&index_file, WRITE_CACHE,
my_b_filelength(&index_file), 0, 0); my_b_filelength(&index_file), 0, 0);
if (need_start_event && !no_auto_events) if (need_start_event && !no_auto_events)
@ -2461,7 +2461,7 @@ void sql_print_information(const char *format, ...)
*/ */
#define TC_LOG_HEADER_SIZE (sizeof(tc_log_magic)+1) #define TC_LOG_HEADER_SIZE (sizeof(tc_log_magic)+1)
static const char tc_log_magic[]={254, 0x23, 0x05, 0x74}; static const char tc_log_magic[]={(char) 254, 0x23, 0x05, 0x74};
uint opt_tc_log_size=TC_LOG_MIN_SIZE; uint opt_tc_log_size=TC_LOG_MIN_SIZE;
ulong tc_log_max_pages_used=0, tc_log_page_size=0, ulong tc_log_max_pages_used=0, tc_log_page_size=0,
@ -2928,7 +2928,6 @@ int TC_LOG_BINLOG::open(const char *opt_name)
{ {
const char *errmsg; const char *errmsg;
char last_event_type=UNKNOWN_EVENT;
IO_CACHE log; IO_CACHE log;
File file; File file;
Log_event *ev=0; Log_event *ev=0;

View File

@ -673,7 +673,7 @@ Log_event* Log_event::read_log_event(IO_CACHE* file,
#endif #endif
{ {
DBUG_ENTER("Log_event::read_log_event(IO_CACHE *, Format_description_log_event *"); DBUG_ENTER("Log_event::read_log_event(IO_CACHE *, Format_description_log_event *");
DBUG_ASSERT(description_event); DBUG_ASSERT(description_event != 0);
char head[LOG_EVENT_MINIMAL_HEADER_LEN]; char head[LOG_EVENT_MINIMAL_HEADER_LEN];
/* /*
First we only want to read at most LOG_EVENT_MINIMAL_HEADER_LEN, just to First we only want to read at most LOG_EVENT_MINIMAL_HEADER_LEN, just to
@ -741,7 +741,7 @@ err:
UNLOCK_MUTEX; UNLOCK_MUTEX;
if (!res) if (!res)
{ {
DBUG_ASSERT(error); DBUG_ASSERT(error != 0);
sql_print_error("Error in Log_event::read_log_event(): " sql_print_error("Error in Log_event::read_log_event(): "
"'%s', data_len: %d, event_type: %d", "'%s', data_len: %d, event_type: %d",
error,data_len,head[EVENT_TYPE_OFFSET]); error,data_len,head[EVENT_TYPE_OFFSET]);
@ -772,7 +772,7 @@ Log_event* Log_event::read_log_event(const char* buf, uint event_len,
{ {
Log_event* ev; Log_event* ev;
DBUG_ENTER("Log_event::read_log_event(char*,...)"); DBUG_ENTER("Log_event::read_log_event(char*,...)");
DBUG_ASSERT(description_event); DBUG_ASSERT(description_event != 0);
DBUG_PRINT("info", ("binlog_version: %d", description_event->binlog_version)); DBUG_PRINT("info", ("binlog_version: %d", description_event->binlog_version));
if (event_len < EVENT_LEN_OFFSET || if (event_len < EVENT_LEN_OFFSET ||
(uint) event_len != uint4korr(buf+EVENT_LEN_OFFSET)) (uint) event_len != uint4korr(buf+EVENT_LEN_OFFSET))

View File

@ -260,8 +260,7 @@ extern CHARSET_INFO *national_charset_info, *table_alias_charset;
/* The rest of the file is included in the server only */ /* The rest of the file is included in the server only */
#ifndef MYSQL_CLIENT #ifndef MYSQL_CLIENT
/* If set to 0, then the thread will ignore all warnings with level notes. /* If not set then the thread will ignore all warnings with level notes. */
Set by executing SET SQL_NOTES=1 */
#define OPTION_SQL_NOTES (1L << 31) #define OPTION_SQL_NOTES (1L << 31)
/* Bits for different SQL modes modes (including ANSI mode) */ /* Bits for different SQL modes modes (including ANSI mode) */

View File

@ -838,9 +838,9 @@ static void __cdecl kill_server(int sig_ptr)
#define RETURN_FROM_KILL_SERVER DBUG_VOID_RETURN #define RETURN_FROM_KILL_SERVER DBUG_VOID_RETURN
#endif #endif
{ {
int sig=(int) (long) sig_ptr; // This is passed a int
DBUG_ENTER("kill_server"); DBUG_ENTER("kill_server");
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
int sig=(int) (long) sig_ptr; // This is passed a int
// if there is a signal during the kill in progress, ignore the other // if there is a signal during the kill in progress, ignore the other
if (kill_in_progress) // Safety if (kill_in_progress) // Safety
RETURN_FROM_KILL_SERVER; RETURN_FROM_KILL_SERVER;
@ -1166,7 +1166,7 @@ err:
static void set_user(const char *user, struct passwd *user_info) static void set_user(const char *user, struct passwd *user_info)
{ {
#if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__) #if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__)
DBUG_ASSERT(user_info); DBUG_ASSERT(user_info != 0);
#ifdef HAVE_INITGROUPS #ifdef HAVE_INITGROUPS
/* /*
We can get a SIGSEGV when calling initgroups() on some systems when NSS We can get a SIGSEGV when calling initgroups() on some systems when NSS
@ -1195,7 +1195,7 @@ static void set_user(const char *user, struct passwd *user_info)
static void set_effective_user(struct passwd *user_info) static void set_effective_user(struct passwd *user_info)
{ {
#if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__) #if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__)
DBUG_ASSERT(user_info); DBUG_ASSERT(user_info != 0);
if (setregid((gid_t)-1, user_info->pw_gid) == -1) if (setregid((gid_t)-1, user_info->pw_gid) == -1)
{ {
sql_perror("setregid"); sql_perror("setregid");
@ -2228,6 +2228,8 @@ extern "C" int my_message_sql(uint error, const char *str, myf MyFlags)
thd->query_error= 1; // needed to catch query errors during replication thd->query_error= 1; // needed to catch query errors during replication
if (!thd->no_warnings_for_error)
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, error, str);
/* /*
thd->lex->current_select == 0 if lex structure is not inited thd->lex->current_select == 0 if lex structure is not inited
(not query command (COM_QUERY)) (not query command (COM_QUERY))
@ -2239,8 +2241,6 @@ extern "C" int my_message_sql(uint error, const char *str, myf MyFlags)
(thd->lex->current_select ? (thd->lex->current_select ?
thd->lex->current_select->no_error : 0), thd->lex->current_select->no_error : 0),
(int) thd->is_fatal_error)); (int) thd->is_fatal_error));
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, error, str);
} }
else else
{ {
@ -2334,8 +2334,11 @@ const char *load_default_groups[]= {
"mysql_cluster", "mysql_cluster",
#endif #endif
"mysqld","server", MYSQL_BASE_VERSION, 0, 0}; "mysqld","server", MYSQL_BASE_VERSION, 0, 0};
#if defined(__WIN__) && !defined(EMBEDDED_LIBRARY)
static const int load_default_groups_sz= static const int load_default_groups_sz=
sizeof(load_default_groups)/sizeof(load_default_groups[0]); sizeof(load_default_groups)/sizeof(load_default_groups[0]);
#endif
/* /*
Initialize one of the global date/time format variables Initialize one of the global date/time format variables
@ -3391,7 +3394,6 @@ int main(int argc, char **argv)
static void bootstrap(FILE *file) static void bootstrap(FILE *file)
{ {
int error= 0;
DBUG_ENTER("bootstrap"); DBUG_ENTER("bootstrap");
THD *thd= new THD; THD *thd= new THD;

View File

@ -2011,7 +2011,6 @@ TABLE_READ_PLAN *get_best_disjunct_quick(PARAM *param, SEL_IMERGE *imerge,
TABLE_READ_PLAN **roru_read_plans; TABLE_READ_PLAN **roru_read_plans;
TABLE_READ_PLAN **cur_roru_plan; TABLE_READ_PLAN **cur_roru_plan;
double roru_index_costs; double roru_index_costs;
double blocks_in_index_read;
ha_rows roru_total_records; ha_rows roru_total_records;
double roru_intersect_part= 1.0; double roru_intersect_part= 1.0;
DBUG_ENTER("get_best_disjunct_quick"); DBUG_ENTER("get_best_disjunct_quick");
@ -2077,7 +2076,6 @@ TABLE_READ_PLAN *get_best_disjunct_quick(PARAM *param, SEL_IMERGE *imerge,
roru_read_plans= (TABLE_READ_PLAN**)range_scans; roru_read_plans= (TABLE_READ_PLAN**)range_scans;
goto skip_to_ror_scan; goto skip_to_ror_scan;
} }
blocks_in_index_read= imerge_cost;
if (cpk_scan) if (cpk_scan)
{ {
/* /*
@ -5654,7 +5652,7 @@ int QUICK_INDEX_MERGE_SELECT::read_keys_and_merge()
cur_quick_it.rewind(); cur_quick_it.rewind();
cur_quick= cur_quick_it++; cur_quick= cur_quick_it++;
DBUG_ASSERT(cur_quick); DBUG_ASSERT(cur_quick != 0);
/* /*
We reuse the same instance of handler so we need to call both init and We reuse the same instance of handler so we need to call both init and
@ -6099,7 +6097,7 @@ int QUICK_RANGE_SELECT::get_next_prefix(uint prefix_length, byte *cur_prefix)
if (range) if (range)
{ {
/* Read the next record in the same range with prefix after cur_prefix. */ /* Read the next record in the same range with prefix after cur_prefix. */
DBUG_ASSERT(cur_prefix); DBUG_ASSERT(cur_prefix != 0);
result= file->index_read(record, cur_prefix, prefix_length, result= file->index_read(record, cur_prefix, prefix_length,
HA_READ_AFTER_KEY); HA_READ_AFTER_KEY);
if (result || (file->compare_key(file->end_range) <= 0)) if (result || (file->compare_key(file->end_range) <= 0))

View File

@ -59,8 +59,8 @@ void net_send_error(THD *thd, uint sql_errno, const char *err)
uint length; uint length;
char buff[MYSQL_ERRMSG_SIZE+2], *pos; char buff[MYSQL_ERRMSG_SIZE+2], *pos;
#endif #endif
const char *orig_err= err;
NET *net= &thd->net; NET *net= &thd->net;
bool generate_warning= 1;
DBUG_ENTER("net_send_error"); DBUG_ENTER("net_send_error");
DBUG_PRINT("enter",("sql_errno: %d err: %s", sql_errno, DBUG_PRINT("enter",("sql_errno: %d err: %s", sql_errno,
err ? err : net->last_error[0] ? err ? err : net->last_error[0] ?
@ -85,14 +85,22 @@ void net_send_error(THD *thd, uint sql_errno, const char *err)
else else
{ {
if ((err=net->last_error)[0]) if ((err=net->last_error)[0])
{
sql_errno=net->last_errno; sql_errno=net->last_errno;
generate_warning= 0; // This warning has already been given
}
else else
{ {
sql_errno=ER_UNKNOWN_ERROR; sql_errno=ER_UNKNOWN_ERROR;
err=ER(sql_errno); /* purecov: inspected */ err=ER(sql_errno); /* purecov: inspected */
} }
} }
orig_err= err; }
if (generate_warning)
{
/* Error that we have not got with my_error() */
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, sql_errno, err);
} }
#ifdef EMBEDDED_LIBRARY #ifdef EMBEDDED_LIBRARY
@ -131,8 +139,6 @@ void net_send_error(THD *thd, uint sql_errno, const char *err)
} }
VOID(net_write_command(net,(uchar) 255, "", 0, (char*) err,length)); VOID(net_write_command(net,(uchar) 255, "", 0, (char*) err,length));
#endif /* EMBEDDED_LIBRARY*/ #endif /* EMBEDDED_LIBRARY*/
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, sql_errno,
orig_err ? orig_err : ER(sql_errno));
thd->is_fatal_error=0; // Error message is given thd->is_fatal_error=0; // Error message is given
thd->net.report_error= 0; thd->net.report_error= 0;

View File

@ -1556,7 +1556,7 @@ static int create_table_from_dump(THD* thd, MYSQL *mysql, const char* db,
save_db = thd->db; save_db = thd->db;
save_db_length= thd->db_length; save_db_length= thd->db_length;
thd->db = (char*)db; thd->db = (char*)db;
DBUG_ASSERT(thd->db); DBUG_ASSERT(thd->db != 0);
thd->db_length= strlen(thd->db); thd->db_length= strlen(thd->db);
mysql_parse(thd, thd->query, packet_len); // run create table mysql_parse(thd, thd->query, packet_len); // run create table
thd->db = save_db; // leave things the way the were before thd->db = save_db; // leave things the way the were before
@ -4031,7 +4031,7 @@ static int queue_binlog_ver_1_event(MASTER_INFO *mi, const char *buf,
*/ */
{ {
/* We come here when and only when tmp_buf != 0 */ /* We come here when and only when tmp_buf != 0 */
DBUG_ASSERT(tmp_buf); DBUG_ASSERT(tmp_buf != 0);
inc_pos=event_len; inc_pos=event_len;
ev->log_pos+= inc_pos; ev->log_pos+= inc_pos;
int error = process_io_create_file(mi,(Create_file_log_event*)ev); int error = process_io_create_file(mi,(Create_file_log_event*)ev);

View File

@ -105,7 +105,6 @@ sp_pcontext::diff_handlers(sp_pcontext *ctx)
uint uint
sp_pcontext::diff_cursors(sp_pcontext *ctx) sp_pcontext::diff_cursors(sp_pcontext *ctx)
{ {
uint n= 0;
sp_pcontext *pctx= this; sp_pcontext *pctx= this;
while (pctx && pctx != ctx) while (pctx && pctx != ctx)

View File

@ -877,7 +877,6 @@ int acl_getroot(THD *thd, USER_RESOURCES *mqh,
*/ */
int acl_getroot_no_password(THD *thd) int acl_getroot_no_password(THD *thd)
{ {
ulong user_access= NO_ACCESS;
int res= 1; int res= 1;
uint i; uint i;
ACL_USER *acl_user= 0; ACL_USER *acl_user= 0;
@ -1660,7 +1659,7 @@ static int replace_user_table(THD *thd, TABLE *table, const LEX_USER &combo,
Check that the user isn't trying to change a password for another Check that the user isn't trying to change a password for another
user if he doesn't have UPDATE privilege to the MySQL database user if he doesn't have UPDATE privilege to the MySQL database
*/ */
DBUG_ASSERT(combo.host.str); DBUG_ASSERT(combo.host.str != 0);
if (thd->user && combo.password.str && if (thd->user && combo.password.str &&
(strcmp(thd->user,combo.user.str) || (strcmp(thd->user,combo.user.str) ||
my_strcasecmp(system_charset_info, my_strcasecmp(system_charset_info,
@ -2634,7 +2633,6 @@ bool mysql_table_grant(THD *thd, TABLE_LIST *table_list,
{ {
class LEX_COLUMN *column; class LEX_COLUMN *column;
List_iterator <LEX_COLUMN> column_iter(columns); List_iterator <LEX_COLUMN> column_iter(columns);
int res;
if (open_and_lock_tables(thd, table_list)) if (open_and_lock_tables(thd, table_list))
DBUG_RETURN(TRUE); DBUG_RETURN(TRUE);
@ -3473,7 +3471,6 @@ bool check_grant_all_columns(THD *thd, ulong want_access, GRANT_INFO *grant,
{ {
GRANT_TABLE *grant_table; GRANT_TABLE *grant_table;
GRANT_COLUMN *grant_column; GRANT_COLUMN *grant_column;
Field *field=0;
want_access &= ~grant->privilege; want_access &= ~grant->privilege;
if (!want_access) if (!want_access)
@ -4796,7 +4793,6 @@ static void append_user(String *str, LEX_USER *user)
bool mysql_create_user(THD *thd, List <LEX_USER> &list) bool mysql_create_user(THD *thd, List <LEX_USER> &list)
{ {
int result; int result;
int found;
String wrong_users; String wrong_users;
ulong sql_mode; ulong sql_mode;
LEX_USER *user_name; LEX_USER *user_name;
@ -4817,7 +4813,7 @@ bool mysql_create_user(THD *thd, List <LEX_USER> &list)
Search all in-memory structures and grant tables Search all in-memory structures and grant tables
for a mention of the new user name. for a mention of the new user name.
*/ */
if ((found= handle_grant_data(tables, 0, user_name, NULL))) if (handle_grant_data(tables, 0, user_name, NULL))
{ {
append_user(&wrong_users, user_name); append_user(&wrong_users, user_name);
result= TRUE; result= TRUE;
@ -4859,7 +4855,6 @@ bool mysql_create_user(THD *thd, List <LEX_USER> &list)
bool mysql_drop_user(THD *thd, List <LEX_USER> &list) bool mysql_drop_user(THD *thd, List <LEX_USER> &list)
{ {
int result; int result;
int found;
String wrong_users; String wrong_users;
LEX_USER *user_name; LEX_USER *user_name;
List_iterator <LEX_USER> user_list(list); List_iterator <LEX_USER> user_list(list);
@ -4875,7 +4870,7 @@ bool mysql_drop_user(THD *thd, List <LEX_USER> &list)
while ((user_name= user_list++)) while ((user_name= user_list++))
{ {
if ((found= handle_grant_data(tables, 1, user_name, NULL)) <= 0) if (handle_grant_data(tables, 1, user_name, NULL) <= 0)
{ {
append_user(&wrong_users, user_name); append_user(&wrong_users, user_name);
result= TRUE; result= TRUE;
@ -4907,7 +4902,6 @@ bool mysql_drop_user(THD *thd, List <LEX_USER> &list)
bool mysql_rename_user(THD *thd, List <LEX_USER> &list) bool mysql_rename_user(THD *thd, List <LEX_USER> &list)
{ {
int result= 0; int result= 0;
int found;
String wrong_users; String wrong_users;
LEX_USER *user_from; LEX_USER *user_from;
LEX_USER *user_to; LEX_USER *user_to;
@ -4925,7 +4919,7 @@ bool mysql_rename_user(THD *thd, List <LEX_USER> &list)
while ((user_from= user_list++)) while ((user_from= user_list++))
{ {
user_to= user_list++; user_to= user_list++;
DBUG_ASSERT(user_to); /* Syntax enforces pairs of users. */ DBUG_ASSERT(user_to != 0); /* Syntax enforces pairs of users. */
/* /*
Search all in-memory structures and grant tables Search all in-memory structures and grant tables
@ -5137,7 +5131,6 @@ bool sp_revoke_privileges(THD *thd, const char *sp_db, const char *sp_name)
{ {
uint counter, revoked; uint counter, revoked;
int result; int result;
ACL_DB *acl_db;
TABLE_LIST tables[GRANT_TABLES]; TABLE_LIST tables[GRANT_TABLES];
DBUG_ENTER("sp_revoke_privileges"); DBUG_ENTER("sp_revoke_privileges");
@ -5148,10 +5141,10 @@ bool sp_revoke_privileges(THD *thd, const char *sp_db, const char *sp_name)
VOID(pthread_mutex_lock(&acl_cache->lock)); VOID(pthread_mutex_lock(&acl_cache->lock));
/* Remove procedure access */ /* Remove procedure access */
do { do
{
for (counter= 0, revoked= 0 ; counter < proc_priv_hash.records ; ) for (counter= 0, revoked= 0 ; counter < proc_priv_hash.records ; )
{ {
const char *db,*name;
GRANT_NAME *grant_proc= (GRANT_NAME*) hash_element(&proc_priv_hash, GRANT_NAME *grant_proc= (GRANT_NAME*) hash_element(&proc_priv_hash,
counter); counter);
if (!my_strcasecmp(system_charset_info, grant_proc->db, sp_db) && if (!my_strcasecmp(system_charset_info, grant_proc->db, sp_db) &&

View File

@ -467,7 +467,7 @@ void field_real::add()
void field_decimal::add() void field_decimal::add()
{ {
my_decimal dec_buf, *dec= item->val_decimal(&dec_buf); my_decimal dec_buf, *dec= item->val_decimal(&dec_buf);
uint length, zero_count, decs; uint length;
TREE_ELEMENT *element; TREE_ELEMENT *element;
if (item->null_value) if (item->null_value)

View File

@ -149,7 +149,7 @@ OPEN_TABLE_LIST *list_open_tables(THD *thd, const char *wild)
TABLE *entry=(TABLE*) hash_element(&open_cache,idx); TABLE *entry=(TABLE*) hash_element(&open_cache,idx);
TABLE_SHARE *share= entry->s; TABLE_SHARE *share= entry->s;
DBUG_ASSERT(share->table_name); DBUG_ASSERT(share->table_name != 0);
if ((!share->table_name)) // To be removed if ((!share->table_name)) // To be removed
continue; // Shouldn't happen continue; // Shouldn't happen
if (wild) if (wild)
@ -962,7 +962,7 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root,
} }
else else
{ {
DBUG_ASSERT(table_list->view); DBUG_ASSERT(table_list->view != 0);
VOID(pthread_mutex_unlock(&LOCK_open)); VOID(pthread_mutex_unlock(&LOCK_open));
DBUG_RETURN(0); // VIEW DBUG_RETURN(0); // VIEW
} }
@ -1188,7 +1188,7 @@ bool reopen_table(TABLE *table,bool locked)
table->s= &table->share_not_to_be_used; table->s= &table->share_not_to_be_used;
table->file->change_table_ptr(table); table->file->change_table_ptr(table);
DBUG_ASSERT(table->alias); DBUG_ASSERT(table->alias != 0);
for (field=table->field ; *field ; field++) for (field=table->field ; *field ; field++)
{ {
(*field)->table= (*field)->orig_table= table; (*field)->table= (*field)->orig_table= table;
@ -2781,7 +2781,6 @@ bool setup_fields(THD *thd, Item **ref_pointer_array, TABLE_LIST *tables,
{ {
reg2 Item *item; reg2 Item *item;
List_iterator<Item> it(fields); List_iterator<Item> it(fields);
SELECT_LEX *select_lex= thd->lex->current_select;
DBUG_ENTER("setup_fields"); DBUG_ENTER("setup_fields");
thd->set_query_id=set_query_id; thd->set_query_id=set_query_id;
@ -2839,7 +2838,7 @@ TABLE_LIST **make_leaves_list(TABLE_LIST **list, TABLE_LIST *tables)
if (table->view && !table->table) if (table->view && !table->table)
{ {
/* it is for multi table views only, check it */ /* it is for multi table views only, check it */
DBUG_ASSERT(table->ancestor->next_local); DBUG_ASSERT(table->ancestor->next_local != 0);
list= make_leaves_list(list, table->ancestor); list= make_leaves_list(list, table->ancestor);
} }
else else
@ -3255,7 +3254,6 @@ err:
int setup_conds(THD *thd, TABLE_LIST *tables, TABLE_LIST *leaves, COND **conds) int setup_conds(THD *thd, TABLE_LIST *tables, TABLE_LIST *leaves, COND **conds)
{ {
table_map not_null_tables= 0;
SELECT_LEX *select_lex= thd->lex->current_select; SELECT_LEX *select_lex= thd->lex->current_select;
Item_arena *arena= thd->current_arena, backup; Item_arena *arena= thd->current_arena, backup;
bool save_wrapper= thd->lex->current_select->no_wrap_view_item; bool save_wrapper= thd->lex->current_select->no_wrap_view_item;

View File

@ -204,7 +204,7 @@ THD::THD()
#endif #endif
net.last_error[0]=0; // If error on boot net.last_error[0]=0; // If error on boot
ull=0; ull=0;
system_thread= cleanup_done= abort_on_warning= 0; system_thread= cleanup_done= abort_on_warning= no_warnings_for_error= 0;
peer_port= 0; // For SHOW PROCESSLIST peer_port= 0; // For SHOW PROCESSLIST
#ifdef __WIN__ #ifdef __WIN__
real_id = 0; real_id = 0;

View File

@ -1186,6 +1186,7 @@ public:
bool slow_command; bool slow_command;
bool no_trans_update, abort_on_warning; bool no_trans_update, abort_on_warning;
bool got_warning; /* Set on call to push_warning() */ bool got_warning; /* Set on call to push_warning() */
bool no_warnings_for_error; /* no warnings on call to my_error() */
longlong row_count_func; /* For the ROW_COUNT() function */ longlong row_count_func; /* For the ROW_COUNT() function */
sp_rcontext *spcont; // SP runtime context sp_rcontext *spcont; // SP runtime context
sp_cache *sp_proc_cache; sp_cache *sp_proc_cache;
@ -1638,7 +1639,6 @@ public:
class select_union :public select_result_interceptor { class select_union :public select_result_interceptor {
public: public:
TABLE *table; TABLE *table;
COPY_INFO info;
TMP_TABLE_PARAM tmp_table_param; TMP_TABLE_PARAM tmp_table_param;
select_union(TABLE *table_par); select_union(TABLE *table_par);

View File

@ -773,11 +773,10 @@ static long mysql_rm_known_files(THD *thd, MY_DIR *dirp, const char *db,
file->name[2] == 'c' && file->name[3] == '\0') file->name[2] == 'c' && file->name[3] == '\0')
{ {
/* .frm archive */ /* .frm archive */
char newpath[FN_REFLEN], *copy_of_path; char newpath[FN_REFLEN];
MY_DIR *new_dirp; MY_DIR *new_dirp;
uint length;
strxmov(newpath, org_path, "/", "arc", NullS); strxmov(newpath, org_path, "/", "arc", NullS);
length= unpack_filename(newpath, newpath); (void) unpack_filename(newpath, newpath);
if ((new_dirp = my_dir(newpath, MYF(MY_DONT_SORT)))) if ((new_dirp = my_dir(newpath, MYF(MY_DONT_SORT))))
{ {
DBUG_PRINT("my",("Archive subdir found: %s", newpath)); DBUG_PRINT("my",("Archive subdir found: %s", newpath));

View File

@ -106,8 +106,9 @@ MYSQL_ERROR *push_warning(THD *thd, MYSQL_ERROR::enum_warning_level level,
MYSQL_ERROR *err= 0; MYSQL_ERROR *err= 0;
DBUG_ENTER("push_warning"); DBUG_ENTER("push_warning");
if (level == MYSQL_ERROR::WARN_LEVEL_NOTE && !(thd->options & OPTION_SQL_NOTES)) if (level == MYSQL_ERROR::WARN_LEVEL_NOTE &&
return(0); !(thd->options & OPTION_SQL_NOTES))
DBUG_RETURN(0);
if (thd->query_id != thd->warn_id) if (thd->query_id != thd->warn_id)
mysql_reset_errors(thd); mysql_reset_errors(thd);
@ -126,9 +127,14 @@ MYSQL_ERROR *push_warning(THD *thd, MYSQL_ERROR::enum_warning_level level,
if ((int) level >= (int) MYSQL_ERROR::WARN_LEVEL_WARN && if ((int) level >= (int) MYSQL_ERROR::WARN_LEVEL_WARN &&
thd->really_abort_on_warning()) thd->really_abort_on_warning())
{ {
/* Avoid my_message() calling push_warning */
bool no_warnings_for_error= thd->no_warnings_for_error;
thd->no_warnings_for_error= 1;
thd->killed= THD::KILL_BAD_DATA; thd->killed= THD::KILL_BAD_DATA;
my_message(code, msg, MYF(0)); my_message(code, msg, MYF(0));
DBUG_RETURN(NULL); thd->no_warnings_for_error= no_warnings_for_error;
/* Store error in error list (as my_message() didn't do it in this case */
level= MYSQL_ERROR::WARN_LEVEL_ERROR;
} }
if (thd->warn_list.elements < thd->variables.max_error_count) if (thd->warn_list.elements < thd->variables.max_error_count)

View File

@ -640,7 +640,7 @@ bool mysqld_help(THD *thd, const char *mask)
List<String> topics_list, categories_list, subcategories_list; List<String> topics_list, categories_list, subcategories_list;
String name, description, example; String name, description, example;
int res, count_topics, count_categories, error; int count_topics, count_categories, error;
uint mlen= strlen(mask); uint mlen= strlen(mask);
MEM_ROOT *mem_root= thd->mem_root; MEM_ROOT *mem_root= thd->mem_root;

View File

@ -1726,7 +1726,6 @@ bool mysql_insert_select_prepare(THD *thd)
{ {
LEX *lex= thd->lex; LEX *lex= thd->lex;
TABLE_LIST *first_select_leaf_table; TABLE_LIST *first_select_leaf_table;
int res;
DBUG_ENTER("mysql_insert_select_prepare"); DBUG_ENTER("mysql_insert_select_prepare");
/* /*
SELECT_LEX do not belong to INSERT statement, so we can't add WHERE SELECT_LEX do not belong to INSERT statement, so we can't add WHERE
@ -1744,7 +1743,7 @@ bool mysql_insert_select_prepare(THD *thd)
exclude first table from leaf tables list, because it belong to exclude first table from leaf tables list, because it belong to
INSERT INSERT
*/ */
DBUG_ASSERT(lex->select_lex.leaf_tables); DBUG_ASSERT(lex->select_lex.leaf_tables != 0);
lex->leaf_tables_insert= lex->select_lex.leaf_tables; lex->leaf_tables_insert= lex->select_lex.leaf_tables;
/* skip all leaf tables belonged to view where we are insert */ /* skip all leaf tables belonged to view where we are insert */
for (first_select_leaf_table= lex->select_lex.leaf_tables->next_leaf; for (first_select_leaf_table= lex->select_lex.leaf_tables->next_leaf;

View File

@ -104,7 +104,6 @@ bool mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
*/ */
char *tdb= thd->db ? thd->db : db; // Result is never null char *tdb= thd->db ? thd->db : db; // Result is never null
ulong skip_lines= ex->skip_lines; ulong skip_lines= ex->skip_lines;
int res;
bool transactional_table; bool transactional_table;
DBUG_ENTER("mysql_load"); DBUG_ENTER("mysql_load");
@ -144,8 +143,6 @@ bool mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
{ // Part field list { // Part field list
thd->dupp_field=0; thd->dupp_field=0;
/* TODO: use this conds for 'WITH CHECK OPTIONS' */ /* TODO: use this conds for 'WITH CHECK OPTIONS' */
Item *unused_conds= 0;
TABLE_LIST *leaves= 0;
if (setup_fields(thd, 0, table_list, fields, 1, 0, 0)) if (setup_fields(thd, 0, table_list, fields, 1, 0, 0))
DBUG_RETURN(TRUE); DBUG_RETURN(TRUE);
if (thd->dupp_field) if (thd->dupp_field)

View File

@ -622,7 +622,6 @@ bool is_update_query(enum enum_sql_command command)
static void time_out_user_resource_limits(THD *thd, USER_CONN *uc) static void time_out_user_resource_limits(THD *thd, USER_CONN *uc)
{ {
bool error= 0;
time_t check_time = thd->start_time ? thd->start_time : time(NULL); time_t check_time = thd->start_time ? thd->start_time : time(NULL);
DBUG_ENTER("time_out_user_resource_limits"); DBUG_ENTER("time_out_user_resource_limits");
@ -1330,7 +1329,6 @@ int end_trans(THD *thd, enum enum_mysql_completiontype completion)
{ {
bool do_release= 0; bool do_release= 0;
int res= 0; int res= 0;
LEX *lex= thd->lex;
DBUG_ENTER("end_trans"); DBUG_ENTER("end_trans");
switch (completion) { switch (completion) {
@ -1901,9 +1899,9 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
{ {
statistic_increment(thd->status_var.com_stat[SQLCOM_DROP_DB], statistic_increment(thd->status_var.com_stat[SQLCOM_DROP_DB],
&LOCK_status); &LOCK_status);
char *db=thd->strdup(packet), *alias; char *db=thd->strdup(packet);
/* null test to handle EOM */ /* null test to handle EOM */
if (!db || !(alias= thd->strdup(db)) || check_db_name(db)) if (!db || check_db_name(db))
{ {
my_error(ER_WRONG_DB_NAME, MYF(0), db ? db : "NULL"); my_error(ER_WRONG_DB_NAME, MYF(0), db ? db : "NULL");
break; break;
@ -3573,8 +3571,7 @@ unsent_create_error:
} }
case SQLCOM_DROP_DB: case SQLCOM_DROP_DB:
{ {
char *alias; if (check_db_name(lex->name))
if (!(alias=thd->strdup(lex->name)) || check_db_name(lex->name))
{ {
my_error(ER_WRONG_DB_NAME, MYF(0), lex->name); my_error(ER_WRONG_DB_NAME, MYF(0), lex->name);
break; break;
@ -4023,7 +4020,7 @@ unsent_create_error:
char *name, *db; char *name, *db;
int result; int result;
DBUG_ASSERT(lex->sphead); DBUG_ASSERT(lex->sphead != 0);
if (check_access(thd, CREATE_PROC_ACL, lex->sphead->m_db.str, 0, 0, 0)) if (check_access(thd, CREATE_PROC_ACL, lex->sphead->m_db.str, 0, 0, 0))
{ {

View File

@ -849,7 +849,7 @@ static bool insert_params_from_vars_with_log(Prepared_statement *stmt,
varname= var_it++; varname= var_it++;
if (get_var_with_binlog(stmt->thd, *varname, &entry)) if (get_var_with_binlog(stmt->thd, *varname, &entry))
DBUG_RETURN(1); DBUG_RETURN(1);
DBUG_ASSERT(entry); DBUG_ASSERT(entry != 0);
if (param->set_from_user_var(stmt->thd, entry)) if (param->set_from_user_var(stmt->thd, entry))
DBUG_RETURN(1); DBUG_RETURN(1);
@ -1008,7 +1008,7 @@ static int mysql_test_update(Prepared_statement *stmt,
{ {
if (table_list->ancestor && table_list->ancestor->next_local) if (table_list->ancestor && table_list->ancestor->next_local)
{ {
DBUG_ASSERT(table_list->view); DBUG_ASSERT(table_list->view != 0);
DBUG_PRINT("info", ("Switch to multi-update")); DBUG_PRINT("info", ("Switch to multi-update"));
/* pass counter value */ /* pass counter value */
thd->lex->table_count= table_count; thd->lex->table_count= table_count;
@ -1661,7 +1661,6 @@ error:
static bool init_param_array(Prepared_statement *stmt) static bool init_param_array(Prepared_statement *stmt)
{ {
LEX *lex= stmt->lex; LEX *lex= stmt->lex;
THD *thd= stmt->thd;
if ((stmt->param_count= lex->param_list.elements)) if ((stmt->param_count= lex->param_list.elements))
{ {
if (stmt->param_count > (uint) UINT_MAX16) if (stmt->param_count > (uint) UINT_MAX16)
@ -2165,7 +2164,6 @@ void mysql_stmt_fetch(THD *thd, char *packet, uint packet_length)
ulong stmt_id= uint4korr(packet); ulong stmt_id= uint4korr(packet);
ulong num_rows= uint4korr(packet+=4); ulong num_rows= uint4korr(packet+=4);
Statement *stmt; Statement *stmt;
int error;
DBUG_ENTER("mysql_stmt_fetch"); DBUG_ENTER("mysql_stmt_fetch");
if (!(stmt= thd->stmt_map.find(stmt_id)) || if (!(stmt= thd->stmt_map.find(stmt_id)) ||
@ -2183,7 +2181,7 @@ void mysql_stmt_fetch(THD *thd, char *packet, uint packet_length)
my_pthread_setprio(pthread_self(), QUERY_PRIOR); my_pthread_setprio(pthread_self(), QUERY_PRIOR);
thd->protocol= &thd->protocol_prep; // Switch to binary protocol thd->protocol= &thd->protocol_prep; // Switch to binary protocol
error= stmt->cursor->fetch(num_rows); (void) stmt->cursor->fetch(num_rows);
thd->protocol= &thd->protocol_simple; // Use normal protocol thd->protocol= &thd->protocol_simple; // Use normal protocol
if (!(specialflag & SPECIAL_NO_PRIOR)) if (!(specialflag & SPECIAL_NO_PRIOR))

View File

@ -1940,7 +1940,6 @@ Cursor::close()
{ {
DBUG_ASSERT(lock || open_tables || derived_tables); DBUG_ASSERT(lock || open_tables || derived_tables);
TABLE *tmp_open_tables= thd->open_tables;
TABLE *tmp_derived_tables= thd->derived_tables; TABLE *tmp_derived_tables= thd->derived_tables;
MYSQL_LOCK *tmp_lock= thd->lock; MYSQL_LOCK *tmp_lock= thd->lock;
@ -7743,7 +7742,6 @@ Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type,
case Item::SUM_FUNC_ITEM: case Item::SUM_FUNC_ITEM:
{ {
Item_sum *item_sum=(Item_sum*) item; Item_sum *item_sum=(Item_sum*) item;
bool maybe_null=item_sum->maybe_null;
Field *result= item_sum->create_tmp_field(group, table, convert_blob_length); Field *result= item_sum->create_tmp_field(group, table, convert_blob_length);
if (!result) if (!result)
thd->fatal_error(); thd->fatal_error();
@ -8884,12 +8882,10 @@ sub_select(JOIN *join,JOIN_TAB *join_tab,bool end_of_records)
int error; int error;
JOIN_TAB *first_unmatched; JOIN_TAB *first_unmatched;
JOIN_TAB *tab; JOIN_TAB *tab;
bool found= 0;
/* Cache variables for faster loop */ /* Cache variables for faster loop */
COND *select_cond= join_tab->select_cond; COND *select_cond= join_tab->select_cond;
JOIN_TAB *first_inner_tab= join_tab->first_inner;
my_bool *report_error= &(join->thd->net.report_error); my_bool *report_error= &(join->thd->net.report_error);
join->return_tab= join_tab; join->return_tab= join_tab;
if (join_tab->last_inner) if (join_tab->last_inner)

View File

@ -341,7 +341,6 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
Protocol *protocol= thd->protocol; Protocol *protocol= thd->protocol;
char buff[2048]; char buff[2048];
String buffer(buff, sizeof(buff), system_charset_info); String buffer(buff, sizeof(buff), system_charset_info);
int res;
DBUG_ENTER("mysqld_show_create"); DBUG_ENTER("mysqld_show_create");
DBUG_PRINT("enter",("db: %s table: %s",table_list->db, DBUG_PRINT("enter",("db: %s table: %s",table_list->db,
table_list->table_name)); table_list->table_name));
@ -535,7 +534,6 @@ void
mysqld_list_fields(THD *thd, TABLE_LIST *table_list, const char *wild) mysqld_list_fields(THD *thd, TABLE_LIST *table_list, const char *wild)
{ {
TABLE *table; TABLE *table;
int res;
DBUG_ENTER("mysqld_list_fields"); DBUG_ENTER("mysqld_list_fields");
DBUG_PRINT("enter",("table: %s",table_list->table_name)); DBUG_PRINT("enter",("table: %s",table_list->table_name));
@ -1951,7 +1949,7 @@ void store_schema_shemata(TABLE *table, const char *db_name,
int fill_schema_shemata(THD *thd, TABLE_LIST *tables, COND *cond) int fill_schema_shemata(THD *thd, TABLE_LIST *tables, COND *cond)
{ {
char path[FN_REFLEN],*end; char path[FN_REFLEN];
bool found_libchar; bool found_libchar;
INDEX_FIELD_VALUES idx_field_vals; INDEX_FIELD_VALUES idx_field_vals;
List<char> files; List<char> files;
@ -1960,14 +1958,15 @@ int fill_schema_shemata(THD *thd, TABLE_LIST *tables, COND *cond)
bool with_i_schema; bool with_i_schema;
HA_CREATE_INFO create; HA_CREATE_INFO create;
TABLE *table= tables->table; TABLE *table= tables->table;
DBUG_ENTER("fill_schema_shemata");
get_index_field_values(thd->lex, &idx_field_vals); get_index_field_values(thd->lex, &idx_field_vals);
/* information schema name always is first in list */ /* information schema name always is first in list */
if (schema_db_add(thd, &files, idx_field_vals.db_value, &with_i_schema)) if (schema_db_add(thd, &files, idx_field_vals.db_value, &with_i_schema))
return 1; DBUG_RETURN(1);
if (mysql_find_files(thd, &files, NullS, mysql_data_home, if (mysql_find_files(thd, &files, NullS, mysql_data_home,
idx_field_vals.db_value, 1)) idx_field_vals.db_value, 1))
return 1; DBUG_RETURN(1);
List_iterator_fast<char> it(files); List_iterator_fast<char> it(files);
while ((file_name=it++)) while ((file_name=it++))
{ {
@ -2000,7 +1999,7 @@ int fill_schema_shemata(THD *thd, TABLE_LIST *tables, COND *cond)
create.default_table_charset->csname); create.default_table_charset->csname);
} }
} }
return 0; DBUG_RETURN(0);
} }
@ -2192,7 +2191,6 @@ static int get_schema_column_record(THD *thd, struct st_table_list *tables,
const char *base_name, const char *base_name,
const char *file_name) const char *file_name)
{ {
TIME time;
LEX *lex= thd->lex; LEX *lex= thd->lex;
const char *wild= lex->wild ? lex->wild->ptr() : NullS; const char *wild= lex->wild ? lex->wild->ptr() : NullS;
CHARSET_INFO *cs= system_charset_info; CHARSET_INFO *cs= system_charset_info;
@ -2224,14 +2222,12 @@ static int get_schema_column_record(THD *thd, struct st_table_list *tables,
if (!wild || !wild[0] || if (!wild || !wild[0] ||
!wild_case_compare(system_charset_info, field->field_name,wild)) !wild_case_compare(system_charset_info, field->field_name,wild))
{ {
uint tmp_length;
const char *tmp_buff; const char *tmp_buff;
byte *pos; byte *pos;
uint flags=field->flags; uint flags=field->flags;
char tmp[MAX_FIELD_WIDTH]; char tmp[MAX_FIELD_WIDTH];
char tmp1[MAX_FIELD_WIDTH]; char tmp1[MAX_FIELD_WIDTH];
String type(tmp,sizeof(tmp), system_charset_info); String type(tmp,sizeof(tmp), system_charset_info);
char tmp_buffer[128];
count++; count++;
restore_record(table, s->default_values); restore_record(table, s->default_values);
table->field[1]->store(base_name, strlen(base_name), cs); table->field[1]->store(base_name, strlen(base_name), cs);
@ -2338,7 +2334,7 @@ static int get_schema_column_record(THD *thd, struct st_table_list *tables,
(field->flags & MULTIPLE_KEY_FLAG) ? "MUL":""); (field->flags & MULTIPLE_KEY_FLAG) ? "MUL":"");
table->field[15]->store((const char*) pos, table->field[15]->store((const char*) pos,
strlen((const char*) pos), cs); strlen((const char*) pos), cs);
char *end=tmp; char *end= tmp;
if (field->unireg_check == Field::NEXT_NUMBER) if (field->unireg_check == Field::NEXT_NUMBER)
end=strmov(tmp,"auto_increment"); end=strmov(tmp,"auto_increment");
table->field[16]->store(tmp, (uint) (end-tmp), cs); table->field[16]->store(tmp, (uint) (end-tmp), cs);
@ -2443,7 +2439,6 @@ int fill_schema_collation(THD *thd, TABLE_LIST *tables, COND *cond)
int fill_schema_coll_charset_app(THD *thd, TABLE_LIST *tables, COND *cond) int fill_schema_coll_charset_app(THD *thd, TABLE_LIST *tables, COND *cond)
{ {
CHARSET_INFO **cs; CHARSET_INFO **cs;
const char *wild= NullS;
TABLE *table= tables->table; TABLE *table= tables->table;
CHARSET_INFO *scs= system_charset_info; CHARSET_INFO *scs= system_charset_info;
for ( cs= all_charsets ; cs < all_charsets+255 ; cs++ ) for ( cs= all_charsets ; cs < all_charsets+255 ; cs++ )
@ -2796,7 +2791,6 @@ static int get_schema_key_column_usage_record(THD *thd,
const char *file_name) const char *file_name)
{ {
DBUG_ENTER("get_schema_key_column_usage_record"); DBUG_ENTER("get_schema_key_column_usage_record");
CHARSET_INFO *cs= system_charset_info;
if (res) if (res)
{ {
if (!tables->view) if (!tables->view)
@ -2822,7 +2816,6 @@ static int get_schema_key_column_usage_record(THD *thd,
KEY_PART_INFO *key_part= key_info->key_part; KEY_PART_INFO *key_part= key_info->key_part;
for (uint j=0 ; j < key_info->key_parts ; j++,key_part++) for (uint j=0 ; j < key_info->key_parts ; j++,key_part++)
{ {
uint f_idx= 0;
if (key_part->field) if (key_part->field)
{ {
f_idx++; f_idx++;
@ -2843,13 +2836,13 @@ static int get_schema_key_column_usage_record(THD *thd,
List_iterator_fast<FOREIGN_KEY_INFO> it(f_key_list); List_iterator_fast<FOREIGN_KEY_INFO> it(f_key_list);
while ((f_key_info= it++)) while ((f_key_info= it++))
{ {
LEX_STRING *f_info, *r_info; LEX_STRING *f_info;
List_iterator_fast<LEX_STRING> it(f_key_info->foreign_fields), List_iterator_fast<LEX_STRING> it(f_key_info->foreign_fields),
it1(f_key_info->referenced_fields); it1(f_key_info->referenced_fields);
uint f_idx= 0; uint f_idx= 0;
while ((f_info= it++)) while ((f_info= it++))
{ {
r_info= it1++; it1++; // Ignore r_info
f_idx++; f_idx++;
restore_record(table, s->default_values); restore_record(table, s->default_values);
store_key_column_usage(table, base_name, file_name, store_key_column_usage(table, base_name, file_name,
@ -3335,11 +3328,13 @@ int make_schema_select(THD *thd, SELECT_LEX *sel,
bool get_schema_tables_result(JOIN *join) bool get_schema_tables_result(JOIN *join)
{ {
DBUG_ENTER("get_schema_tables_result");
JOIN_TAB *tmp_join_tab= join->join_tab+join->tables; JOIN_TAB *tmp_join_tab= join->join_tab+join->tables;
THD *thd= join->thd; THD *thd= join->thd;
LEX *lex= thd->lex; LEX *lex= thd->lex;
bool result= 0; bool result= 0;
DBUG_ENTER("get_schema_tables_result");
thd->no_warnings_for_error= 1;
for (JOIN_TAB *tab= join->join_tab; tab < tmp_join_tab; tab++) for (JOIN_TAB *tab= join->join_tab; tab < tmp_join_tab; tab++)
{ {
if (!tab->table || !tab->table->pos_in_table_list) if (!tab->table || !tab->table->pos_in_table_list)
@ -3376,6 +3371,7 @@ bool get_schema_tables_result(JOIN *join)
lex->query_tables_last= query_tables_last; lex->query_tables_last= query_tables_last;
} }
} }
thd->no_warnings_for_error= 0;
DBUG_RETURN(result); DBUG_RETURN(result);
} }

View File

@ -191,6 +191,9 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists,
if (lock_table_names(thd, tables)) if (lock_table_names(thd, tables))
DBUG_RETURN(1); DBUG_RETURN(1);
/* Don't give warnings for not found errors, as we already generate notes */
thd->no_warnings_for_error= 1;
for (table= tables; table; table= table->next_local) for (table= tables; table; table= table->next_local)
{ {
char *db=table->db; char *db=table->db;
@ -213,7 +216,10 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists,
} }
drop_locked_tables(thd,db,table->table_name); drop_locked_tables(thd,db,table->table_name);
if (thd->killed) if (thd->killed)
{
thd->no_warnings_for_error= 0;
DBUG_RETURN(-1); DBUG_RETURN(-1);
}
alias= (lower_case_table_names == 2) ? table->alias : table->table_name; alias= (lower_case_table_names == 2) ? table->alias : table->table_name;
/* remove form file and isam files */ /* remove form file and isam files */
strxmov(path, mysql_data_home, "/", db, "/", alias, reg_ext, NullS); strxmov(path, mysql_data_home, "/", db, "/", alias, reg_ext, NullS);
@ -286,6 +292,7 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists,
} }
unlock_table_names(thd, tables); unlock_table_names(thd, tables);
thd->no_warnings_for_error= 0;
DBUG_RETURN(error); DBUG_RETURN(error);
} }
@ -681,7 +688,7 @@ int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
it.rewind(); it.rewind();
while ((sql_field=it++)) while ((sql_field=it++))
{ {
DBUG_ASSERT(sql_field->charset); DBUG_ASSERT(sql_field->charset != 0);
switch (sql_field->sql_type) { switch (sql_field->sql_type) {
case FIELD_TYPE_BLOB: case FIELD_TYPE_BLOB:
@ -1955,6 +1962,7 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
const char *operator_name, const char *operator_name,
thr_lock_type lock_type, thr_lock_type lock_type,
bool open_for_modify, bool open_for_modify,
bool no_warnings_for_error,
uint extra_open_options, uint extra_open_options,
int (*prepare_func)(THD *, TABLE_LIST *, int (*prepare_func)(THD *, TABLE_LIST *,
HA_CHECK_OPT *), HA_CHECK_OPT *),
@ -1994,7 +2002,9 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
/* open only one table from local list of command */ /* open only one table from local list of command */
next_global_table= table->next_global; next_global_table= table->next_global;
table->next_global= 0; table->next_global= 0;
thd->no_warnings_for_error= no_warnings_for_error;
open_and_lock_tables(thd, table); open_and_lock_tables(thd, table);
thd->no_warnings_for_error= 0;
table->next_global= next_global_table; table->next_global= next_global_table;
/* if view are unsupported */ /* if view are unsupported */
if (table->view && !view_operator_func) if (table->view && !view_operator_func)
@ -2218,7 +2228,7 @@ bool mysql_backup_table(THD* thd, TABLE_LIST* table_list)
{ {
DBUG_ENTER("mysql_backup_table"); DBUG_ENTER("mysql_backup_table");
DBUG_RETURN(mysql_admin_table(thd, table_list, 0, DBUG_RETURN(mysql_admin_table(thd, table_list, 0,
"backup", TL_READ, 0, 0, 0, "backup", TL_READ, 0, 0, 0, 0,
&handler::backup, 0)); &handler::backup, 0));
} }
@ -2227,7 +2237,7 @@ bool mysql_restore_table(THD* thd, TABLE_LIST* table_list)
{ {
DBUG_ENTER("mysql_restore_table"); DBUG_ENTER("mysql_restore_table");
DBUG_RETURN(mysql_admin_table(thd, table_list, 0, DBUG_RETURN(mysql_admin_table(thd, table_list, 0,
"restore", TL_WRITE, 1, 0, "restore", TL_WRITE, 1, 1, 0,
&prepare_for_restore, &prepare_for_restore,
&handler::restore, 0)); &handler::restore, 0));
} }
@ -2237,7 +2247,9 @@ bool mysql_repair_table(THD* thd, TABLE_LIST* tables, HA_CHECK_OPT* check_opt)
{ {
DBUG_ENTER("mysql_repair_table"); DBUG_ENTER("mysql_repair_table");
DBUG_RETURN(mysql_admin_table(thd, tables, check_opt, DBUG_RETURN(mysql_admin_table(thd, tables, check_opt,
"repair", TL_WRITE, 1, HA_OPEN_FOR_REPAIR, "repair", TL_WRITE, 1,
test(check_opt->sql_flags & TT_USEFRM),
HA_OPEN_FOR_REPAIR,
&prepare_for_repair, &prepare_for_repair,
&handler::repair, 0)); &handler::repair, 0));
} }
@ -2247,7 +2259,7 @@ bool mysql_optimize_table(THD* thd, TABLE_LIST* tables, HA_CHECK_OPT* check_opt)
{ {
DBUG_ENTER("mysql_optimize_table"); DBUG_ENTER("mysql_optimize_table");
DBUG_RETURN(mysql_admin_table(thd, tables, check_opt, DBUG_RETURN(mysql_admin_table(thd, tables, check_opt,
"optimize", TL_WRITE, 1,0,0, "optimize", TL_WRITE, 1,0,0,0,
&handler::optimize, 0)); &handler::optimize, 0));
} }
@ -2283,7 +2295,7 @@ bool mysql_assign_to_keycache(THD* thd, TABLE_LIST* tables,
pthread_mutex_unlock(&LOCK_global_system_variables); pthread_mutex_unlock(&LOCK_global_system_variables);
check_opt.key_cache= key_cache; check_opt.key_cache= key_cache;
DBUG_RETURN(mysql_admin_table(thd, tables, &check_opt, DBUG_RETURN(mysql_admin_table(thd, tables, &check_opt,
"assign_to_keycache", TL_READ_NO_INSERT, 0, "assign_to_keycache", TL_READ_NO_INSERT, 0, 0,
0, 0, &handler::assign_to_keycache, 0)); 0, 0, &handler::assign_to_keycache, 0));
} }
@ -2344,7 +2356,7 @@ bool mysql_preload_keys(THD* thd, TABLE_LIST* tables)
{ {
DBUG_ENTER("mysql_preload_keys"); DBUG_ENTER("mysql_preload_keys");
DBUG_RETURN(mysql_admin_table(thd, tables, 0, DBUG_RETURN(mysql_admin_table(thd, tables, 0,
"preload_keys", TL_READ, 0, 0, 0, "preload_keys", TL_READ, 0, 0, 0, 0,
&handler::preload_keys, 0)); &handler::preload_keys, 0));
} }
@ -2510,7 +2522,7 @@ bool mysql_analyze_table(THD* thd, TABLE_LIST* tables, HA_CHECK_OPT* check_opt)
DBUG_ENTER("mysql_analyze_table"); DBUG_ENTER("mysql_analyze_table");
DBUG_RETURN(mysql_admin_table(thd, tables, check_opt, DBUG_RETURN(mysql_admin_table(thd, tables, check_opt,
"analyze", lock_type, 1,0,0, "analyze", lock_type, 1, 0, 0, 0,
&handler::analyze, 0)); &handler::analyze, 0));
} }
@ -2526,7 +2538,7 @@ bool mysql_check_table(THD* thd, TABLE_LIST* tables,HA_CHECK_OPT* check_opt)
DBUG_ENTER("mysql_check_table"); DBUG_ENTER("mysql_check_table");
DBUG_RETURN(mysql_admin_table(thd, tables, check_opt, DBUG_RETURN(mysql_admin_table(thd, tables, check_opt,
"check", lock_type, "check", lock_type,
0, HA_OPEN_FOR_REPAIR, 0, 0, HA_OPEN_FOR_REPAIR, 0, 0,
&handler::check, &view_checksum)); &handler::check, &view_checksum));
} }

View File

@ -49,12 +49,6 @@ bool mysql_union(THD *thd, LEX *lex, select_result *result,
select_union::select_union(TABLE *table_par) select_union::select_union(TABLE *table_par)
:table(table_par) :table(table_par)
{ {
bzero((char*) &info,sizeof(info));
/*
We can always use IGNORE because the temporary table will only
contain a unique key if we are using not using UNION ALL
*/
info.ignore= 1;
} }
select_union::~select_union() select_union::~select_union()
@ -71,22 +65,21 @@ int select_union::prepare(List<Item> &list, SELECT_LEX_UNIT *u)
bool select_union::send_data(List<Item> &values) bool select_union::send_data(List<Item> &values)
{ {
int error= 0;
if (unit->offset_limit_cnt) if (unit->offset_limit_cnt)
{ // using limit offset,count { // using limit offset,count
unit->offset_limit_cnt--; unit->offset_limit_cnt--;
return 0; return 0;
} }
fill_record(thd, table->field, values, 1); fill_record(thd, table->field, values, 1);
if (thd->net.report_error || write_record(thd, table,&info)) if (thd->net.report_error)
{
if (thd->net.last_errno == ER_RECORD_FILE_FULL)
{
thd->clear_error(); // do not report user about table overflow
if (create_myisam_from_heap(thd, table, &tmp_table_param,
info.last_errno, 1))
return 1; return 1;
}
else if ((error= table->file->write_row(table->record[0])))
{
/* create_myisam_from_heap will generate error if needed */
if (error != HA_ERR_FOUND_DUPP_KEY && error != HA_ERR_FOUND_DUPP_UNIQUE &&
create_myisam_from_heap(thd, table, &tmp_table_param, error, 1))
return 1; return 1;
} }
return 0; return 0;
@ -386,7 +379,7 @@ bool st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
for (Field **field= table->field; *field; field++) for (Field **field= table->field; *field; field++)
{ {
Item_field *item_field= (Item_field*) it++; Item_field *item_field= (Item_field*) it++;
DBUG_ASSERT(item_field); DBUG_ASSERT(item_field != 0);
item_field->reset_field(*field); item_field->reset_field(*field);
} }
} }

View File

@ -141,7 +141,7 @@ int mysql_update(THD *thd,
if (table_list->ancestor && table_list->ancestor->next_local) if (table_list->ancestor && table_list->ancestor->next_local)
{ {
DBUG_ASSERT(table_list->view); DBUG_ASSERT(table_list->view != 0);
DBUG_PRINT("info", ("Switch to multi-update")); DBUG_PRINT("info", ("Switch to multi-update"));
/* pass counter value */ /* pass counter value */
thd->lex->table_count= table_count; thd->lex->table_count= table_count;
@ -191,6 +191,7 @@ int mysql_update(THD *thd,
table_list->grant.want_privilege= table->grant.want_privilege= want_privilege; table_list->grant.want_privilege= table->grant.want_privilege= want_privilege;
#endif #endif
{ {
bool res;
select_lex->no_wrap_view_item= 1; select_lex->no_wrap_view_item= 1;
res= setup_fields(thd, 0, table_list, fields, 1, 0, 0); res= setup_fields(thd, 0, table_list, fields, 1, 0, 0);
select_lex->no_wrap_view_item= 0; select_lex->no_wrap_view_item= 0;
@ -815,7 +816,6 @@ bool mysql_multi_update(THD *thd,
enum enum_duplicates handle_duplicates, bool ignore, enum enum_duplicates handle_duplicates, bool ignore,
SELECT_LEX_UNIT *unit, SELECT_LEX *select_lex) SELECT_LEX_UNIT *unit, SELECT_LEX *select_lex)
{ {
bool res= FALSE;
multi_update *result; multi_update *result;
DBUG_ENTER("mysql_multi_update"); DBUG_ENTER("mysql_multi_update");
@ -834,7 +834,7 @@ bool mysql_multi_update(THD *thd,
MODE_STRICT_ALL_TABLES)); MODE_STRICT_ALL_TABLES));
List<Item> total_list; List<Item> total_list;
res= mysql_select(thd, &select_lex->ref_pointer_array, (void) mysql_select(thd, &select_lex->ref_pointer_array,
table_list, select_lex->with_wild, table_list, select_lex->with_wild,
total_list, total_list,
conds, 0, (ORDER *) NULL, (ORDER *)NULL, (Item *) NULL, conds, 0, (ORDER *) NULL, (ORDER *)NULL, (Item *) NULL,

View File

@ -3235,7 +3235,6 @@ alter:
} }
sp_a_chistics sp_a_chistics
{ {
THD *thd= YYTHD;
LEX *lex=Lex; LEX *lex=Lex;
lex->sql_command= SQLCOM_ALTER_PROCEDURE; lex->sql_command= SQLCOM_ALTER_PROCEDURE;
@ -3249,7 +3248,6 @@ alter:
} }
sp_a_chistics sp_a_chistics
{ {
THD *thd= YYTHD;
LEX *lex=Lex; LEX *lex=Lex;
lex->sql_command= SQLCOM_ALTER_FUNCTION; lex->sql_command= SQLCOM_ALTER_FUNCTION;
@ -4480,7 +4478,6 @@ simple_expr:
{ $$= new Item_int((char*) "TRUE",1,1); } { $$= new Item_int((char*) "TRUE",1,1); }
| ident '.' ident '(' udf_expr_list ')' | ident '.' ident '(' udf_expr_list ')'
{ {
LEX *lex= Lex;
sp_name *name= new sp_name($1, $3); sp_name *name= new sp_name($1, $3);
name->init_qname(YYTHD); name->init_qname(YYTHD);
@ -6429,24 +6426,24 @@ field_term_list:
field_term: field_term:
TERMINATED BY text_string TERMINATED BY text_string
{ {
DBUG_ASSERT(Lex->exchange); DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->field_term= $3; Lex->exchange->field_term= $3;
} }
| OPTIONALLY ENCLOSED BY text_string | OPTIONALLY ENCLOSED BY text_string
{ {
LEX *lex= Lex; LEX *lex= Lex;
DBUG_ASSERT(lex->exchange); DBUG_ASSERT(lex->exchange != 0);
lex->exchange->enclosed= $4; lex->exchange->enclosed= $4;
lex->exchange->opt_enclosed= 1; lex->exchange->opt_enclosed= 1;
} }
| ENCLOSED BY text_string | ENCLOSED BY text_string
{ {
DBUG_ASSERT(Lex->exchange); DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->enclosed= $3; Lex->exchange->enclosed= $3;
} }
| ESCAPED BY text_string | ESCAPED BY text_string
{ {
DBUG_ASSERT(Lex->exchange); DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->escaped= $3; Lex->exchange->escaped= $3;
}; };
@ -6461,12 +6458,12 @@ line_term_list:
line_term: line_term:
TERMINATED BY text_string TERMINATED BY text_string
{ {
DBUG_ASSERT(Lex->exchange); DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->line_term= $3; Lex->exchange->line_term= $3;
} }
| STARTING BY text_string | STARTING BY text_string
{ {
DBUG_ASSERT(Lex->exchange); DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->line_start= $3; Lex->exchange->line_start= $3;
}; };
@ -6474,7 +6471,7 @@ opt_ignore_lines:
/* empty */ /* empty */
| IGNORE_SYM NUM LINES | IGNORE_SYM NUM LINES
{ {
DBUG_ASSERT(Lex->exchange); DBUG_ASSERT(Lex->exchange != 0);
Lex->exchange->skip_lines= atol($2.str); Lex->exchange->skip_lines= atol($2.str);
}; };
@ -7306,7 +7303,6 @@ option_value:
} }
| NAMES_SYM charset_name_or_default opt_collate | NAMES_SYM charset_name_or_default opt_collate
{ {
THD *thd= YYTHD;
LEX *lex= Lex; LEX *lex= Lex;
$2= $2 ? $2 : global_system_variables.character_set_client; $2= $2 ? $2 : global_system_variables.character_set_client;
$3= $3 ? $3 : $2; $3= $3 ? $3 : $2;

View File

@ -147,7 +147,7 @@ uint find_type(TYPELIB *lib, const char *find, uint length, bool part_match)
uint find_type2(TYPELIB *typelib, const char *x, uint length, CHARSET_INFO *cs) uint find_type2(TYPELIB *typelib, const char *x, uint length, CHARSET_INFO *cs)
{ {
int find,pos; int pos;
const char *j; const char *j;
DBUG_ENTER("find_type2"); DBUG_ENTER("find_type2");
DBUG_PRINT("enter",("x: '%.*s' lib: 0x%lx", length, x, typelib)); DBUG_PRINT("enter",("x: '%.*s' lib: 0x%lx", length, x, typelib));
@ -158,7 +158,7 @@ uint find_type2(TYPELIB *typelib, const char *x, uint length, CHARSET_INFO *cs)
DBUG_RETURN(0); DBUG_RETURN(0);
} }
for (find=0, pos=0 ; (j=typelib->type_names[pos]) ; pos++) for (pos=0 ; (j=typelib->type_names[pos]) ; pos++)
{ {
if (!my_strnncoll(cs, (const uchar*) x, length, if (!my_strnncoll(cs, (const uchar*) x, length,
(const uchar*) j, typelib->type_lengths[pos])) (const uchar*) j, typelib->type_lengths[pos]))

View File

@ -372,7 +372,7 @@ static int my_strnxfrm_ucs2(CHARSET_INFO *cs,
dst+=res; dst+=res;
} }
if (dst < de) if (dst < de)
cs->cset->fill(cs, dst, de - dst, ' '); cs->cset->fill(cs, (char*) dst, de - dst, ' ');
return dstlen; return dstlen;
} }
@ -1385,7 +1385,7 @@ int my_strnxfrm_ucs2_bin(CHARSET_INFO *cs __attribute__((unused)),
if (dst != src) if (dst != src)
memcpy(dst,src,srclen= min(dstlen,srclen)); memcpy(dst,src,srclen= min(dstlen,srclen));
if (dstlen > srclen) if (dstlen > srclen)
cs->cset->fill(cs, dst + srclen, dstlen - srclen, ' '); cs->cset->fill(cs, (char*) dst + srclen, dstlen - srclen, ' ');
return dstlen; return dstlen;
} }

View File

@ -3351,7 +3351,7 @@ static void test_bind_result()
MYSQL_STMT *stmt; MYSQL_STMT *stmt;
int rc; int rc;
int nData; int nData;
ulong length, length1; ulong length1;
char szData[100]; char szData[100];
MYSQL_BIND bind[2]; MYSQL_BIND bind[2];
my_bool is_null[2]; my_bool is_null[2];
@ -3416,7 +3416,6 @@ static void test_bind_result()
DIE_UNLESS(strcmp(szData, "MySQL") == 0); DIE_UNLESS(strcmp(szData, "MySQL") == 0);
DIE_UNLESS(length1 == 5); DIE_UNLESS(length1 == 5);
length= 99;
rc= mysql_stmt_fetch(stmt); rc= mysql_stmt_fetch(stmt);
check_execute(stmt, rc); check_execute(stmt, rc);
@ -5350,7 +5349,6 @@ static void test_prepare_alter()
{ {
MYSQL_STMT *stmt; MYSQL_STMT *stmt;
int rc, id; int rc, id;
long length;
MYSQL_BIND bind[1]; MYSQL_BIND bind[1];
my_bool is_null; my_bool is_null;
@ -5385,7 +5383,6 @@ static void test_prepare_alter()
check_execute(stmt, rc); check_execute(stmt, rc);
id= 30; id= 30;
length= 0;
rc= mysql_stmt_execute(stmt); rc= mysql_stmt_execute(stmt);
check_execute(stmt, rc); check_execute(stmt, rc);
@ -11620,14 +11617,13 @@ static void test_bug6059()
{ {
MYSQL_STMT *stmt; MYSQL_STMT *stmt;
const char *stmt_text; const char *stmt_text;
int rc;
myheader("test_bug6059"); myheader("test_bug6059");
stmt_text= "SELECT 'foo' INTO OUTFILE 'x.3'"; stmt_text= "SELECT 'foo' INTO OUTFILE 'x.3'";
stmt= mysql_stmt_init(mysql); stmt= mysql_stmt_init(mysql);
rc= mysql_stmt_prepare(stmt, stmt_text, strlen(stmt_text)); (void) mysql_stmt_prepare(stmt, stmt_text, strlen(stmt_text));
DIE_UNLESS(mysql_stmt_field_count(stmt) == 0); DIE_UNLESS(mysql_stmt_field_count(stmt) == 0);
mysql_stmt_close(stmt); mysql_stmt_close(stmt);
} }

View File

@ -557,14 +557,13 @@ HANDLE_DECL(handle_set_exec_stderr)
static int set_exec_param(struct manager_thd* thd, char* args_start, static int set_exec_param(struct manager_thd* thd, char* args_start,
char* args_end, PARAM_TYPE param_type) char* args_end, PARAM_TYPE param_type)
{ {
int num_args;
const char* error=0; const char* error=0;
struct manager_exec* e; struct manager_exec* e;
char* arg_p; char* arg_p;
char* param; char* param;
int param_size; int param_size;
if ((num_args=tokenize_args(args_start,&args_end))<2) if (tokenize_args(args_start,&args_end) < 2)
{ {
error="Too few arguments"; error="Too few arguments";
goto err; goto err;
@ -607,12 +606,11 @@ err:
HANDLE_DECL(handle_start_exec) HANDLE_DECL(handle_start_exec)
{ {
int num_args;
struct manager_exec* e; struct manager_exec* e;
int ident_len; int ident_len;
const char* error=0; const char* error=0;
struct timespec t; struct timespec t;
if ((num_args=tokenize_args(args_start,&args_end))<1) if (tokenize_args(args_start,&args_end) < 1)
{ {
error="Too few arguments"; error="Too few arguments";
goto err; goto err;
@ -656,12 +654,11 @@ err:
HANDLE_DECL(handle_stop_exec) HANDLE_DECL(handle_stop_exec)
{ {
int num_args;
struct timespec abstime; struct timespec abstime;
struct manager_exec* e; struct manager_exec* e;
int ident_len; int ident_len;
const char* error=0; const char* error=0;
if ((num_args=tokenize_args(args_start,&args_end))<2) if (tokenize_args(args_start,&args_end) <2)
{ {
error="Too few arguments"; error="Too few arguments";
goto err; goto err;