Commit 0197fc78 authored by monty@narttu.mysql.fi's avatar monty@narttu.mysql.fi

Merge with 4.0

parents 3b073a08 c20453ba
...@@ -7,13 +7,13 @@ select 9223372036854775807,-009223372036854775808; ...@@ -7,13 +7,13 @@ select 9223372036854775807,-009223372036854775808;
9223372036854775807 -9223372036854775808 9223372036854775807 -9223372036854775808
select +9999999999999999999,-9999999999999999999; select +9999999999999999999,-9999999999999999999;
+9999999999999999999 -9999999999999999999 +9999999999999999999 -9999999999999999999
10000000000000000000 -10000000000000000000 9999999999999999999 -10000000000000000000
select cast(9223372036854775808 as unsigned)+1; select cast(9223372036854775808 as unsigned)+1;
cast(9223372036854775808 as unsigned)+1 cast(9223372036854775808 as unsigned)+1
9223372036854775809 9223372036854775809
select 9223372036854775808+1; select 9223372036854775808+1;
9223372036854775808+1 9223372036854775808+1
9223372036854775808 9223372036854775809
create table t1 (a bigint unsigned not null, primary key(a)); create table t1 (a bigint unsigned not null, primary key(a));
insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE); insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE);
select * from t1; select * from t1;
......
...@@ -12,12 +12,6 @@ select 0,256,00000000000000065536,2147483647,-2147483648,2147483648,+4294967296; ...@@ -12,12 +12,6 @@ select 0,256,00000000000000065536,2147483647,-2147483648,2147483648,+4294967296;
select 9223372036854775807,-009223372036854775808; select 9223372036854775807,-009223372036854775808;
select +9999999999999999999,-9999999999999999999; select +9999999999999999999,-9999999999999999999;
select cast(9223372036854775808 as unsigned)+1; select cast(9223372036854775808 as unsigned)+1;
#
# We need to do a REPLACE here as the atof() function returns different
# values on True64 and HPUX11
#
--replace_result 9223372036854775800 9223372036854775808
select 9223372036854775808+1; select 9223372036854775808+1;
# #
# In 3.23 we have to disable the test of column to bigint as # In 3.23 we have to disable the test of column to bigint as
......
...@@ -1282,7 +1282,13 @@ ha_innobase::open( ...@@ -1282,7 +1282,13 @@ ha_innobase::open(
The column is the row id in the automatical generation case, The column is the row id in the automatical generation case,
and it will never be updated anyway. and it will never be updated anyway.
*/ */
DBUG_ASSERT(key_used_on_scan == MAX_KEY);
if (key_used_on_scan != MAX_KEY) {
fprintf(stderr,
"InnoDB: Warning: table %s key_used_on_scan is %lu even though there is no\n"
"InnoDB: primary key inside InnoDB.\n",
name, (ulint)key_used_on_scan);
}
} }
auto_inc_counter_for_this_stat = 0; auto_inc_counter_for_this_stat = 0;
...@@ -4185,9 +4191,12 @@ static void free_share(INNOBASE_SHARE *share) ...@@ -4185,9 +4191,12 @@ static void free_share(INNOBASE_SHARE *share)
/********************************************************************* /*********************************************************************
Converts a MySQL table lock stored in the 'lock' field of the handle to Converts a MySQL table lock stored in the 'lock' field of the handle to
a proper type before storing the lock. MySQL also calls this when it a proper type before storing pointer to the lock into an array of pointers.
releases a lock. */ MySQL also calls this if it wants to reset some table locks to a not-locked
state during the processing of an SQL query. An example is that during a
SELECT the read lock is released early on the 'const' tables where we only
fetch one row. MySQL does not call this when it releases all locks at the
end of an SQL statement. */
THR_LOCK_DATA** THR_LOCK_DATA**
ha_innobase::store_lock( ha_innobase::store_lock(
......
...@@ -451,7 +451,7 @@ inline static uint int_token(const char *str,uint length) ...@@ -451,7 +451,7 @@ inline static uint int_token(const char *str,uint length)
{ {
cmp=longlong_str; cmp=longlong_str;
smaller=LONG_NUM; smaller=LONG_NUM;
bigger=REAL_NUM; bigger= ULONGLONG_NUM;
} }
} }
while (*cmp && *cmp++ == *str++) ; while (*cmp && *cmp++ == *str++) ;
......
...@@ -91,7 +91,9 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, ...@@ -91,7 +91,9 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
*enclosed=ex->enclosed; *enclosed=ex->enclosed;
bool is_fifo=0; bool is_fifo=0;
LOAD_FILE_INFO lf_info; LOAD_FILE_INFO lf_info;
char * db = table_list->db ? table_list->db : thd->db; char *db = table_list->db; // This is never null
/* If no current database, use database where table is located */
char *tdb= thd->db ? thd->db : db;
bool transactional_table, log_delayed; bool transactional_table, log_delayed;
DBUG_ENTER("mysql_load"); DBUG_ENTER("mysql_load");
...@@ -173,10 +175,10 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, ...@@ -173,10 +175,10 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
ex->file_name+=dirname_length(ex->file_name); ex->file_name+=dirname_length(ex->file_name);
#endif #endif
if (!dirname_length(ex->file_name) && if (!dirname_length(ex->file_name) &&
strlen(ex->file_name)+strlen(mysql_data_home)+strlen(thd->db)+3 < strlen(ex->file_name)+strlen(mysql_data_home)+strlen(tdb)+3 <
FN_REFLEN) FN_REFLEN)
{ {
(void) sprintf(name,"%s/%s/%s",mysql_data_home,thd->db,ex->file_name); (void) sprintf(name,"%s/%s/%s",mysql_data_home,tdb,ex->file_name);
unpack_filename(name,name); /* Convert to system format */ unpack_filename(name,name); /* Convert to system format */
} }
else else
......
...@@ -512,6 +512,7 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild) ...@@ -512,6 +512,7 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild)
field_list.push_back(item=new Item_empty_string("Create_options",255)); field_list.push_back(item=new Item_empty_string("Create_options",255));
item->maybe_null=1; item->maybe_null=1;
field_list.push_back(item=new Item_empty_string("Comment",80)); field_list.push_back(item=new Item_empty_string("Comment",80));
item->maybe_null=1;
if (protocol->send_fields(&field_list,1)) if (protocol->send_fields(&field_list,1))
DBUG_RETURN(1); DBUG_RETURN(1);
...@@ -530,7 +531,7 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild) ...@@ -530,7 +531,7 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild)
my_casedn_str(files_charset_info, file_name); my_casedn_str(files_charset_info, file_name);
if (!(table = open_ltable(thd, &table_list, TL_READ))) if (!(table = open_ltable(thd, &table_list, TL_READ)))
{ {
for (uint i=1 ; i < field_list.elements-1 ; i++) for (uint i=2 ; i < field_list.elements ; i++)
protocol->store_null(); protocol->store_null();
// Send error to Comment field // Send error to Comment field
protocol->store(thd->net.last_error); protocol->store(thd->net.last_error);
......
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