Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
6b303f84
Commit
6b303f84
authored
Jul 14, 2003
by
hf@deer.(none)
Browse files
Options
Browse Files
Download
Plain Diff
Including client code into libmysqld
Merging
parents
902984a8
1b1a126a
Changes
20
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
242 additions
and
1756 deletions
+242
-1756
.bzrignore
.bzrignore
+4
-0
client/mysqltest.c
client/mysqltest.c
+1
-1
include/mysql.h
include/mysql.h
+39
-42
include/mysql_com.h
include/mysql_com.h
+4
-2
include/mysql_embed.h
include/mysql_embed.h
+1
-1
include/sql_common.h
include/sql_common.h
+2
-3
include/violite.h
include/violite.h
+1
-2
libmysql/client_settings.h
libmysql/client_settings.h
+3
-1
libmysql/libmysql.c
libmysql/libmysql.c
+16
-63
libmysqld/Makefile.am
libmysqld/Makefile.am
+9
-6
libmysqld/embedded_priv.h
libmysqld/embedded_priv.h
+0
-2
libmysqld/examples/Makefile.am
libmysqld/examples/Makefile.am
+1
-1
libmysqld/lib_sql.cc
libmysqld/lib_sql.cc
+8
-27
libmysqld/lib_vio.c
libmysqld/lib_vio.c
+0
-236
libmysqld/libmysqld.c
libmysqld/libmysqld.c
+43
-1308
sql-common/client.c
sql-common/client.c
+51
-23
sql-common/pack.c
sql-common/pack.c
+43
-0
sql/client_settings.h
sql/client_settings.h
+1
-0
sql/net_serv.cc
sql/net_serv.cc
+15
-3
sql/protocol.cc
sql/protocol.cc
+0
-35
No files found.
.bzrignore
View file @
6b303f84
...
@@ -622,3 +622,7 @@ vio/test-ssl
...
@@ -622,3 +622,7 @@ vio/test-ssl
vio/test-sslclient
vio/test-sslclient
vio/test-sslserver
vio/test-sslserver
vio/viotest-ssl
vio/viotest-ssl
libmysqld/client.c
libmysqld/client_settings.h
libmysqld/libmysql.c
libmysqld/pack.c
client/mysqltest.c
View file @
6b303f84
...
@@ -328,7 +328,7 @@ static void get_replace_column(struct st_query *q);
...
@@ -328,7 +328,7 @@ static void get_replace_column(struct st_query *q);
static
void
free_replace_column
();
static
void
free_replace_column
();
/* Disable functions that only exist in MySQL 4.0 */
/* Disable functions that only exist in MySQL 4.0 */
#if MYSQL_VERSION_ID < 40000
|| defined(EMBEDDED_LIBRARY)
#if MYSQL_VERSION_ID < 40000
void
mysql_enable_rpl_parse
(
MYSQL
*
mysql
__attribute__
((
unused
)))
{}
void
mysql_enable_rpl_parse
(
MYSQL
*
mysql
__attribute__
((
unused
)))
{}
void
mysql_disable_rpl_parse
(
MYSQL
*
mysql
__attribute__
((
unused
)))
{}
void
mysql_disable_rpl_parse
(
MYSQL
*
mysql
__attribute__
((
unused
)))
{}
int
mysql_rpl_parse_enabled
(
MYSQL
*
mysql
__attribute__
((
unused
)))
{
return
1
;
}
int
mysql_rpl_parse_enabled
(
MYSQL
*
mysql
__attribute__
((
unused
)))
{
return
1
;
}
...
...
include/mysql.h
View file @
6b303f84
...
@@ -129,11 +129,22 @@ typedef struct st_mysql_data {
...
@@ -129,11 +129,22 @@ typedef struct st_mysql_data {
unsigned
int
fields
;
unsigned
int
fields
;
MYSQL_ROWS
*
data
;
MYSQL_ROWS
*
data
;
MEM_ROOT
alloc
;
MEM_ROOT
alloc
;
#if
def EMBEDDED_LIBRARY
#if
!defined(CHECK_EMBEDDED_DIFFERENCES) || defined(EMBEDDED_LIBRARY)
MYSQL_ROWS
**
prev_ptr
;
MYSQL_ROWS
**
prev_ptr
;
#endif
#endif
}
MYSQL_DATA
;
}
MYSQL_DATA
;
enum
mysql_option
{
MYSQL_OPT_CONNECT_TIMEOUT
,
MYSQL_OPT_COMPRESS
,
MYSQL_OPT_NAMED_PIPE
,
MYSQL_INIT_COMMAND
,
MYSQL_READ_DEFAULT_FILE
,
MYSQL_READ_DEFAULT_GROUP
,
MYSQL_SET_CHARSET_DIR
,
MYSQL_SET_CHARSET_NAME
,
MYSQL_OPT_LOCAL_INFILE
,
MYSQL_OPT_PROTOCOL
,
MYSQL_SHARED_MEMORY_BASE_NAME
,
MYSQL_OPT_READ_TIMEOUT
,
MYSQL_OPT_WRITE_TIMEOUT
,
MYSQL_OPT_USE_RESULT
,
MYSQL_OPT_USE_REMOTE_CONNECTION
,
MYSQL_OPT_USE_EMBEDDED_CONNECTION
,
MYSQL_OPT_GUESS_CONNECTION
};
struct
st_mysql_options
{
struct
st_mysql_options
{
unsigned
int
connect_timeout
,
read_timeout
,
write_timeout
;
unsigned
int
connect_timeout
,
read_timeout
,
write_timeout
;
unsigned
int
port
,
protocol
;
unsigned
int
port
,
protocol
;
...
@@ -165,18 +176,10 @@ struct st_mysql_options {
...
@@ -165,18 +176,10 @@ struct st_mysql_options {
a read that is replication-aware
a read that is replication-aware
*/
*/
my_bool
no_master_reads
;
my_bool
no_master_reads
;
#if
def EMBEDDED_LIBRARY
#if
!defined(CHECK_EMBEDDED_DIFFERENCES) || defined(EMBEDDED_LIBRARY)
my_bool
separate_thread
;
my_bool
separate_thread
;
#endif
#endif
};
enum
mysql_option
methods_to_use
;
enum
mysql_option
{
MYSQL_OPT_CONNECT_TIMEOUT
,
MYSQL_OPT_COMPRESS
,
MYSQL_OPT_NAMED_PIPE
,
MYSQL_INIT_COMMAND
,
MYSQL_READ_DEFAULT_FILE
,
MYSQL_READ_DEFAULT_GROUP
,
MYSQL_SET_CHARSET_DIR
,
MYSQL_SET_CHARSET_NAME
,
MYSQL_OPT_LOCAL_INFILE
,
MYSQL_OPT_PROTOCOL
,
MYSQL_SHARED_MEMORY_BASE_NAME
,
MYSQL_OPT_READ_TIMEOUT
,
MYSQL_OPT_WRITE_TIMEOUT
,
MYSQL_OPT_USE_RESULT
};
};
enum
mysql_status
enum
mysql_status
...
@@ -199,8 +202,7 @@ enum mysql_rpl_type
...
@@ -199,8 +202,7 @@ enum mysql_rpl_type
MYSQL_RPL_MASTER
,
MYSQL_RPL_SLAVE
,
MYSQL_RPL_ADMIN
MYSQL_RPL_MASTER
,
MYSQL_RPL_SLAVE
,
MYSQL_RPL_ADMIN
};
};
struct
st_mysql_methods
;
#ifndef EMBEDDED_LIBRARY
typedef
struct
st_mysql
typedef
struct
st_mysql
{
{
...
@@ -245,34 +247,14 @@ typedef struct st_mysql
...
@@ -245,34 +247,14 @@ typedef struct st_mysql
struct
st_mysql
*
last_used_con
;
struct
st_mysql
*
last_used_con
;
LIST
*
stmts
;
/* list of all statements */
LIST
*
stmts
;
/* list of all statements */
}
MYSQL
;
const
struct
st_mysql_methods
*
methods
;
#else
struct
st_mysql_res
;
typedef
struct
st_mysql
{
struct
st_mysql_res
*
result
;
struct
st_mysql_res
*
result
;
void
*
thd
;
void
*
thd
;
struct
charset_info_st
*
charset
;
unsigned
int
server_language
;
MYSQL_FIELD
*
fields
;
MEM_ROOT
field_alloc
;
my_ulonglong
affected_rows
;
unsigned
int
field_count
;
struct
st_mysql_options
options
;
enum
mysql_status
status
;
my_bool
free_me
;
/* If free in mysql_close */
my_ulonglong
insert_id
;
/* id if insert on table with NEXTNR */
unsigned
int
last_errno
;
unsigned
int
last_errno
;
unsigned
int
server_status
;
char
*
last_error
;
char
*
last_error
;
/* Used by embedded server */
char
sqlstate
[
SQLSTATE_LENGTH
+
1
];
/* Used by embedded server */
char
sqlstate
[
SQLSTATE_LENGTH
+
1
];
/* Used by embedded server */
}
MYSQL
;
}
MYSQL
;
#endif
typedef
struct
st_mysql_res
{
typedef
struct
st_mysql_res
{
my_ulonglong
row_count
;
my_ulonglong
row_count
;
MYSQL_FIELD
*
fields
;
MYSQL_FIELD
*
fields
;
...
@@ -371,12 +353,10 @@ MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,
...
@@ -371,12 +353,10 @@ MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,
unsigned
int
port
,
unsigned
int
port
,
const
char
*
unix_socket
,
const
char
*
unix_socket
,
unsigned
long
clientflag
);
unsigned
long
clientflag
);
void
STDCALL
mysql_close
(
MYSQL
*
sock
);
int
STDCALL
mysql_select_db
(
MYSQL
*
mysql
,
const
char
*
db
);
int
STDCALL
mysql_select_db
(
MYSQL
*
mysql
,
const
char
*
db
);
int
STDCALL
mysql_query
(
MYSQL
*
mysql
,
const
char
*
q
);
int
STDCALL
mysql_query
(
MYSQL
*
mysql
,
const
char
*
q
);
int
STDCALL
mysql_send_query
(
MYSQL
*
mysql
,
const
char
*
q
,
int
STDCALL
mysql_send_query
(
MYSQL
*
mysql
,
const
char
*
q
,
unsigned
long
length
);
unsigned
long
length
);
my_bool
STDCALL
mysql_read_query_result
(
MYSQL
*
mysql
);
int
STDCALL
mysql_real_query
(
MYSQL
*
mysql
,
const
char
*
q
,
int
STDCALL
mysql_real_query
(
MYSQL
*
mysql
,
const
char
*
q
,
unsigned
long
length
);
unsigned
long
length
);
/* perform query on master */
/* perform query on master */
...
@@ -437,8 +417,6 @@ MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild);
...
@@ -437,8 +417,6 @@ MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild);
MYSQL_RES
*
STDCALL
mysql_list_fields
(
MYSQL
*
mysql
,
const
char
*
table
,
MYSQL_RES
*
STDCALL
mysql_list_fields
(
MYSQL
*
mysql
,
const
char
*
table
,
const
char
*
wild
);
const
char
*
wild
);
MYSQL_RES
*
STDCALL
mysql_list_processes
(
MYSQL
*
mysql
);
MYSQL_RES
*
STDCALL
mysql_list_processes
(
MYSQL
*
mysql
);
MYSQL_RES
*
STDCALL
mysql_store_result
(
MYSQL
*
mysql
);
MYSQL_RES
*
STDCALL
mysql_use_result
(
MYSQL
*
mysql
);
int
STDCALL
mysql_options
(
MYSQL
*
mysql
,
enum
mysql_option
option
,
int
STDCALL
mysql_options
(
MYSQL
*
mysql
,
enum
mysql_option
option
,
const
char
*
arg
);
const
char
*
arg
);
void
STDCALL
mysql_free_result
(
MYSQL_RES
*
result
);
void
STDCALL
mysql_free_result
(
MYSQL_RES
*
result
);
...
@@ -559,6 +537,25 @@ typedef struct st_mysql_stmt
...
@@ -559,6 +537,25 @@ typedef struct st_mysql_stmt
}
MYSQL_STMT
;
}
MYSQL_STMT
;
#define mysql_close(sock) (*(sock)->methods->close)(sock)
#define mysql_read_query_result(mysql) (*(mysql)->methods->read_query_result)(mysql)
#define mysql_store_result(mysql) (*(mysql)->methods->store_result)(mysql)
#define mysql_use_result(mysql) (*(mysql)->methods->use_result)(mysql)
typedef
struct
st_mysql_methods
{
void
STDCALL
(
*
close
)(
MYSQL
*
sock
);
my_bool
STDCALL
(
*
read_query_result
)(
MYSQL
*
mysql
);
my_bool
STDCALL
(
*
advanced_command
)(
MYSQL
*
mysql
,
enum
enum_server_command
command
,
const
char
*
header
,
ulong
header_length
,
const
char
*
arg
,
ulong
arg_length
,
my_bool
skip_check
);
MYSQL_RES
*
STDCALL
(
*
store_result
)(
MYSQL
*
mysql
);
MYSQL_RES
*
STDCALL
(
*
use_result
)(
MYSQL
*
mysql
);
}
MYSQL_METHODS
;
MYSQL_STMT
*
STDCALL
mysql_prepare
(
MYSQL
*
mysql
,
const
char
*
query
,
MYSQL_STMT
*
STDCALL
mysql_prepare
(
MYSQL
*
mysql
,
const
char
*
query
,
unsigned
long
length
);
unsigned
long
length
);
int
STDCALL
mysql_execute
(
MYSQL_STMT
*
stmt
);
int
STDCALL
mysql_execute
(
MYSQL_STMT
*
stmt
);
...
@@ -613,9 +610,9 @@ int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);
...
@@ -613,9 +610,9 @@ int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);
They are not for general usage
They are not for general usage
*/
*/
my_bool
#define simple_command(mysql, command, arg, length, skip_check) \
simple_command
(
MYSQL
*
mysql
,
enum
enum_server_command
command
,
const
char
*
arg
,
(*(mysql)->methods->advanced_command)(mysql, command, \
unsigned
long
length
,
my_bool
skip_check
);
NullS, 0, arg, length, skip_check)
unsigned
long
net_safe_read
(
MYSQL
*
mysql
);
unsigned
long
net_safe_read
(
MYSQL
*
mysql
);
void
mysql_once_init
(
void
);
void
mysql_once_init
(
void
);
...
...
include/mysql_com.h
View file @
6b303f84
...
@@ -130,7 +130,7 @@ typedef struct st_vio Vio;
...
@@ -130,7 +130,7 @@ typedef struct st_vio Vio;
#define MAX_BLOB_WIDTH 8192
/* Default width for blob */
#define MAX_BLOB_WIDTH 8192
/* Default width for blob */
typedef
struct
st_net
{
typedef
struct
st_net
{
#if
ndef EMBEDDED_LIBRARY
#if
!defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY)
Vio
*
vio
;
Vio
*
vio
;
unsigned
char
*
buff
,
*
buff_end
,
*
write_pos
,
*
read_pos
;
unsigned
char
*
buff
,
*
buff_end
,
*
write_pos
,
*
read_pos
;
my_socket
fd
;
/* For Perl DBI/dbd */
my_socket
fd
;
/* For Perl DBI/dbd */
...
@@ -234,7 +234,8 @@ void my_net_local_init(NET *net);
...
@@ -234,7 +234,8 @@ void my_net_local_init(NET *net);
void
net_end
(
NET
*
net
);
void
net_end
(
NET
*
net
);
void
net_clear
(
NET
*
net
);
void
net_clear
(
NET
*
net
);
my_bool
net_realloc
(
NET
*
net
,
unsigned
long
length
);
my_bool
net_realloc
(
NET
*
net
,
unsigned
long
length
);
#ifndef EMBEDDED_LIBRARY
#ifndef EMBEDDED_LIBRARY
/* To be removed by HF */
my_bool
net_flush
(
NET
*
net
);
my_bool
net_flush
(
NET
*
net
);
#else
#else
#define net_flush(A)
#define net_flush(A)
...
@@ -339,6 +340,7 @@ void my_thread_end(void);
...
@@ -339,6 +340,7 @@ void my_thread_end(void);
#ifdef _global_h
#ifdef _global_h
ulong
STDCALL
net_field_length
(
uchar
**
packet
);
ulong
STDCALL
net_field_length
(
uchar
**
packet
);
my_ulonglong
net_field_length_ll
(
uchar
**
packet
);
my_ulonglong
net_field_length_ll
(
uchar
**
packet
);
char
*
net_store_length
(
char
*
pkg
,
ulonglong
length
);
#endif
#endif
#ifdef __cplusplus
#ifdef __cplusplus
...
...
include/mysql_embed.h
View file @
6b303f84
...
@@ -19,11 +19,11 @@
...
@@ -19,11 +19,11 @@
#ifdef EMBEDDED_LIBRARY
#ifdef EMBEDDED_LIBRARY
/* Things we don't need in the embedded version of MySQL */
/* Things we don't need in the embedded version of MySQL */
/* TODO HF add #undef HAVE_VIO if we don't want client in embedded library */
#undef HAVE_PSTACK
/* No stacktrace */
#undef HAVE_PSTACK
/* No stacktrace */
#undef HAVE_DLOPEN
/* No udf functions */
#undef HAVE_DLOPEN
/* No udf functions */
#undef HAVE_OPENSSL
#undef HAVE_OPENSSL
#undef HAVE_VIO
#undef HAVE_ISAM
#undef HAVE_ISAM
#undef HAVE_SMEM
/* No shared memory */
#undef HAVE_SMEM
/* No shared memory */
...
...
include/sql_common.h
View file @
6b303f84
...
@@ -27,9 +27,6 @@ my_ulonglong net_field_length_ll(uchar **packet);
...
@@ -27,9 +27,6 @@ my_ulonglong net_field_length_ll(uchar **packet);
MYSQL_FIELD
*
unpack_fields
(
MYSQL_DATA
*
data
,
MEM_ROOT
*
alloc
,
uint
fields
,
MYSQL_FIELD
*
unpack_fields
(
MYSQL_DATA
*
data
,
MEM_ROOT
*
alloc
,
uint
fields
,
my_bool
default_value
,
uint
server_capabilities
);
my_bool
default_value
,
uint
server_capabilities
);
my_bool
advanced_command
(
MYSQL
*
mysql
,
enum
enum_server_command
command
,
const
char
*
header
,
ulong
header_length
,
const
char
*
arg
,
ulong
arg_length
,
my_bool
skip_check
);
void
free_rows
(
MYSQL_DATA
*
cur
);
void
free_rows
(
MYSQL_DATA
*
cur
);
MYSQL_DATA
*
read_rows
(
MYSQL
*
mysql
,
MYSQL_FIELD
*
fields
,
MYSQL_DATA
*
read_rows
(
MYSQL
*
mysql
,
MYSQL_FIELD
*
fields
,
uint
field_count
);
uint
field_count
);
...
@@ -38,6 +35,8 @@ void fetch_lengths(ulong *to, MYSQL_ROW column, uint field_count);
...
@@ -38,6 +35,8 @@ void fetch_lengths(ulong *to, MYSQL_ROW column, uint field_count);
void
free_old_query
(
MYSQL
*
mysql
);
void
free_old_query
(
MYSQL
*
mysql
);
void
end_server
(
MYSQL
*
mysql
);
void
end_server
(
MYSQL
*
mysql
);
my_bool
mysql_reconnect
(
MYSQL
*
mysql
);
my_bool
mysql_reconnect
(
MYSQL
*
mysql
);
void
mysql_read_default_options
(
struct
st_mysql_options
*
options
,
const
char
*
filename
,
const
char
*
group
);
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#endif
#endif
...
...
include/violite.h
View file @
6b303f84
...
@@ -220,7 +220,7 @@ enum SSL_type
...
@@ -220,7 +220,7 @@ enum SSL_type
};
};
#ifndef EMBEDDED_LIBRARY
/* HFTODO - hide this if we don't want client in embedded server */
/* This structure is for every connection on both sides */
/* This structure is for every connection on both sides */
struct
st_vio
struct
st_vio
{
{
...
@@ -263,5 +263,4 @@ struct st_vio
...
@@ -263,5 +263,4 @@ struct st_vio
#endif
/* HAVE_SMEM */
#endif
/* HAVE_SMEM */
#endif
/* HAVE_VIO */
#endif
/* HAVE_VIO */
};
};
#endif
/* EMBEDDED_LIBRARY */
#endif
/* vio_violite_h_ */
#endif
/* vio_violite_h_ */
libmysql/client_settings.h
View file @
6b303f84
...
@@ -14,12 +14,13 @@
...
@@ -14,12 +14,13 @@
along with this program; if not, write to the Free Software
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
extern
uint
mysql_port
;
extern
my_string
mysql_unix_port
;
#define CLIENT_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | \
#define CLIENT_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | \
CLIENT_LOCAL_FILES | CLIENT_TRANSACTIONS | \
CLIENT_LOCAL_FILES | CLIENT_TRANSACTIONS | \
CLIENT_PROTOCOL_41 | CLIENT_SECURE_CONNECTION)
CLIENT_PROTOCOL_41 | CLIENT_SECURE_CONNECTION)
sig_handler
pipe_sig_handler
(
int
sig
__attribute__
((
unused
)));
sig_handler
pipe_sig_handler
(
int
sig
__attribute__
((
unused
)));
my_bool
stmt_close
(
MYSQL_STMT
*
stmt
,
my_bool
skip_list
);
my_bool
stmt_close
(
MYSQL_STMT
*
stmt
,
my_bool
skip_list
);
void
read_user_name
(
char
*
name
);
void
read_user_name
(
char
*
name
);
...
@@ -39,3 +40,4 @@ my_bool send_file_to_server(MYSQL *mysql, const char *filename);
...
@@ -39,3 +40,4 @@ my_bool send_file_to_server(MYSQL *mysql, const char *filename);
#define set_sigpipe(mysql)
#define set_sigpipe(mysql)
#define reset_sigpipe(mysql)
#define reset_sigpipe(mysql)
#endif
#endif
libmysql/libmysql.c
View file @
6b303f84
...
@@ -58,12 +58,19 @@
...
@@ -58,12 +58,19 @@
#endif
#endif
#include <sql_common.h>
#include <sql_common.h>
#include "client_settings.h"
ulong
net_buffer_length
=
8192
;
ulong
net_buffer_length
=
8192
;
ulong
max_allowed_packet
=
1024L
*
1024L
*
1024L
;
ulong
max_allowed_packet
=
1024L
*
1024L
*
1024L
;
ulong
net_read_timeout
=
NET_READ_TIMEOUT
;
ulong
net_read_timeout
=
NET_READ_TIMEOUT
;
ulong
net_write_timeout
=
NET_WRITE_TIMEOUT
;
ulong
net_write_timeout
=
NET_WRITE_TIMEOUT
;
#ifdef EMBEDDED_LIBRARY
#undef net_flush
my_bool
net_flush
(
NET
*
net
);
#endif
#if defined(MSDOS) || defined(__WIN__)
#if defined(MSDOS) || defined(__WIN__)
/* socket_errno is defined in my_global.h for all platforms */
/* socket_errno is defined in my_global.h for all platforms */
#define perror(A)
#define perror(A)
...
@@ -85,19 +92,6 @@ static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to,
...
@@ -85,19 +92,6 @@ static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to,
const
char
*
from
,
ulong
length
);
const
char
*
from
,
ulong
length
);
my_bool
stmt_close
(
MYSQL_STMT
*
stmt
,
my_bool
skip_list
);
my_bool
stmt_close
(
MYSQL_STMT
*
stmt
,
my_bool
skip_list
);
/*
Initialize the MySQL library
SYNOPSIS
mysql_once_init()
NOTES
Can't be static on NetWare
This function is called by mysql_init() and indirectly called
by mysql_real_query(), so one should never have to call this from an
outside program.
*/
static
my_bool
mysql_client_init
=
0
;
static
my_bool
mysql_client_init
=
0
;
static
my_bool
org_my_init_done
=
0
;
static
my_bool
org_my_init_done
=
0
;
...
@@ -145,7 +139,7 @@ void mysql_once_init(void)
...
@@ -145,7 +139,7 @@ void mysql_once_init(void)
#endif
#endif
}
}
#ifndef EMBEDDED_LIBRARY
int
STDCALL
mysql_server_init
(
int
argc
__attribute__
((
unused
)),
int
STDCALL
mysql_server_init
(
int
argc
__attribute__
((
unused
)),
char
**
argv
__attribute__
((
unused
)),
char
**
argv
__attribute__
((
unused
)),
char
**
groups
__attribute__
((
unused
)))
char
**
groups
__attribute__
((
unused
)))
...
@@ -163,6 +157,8 @@ void STDCALL mysql_server_end()
...
@@ -163,6 +157,8 @@ void STDCALL mysql_server_end()
mysql_thread_end
();
mysql_thread_end
();
}
}
#endif
/*EMBEDDED_LIBRARY*/
my_bool
STDCALL
mysql_thread_init
()
my_bool
STDCALL
mysql_thread_init
()
{
{
#ifdef THREAD
#ifdef THREAD
...
@@ -183,17 +179,6 @@ void STDCALL mysql_thread_end()
...
@@ -183,17 +179,6 @@ void STDCALL mysql_thread_end()
Let the user specify that we don't want SIGPIPE; This doesn't however work
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.
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
,
static
MYSQL
*
spawn_init
(
MYSQL
*
parent
,
const
char
*
host
,
unsigned
int
port
,
unsigned
int
port
,
const
char
*
user
,
const
char
*
user
,
...
@@ -856,7 +841,6 @@ STDCALL mysql_add_slave(MYSQL* mysql, const char* host,
...
@@ -856,7 +841,6 @@ STDCALL mysql_add_slave(MYSQL* mysql, const char* host,
return
0
;
return
0
;
}
}
/**************************************************************************
/**************************************************************************
Return next field of the query results
Return next field of the query results
**************************************************************************/
**************************************************************************/
...
@@ -1762,39 +1746,6 @@ static void store_param_type(NET *net, uint type)
...
@@ -1762,39 +1746,6 @@ static void store_param_type(NET *net, uint type)
net
->
write_pos
+=
2
;
net
->
write_pos
+=
2
;
}
}
/*
Store the length of parameter data
(Same function as in sql/net_pkg.cc)
*/
char
*
net_store_length
(
char
*
pkg
,
ulong
length
)
{
uchar
*
packet
=
(
uchar
*
)
pkg
;
if
(
length
<
251
)
{
*
packet
=
(
uchar
)
length
;
return
(
char
*
)
packet
+
1
;
}
/* 251 is reserved for NULL */
if
(
length
<
65536L
)
{
*
packet
++=
252
;
int2store
(
packet
,(
uint
)
length
);
return
(
char
*
)
packet
+
2
;
}
if
(
length
<
16777216L
)
{
*
packet
++=
253
;
int3store
(
packet
,(
ulong
)
length
);
return
(
char
*
)
packet
+
3
;
}
*
packet
++=
254
;
int8store
(
packet
,
(
ulonglong
)
length
);
return
(
char
*
)
packet
+
9
;
}
/****************************************************************************
/****************************************************************************
Functions to store parameter data from a prepared statement.
Functions to store parameter data from a prepared statement.
...
@@ -1994,7 +1945,8 @@ static my_bool execute(MYSQL_STMT * stmt, char *packet, ulong length)
...
@@ -1994,7 +1945,8 @@ static my_bool execute(MYSQL_STMT * stmt, char *packet, ulong length)
mysql
->
last_used_con
=
mysql
;
mysql
->
last_used_con
=
mysql
;
int4store
(
buff
,
stmt
->
stmt_id
);
/* Send stmt id to server */
int4store
(
buff
,
stmt
->
stmt_id
);
/* Send stmt id to server */
if
(
advanced_command
(
mysql
,
COM_EXECUTE
,
buff
,
MYSQL_STMT_HEADER
,
packet
,
if
((
*
mysql
->
methods
->
advanced_command
)(
mysql
,
COM_EXECUTE
,
buff
,
MYSQL_STMT_HEADER
,
packet
,
length
,
1
)
||
length
,
1
)
||
mysql_read_query_result
(
mysql
))
mysql_read_query_result
(
mysql
))
{
{
...
@@ -2287,8 +2239,9 @@ mysql_send_long_data(MYSQL_STMT *stmt, uint param_number,
...
@@ -2287,8 +2239,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
Note that we don't get any ok packet from the server in this case
This is intentional to save bandwidth.
This is intentional to save bandwidth.
*/
*/
if
(
advanced_command
(
mysql
,
COM_LONG_DATA
,
extra_data
,
if
((
*
mysql
->
methods
->
advanced_command
)(
mysql
,
COM_LONG_DATA
,
extra_data
,
MYSQL_LONG_DATA_HEADER
,
data
,
length
,
1
))
MYSQL_LONG_DATA_HEADER
,
data
,
length
,
1
))
{
{
set_stmt_errmsg
(
stmt
,
mysql
->
net
.
last_error
,
set_stmt_errmsg
(
stmt
,
mysql
->
net
.
last_error
,
mysql
->
net
.
last_errno
,
mysql
->
net
.
sqlstate
);
mysql
->
net
.
last_errno
,
mysql
->
net
.
sqlstate
);
...
...
libmysqld/Makefile.am
View file @
6b303f84
...
@@ -32,7 +32,7 @@ noinst_LIBRARIES = libmysqld_int.a
...
@@ -32,7 +32,7 @@ noinst_LIBRARIES = libmysqld_int.a
pkglib_LIBRARIES
=
libmysqld.a
pkglib_LIBRARIES
=
libmysqld.a
SUBDIRS
=
.
examples
SUBDIRS
=
.
examples
libmysqld_sources
=
libmysqld.c lib_sql.cc
libmysqld_sources
=
libmysqld.c lib_sql.cc
libmysqlsources
=
errmsg.c get_password.c
libmysqlsources
=
errmsg.c get_password.c
libmysql.c client.c pack.c
noinst_HEADERS
=
embedded_priv.h
noinst_HEADERS
=
embedded_priv.h
...
@@ -57,8 +57,6 @@ sqlsources = derror.cc field.cc field_conv.cc filesort.cc \
...
@@ -57,8 +57,6 @@ sqlsources = derror.cc field.cc field_conv.cc filesort.cc \
unireg.cc uniques.cc stacktrace.c sql_union.cc hash_filo.cc
\
unireg.cc uniques.cc stacktrace.c sql_union.cc hash_filo.cc
\
spatial.cc gstream.cc sql_help.cc
spatial.cc gstream.cc sql_help.cc
EXTRA_DIST
=
lib_vio.c
libmysqld_int_a_SOURCES
=
$(libmysqld_sources)
$(libmysqlsources)
$(sqlsources)
libmysqld_int_a_SOURCES
=
$(libmysqld_sources)
$(libmysqlsources)
$(sqlsources)
libmysqld_a_SOURCES
=
libmysqld_a_SOURCES
=
...
@@ -74,7 +72,8 @@ INC_LIB= $(top_builddir)/regex/libregex.a \
...
@@ -74,7 +72,8 @@ INC_LIB= $(top_builddir)/regex/libregex.a \
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/strings/libmystrings.a
\
$(top_builddir)
/strings/libmystrings.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/regex/libregex.a
$(top_builddir)
/regex/libregex.a
\
$(top_builddir)
/vio/libvio.a
#
#
# To make it easy for the end user to use the embedded library we
# To make it easy for the end user to use the embedded library we
...
@@ -115,11 +114,15 @@ link_sources:
...
@@ -115,11 +114,15 @@ link_sources:
for
f
in
$(libmysqlsources)
;
do
\
for
f
in
$(libmysqlsources)
;
do
\
rm
-f
$(srcdir)
/
$$
f
;
\
rm
-f
$(srcdir)
/
$$
f
;
\
@LN_CP_F@
$(srcdir)
/../libmysql/
$$
f
$(srcdir)
/
$$
f
;
\
@LN_CP_F@
$(srcdir)
/../libmysql/
$$
f
$(srcdir)
/
$$
f
;
\
done
done
;
\
rm
-f
$(srcdir)
/client_settings.h
;
\
@LN_CP_F@
$(srcdir)
/../libmysql/client_settings.h
$(srcdir)
/client_settings.h
;
clean-local
:
clean-local
:
rm
-f
`
echo
$(sqlsources)
$(libmysqlsources)
|
sed
"s;
\.
lo;.c;g"
`
\
rm
-f
`
echo
$(sqlsources)
$(libmysqlsources)
|
sed
"s;
\.
lo;.c;g"
`
\
$(top_srcdir)
/linked_libmysqld_sources
$(top_srcdir)
/linked_libmysqld_sources
;
\
rm
-f
client_settings.h
# Don't update the files from bitkeeper
# Don't update the files from bitkeeper
%
::
SCCS/s.%
%
::
SCCS/s.%
libmysqld/embedded_priv.h
View file @
6b303f84
...
@@ -26,6 +26,4 @@ C_MODE_START
...
@@ -26,6 +26,4 @@ C_MODE_START
extern
void
lib_connection_phase
(
NET
*
net
,
int
phase
);
extern
void
lib_connection_phase
(
NET
*
net
,
int
phase
);
extern
void
init_embedded_mysql
(
MYSQL
*
mysql
,
int
client_flag
,
char
*
db
);
extern
void
init_embedded_mysql
(
MYSQL
*
mysql
,
int
client_flag
,
char
*
db
);
extern
void
*
create_embedded_thd
(
int
client_flag
,
char
*
db
);
extern
void
*
create_embedded_thd
(
int
client_flag
,
char
*
db
);
extern
my_bool
simple_command
(
MYSQL
*
mysql
,
enum
enum_server_command
command
,
const
char
*
arg
,
ulong
length
,
my_bool
skipp_check
);
C_MODE_END
C_MODE_END
libmysqld/examples/Makefile.am
View file @
6b303f84
...
@@ -10,7 +10,7 @@ link_sources:
...
@@ -10,7 +10,7 @@ link_sources:
DEFS
=
-DEMBEDDED_LIBRARY
DEFS
=
-DEMBEDDED_LIBRARY
INCLUDES
=
@MT_INCLUDES@
-I
$(top_srcdir)
/include
-I
$(srcdir)
\
INCLUDES
=
@MT_INCLUDES@
-I
$(top_srcdir)
/include
-I
$(srcdir)
\
-I
$(top_srcdir)
-I
$(top_srcdir)
/client
$(openssl_includes)
-I
$(top_srcdir)
-I
$(top_srcdir)
/client
$(openssl_includes)
LIBS
=
@LIBS@ @WRAPLIBS@
LIBS
=
@LIBS@ @WRAPLIBS@
@CLIENT_LIBS@
LDADD
=
@CLIENT_EXTRA_LDFLAGS@ ../libmysqld.a @innodb_system_libs@ @bdb_libs_with_path@ @LIBDL@
$(CXXLDFLAGS)
LDADD
=
@CLIENT_EXTRA_LDFLAGS@ ../libmysqld.a @innodb_system_libs@ @bdb_libs_with_path@ @LIBDL@
$(CXXLDFLAGS)
mysqltest_SOURCES
=
mysqltest.c
mysqltest_SOURCES
=
mysqltest.c
...
...
libmysqld/lib_sql.cc
View file @
6b303f84
...
@@ -47,9 +47,10 @@ static bool check_user(THD *thd, enum_server_command command,
...
@@ -47,9 +47,10 @@ static bool check_user(THD *thd, enum_server_command command,
char
*
get_mysql_home
(){
return
mysql_home
;};
char
*
get_mysql_home
(){
return
mysql_home
;};
char
*
get_mysql_real_data_home
(){
return
mysql_real_data_home
;};
char
*
get_mysql_real_data_home
(){
return
mysql_real_data_home
;};
my_bool
simple_command
(
MYSQL
*
mysql
,
enum
enum_server_command
command
,
my_bool
const
char
*
arg
,
emb_advanced_command
(
MYSQL
*
mysql
,
enum
enum_server_command
command
,
ulong
length
,
my_bool
skipp_check
)
const
char
*
header
,
ulong
header_length
,
const
char
*
arg
,
ulong
arg_length
,
my_bool
skip_check
)
{
{
my_bool
result
=
1
;
my_bool
result
=
1
;
THD
*
thd
=
(
THD
*
)
mysql
->
thd
;
THD
*
thd
=
(
THD
*
)
mysql
->
thd
;
...
@@ -67,13 +68,14 @@ my_bool simple_command(MYSQL *mysql,enum enum_server_command command,
...
@@ -67,13 +68,14 @@ my_bool simple_command(MYSQL *mysql,enum enum_server_command command,
mysql
->
affected_rows
=
~
(
my_ulonglong
)
0
;
mysql
->
affected_rows
=
~
(
my_ulonglong
)
0
;
thd
->
store_globals
();
// Fix if more than one connect
thd
->
store_globals
();
// Fix if more than one connect
result
=
dispatch_command
(
command
,
thd
,
(
char
*
)
arg
,
length
+
1
);
result
=
dispatch_command
(
command
,
thd
,
(
char
*
)
arg
,
arg_
length
+
1
);
if
(
!
skip
p
_check
)
if
(
!
skip_check
)
result
=
thd
->
net
.
last_errno
?
-
1
:
0
;
result
=
thd
->
net
.
last_errno
?
-
1
:
0
;
mysql
->
last_error
=
thd
->
net
.
last_error
;
mysql
->
last_error
=
thd
->
net
.
last_error
;
mysql
->
last_errno
=
thd
->
net
.
last_errno
;
mysql
->
net
.
last_errno
=
thd
->
net
.
last_errno
;
mysql
->
warning_count
=
((
THD
*
)
mysql
->
thd
)
->
total_warn_count
;
return
result
;
return
result
;
}
}
...
@@ -144,7 +146,6 @@ char **copy_arguments(int argc, char **argv)
...
@@ -144,7 +146,6 @@ char **copy_arguments(int argc, char **argv)
extern
"C"
extern
"C"
{
{
ulong
max_allowed_packet
,
net_buffer_length
;
char
**
copy_arguments_ptr
=
0
;
char
**
copy_arguments_ptr
=
0
;
int
STDCALL
mysql_server_init
(
int
argc
,
char
**
argv
,
char
**
groups
)
int
STDCALL
mysql_server_init
(
int
argc
,
char
**
argv
,
char
**
groups
)
...
@@ -281,21 +282,6 @@ void STDCALL mysql_server_end()
...
@@ -281,21 +282,6 @@ void STDCALL mysql_server_end()
my_end
(
0
);
my_end
(
0
);
}
}
my_bool
STDCALL
mysql_thread_init
()
{
#ifdef THREAD
return
my_thread_init
();
#else
return
0
;
#endif
}
void
STDCALL
mysql_thread_end
()
{
#ifdef THREAD
my_thread_end
();
#endif
}
}
/* extern "C" */
}
/* extern "C" */
C_MODE_START
C_MODE_START
...
@@ -454,11 +440,6 @@ send_eof(THD *thd, bool no_flush)
...
@@ -454,11 +440,6 @@ send_eof(THD *thd, bool no_flush)
{
{
}
}
uint
STDCALL
mysql_warning_count
(
MYSQL
*
mysql
)
{
return
((
THD
*
)
mysql
->
thd
)
->
total_warn_count
;
}
void
Protocol_simple
::
prepare_for_resend
()
void
Protocol_simple
::
prepare_for_resend
()
{
{
MYSQL_ROWS
*
cur
;
MYSQL_ROWS
*
cur
;
...
...
libmysqld/lib_vio.c
deleted
100644 → 0
View file @
902984a8
/* Copyright (C) 2000 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/*
Note that we can't have assertion on file descriptors; The reason for
this is that during mysql shutdown, another thread can close a file
we are working on. In this case we should just return read errors from
the file descriptior.
*/
#ifdef DUMMY
#include <my_global.h>
#include "mysql_embed.h"
#include "mysql.h"
#ifndef HAVE_VIO
/* is Vio enabled */
#include <errno.h>
#include <my_sys.h>
#include <violite.h>
#include <my_net.h>
#include <m_string.h>
#include <assert.h>
#ifndef __WIN__
#define HANDLE void *
#endif
struct
st_vio
{
enum
enum_vio_type
type
;
/* Type of connection */
void
*
dest_thd
;
char
*
packets
,
**
last_packet
;
char
*
where_in_packet
,
*
end_of_packet
;
my_bool
reading
;
MEM_ROOT
root
;
};
/* Initialize the communication buffer */
Vio
*
vio_new
(
my_socket
sd
,
enum
enum_vio_type
type
,
my_bool
localhost
)
{
DBUG_ENTER
(
"vio_new"
);
Vio
*
vio
;
if
((
vio
=
(
Vio
*
)
my_malloc
(
sizeof
(
*
vio
),
MYF
(
MY_WME
|
MY_ZEROFILL
))))
{
init_alloc_root
(
&
vio
->
root
,
8192
,
8192
);
vio
->
root
.
min_malloc
=
sizeof
(
char
*
)
+
4
;
vio
->
last_packet
=
&
vio
->
packets
;
vio
->
type
=
type
;
}
DBUG_RETURN
(
vio
);
}
#ifdef __WIN__
Vio
*
vio_new_win32pipe
(
HANDLE
hPipe
)
{
return
(
NULL
);
}
#endif
void
vio_delete
(
Vio
*
vio
)
{
DBUG_ENTER
(
"vio_delete"
);
if
(
vio
)
{
if
(
vio
->
type
!=
VIO_CLOSED
)
vio_close
(
vio
);
free_root
(
&
vio
->
root
,
MYF
(
0
));
my_free
((
gptr
)
vio
,
MYF
(
0
));
}
DBUG_VOID_RETURN
;
}
void
vio_reset
(
Vio
*
vio
)
{
DBUG_ENTER
(
"vio_reset"
);
free_root
(
&
vio
->
root
,
MYF
(
MY_KEEP_PREALLOC
));
vio
->
packets
=
vio
->
where_in_packet
=
vio
->
end_of_packet
=
0
;
vio
->
last_packet
=
&
vio
->
packets
;
DBUG_VOID_RETURN
;
}
int
vio_errno
(
Vio
*
vio
__attribute__
((
unused
)))
{
return
socket_errno
;
/* On Win32 this mapped to WSAGetLastError() */
}
int
vio_read
(
Vio
*
vio
,
gptr
buf
,
int
size
)
{
vio
->
reading
=
1
;
if
(
vio
->
where_in_packet
>=
vio
->
end_of_packet
)
{
DBUG_ASSERT
(
vio
->
packets
);
vio
->
where_in_packet
=
vio
->
packets
+
sizeof
(
char
*
)
+
4
;
vio
->
end_of_packet
=
vio
->
where_in_packet
+
uint4korr
(
vio
->
packets
+
sizeof
(
char
*
));
vio
->
packets
=
*
(
char
**
)
vio
->
packets
;
}
if
(
vio
->
where_in_packet
+
size
>
vio
->
end_of_packet
)
size
=
vio
->
end_of_packet
-
vio
->
where_in_packet
;
memcpy
(
buf
,
vio
->
where_in_packet
,
size
);
vio
->
where_in_packet
+=
size
;
return
(
size
);
}
int
vio_write
(
Vio
*
vio
,
const
gptr
buf
,
int
size
)
{
DBUG_ENTER
(
"vio_write"
);
char
*
packet
;
if
(
vio
->
reading
)
{
vio
->
reading
=
0
;
vio_reset
(
vio
);
}
if
((
packet
=
alloc_root
(
&
vio
->
root
,
sizeof
(
char
*
)
+
4
+
size
)))
{
*
vio
->
last_packet
=
packet
;
vio
->
last_packet
=
(
char
**
)
packet
;
*
((
char
**
)
packet
)
=
0
;
/* Set forward link to 0 */
packet
+=
sizeof
(
char
*
);
int4store
(
packet
,
size
);
memcpy
(
packet
+
4
,
buf
,
size
);
}
else
size
=
-
1
;
DBUG_RETURN
(
size
);
}
int
vio_blocking
(
Vio
*
vio
,
my_bool
set_blocking_mode
,
my_bool
*
old_mode
)
{
return
(
0
);
}
my_bool
vio_is_blocking
(
Vio
*
vio
)
{
return
(
0
);
}
int
vio_fastsend
(
Vio
*
vio
)
{
return
(
0
);
}
int
vio_keepalive
(
Vio
*
vio
,
my_bool
set_keep_alive
)
{
return
(
0
);
}
my_bool
vio_should_retry
(
Vio
*
vio
__attribute__
((
unused
)))
{
int
en
=
socket_errno
;
return
(
en
==
SOCKET_EAGAIN
||
en
==
SOCKET_EINTR
||
en
==
SOCKET_EWOULDBLOCK
);
}
int
vio_close
(
Vio
*
vio
)
{
return
(
0
);
}
const
char
*
vio_description
(
Vio
*
vio
)
{
return
"embedded vio"
;
}
enum
enum_vio_type
vio_type
(
Vio
*
vio
)
{
return
VIO_CLOSED
;
}
my_socket
vio_fd
(
Vio
*
vio
)
{
return
0
;
}
my_bool
vio_peer_addr
(
Vio
*
vio
,
char
*
buf
,
uint16
*
port
)
{
return
(
0
);
}
void
vio_in_addr
(
Vio
*
vio
,
struct
in_addr
*
in
)
{
}
my_bool
vio_poll_read
(
Vio
*
vio
,
uint
timeout
)
{
return
0
;
}
int
create_vio
(
NET
*
net
,
int
separate_thread
)
{
Vio
*
v
=
net
->
vio
;
if
(
!
v
)
{
v
=
vio_new
(
0
,
separate_thread
?
VIO_CLOSED
:
VIO_TYPE_TCPIP
,
0
);
net
->
vio
=
v
;
}
return
!
v
;
}
void
set_thd
(
Vio
*
v
,
void
*
thd
)
{
if
(
v
)
{
v
->
dest_thd
=
thd
;
}
}
#endif
/* HAVE_VIO */
#endif
/* DUMMY */
libmysqld/libmysqld.c
View file @
6b303f84
This diff is collapsed.
Click to expand it.
sql-common/client.c
View file @
6b303f84
...
@@ -38,7 +38,26 @@
...
@@ -38,7 +38,26 @@
#include <my_global.h>
#include <my_global.h>
#include "mysql.h"
#include "mysql.h"
#ifdef EMBEDDED_LIBRARY
#undef MYSQL_SERVER
#ifndef MYSQL_CLIENT
#define MYSQL_CLIENT
#endif
#define CLI_MYSQL_REAL_CONNECT cli_mysql_real_connect
#undef net_flush
my_bool
net_flush
(
NET
*
net
);
#else
/*EMBEDDED_LIBRARY*/
#define CLI_MYSQL_REAL_CONNECT mysql_real_connect
#endif
/*EMBEDDED_LIBRARY*/
#if !defined(MYSQL_SERVER) && (defined(__WIN__) || defined(_WIN32) || defined(_WIN64))
#if !defined(MYSQL_SERVER) && (defined(__WIN__) || defined(_WIN32) || defined(_WIN64))
#include <winsock.h>
#include <winsock.h>
#include <odbcinst.h>
#include <odbcinst.h>
#endif
/* !defined(MYSQL_SERVER) && (defined(__WIN__) ... */
#endif
/* !defined(MYSQL_SERVER) && (defined(__WIN__) ... */
...
@@ -572,8 +591,8 @@ void free_rows(MYSQL_DATA *cur)
...
@@ -572,8 +591,8 @@ void free_rows(MYSQL_DATA *cur)
}
}
}
}
my_bool
static
my_bool
advanced_command
(
MYSQL
*
mysql
,
enum
enum_server_command
command
,
cli_
advanced_command
(
MYSQL
*
mysql
,
enum
enum_server_command
command
,
const
char
*
header
,
ulong
header_length
,
const
char
*
header
,
ulong
header_length
,
const
char
*
arg
,
ulong
arg_length
,
my_bool
skip_check
)
const
char
*
arg
,
ulong
arg_length
,
my_bool
skip_check
)
{
{
...
@@ -635,13 +654,6 @@ end:
...
@@ -635,13 +654,6 @@ end:
return
result
;
return
result
;
}
}
my_bool
simple_command
(
MYSQL
*
mysql
,
enum
enum_server_command
command
,
const
char
*
arg
,
ulong
length
,
my_bool
skip_check
)
{
return
advanced_command
(
mysql
,
command
,
NullS
,
0
,
arg
,
length
,
skip_check
);
}
void
free_old_query
(
MYSQL
*
mysql
)
void
free_old_query
(
MYSQL
*
mysql
)
{
{
DBUG_ENTER
(
"free_old_query"
);
DBUG_ENTER
(
"free_old_query"
);
...
@@ -759,7 +771,7 @@ static int add_init_command(struct st_mysql_options *options, const char *cmd)
...
@@ -759,7 +771,7 @@ static int add_init_command(struct st_mysql_options *options, const char *cmd)
return
0
;
return
0
;
}
}
static
void
mysql_read_default_options
(
struct
st_mysql_options
*
options
,
void
mysql_read_default_options
(
struct
st_mysql_options
*
options
,
const
char
*
filename
,
const
char
*
group
)
const
char
*
filename
,
const
char
*
group
)
{
{
int
argc
;
int
argc
;
...
@@ -1278,6 +1290,7 @@ mysql_init(MYSQL *mysql)
...
@@ -1278,6 +1290,7 @@ mysql_init(MYSQL *mysql)
#ifdef HAVE_SMEM
#ifdef HAVE_SMEM
mysql
->
options
.
shared_memory_base_name
=
(
char
*
)
def_shared_memory_base_name
;
mysql
->
options
.
shared_memory_base_name
=
(
char
*
)
def_shared_memory_base_name
;
#endif
#endif
mysql
->
options
.
methods_to_use
=
MYSQL_OPT_GUESS_CONNECTION
;
return
mysql
;
return
mysql
;
}
}
...
@@ -1409,8 +1422,22 @@ error:
...
@@ -1409,8 +1422,22 @@ error:
before calling mysql_real_connect !
before calling mysql_real_connect !
*/
*/
static
void
STDCALL
cli_mysql_close
(
MYSQL
*
mysql
);
static
my_bool
STDCALL
cli_mysql_read_query_result
(
MYSQL
*
mysql
);
static
MYSQL_RES
*
STDCALL
cli_mysql_store_result
(
MYSQL
*
mysql
);
static
MYSQL_RES
*
STDCALL
cli_mysql_use_result
(
MYSQL
*
mysql
);
static
MYSQL_METHODS
client_methods
=
{
cli_mysql_close
,
cli_mysql_read_query_result
,
cli_advanced_command
,
cli_mysql_store_result
,
cli_mysql_use_result
};
MYSQL
*
STDCALL
MYSQL
*
STDCALL
mysql_real_connect
(
MYSQL
*
mysql
,
const
char
*
host
,
const
char
*
user
,
CLI_MYSQL_REAL_CONNECT
(
MYSQL
*
mysql
,
const
char
*
host
,
const
char
*
user
,
const
char
*
passwd
,
const
char
*
db
,
const
char
*
passwd
,
const
char
*
db
,
uint
port
,
const
char
*
unix_socket
,
ulong
client_flag
)
uint
port
,
const
char
*
unix_socket
,
ulong
client_flag
)
{
{
...
@@ -1441,6 +1468,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
...
@@ -1441,6 +1468,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
user
?
user
:
"(Null)"
));
user
?
user
:
"(Null)"
));
/* Don't give sigpipe errors if the client doesn't want them */
/* Don't give sigpipe errors if the client doesn't want them */
mysql
->
methods
=
&
client_methods
;
set_sigpipe
(
mysql
);
set_sigpipe
(
mysql
);
net
->
vio
=
0
;
/* If something goes wrong */
net
->
vio
=
0
;
/* If something goes wrong */
mysql
->
client_flag
=
0
;
/* For handshake */
mysql
->
client_flag
=
0
;
/* For handshake */
...
@@ -2112,8 +2140,7 @@ static void mysql_close_free(MYSQL *mysql)
...
@@ -2112,8 +2140,7 @@ static void mysql_close_free(MYSQL *mysql)
}
}
void
STDCALL
static
void
STDCALL
cli_mysql_close
(
MYSQL
*
mysql
)
mysql_close
(
MYSQL
*
mysql
)
{
{
DBUG_ENTER
(
"mysql_close"
);
DBUG_ENTER
(
"mysql_close"
);
if
(
mysql
)
/* Some simple safety */
if
(
mysql
)
/* Some simple safety */
...
@@ -2165,8 +2192,7 @@ mysql_close(MYSQL *mysql)
...
@@ -2165,8 +2192,7 @@ mysql_close(MYSQL *mysql)
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
static
my_bool
STDCALL
cli_mysql_read_query_result
(
MYSQL
*
mysql
)
my_bool
STDCALL
mysql_read_query_result
(
MYSQL
*
mysql
)
{
{
uchar
*
pos
;
uchar
*
pos
;
ulong
field_count
;
ulong
field_count
;
...
@@ -2283,8 +2309,7 @@ mysql_real_query(MYSQL *mysql, const char *query, ulong length)
...
@@ -2283,8 +2309,7 @@ mysql_real_query(MYSQL *mysql, const char *query, ulong length)
mysql_data_seek may be used.
mysql_data_seek may be used.
**************************************************************************/
**************************************************************************/
MYSQL_RES
*
STDCALL
static
MYSQL_RES
*
STDCALL
cli_mysql_store_result
(
MYSQL
*
mysql
)
mysql_store_result
(
MYSQL
*
mysql
)
{
{
MYSQL_RES
*
result
;
MYSQL_RES
*
result
;
DBUG_ENTER
(
"mysql_store_result"
);
DBUG_ENTER
(
"mysql_store_result"
);
...
@@ -2339,8 +2364,7 @@ mysql_store_result(MYSQL *mysql)
...
@@ -2339,8 +2364,7 @@ mysql_store_result(MYSQL *mysql)
have to wait for the client (and will not wait more than 30 sec/packet).
have to wait for the client (and will not wait more than 30 sec/packet).
**************************************************************************/
**************************************************************************/
MYSQL_RES
*
STDCALL
static
MYSQL_RES
*
STDCALL
cli_mysql_use_result
(
MYSQL
*
mysql
)
mysql_use_result
(
MYSQL
*
mysql
)
{
{
MYSQL_RES
*
result
;
MYSQL_RES
*
result
;
DBUG_ENTER
(
"mysql_use_result"
);
DBUG_ENTER
(
"mysql_use_result"
);
...
@@ -2477,6 +2501,10 @@ mysql_options(MYSQL *mysql,enum mysql_option option, const char *arg)
...
@@ -2477,6 +2501,10 @@ mysql_options(MYSQL *mysql,enum mysql_option option, const char *arg)
my_free
(
mysql
->
options
.
shared_memory_base_name
,
MYF
(
MY_ALLOW_ZERO_PTR
));
my_free
(
mysql
->
options
.
shared_memory_base_name
,
MYF
(
MY_ALLOW_ZERO_PTR
));
mysql
->
options
.
shared_memory_base_name
=
my_strdup
(
arg
,
MYF
(
MY_WME
));
mysql
->
options
.
shared_memory_base_name
=
my_strdup
(
arg
,
MYF
(
MY_WME
));
#endif
#endif
case
MYSQL_OPT_USE_REMOTE_CONNECTION
:
case
MYSQL_OPT_USE_EMBEDDED_CONNECTION
:
case
MYSQL_OPT_GUESS_CONNECTION
:
mysql
->
options
.
methods_to_use
=
option
;
break
;
break
;
default:
default:
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
...
...
sql-common/pack.c
View file @
6b303f84
/* Copyright (C) 2000-2003 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include <my_global.h>
#include <my_global.h>
#include <mysql_com.h>
#include <mysql_com.h>
#include <mysql.h>
#include <mysql.h>
...
@@ -62,3 +78,30 @@ my_ulonglong net_field_length_ll(uchar **packet)
...
@@ -62,3 +78,30 @@ my_ulonglong net_field_length_ll(uchar **packet)
#endif
#endif
}
}
char
*
net_store_length
(
char
*
pkg
,
ulonglong
length
)
{
uchar
*
packet
=
(
uchar
*
)
pkg
;
if
(
length
<
LL
(
251
))
{
*
packet
=
(
uchar
)
length
;
return
(
char
*
)
packet
+
1
;
}
/* 251 is reserved for NULL */
if
(
length
<
LL
(
65536
))
{
*
packet
++=
252
;
int2store
(
packet
,(
uint
)
length
);
return
(
char
*
)
packet
+
2
;
}
if
(
length
<
LL
(
16777216
))
{
*
packet
++=
253
;
int3store
(
packet
,(
ulong
)
length
);
return
(
char
*
)
packet
+
3
;
}
*
packet
++=
254
;
int8store
(
packet
,
length
);
return
(
char
*
)
packet
+
8
;
}
sql/client_settings.h
View file @
6b303f84
...
@@ -31,3 +31,4 @@
...
@@ -31,3 +31,4 @@
#define mysql_rpl_probe(mysql) 0
#define mysql_rpl_probe(mysql) 0
#undef HAVE_SMEM
#undef HAVE_SMEM
#undef _CUSTOMCONFIG_
#undef _CUSTOMCONFIG_
sql/net_serv.cc
View file @
6b303f84
...
@@ -30,7 +30,10 @@
...
@@ -30,7 +30,10 @@
3 byte length & 1 byte package-number.
3 byte length & 1 byte package-number.
*/
*/
#ifndef EMBEDDED_LIBRARY
/*
HFTODO this must be hidden if we don't want client capabilities in
embedded library
*/
#ifdef __WIN__
#ifdef __WIN__
#include <winsock.h>
#include <winsock.h>
#endif
#endif
...
@@ -46,6 +49,17 @@
...
@@ -46,6 +49,17 @@
#include <signal.h>
#include <signal.h>
#include <errno.h>
#include <errno.h>
#ifdef EMBEDDED_LIBRARY
#undef net_flush
extern
"C"
{
my_bool
net_flush
(
NET
*
net
);
}
#endif
/*EMBEDDED_LIBRARY */
/*
/*
The following handles the differences when this is linked between the
The following handles the differences when this is linked between the
client and the server.
client and the server.
...
@@ -959,5 +973,3 @@ my_net_read(NET *net)
...
@@ -959,5 +973,3 @@ my_net_read(NET *net)
return
len
;
return
len
;
}
}
#endif
/* #ifndef EMBEDDED_LIBRARY */
sql/protocol.cc
View file @
6b303f84
...
@@ -235,7 +235,6 @@ net_printf(THD *thd, uint errcode, ...)
...
@@ -235,7 +235,6 @@ net_printf(THD *thd, uint errcode, ...)
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
/*
/*
Return ok to the client.
Return ok to the client.
...
@@ -350,40 +349,6 @@ send_eof(THD *thd, bool no_flush)
...
@@ -350,40 +349,6 @@ send_eof(THD *thd, bool no_flush)
}
}
#endif
/* EMBEDDED_LIBRARY */
#endif
/* EMBEDDED_LIBRARY */
/****************************************************************************
Store a field length in logical packet
This is used to code the string length for normal protocol
****************************************************************************/
char
*
net_store_length
(
char
*
pkg
,
ulonglong
length
)
{
uchar
*
packet
=
(
uchar
*
)
pkg
;
if
(
length
<
LL
(
251
))
{
*
packet
=
(
uchar
)
length
;
return
(
char
*
)
packet
+
1
;
}
/* 251 is reserved for NULL */
if
(
length
<
LL
(
65536
))
{
*
packet
++=
252
;
int2store
(
packet
,(
uint
)
length
);
return
(
char
*
)
packet
+
2
;
}
if
(
length
<
LL
(
16777216
))
{
*
packet
++=
253
;
int3store
(
packet
,(
ulong
)
length
);
return
(
char
*
)
packet
+
3
;
}
*
packet
++=
254
;
int8store
(
packet
,
length
);
return
(
char
*
)
packet
+
8
;
}
/*
/*
Faster net_store_length when we know length is a 32 bit integer
Faster net_store_length when we know length is a 32 bit integer
*/
*/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment