summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-03-05 19:49:50 +0200
committerunknown <monty@mysql.com>2004-03-05 19:49:50 +0200
commit28f0e328795e1e72d6b77aec1a7996eddfa60d96 (patch)
tree4d38939c1f7db4ae8bb4e98725f17b623a00e6c0
parenteb7516c479c329bb8292b9a17193d34794477bca (diff)
downloadmariadb-git-28f0e328795e1e72d6b77aec1a7996eddfa60d96.tar.gz
Portability fixes
mysql-test/r/show_check.result: Updated results mysql-test/t/show_check.test: Portability fix (for 64 bit platforms) mysys/hash.c: Portablity fix sql/gen_lex_hash.cc: Don't include mysql_priv.h; Causes build errors on a lot of platforms sql/lex_symbol.h: Moved symbols here from mysql_priv.h to avoid including mysql_priv.h in gen_lex_hash.cc sql/mysql_priv.h: Move symbols and struct to lex_symbol.h sql/sql_db.cc: Don't use sql_alloc/sql_free methods in sql_string.h sql/sql_help.cc: Don't use sql_alloc/sql_free methods in sql_string.h sql/sql_string.h: Don't use sql_alloc/sql_free methods in sql_string.h This makes the code faster and more portable sql/sql_yacc.yy: Don't use sql_alloc/sql_free methods in sql_string.h
-rw-r--r--mysql-test/r/show_check.result42
-rw-r--r--mysql-test/t/show_check.test7
-rw-r--r--mysys/hash.c2
-rw-r--r--sql/gen_lex_hash.cc1
-rw-r--r--sql/lex_symbol.h9
-rw-r--r--sql/mysql_priv.h9
-rw-r--r--sql/sql_db.cc3
-rw-r--r--sql/sql_help.cc6
-rw-r--r--sql/sql_string.h4
-rw-r--r--sql/sql_yacc.yy14
10 files changed, 51 insertions, 46 deletions
diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result
index 6a08dca213c..828964d7543 100644
--- a/mysql-test/r/show_check.result
+++ b/mysql-test/r/show_check.result
@@ -335,55 +335,55 @@ insert into t2 values (1),(2);
insert into t3 values (1,1),(2,2);
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 HEAP Fixed 2 5 39904 249415 42 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP Fixed 2 5 39904 249415 39904 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP Fixed 2 9 33072 248103 22090 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 HEAP Fixed 2 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 2 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 2 9 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
insert into t1 values (3),(4);
insert into t2 values (3),(4);
insert into t3 values (3,3),(4,4);
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 HEAP Fixed 4 5 39904 249415 84 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP Fixed 4 5 39904 249415 39904 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP Fixed 4 9 33072 248103 22132 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 HEAP Fixed 4 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 4 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 4 9 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
insert into t1 values (5);
insert into t2 values (5);
insert into t3 values (5,5);
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 HEAP Fixed 5 5 39904 249415 105 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP Fixed 5 5 39904 249415 39904 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP Fixed 5 9 33072 248103 22153 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 HEAP Fixed 5 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 5 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 5 9 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
delete from t1 where a=3;
delete from t2 where b=3;
delete from t3 where a=3;
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 HEAP Fixed 4 5 39904 249415 89 5 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP Fixed 4 5 39904 249415 39904 5 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP Fixed 4 9 33072 248103 22137 9 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 HEAP Fixed 4 5 # # # 5 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 4 5 # # # 5 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 4 9 # # # 9 NULL NULL NULL NULL latin1_swedish_ci NULL
delete from t1;
delete from t2;
delete from t3;
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 HEAP Fixed 0 5 0 249415 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP Fixed 0 5 0 249415 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP Fixed 0 9 0 248103 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 HEAP Fixed 0 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 0 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 0 9 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
insert into t1 values (5);
insert into t2 values (5);
insert into t3 values (5,5);
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 HEAP Fixed 1 5 39904 249415 21 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP Fixed 1 5 39904 249415 39904 0 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP Fixed 1 9 33072 248103 22069 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 HEAP Fixed 1 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 1 5 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 1 9 # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL
delete from t1 where a=5;
delete from t2 where b=5;
delete from t3 where a=5;
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
-t1 HEAP Fixed 0 5 39904 249415 5 5 NULL NULL NULL NULL latin1_swedish_ci NULL
-t2 HEAP Fixed 0 5 39904 249415 39904 5 NULL NULL NULL NULL latin1_swedish_ci NULL
-t3 HEAP Fixed 0 9 33072 248103 22053 9 NULL NULL NULL NULL latin1_swedish_ci NULL
+t1 HEAP Fixed 0 5 # # # 5 NULL NULL NULL NULL latin1_swedish_ci NULL
+t2 HEAP Fixed 0 5 # # # 5 NULL NULL NULL NULL latin1_swedish_ci NULL
+t3 HEAP Fixed 0 9 # # # 9 NULL NULL NULL NULL latin1_swedish_ci NULL
drop table t1, t2, t3;
diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test
index 935e472c4a1..81cd024e4b3 100644
--- a/mysql-test/t/show_check.test
+++ b/mysql-test/t/show_check.test
@@ -209,30 +209,37 @@ CREATE TABLE t3 (
insert into t1 values (1),(2);
insert into t2 values (1),(2);
insert into t3 values (1,1),(2,2);
+--replace_column 6 # 7 # 8 #
show table status;
insert into t1 values (3),(4);
insert into t2 values (3),(4);
insert into t3 values (3,3),(4,4);
+--replace_column 6 # 7 # 8 #
show table status;
insert into t1 values (5);
insert into t2 values (5);
insert into t3 values (5,5);
+--replace_column 6 # 7 # 8 #
show table status;
delete from t1 where a=3;
delete from t2 where b=3;
delete from t3 where a=3;
+--replace_column 6 # 7 # 8 #
show table status;
delete from t1;
delete from t2;
delete from t3;
+--replace_column 6 # 7 # 8 #
show table status;
insert into t1 values (5);
insert into t2 values (5);
insert into t3 values (5,5);
+--replace_column 6 # 7 # 8 #
show table status;
delete from t1 where a=5;
delete from t2 where b=5;
delete from t3 where a=5;
+--replace_column 6 # 7 # 8 #
show table status;
drop table t1, t2, t3;
diff --git a/mysys/hash.c b/mysys/hash.c
index 64a4242e0f7..b7be41a9058 100644
--- a/mysys/hash.c
+++ b/mysys/hash.c
@@ -122,7 +122,7 @@ static uint hash_rec_mask(HASH *hash,HASH_LINK *pos,uint buffmax,
-#ifndef __SUNPRO_C /* SUNPRO can't handle this */
+#if !defined(__SUNPRO_C) && !defined(__USLC__) /* broken compilers */
inline
#endif
unsigned int rec_hashnr(HASH *hash,const byte *record)
diff --git a/sql/gen_lex_hash.cc b/sql/gen_lex_hash.cc
index 6df7d867a4d..5dc7c50e04c 100644
--- a/sql/gen_lex_hash.cc
+++ b/sql/gen_lex_hash.cc
@@ -81,7 +81,6 @@ TODO:
#endif
#include <my_getopt.h>
#include "mysql_version.h"
-#include "mysql_priv.h"
#include "lex.h"
struct my_option my_long_options[] =
diff --git a/sql/lex_symbol.h b/sql/lex_symbol.h
index d1d30a73669..3074a489b6a 100644
--- a/sql/lex_symbol.h
+++ b/sql/lex_symbol.h
@@ -37,4 +37,13 @@ typedef struct st_lex_symbol
uint length;
} LEX_SYMBOL;
+typedef struct st_sym_group {
+ const char *name;
+ const char *needed_define;
+} SYM_GROUP;
+
+extern SYM_GROUP sym_group_common;
+extern SYM_GROUP sym_group_geom;
+extern SYM_GROUP sym_group_rtree;
+
#endif /* _lex_symbol_h */
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index 2d22d9c5891..eb879a1fd59 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -1126,12 +1126,3 @@ inline void setup_table_map(TABLE *table, TABLE_LIST *table_list, uint tablenr)
table->map= (table_map) 1 << tablenr;
table->force_index= table_list->force_index;
}
-
-typedef struct st_sym_group {
- const char *name;
- const char *needed_define;
-} SYM_GROUP;
-
-extern SYM_GROUP sym_group_common;
-extern SYM_GROUP sym_group_geom;
-extern SYM_GROUP sym_group_rtree;
diff --git a/sql/sql_db.cc b/sql/sql_db.cc
index 7bf1268597b..80669089fc4 100644
--- a/sql/sql_db.cc
+++ b/sql/sql_db.cc
@@ -488,7 +488,8 @@ static long mysql_rm_known_files(THD *thd, MY_DIR *dirp, const char *db,
my_dirend(dirp);
DBUG_RETURN(-1);
}
- raid_dirs.push_back(dir=new String(newpath, &my_charset_latin1));
+ raid_dirs.push_back(dir=new (&thd->mem_root)
+ String(newpath, &my_charset_latin1));
dir->copy();
continue;
}
diff --git a/sql/sql_help.cc b/sql/sql_help.cc
index d5516fe3337..e12dde68266 100644
--- a/sql/sql_help.cc
+++ b/sql/sql_help.cc
@@ -140,7 +140,7 @@ void memorize_variant_topic(THD *thd, TABLE *topics, int count,
{
if (count == 1)
names->push_back(name);
- String *new_name= new String;
+ String *new_name= new (&thd->mem_root) String;
get_field(mem_root,find_fields[help_topic_name].field,new_name);
names->push_back(new_name);
}
@@ -391,7 +391,7 @@ int search_categories(THD *thd, TABLE *categories,
{
if (select && !select->cond->val_int())
continue;
- String *lname= new String;
+ String *lname= new (&thd->mem_root) String;
get_field(&thd->mem_root,pfname,lname);
if (++count == 1 && res_id)
*res_id= (int16) pcat_id->val_int();
@@ -425,7 +425,7 @@ void get_all_items_for_category(THD *thd, TABLE *items, Field *pfname,
{
if (!select->cond->val_int())
continue;
- String *name= new String();
+ String *name= new (&thd->mem_root) String();
get_field(&thd->mem_root,pfname,name);
res->push_back(name);
}
diff --git a/sql/sql_string.h b/sql/sql_string.h
index 7f1c56dbfe7..32333b3b381 100644
--- a/sql/sql_string.h
+++ b/sql/sql_string.h
@@ -69,12 +69,10 @@ public:
Alloced_length=str.Alloced_length; alloced=0;
str_charset=str.str_charset;
}
- static void *operator new(size_t size)
- { return (void*) sql_alloc((uint) size); }
static void *operator new(size_t size, MEM_ROOT *mem_root)
{ return (void*) alloc_root(mem_root, (uint) size); }
static void operator delete(void *ptr_arg,size_t size) /*lint -e715 */
- { sql_element_free(ptr_arg); }
+ {}
~String() { free(); }
inline void set_charset(CHARSET_INFO *charset) { str_charset= charset; }
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 7df1973132a..382a6e65549 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -3043,7 +3043,7 @@ opt_distinct:
|DISTINCT { $$ = 1; };
opt_gconcat_separator:
- /* empty */ { $$ = new String(",",1,default_charset_info); }
+ /* empty */ { $$ = new (&YYTHD->mem_root) String(",",1,default_charset_info); }
|SEPARATOR_SYM text_string { $$ = $2; };
@@ -3293,15 +3293,15 @@ key_list_or_empty:
key_usage_list2:
key_usage_list2 ',' ident
{ Select->
- interval_list.push_back(new String((const char*) $3.str, $3.length,
+ interval_list.push_back(new (&YYTHD->mem_root) String((const char*) $3.str, $3.length,
system_charset_info)); }
| ident
{ Select->
- interval_list.push_back(new String((const char*) $1.str, $1.length,
+ interval_list.push_back(new (&YYTHD->mem_root) String((const char*) $1.str, $1.length,
system_charset_info)); }
| PRIMARY_SYM
{ Select->
- interval_list.push_back(new String("PRIMARY", 7,
+ interval_list.push_back(new (&YYTHD->mem_root) String("PRIMARY", 7,
system_charset_info)); };
using_list:
@@ -4255,7 +4255,7 @@ opt_describe_column:
/* empty */ {}
| text_string { Lex->wild= $1; }
| ident
- { Lex->wild= new String((const char*) $1.str,$1.length,system_charset_info); };
+ { Lex->wild= new (&YYTHD->mem_root) String((const char*) $1.str,$1.length,system_charset_info); };
/* flush things */
@@ -4467,7 +4467,7 @@ text_literal:
text_string:
TEXT_STRING_literal
- { $$= new String($1.str,$1.length,YYTHD->variables.collation_connection); }
+ { $$= new (&YYTHD->mem_root) String($1.str,$1.length,YYTHD->variables.collation_connection); }
| HEX_NUM
{
Item *tmp = new Item_varbinary($1.str,$1.length);
@@ -5424,7 +5424,7 @@ column_list:
column_list_id:
ident
{
- String *new_str = new String((const char*) $1.str,$1.length,system_charset_info);
+ String *new_str = new (&YYTHD->mem_root) String((const char*) $1.str,$1.length,system_charset_info);
List_iterator <LEX_COLUMN> iter(Lex->columns);
class LEX_COLUMN *point;
LEX *lex=Lex;