diff options
author | unknown <kostja@bodhi.(none)> | 2007-12-13 23:58:55 +0300 |
---|---|---|
committer | unknown <kostja@bodhi.(none)> | 2007-12-13 23:58:55 +0300 |
commit | 37a2c4590a7453d5c8e5b67c2f512162323ac738 (patch) | |
tree | 5b1e35ecfb3c06d25e3fab02b488f661e7c476d0 /libmysqld | |
parent | a3a0d4359fef580a30704797ceeed613600deedc (diff) | |
download | mariadb-git-37a2c4590a7453d5c8e5b67c2f512162323ac738.tar.gz |
Fix broken embedded build (broken by the patch for Bug#12713, first part).
client/mysqltest.c:
Remove a call to my_message() (server call) in case of a client error.
It asserts in the embedded build now, since is called after send_ok().
libmysqld/emb_qcache.cc:
Use net_send_eof (embedded implementation) in embedded query cache/
send result to client, since send_eof currently does not
send anything.
libmysqld/emb_qcache.h:
Declare net_send_eof.
libmysqld/lib_sql.cc:
Fix the main loop of the embedded server to use the new Diagnostics_area
API.
sql/log.cc:
Silence errors of open_performance_schema_table. This function
is called for general logging, and it happens after the error
has been sent to the client, and thus triggers an assert.
storage/myisam/ha_myisam.cc:
Remove an old hack that broke repair.test in embedded build:
unless we clear an error here, the server attempts to send OK after
ERROR. This currently asserts.
Diffstat (limited to 'libmysqld')
-rw-r--r-- | libmysqld/emb_qcache.cc | 2 | ||||
-rw-r--r-- | libmysqld/emb_qcache.h | 1 | ||||
-rw-r--r-- | libmysqld/lib_sql.cc | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/libmysqld/emb_qcache.cc b/libmysqld/emb_qcache.cc index 17549bfa96b..07b7d82a0cc 100644 --- a/libmysqld/emb_qcache.cc +++ b/libmysqld/emb_qcache.cc @@ -447,7 +447,7 @@ int emb_load_querycache_result(THD *thd, Querycache_stream *src) *prev_row= NULL; data->embedded_info->prev_ptr= prev_row; return_ok: - send_eof(thd); + net_send_eof(thd, thd->server_status, thd->total_warn_count); DBUG_RETURN(0); err: DBUG_RETURN(1); diff --git a/libmysqld/emb_qcache.h b/libmysqld/emb_qcache.h index 6e320fbd967..e1c219ec461 100644 --- a/libmysqld/emb_qcache.h +++ b/libmysqld/emb_qcache.h @@ -79,3 +79,4 @@ public: uint emb_count_querycache_size(THD *thd); int emb_load_querycache_result(THD *thd, Querycache_stream *src); void emb_store_querycache_result(Querycache_stream *dst, THD* thd); +void net_send_eof(THD *thd, uint server_status, uint total_warn_count); diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index df6d68c7582..f13129cc52d 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -87,6 +87,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, /* Clear result variables */ thd->clear_error(); + thd->main_da.reset_diagnostics_area(); mysql->affected_rows= ~(my_ulonglong) 0; mysql->field_count= 0; net_clear_error(net); @@ -625,6 +626,7 @@ int check_embedded_connection(MYSQL *mysql, const char *db) strmake(sctx->priv_host, (char*) my_localhost, MAX_HOSTNAME-1); sctx->priv_user= sctx->user= my_strdup(mysql->user, MYF(0)); result= check_user(thd, COM_CONNECT, NULL, 0, db, true); + net_end_statement(thd); emb_read_query_result(mysql); return result; } |