diff options
author | hf@deer.(none) <> | 2003-06-17 21:32:31 +0500 |
---|---|---|
committer | hf@deer.(none) <> | 2003-06-17 21:32:31 +0500 |
commit | c4e3a624b87540794a579d3c48ad93bcaab8c634 (patch) | |
tree | 6f68559f6a79f53926e1432aa904b9520399b6a8 /libmysql | |
parent | f5bd6416debbf403bf03fe4b9899c022f447643b (diff) | |
download | mariadb-git-c4e3a624b87540794a579d3c48ad93bcaab8c634.tar.gz |
SCRUM
client capabilities included into libmysqld
some API methods became "virtual"
lots of duplicated code removed
IMHO all the above made library's code way more pleasant to look at, didn't it?
Diffstat (limited to 'libmysql')
-rw-r--r-- | libmysql/client_settings.h | 8 | ||||
-rw-r--r-- | libmysql/libmysql.c | 56 |
2 files changed, 27 insertions, 37 deletions
diff --git a/libmysql/client_settings.h b/libmysql/client_settings.h index 47d5185b6ca..52606fe5316 100644 --- a/libmysql/client_settings.h +++ b/libmysql/client_settings.h @@ -15,7 +15,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -static my_bool mysql_client_init=0; extern uint mysql_port; extern my_string mysql_unix_port; @@ -35,7 +34,7 @@ char *shared_memory_base_name=0; const char *def_shared_memory_base_name=default_shared_memory_base_name; #endif -static my_bool org_my_init_done=0; +extern my_bool org_my_init_done; sig_handler pipe_sig_handler(int sig __attribute__((unused))); my_bool stmt_close(MYSQL_STMT *stmt, my_bool skip_list); @@ -56,3 +55,8 @@ my_bool send_file_to_server(MYSQL *mysql, const char *filename); #define set_sigpipe(mysql) #define reset_sigpipe(mysql) #endif + +#define CLI_MYSQL_USE_RESULT cli_mysql_use_result + +MYSQL_RES * STDCALL cli_mysql_use_result(MYSQL *mysql); + diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 7e379ab63ba..4f19b7492e7 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -58,13 +58,20 @@ #endif #include <sql_common.h> +#include "client_settings.h" + +#ifdef EMBEDDED_LIBRARY +#ifdef net_flush +#undef net_flush +#endif + +my_bool net_flush(NET *net); + +#endif + uint mysql_port=0; my_string mysql_unix_port=0; -ulong net_buffer_length=8192; -ulong max_allowed_packet= 1024L*1024L*1024L; -ulong net_read_timeout= NET_READ_TIMEOUT; -ulong net_write_timeout= NET_WRITE_TIMEOUT; #define CLIENT_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG \ | CLIENT_LOCAL_FILES | CLIENT_TRANSACTIONS \ @@ -101,8 +108,9 @@ sig_handler pipe_sig_handler(int sig); static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to, const char *from, ulong length); my_bool stmt_close(MYSQL_STMT *stmt, my_bool skip_list); -static my_bool org_my_init_done=0; +my_bool org_my_init_done=0; +#ifndef EMBEDDED_LIBRARY int STDCALL mysql_server_init(int argc __attribute__((unused)), char **argv __attribute__((unused)), char **groups __attribute__((unused))) @@ -119,6 +127,7 @@ void STDCALL mysql_server_end() else mysql_thread_end(); } +#endif /*EMBEDDED_LIBRARY*/ my_bool STDCALL mysql_thread_init() { @@ -140,17 +149,6 @@ void STDCALL mysql_thread_end() Let the user specify that we don't want SIGPIPE; This doesn't however work with threaded applications as we can have multiple read in progress. */ - -#if !defined(__WIN__) && defined(SIGPIPE) && !defined(THREAD) -#define init_sigpipe_variables sig_return old_signal_handler=(sig_return) 0 -#define set_sigpipe(mysql) if ((mysql)->client_flag & CLIENT_IGNORE_SIGPIPE) old_signal_handler=signal(SIGPIPE,pipe_sig_handler) -#define reset_sigpipe(mysql) if ((mysql)->client_flag & CLIENT_IGNORE_SIGPIPE) signal(SIGPIPE,old_signal_handler); -#else -#define init_sigpipe_variables -#define set_sigpipe(mysql) -#define reset_sigpipe(mysql) -#endif - static MYSQL* spawn_init(MYSQL* parent, const char* host, unsigned int port, const char* user, @@ -846,8 +844,7 @@ STDCALL mysql_add_slave(MYSQL* mysql, const char* host, have to wait for the client (and will not wait more than 30 sec/packet). **************************************************************************/ -MYSQL_RES * STDCALL -mysql_use_result(MYSQL *mysql) +MYSQL_RES * STDCALL CLI_MYSQL_USE_RESULT(MYSQL *mysql) { MYSQL_RES *result; DBUG_ENTER("mysql_use_result"); @@ -1254,19 +1251,6 @@ uint STDCALL mysql_thread_safe(void) ****************************************************************************/ /* - Functions called my my_net_init() to set some application specific variables -*/ - -void my_net_local_init(NET *net) -{ - net->max_packet= (uint) net_buffer_length; - net->read_timeout= (uint) net_read_timeout; - net->write_timeout=(uint) net_write_timeout; - net->retry_count= 1; - net->max_packet_size= max(net_buffer_length, max_allowed_packet); -} - -/* Add escape characters to a string (blob?) to make it suitable for a insert to should at least have place for length*2+1 chars Returns the length of the to string @@ -1999,8 +1983,9 @@ static my_bool execute(MYSQL_STMT * stmt, char *packet, ulong length) mysql->last_used_con= mysql; int4store(buff, stmt->stmt_id); /* Send stmt id to server */ - if (advanced_command(mysql, COM_EXECUTE, buff, MYSQL_STMT_HEADER, packet, - length, 1) || + if ((*mysql->methods->advanced_command)(mysql, COM_EXECUTE, buff, + MYSQL_STMT_HEADER, packet, + length, 1) || mysql_read_query_result(mysql)) { set_stmt_errmsg(stmt, net->last_error, net->last_errno, net->sqlstate); @@ -2292,8 +2277,9 @@ mysql_send_long_data(MYSQL_STMT *stmt, uint param_number, Note that we don't get any ok packet from the server in this case This is intentional to save bandwidth. */ - if (advanced_command(mysql, COM_LONG_DATA, extra_data, - MYSQL_LONG_DATA_HEADER, data, length, 1)) + if ((*mysql->methods->advanced_command)(mysql, COM_LONG_DATA, extra_data, + MYSQL_LONG_DATA_HEADER, data, + length, 1)) { set_stmt_errmsg(stmt, mysql->net.last_error, mysql->net.last_errno, mysql->net.sqlstate); |