mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
@ -251,7 +251,7 @@ int emb_next_result(MYSQL *mysql)
|
|||||||
DBUG_ENTER("emb_next_result");
|
DBUG_ENTER("emb_next_result");
|
||||||
|
|
||||||
if (emb_advanced_command(mysql, COM_QUERY,0,0,
|
if (emb_advanced_command(mysql, COM_QUERY,0,0,
|
||||||
thd->query_rest,thd->query_rest_length,1)
|
thd->query_rest.ptr(),thd->query_rest.length(),1)
|
||||||
|| emb_mysql_read_query_result(mysql))
|
|| emb_mysql_read_query_result(mysql))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
|
|
||||||
@ -765,11 +765,6 @@ bool Protocol::net_store_data(const char *from, uint length)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *memdup_mysql(struct st_mysql *mysql, const char*data, int length)
|
|
||||||
{
|
|
||||||
return memdup_root(&mysql->field_alloc, data, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* The same as Protocol::net_store_data but does the converstion
|
/* The same as Protocol::net_store_data but does the converstion
|
||||||
*/
|
*/
|
||||||
|
@ -565,8 +565,7 @@ public:
|
|||||||
struct st_mysql_bind *client_params;
|
struct st_mysql_bind *client_params;
|
||||||
char *extra_data;
|
char *extra_data;
|
||||||
ulong extra_length;
|
ulong extra_length;
|
||||||
char *query_rest;
|
String query_rest;
|
||||||
uint32 query_rest_length;
|
|
||||||
#endif
|
#endif
|
||||||
NET net; // client connection descriptor
|
NET net; // client connection descriptor
|
||||||
MEM_ROOT warn_root; // For warnings and errors
|
MEM_ROOT warn_root; // For warnings and errors
|
||||||
|
@ -48,7 +48,6 @@
|
|||||||
extern "C" int gethostname(char *name, int namelen);
|
extern "C" int gethostname(char *name, int namelen);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
char *memdup_mysql(struct st_mysql *mysql, const char*data, int length);
|
|
||||||
static int check_for_max_user_connections(THD *thd, USER_CONN *uc);
|
static int check_for_max_user_connections(THD *thd, USER_CONN *uc);
|
||||||
static void decrease_user_connections(USER_CONN *uc);
|
static void decrease_user_connections(USER_CONN *uc);
|
||||||
static bool check_db_used(THD *thd,TABLE_LIST *tables);
|
static bool check_db_used(THD *thd,TABLE_LIST *tables);
|
||||||
@ -1420,8 +1419,17 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
|
|||||||
#ifndef EMBEDDED_LIBRARY
|
#ifndef EMBEDDED_LIBRARY
|
||||||
mysql_parse(thd, packet, length);
|
mysql_parse(thd, packet, length);
|
||||||
#else
|
#else
|
||||||
thd->query_rest= (char*)memdup_mysql(thd->mysql, packet, length);
|
/*
|
||||||
thd->query_rest_length= length;
|
'packet' can point inside the query_rest's buffer
|
||||||
|
so we have to do memmove here
|
||||||
|
*/
|
||||||
|
if (thd->query_rest.length() > length)
|
||||||
|
{
|
||||||
|
memmove(thd->query_rest.c_ptr(), packet, length);
|
||||||
|
thd->query_rest.length(length);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
thd->query_rest.copy(length);
|
||||||
break;
|
break;
|
||||||
#endif /*EMBEDDED_LIBRARY*/
|
#endif /*EMBEDDED_LIBRARY*/
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user