diff options
author | unknown <monty@mysql.com> | 2005-11-24 02:36:28 +0200 |
---|---|---|
committer | unknown <monty@mysql.com> | 2005-11-24 02:36:28 +0200 |
commit | 97bfd41fe1382ff33a9fc458c0bd092342b217e5 (patch) | |
tree | fc3928c9ced01afa8474a263e5d847940b4cff4a | |
parent | f4431619110ffa018559930aac6454df9148ae61 (diff) | |
download | mariadb-git-97bfd41fe1382ff33a9fc458c0bd092342b217e5.tar.gz |
Don't use PATH_MAX for FN_REFLEN as this uses too much stack space
Larger stack size neaded for open table on x86 64 bit
Fix failing test cases
Deleted symlink from bk
BitKeeper/etc/ignore:
added libmysqld/ha_blackhole.cc
BitKeeper/deleted/.del-ha_blackhole.cc~727c69ef7846623a:
Delete: libmysqld/ha_blackhole.cc
include/my_global.h:
Don't use PATH_MAX for FN_REFLEN as this uses too much stack space.
(With a PATH_MAX of 4096, we use 80K for opening a table as there is several objects of size FN_REFLEN on stack)
mysql-test/r/federated.result:
Update results after error message changes
mysql-test/r/grant.result:
Update results after error message changes
mysql-test/r/grant2.result:
Update results after error message changes
sql/ha_federated.cc:
Fix error messages to be more consistent
sql/mysql_priv.h:
Stack size to have when opening a table
(This was needed on x86 64 bit Linux)
sql/share/errmsg.txt:
Remove quotes around error string for federated as two quotes in the output looks strange
sql/sql_base.cc:
More correct stack size
sql/sql_parse.cc:
Set thread_stack before store_globals()
sql/unireg.h:
More correct MAX_DBKEY_LENGTH
-rw-r--r-- | .bzrignore | 1 | ||||
-rw-r--r-- | include/my_global.h | 4 | ||||
-rw-r--r-- | mysql-test/r/federated.result | 4 | ||||
-rw-r--r-- | mysql-test/r/grant.result | 4 | ||||
-rw-r--r-- | mysql-test/r/grant2.result | 2 | ||||
-rw-r--r-- | sql/ha_federated.cc | 25 | ||||
-rw-r--r-- | sql/mysql_priv.h | 1 | ||||
-rw-r--r-- | sql/share/errmsg.txt | 16 | ||||
-rw-r--r-- | sql/sql_base.cc | 2 | ||||
-rw-r--r-- | sql/sql_parse.cc | 1 | ||||
-rw-r--r-- | sql/unireg.h | 4 |
11 files changed, 32 insertions, 32 deletions
diff --git a/.bzrignore b/.bzrignore index 25dece78561..6e1da35a08f 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1268,3 +1268,4 @@ vio/viotest-sslconnect.cpp vio/viotest.cpp zlib/*.ds? zlib/*.vcproj +libmysqld/ha_blackhole.cc diff --git a/include/my_global.h b/include/my_global.h index 33cdfa2d03c..851033cf366 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -574,11 +574,7 @@ typedef SOCKET_SIZE_TYPE size_socket; #define FN_LEN 256 /* Max file name len */ #define FN_HEADLEN 253 /* Max length of filepart of file name */ #define FN_EXTLEN 20 /* Max length of extension (part of FN_LEN) */ -#ifdef PATH_MAX -#define FN_REFLEN PATH_MAX/* Max length of full path-name */ -#else #define FN_REFLEN 512 /* Max length of full path-name */ -#endif #define FN_EXTCHAR '.' #define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */ #define FN_CURLIB '.' /* ./ is used as abbrev for current dir */ diff --git a/mysql-test/r/federated.result b/mysql-test/r/federated.result index 7f53bd884ef..f9b13beb6e5 100644 --- a/mysql-test/r/federated.result +++ b/mysql-test/r/federated.result @@ -40,14 +40,14 @@ CREATE TABLE federated.t1 ( ) ENGINE="FEDERATED" DEFAULT CHARSET=latin1 CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t3'; -ERROR HY000: Can't create federated table. Foreign data src error : ': 1146 : Table 'federated.t3' doesn't exist' +ERROR HY000: Can't create federated table. Foreign data src error: error: 1146 'Table 'federated.t3' doesn't exist' CREATE TABLE federated.t1 ( `id` int(20) NOT NULL, `name` varchar(32) NOT NULL default '' ) ENGINE="FEDERATED" DEFAULT CHARSET=latin1 CONNECTION='mysql://user:pass@127.0.0.1:SLAVE_PORT/federated/t1'; -ERROR HY000: Unable to connect to foreign data source - database ' database federated username user hostname 127.0.0.1'! +ERROR HY000: Unable to connect to foreign data source: database: 'federated' username: 'user' hostname: '127.0.0.1' DROP TABLE IF EXISTS federated.t1; Warnings: Note 1051 Unknown table 't1' diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result index 14393be1cc8..a9f90e24556 100644 --- a/mysql-test/r/grant.result +++ b/mysql-test/r/grant.result @@ -238,7 +238,7 @@ Grants for drop_user@localhost GRANT USAGE ON *.* TO 'drop_user'@'localhost' drop user drop_user@localhost; revoke all privileges, grant option from drop_user@localhost; -ERROR HY000: Can't revoke all privileges, grant for one or more of the requested users +ERROR HY000: Can't revoke all privileges for one or more of the requested users grant select(a) on test.t1 to drop_user1@localhost; grant select on test.t1 to drop_user2@localhost; grant select on test.* to drop_user3@localhost; @@ -247,7 +247,7 @@ drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost, drop_user4@localhost; revoke all privileges, grant option from drop_user1@localhost, drop_user2@localhost, drop_user3@localhost, drop_user4@localhost; -ERROR HY000: Can't revoke all privileges, grant for one or more of the requested users +ERROR HY000: Can't revoke all privileges for one or more of the requested users drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost, drop_user4@localhost; ERROR HY000: Operation DROP USER failed for 'drop_user1'@'localhost','drop_user2'@'localhost','drop_user3'@'localhost','drop_user4'@'localhost' diff --git a/mysql-test/r/grant2.result b/mysql-test/r/grant2.result index ca375ef5057..9c744396403 100644 --- a/mysql-test/r/grant2.result +++ b/mysql-test/r/grant2.result @@ -191,7 +191,7 @@ flush privileges; show grants for 'mysqltest_1'; ERROR 42000: There is no such grant defined for user 'mysqltest_1' on host '%' revoke all privileges, grant option from 'mysqltest_1'; -ERROR HY000: Can't revoke all privileges, grant for one or more of the requested users +ERROR HY000: Can't revoke all privileges for one or more of the requested users drop user 'mysqltest_1'; select host,db,user from mysql.db where user = 'mysqltest_1' order by host,db,user; host db user diff --git a/sql/ha_federated.cc b/sql/ha_federated.cc index 3ab246df012..d2f827989f5 100644 --- a/sql/ha_federated.cc +++ b/sql/ha_federated.cc @@ -469,8 +469,7 @@ bool federated_db_end() table, and if so, does the foreign table exist. */ -static int check_foreign_data_source( - FEDERATED_SHARE *share, +static int check_foreign_data_source(FEDERATED_SHARE *share, bool table_create_flag) { char escaped_table_name[NAME_LEN*2]; @@ -496,15 +495,17 @@ static int check_foreign_data_source( share->port, share->socket, 0)) { - /* - we want the correct error message, but it to return - ER_CANT_CREATE_FEDERATED_TABLE if called by ::create - */ - error_code= table_create_flag? - ER_CANT_CREATE_FEDERATED_TABLE : ER_CONNECT_TO_FOREIGN_DATA_SOURCE; + /* + we want the correct error message, but it to return + ER_CANT_CREATE_FEDERATED_TABLE if called by ::create + */ + error_code= (table_create_flag ? + ER_CANT_CREATE_FEDERATED_TABLE : + ER_CONNECT_TO_FOREIGN_DATA_SOURCE); my_sprintf(error_buffer, - (error_buffer, " database %s username %s hostname %s", + (error_buffer, + "database: '%s' username: '%s' hostname: '%s'", share->database, share->username, share->hostname)); my_error(ER_CONNECT_TO_FOREIGN_DATA_SOURCE, MYF(0), error_buffer); @@ -545,8 +546,8 @@ static int check_foreign_data_source( { error_code= table_create_flag ? ER_CANT_CREATE_FEDERATED_TABLE : ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST; - my_sprintf(error_buffer, (error_buffer, ": %d : %s", - mysql_errno(mysql), mysql_error(mysql))); + my_sprintf(error_buffer, (error_buffer, "error: %d '%s'", + mysql_errno(mysql), mysql_error(mysql))); my_error(error_code, MYF(0), error_buffer); goto error; @@ -2035,7 +2036,7 @@ int ha_federated::index_read_idx(byte *buf, uint index, const byte *key, } if (mysql_real_query(mysql, sql_query.ptr(), sql_query.length())) { - my_sprintf(error_buffer, (error_buffer, ": %d : %s", + my_sprintf(error_buffer, (error_buffer, "error: %d '%s'", mysql_errno(mysql), mysql_error(mysql))); retval= ER_QUERY_ON_FOREIGN_DATA_SOURCE; goto error; diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index 2a65b99585a..4f5a0032531 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -101,6 +101,7 @@ extern CHARSET_INFO *national_charset_info, *table_alias_charset; #define MAX_FIELDS_BEFORE_HASH 32 #define USER_VARS_HASH_SIZE 16 #define STACK_MIN_SIZE 8192 // Abort if less stack during eval. +#define STACK_MIN_SIZE_FOR_OPEN 1024*80 #define STACK_BUFF_ALLOC 256 // For stack overrun checks #ifndef MYSQLD_NET_RETRY_COUNT #define MYSQLD_NET_RETRY_COUNT 10 // Abort read after this many int. diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index 4a5e6297a89..f67ad3a9fd2 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -5520,14 +5520,14 @@ ER_WRONG_LOCK_OF_SYSTEM_TABLE eng "You can't combine write-locking of system '%-.64s.%-.64s' table with other tables" ger "Sie können Schreibsperren auf der Systemtabelle '%-.64s.%-.64s' nicht mit anderen Tabellen kombinieren" ER_CONNECT_TO_FOREIGN_DATA_SOURCE - eng "Unable to connect to foreign data source - database '%.64s'!" - ger "Kann nicht mit Fremddatenquelle verbinden - Datenquelle '%.64s'" + eng "Unable to connect to foreign data source: %.64s" + ger "Kann nicht mit Fremddatenquelle verbinden: %.64s" ER_QUERY_ON_FOREIGN_DATA_SOURCE - eng "There was a problem processing the query on the foreign data source. Data source error: '%-.64s'" - ger "Bei der Verarbeitung der Abfrage ist in der Fremddatenquelle ein Problem aufgetreten. Datenquellenfehlermeldung: '%-.64s'" + eng "There was a problem processing the query on the foreign data source. Data source error: %-.64" + ger "Bei der Verarbeitung der Abfrage ist in der Fremddatenquelle ein Problem aufgetreten. Datenquellenfehlermeldung: %-.64s" ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST - eng "The foreign data source you are trying to reference does not exist. Data source error: '%-.64s'" - ger "Die Fremddatenquelle, auf die Sie zugreifen wollen, existiert nicht. Datenquellenfehlermeldung: '%-.64s'" + eng "The foreign data source you are trying to reference does not exist. Data source error: %-.64s" + ger "Die Fremddatenquelle, auf die Sie zugreifen wollen, existiert nicht. Datenquellenfehlermeldung: %-.64s" ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE eng "Can't create federated table. The data source connection string '%-.64s' is not in the correct format" ger "Kann föderierte Tabelle nicht erzeugen. Der Datenquellen-Verbindungsstring '%-.64s' hat kein korrektes Format" @@ -5535,8 +5535,8 @@ ER_FOREIGN_DATA_STRING_INVALID eng "The data source connection string '%-.64s' is not in the correct format" ger "Der Datenquellen-Verbindungsstring '%-.64s' hat kein korrektes Format" ER_CANT_CREATE_FEDERATED_TABLE - eng "Can't create federated table. Foreign data src error: '%-.64s'" - ger "Kann föderierte Tabelle nicht erzeugen. Fremddatenquellenfehlermeldung: '%-.64s'" + eng "Can't create federated table. Foreign data src error: %-.64s" + ger "Kann föderierte Tabelle nicht erzeugen. Fremddatenquellenfehlermeldung: %-.64s" ER_TRG_IN_WRONG_SCHEMA eng "Trigger in wrong schema" ger "Trigger im falschen Schema" diff --git a/sql/sql_base.cc b/sql/sql_base.cc index b765f2f53e2..39e15675e47 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -1090,7 +1090,7 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root, *refresh=0; /* an open table operation needs a lot of the stack space */ - if (check_stack_overrun(thd, 8 * STACK_MIN_SIZE, (char *)&alias)) + if (check_stack_overrun(thd, STACK_MIN_SIZE_FOR_OPEN, (char *)&alias)) return 0; if (thd->killed) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 86f884c101a..00124225719 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1201,6 +1201,7 @@ pthread_handler_t handle_bootstrap(void *arg) char *buff; /* The following must be called before DBUG_ENTER */ + thd->thread_stack= (char*) &thd; if (my_thread_init() || thd->store_globals()) { #ifndef EMBEDDED_LIBRARY diff --git a/sql/unireg.h b/sql/unireg.h index 6afefa579e8..8f21dd1d2db 100644 --- a/sql/unireg.h +++ b/sql/unireg.h @@ -43,8 +43,8 @@ #define ERRMAPP 1 /* Errormap f|r my_error */ #define LIBLEN FN_REFLEN-FN_LEN /* Max l{ngd p} dev */ -#define MAX_DBKEY_LENGTH (FN_LEN*2+1+1+4+4) /* extra 4+4 bytes for slave tmp - * tables */ +/* extra 4+4 bytes for slave tmp tables */ +#define MAX_DBKEY_LENGTH (NAME_LEN*2+1+1+4+4) #define MAX_ALIAS_NAME 256 #define MAX_FIELD_NAME 34 /* Max colum name length +2 */ #define MAX_SYS_VAR_LENGTH 32 |