diff options
author | unknown <jani@ua141d10.elisa.omakaista.fi> | 2006-01-12 20:28:23 +0200 |
---|---|---|
committer | unknown <jani@ua141d10.elisa.omakaista.fi> | 2006-01-12 20:28:23 +0200 |
commit | a48380cd9a29a67cb161ffc0a9b7a037efe04297 (patch) | |
tree | 986db555a436ebf570733597877d21e2ffa95d36 | |
parent | 26252fa28bfa0c2dcf7d7b47cba51f47b30b2eb7 (diff) | |
parent | 1665d2370716a44acf7d35339019ad5b9e134b99 (diff) | |
download | mariadb-git-a48380cd9a29a67cb161ffc0a9b7a037efe04297.tar.gz |
Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0
client/mysqlimport.c:
Auto merged
include/config-netware.h:
Auto merged
innobase/os/os0thread.c:
Auto merged
netware/mysqld_safe.c:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/mysqld.cc:
Merged from 4.1.
sql/sql_base.cc:
Merged from 4.1.
sql/sql_handler.cc:
Merged from 4.1.
sql/sql_select.cc:
Merged from 4.1.
-rw-r--r-- | include/config-netware.h | 3 | ||||
-rw-r--r-- | innobase/os/os0thread.c | 9 | ||||
-rw-r--r-- | netware/mysqld_safe.c | 12 | ||||
-rw-r--r-- | sql/mysqld.cc | 5 | ||||
-rw-r--r-- | sql/sql_base.cc | 20 | ||||
-rw-r--r-- | sql/sql_handler.cc | 8 | ||||
-rw-r--r-- | sql/sql_select.cc | 7 |
7 files changed, 52 insertions, 12 deletions
diff --git a/include/config-netware.h b/include/config-netware.h index f517e3c34d3..5a8b926a669 100644 --- a/include/config-netware.h +++ b/include/config-netware.h @@ -95,6 +95,9 @@ extern "C" { /* On NetWare, stack grows towards lower address*/ #define STACK_DIRECTION -1 +/* On NetWare, we need to set stack size for threads, otherwise default 16K is used */ +#define NW_THD_STACKSIZE 65536 + /* On NetWare, to fix the problem with the deletion of open files */ #define CANT_DELETE_OPEN_FILES 1 diff --git a/innobase/os/os0thread.c b/innobase/os/os0thread.c index 847d0ee1cc7..1d1cb77b336 100644 --- a/innobase/os/os0thread.c +++ b/innobase/os/os0thread.c @@ -148,6 +148,15 @@ os_thread_create( exit(1); } #endif +#ifdef __NETWARE__ + ret = pthread_attr_setstacksize(&attr, + (size_t) NW_THD_STACKSIZE); + if (ret) { + fprintf(stderr, + "InnoDB: Error: pthread_attr_setstacksize returned %d\n", ret); + exit(1); + } +#endif os_mutex_enter(os_sync_mutex); os_thread_count++; os_mutex_exit(os_sync_mutex); diff --git a/netware/mysqld_safe.c b/netware/mysqld_safe.c index 3a1672fdf61..9db8a441ca3 100644 --- a/netware/mysqld_safe.c +++ b/netware/mysqld_safe.c @@ -258,11 +258,11 @@ void finish_defaults() void read_defaults(arg_list_t *pal) {
arg_list_t al; - char defaults_file[PATH_MAX];
+ char defaults_file[PATH_MAX]; char mydefaults[PATH_MAX];
char line[PATH_MAX];
FILE *fp;
-
+ // defaults output file snprintf(defaults_file, PATH_MAX, "%s/bin/defaults.out", basedir); remove(defaults_file); @@ -270,7 +270,7 @@ void read_defaults(arg_list_t *pal) // mysqladmin file snprintf(mydefaults, PATH_MAX, "%s/bin/my_print_defaults", basedir);
- // args
+ // args init_args(&al); add_arg(&al, mydefaults); if (default_option[0]) @@ -279,11 +279,11 @@ void read_defaults(arg_list_t *pal) add_arg(&al, "server"); add_arg(&al, "mysqld_safe"); add_arg(&al, "safe_mysqld"); -
+ spawn(mydefaults, &al, TRUE, NULL, defaults_file, NULL); -
+ free_args(&al); -
+ // gather defaults if ((fp= fopen(defaults_file, "r")) != NULL) { diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 1f32a8285d1..80b22f726ae 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3322,6 +3322,11 @@ int main(int argc, char **argv) } } #endif +#ifdef __NETWARE__ + /* Increasing stacksize of threads on NetWare */ + + pthread_attr_setstacksize(&connection_attrib, NW_THD_STACKSIZE); +#endif (void) thr_setconcurrency(concurrency); // 10 by default diff --git a/sql/sql_base.cc b/sql/sql_base.cc index be3b64a5ef6..9d1720cc527 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -1388,10 +1388,20 @@ TABLE *find_locked_table(THD *thd, const char *db,const char *table_name) /**************************************************************************** -** Reopen an table because the definition has changed. The date file for the -** table is already closed. -** Returns 0 if ok. -** If table can't be reopened, the entry is unchanged. + Reopen an table because the definition has changed. The date file for the + table is already closed. + + SYNOPSIS + reopen_table() + table Table to be opened + locked 1 if we have already a lock on LOCK_open + + NOTES + table->query_id will be 0 if table was reopened + + RETURN + 0 ok + 1 error ('table' is unchanged if table couldn't be reopened) ****************************************************************************/ bool reopen_table(TABLE *table,bool locked) @@ -1464,8 +1474,10 @@ bool reopen_table(TABLE *table,bool locked) (*field)->table_name= &table->alias; } for (key=0 ; key < table->s->keys ; key++) + { for (part=0 ; part < table->key_info[key].usable_key_parts ; part++) table->key_info[key].key_part[part].field->table= table; + } if (table->triggers) table->triggers->set_table(table); diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc index fae48c7d164..3370a0a1957 100644 --- a/sql/sql_handler.cc +++ b/sql/sql_handler.cc @@ -423,7 +423,13 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables, if (cond && ((!cond->fixed && cond->fix_fields(thd, &cond)) || cond->check_cols(1))) - goto err0; + { + if (table->query_id != thd->query_id) + cond->cleanup(); // File was reopened + if ((!cond->fixed && + cond->fix_fields(thd, tables, &cond)) || cond->check_cols(1)) + goto err0; + } if (keyname) { diff --git a/sql/sql_select.cc b/sql/sql_select.cc index e8f2cb2c6a0..8be8dd3e599 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -8614,6 +8614,11 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields, have null */ hidden_null_count=null_count; + /* + We need to update hidden_field_count as we may have stored group + functions with constant arguments + */ + param->hidden_field_count= (uint) (reg_field - table->field); null_count= 0; } } @@ -8833,7 +8838,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields, } } - if (distinct) + if (distinct && field_count != param->hidden_field_count) { /* Create an unique key or an unique constraint over all columns |