summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorunknown <hf@deer.(none)>2003-06-17 21:32:31 +0500
committerunknown <hf@deer.(none)>2003-06-17 21:32:31 +0500
commitef726bbff367ab6c5aa735655d8ff6c3fdccdb7d (patch)
tree6f68559f6a79f53926e1432aa904b9520399b6a8 /include
parent5551e0df2a5208ead3ca7d024083e572e21f8845 (diff)
downloadmariadb-git-ef726bbff367ab6c5aa735655d8ff6c3fdccdb7d.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? BitKeeper/deleted/.del-lib_vio.c~d779731a1e391220: Delete: libmysqld/lib_vio.c BitKeeper/etc/ignore: Added libmysqld/client.c libmysqld/client_settings.h libmysqld/libmysql.c libmysqld/pack.c to the ignore list client/mysqltest.c: we don't need this now include/mysql.h: MYSQL and related structures unified four methods made "virtual" relative wrappers added include/mysql_com.h: todo added include/mysql_embed.h: now we include implementations of Vio structure in libmysqld include/sql_common.h: declarations changed include/violite.h: implementation of Vio included in libmysqld libmysql/client_settings.h: changes to make this working with both client and embedded libmysql/libmysql.c: global variables and my_net_local_init moved to sql-common/pack.c libmysqld/Makefile.am: libmysql.c, client.c, pack.c symlinked and added to sources lib_vio.c removed libmysqld/examples/Makefile.am: now we need CLIENT_LIBS here libmysqld/lib_sql.cc: code duplications removed emb_advanced_command was made from simple_command libmysqld/libmysqld.c: duplicated code removed sql-common/client.c: code trimmed with new model of calling sql-common/pack.c: some code moved here from libmysql.c and protocol.cc sql/client_settings.h: we don't need mysql_use_result for mini_client sql/net_serv.cc: file included in embedded server sql/protocol.cc: code moved to sql-common/pack.c
Diffstat (limited to 'include')
-rw-r--r--include/mysql.h26
-rw-r--r--include/mysql_com.h3
-rw-r--r--include/mysql_embed.h4
-rw-r--r--include/sql_common.h5
-rw-r--r--include/violite.h4
5 files changed, 32 insertions, 10 deletions
diff --git a/include/mysql.h b/include/mysql.h
index 7e472a120b3..255570d3488 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -201,6 +201,7 @@ enum mysql_rpl_type
MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN
};
+struct st_mysql_methods;
#if !defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY)
@@ -247,11 +248,13 @@ typedef struct st_mysql
struct st_mysql* last_used_con;
LIST *stmts; /* list of all statements */
+ const struct st_mysql_methods *methods;
#if !defined(CHECK_EMBEDDED_DIFFERENCES)
struct st_mysql_res *result;
void *thd;
unsigned int last_errno;
char *last_error;
+ char sqlstate[SQLSTATE_LENGTH+1]; /* Used by embedded server */
#endif
} MYSQL;
@@ -378,12 +381,10 @@ MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,
unsigned int port,
const char *unix_socket,
unsigned long clientflag);
-void STDCALL mysql_close(MYSQL *sock);
int STDCALL mysql_select_db(MYSQL *mysql, const char *db);
int STDCALL mysql_query(MYSQL *mysql, const char *q);
int STDCALL mysql_send_query(MYSQL *mysql, const char *q,
unsigned long length);
-my_bool STDCALL mysql_read_query_result(MYSQL *mysql);
int STDCALL mysql_real_query(MYSQL *mysql, const char *q,
unsigned long length);
/* perform query on master */
@@ -444,8 +445,6 @@ MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild);
MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table,
const char *wild);
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,
const char *arg);
void STDCALL mysql_free_result(MYSQL_RES *result);
@@ -566,6 +565,25 @@ typedef struct st_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,
unsigned long length);
int STDCALL mysql_execute(MYSQL_STMT * stmt);
diff --git a/include/mysql_com.h b/include/mysql_com.h
index 0624782c075..057045bd5a0 100644
--- a/include/mysql_com.h
+++ b/include/mysql_com.h
@@ -232,6 +232,9 @@ void my_net_local_init(NET *net);
void net_end(NET *net);
void net_clear(NET *net);
my_bool net_realloc(NET *net, unsigned long length);
+
+/*HFTODO - should remove it
+ */
#ifndef EMBEDDED_LIBRARY
my_bool net_flush(NET *net);
#else
diff --git a/include/mysql_embed.h b/include/mysql_embed.h
index d48b0440660..ba71b2e93ea 100644
--- a/include/mysql_embed.h
+++ b/include/mysql_embed.h
@@ -19,11 +19,13 @@
#ifdef EMBEDDED_LIBRARY
/* Things we don't need in the embedded version of MySQL */
+/*HFTODO
+#undef HAVE_VIO - if we don't want client in embedded library
+*/
#undef HAVE_PSTACK /* No stacktrace */
#undef HAVE_DLOPEN /* No udf functions */
#undef HAVE_OPENSSL
-#undef HAVE_VIO
#undef HAVE_ISAM
#undef HAVE_SMEM /* No shared memory */
diff --git a/include/sql_common.h b/include/sql_common.h
index 65283486fb4..11f432fb478 100644
--- a/include/sql_common.h
+++ b/include/sql_common.h
@@ -27,9 +27,6 @@ my_ulonglong net_field_length_ll(uchar **packet);
MYSQL_FIELD *unpack_fields(MYSQL_DATA *data,MEM_ROOT *alloc,uint fields,
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);
MYSQL_DATA *read_rows (MYSQL *mysql,MYSQL_FIELD *fields,
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 end_server(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
}
#endif
diff --git a/include/violite.h b/include/violite.h
index 3b61fbf344e..eeb2cbd7185 100644
--- a/include/violite.h
+++ b/include/violite.h
@@ -220,7 +220,8 @@ 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 */
struct st_vio
{
@@ -263,5 +264,4 @@ struct st_vio
#endif /* HAVE_SMEM */
#endif /* HAVE_VIO */
};
-#endif /* EMBEDDED_LIBRARY */
#endif /* vio_violite_h_ */