Loading bdb/dist/gen_inc.awk +11 −11 Original line number Diff line number Diff line Loading @@ -18,20 +18,20 @@ # i_pfile include file that contains internal (PUBLIC) prototypes /PUBLIC:/ { sub("^.*PUBLIC:[ ][ ]*", "") if ($0 ~ "^#if|^#ifdef|^#ifndef|^#else|^#endif") { if ($0 ~ /^#(if|ifdef|ifndef|else|endif)/) { print $0 >> i_pfile print $0 >> i_dfile next } pline = sprintf("%s %s", pline, $0) if (pline ~ "));") { if (pline ~ /\)\);/) { sub("^[ ]*", "", pline) print pline >> i_pfile if (pline !~ db_version_unique_name) { def = gensub("[ ][ ]*__P.*", "", 1, pline) sub("^.*[ ][*]*", "", def) sub("[ ][ ]*__P.*", "", pline) sub("^.*[ ][*]*", "", pline) printf("#define %s %s@DB_VERSION_UNIQUE_NAME@\n", def, def) >> i_dfile pline, pline) >> i_dfile } pline = "" } Loading @@ -53,20 +53,20 @@ # functions in libraries built with that configuration option. /EXTERN:/ { sub("^.*EXTERN:[ ][ ]*", "") if ($0 ~ "^#if|^#ifdef|^#ifndef|^#else|^#endif") { if ($0 ~ /^#(if|ifdef|ifndef|else|endif)/) { print $0 >> e_pfile print $0 >> e_dfile next } eline = sprintf("%s %s", eline, $0) if (eline ~ "));") { if (eline ~ /\)\);/) { sub("^[ ]*", "", eline) print eline >> e_pfile if (eline !~ db_version_unique_name && eline !~ "^int txn_") { def = gensub("[ ][ ]*__P.*", "", 1, eline) sub("^.*[ ][*]*", "", def) if (eline !~ db_version_unique_name && eline !~ /^int txn_/) { sub("[ ][ ]*__P.*", "", eline) sub("^.*[ ][*]*", "", eline) printf("#define %s %s@DB_VERSION_UNIQUE_NAME@\n", def, def) >> e_dfile eline, eline) >> e_dfile } eline = "" } Loading include/mysql.h +1 −0 Original line number Diff line number Diff line Loading @@ -627,6 +627,7 @@ typedef struct st_mysql_methods MYSQL_RES * (*use_result)(MYSQL *mysql); void (*fetch_lengths)(unsigned long *to, MYSQL_ROW column, unsigned int field_count); void (*flush_use_result)(MYSQL *mysql); #if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) MYSQL_FIELD * (*list_fields)(MYSQL *mysql); my_bool (*read_prepare_result)(MYSQL *mysql, MYSQL_STMT *stmt); Loading include/sql_common.h +0 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ extern "C" { MYSQL_FIELD *unpack_fields(MYSQL_DATA *data,MEM_ROOT *alloc,uint fields, my_bool default_value, uint server_capabilities); void free_rows(MYSQL_DATA *cur); void flush_use_result(MYSQL *mysql); my_bool mysql_autenticate(MYSQL *mysql, const char *passwd); void free_old_query(MYSQL *mysql); void end_server(MYSQL *mysql); Loading libmysql/libmysql.c +2 −2 Original line number Diff line number Diff line Loading @@ -4392,7 +4392,7 @@ my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt) if (mysql->status != MYSQL_STATUS_READY) { /* There is a result set and it belongs to this statement */ flush_use_result(mysql); (*mysql->methods->flush_use_result)(mysql); mysql->status= MYSQL_STATUS_READY; } } Loading Loading @@ -4442,7 +4442,7 @@ my_bool STDCALL mysql_stmt_close(MYSQL_STMT *stmt) Flush result set of the connection. If it does not belong to this statement, set a warning. */ flush_use_result(mysql); (*mysql->methods->flush_use_result)(mysql); if (mysql->unbuffered_fetch_owner) *mysql->unbuffered_fetch_owner= TRUE; mysql->status= MYSQL_STATUS_READY; Loading libmysqld/lib_sql.cc +34 −11 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, thd->clear_error(); mysql->affected_rows= ~(my_ulonglong) 0; mysql->field_count= 0; net->last_errno= 0; thd->store_globals(); // Fix if more than one connect /* Loading @@ -107,17 +108,38 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, if (!skip_check) result= thd->net.last_errno ? -1 : 0; /* If mysql->field_count is set it means the parsing of the query was OK and metadata was returned (see Protocol::send_fields). In this case we postpone the error to be returned in mysql_stmt_store_result (see emb_read_rows) to behave just as standalone server. */ if (!mysql->field_count) embedded_get_error(mysql); mysql->server_status= thd->server_status; mysql->warning_count= ((THD*)mysql->thd)->total_warn_count; return result; } static void emb_flush_use_result(MYSQL *mysql) { MYSQL_DATA *data= ((THD*)(mysql->thd))->data; if (data) { free_rows(data); ((THD*)(mysql->thd))->data= NULL; } } static MYSQL_DATA * emb_read_rows(MYSQL *mysql, MYSQL_FIELD *mysql_fields __attribute__((unused)), unsigned int fields __attribute__((unused))) { MYSQL_DATA *result= ((THD*)mysql->thd)->data; embedded_get_error(mysql); if (mysql->net.last_errno) return NULL; if (!result) { if (!(result=(MYSQL_DATA*) my_malloc(sizeof(MYSQL_DATA), Loading Loading @@ -227,6 +249,9 @@ int emb_read_binary_rows(MYSQL_STMT *stmt) int emb_unbuffered_fetch(MYSQL *mysql, char **row) { MYSQL_DATA *data= ((THD*)mysql->thd)->data; embedded_get_error(mysql); if (mysql->net.last_errno) return mysql->net.last_errno; if (!data || !data->data) { *row= NULL; Loading Loading @@ -293,6 +318,7 @@ MYSQL_METHODS embedded_methods= emb_read_rows, emb_mysql_store_result, emb_fetch_lengths, emb_flush_use_result, emb_list_fields, emb_read_prepare_result, emb_stmt_execute, Loading Loading @@ -442,14 +468,6 @@ int init_embedded_server(int argc, char **argv, char **groups) } } /* Update mysqld variables from client variables if set The client variables are set also by get_one_option() in mysqld.cc */ if (max_allowed_packet) global_system_variables.max_allowed_packet= max_allowed_packet; if (net_buffer_length) global_system_variables.net_buffer_length= net_buffer_length; return 0; } Loading Loading @@ -478,18 +496,20 @@ void *create_embedded_thd(int client_flag, char *db) if (thd->store_globals()) { fprintf(stderr,"store_globals failed.\n"); return NULL; goto err; } thd->mysys_var= my_thread_var; thd->dbug_thread_id= my_thread_id(); thd->thread_stack= (char*) &thd; /* TODO - add init_connect command execution */ thd->proc_info=0; // Remove 'login' thd->command=COM_SLEEP; thd->version=refresh_version; thd->set_time(); init_sql_alloc(&thd->mem_root,8192,8192); thd->init_for_queries(); thd->client_capabilities= client_flag; thd->db= db; Loading @@ -504,6 +524,9 @@ void *create_embedded_thd(int client_flag, char *db) thread_count++; return thd; err: delete(thd); return NULL; } #ifdef NO_EMBEDDED_ACCESS_CHECKS Loading Loading
bdb/dist/gen_inc.awk +11 −11 Original line number Diff line number Diff line Loading @@ -18,20 +18,20 @@ # i_pfile include file that contains internal (PUBLIC) prototypes /PUBLIC:/ { sub("^.*PUBLIC:[ ][ ]*", "") if ($0 ~ "^#if|^#ifdef|^#ifndef|^#else|^#endif") { if ($0 ~ /^#(if|ifdef|ifndef|else|endif)/) { print $0 >> i_pfile print $0 >> i_dfile next } pline = sprintf("%s %s", pline, $0) if (pline ~ "));") { if (pline ~ /\)\);/) { sub("^[ ]*", "", pline) print pline >> i_pfile if (pline !~ db_version_unique_name) { def = gensub("[ ][ ]*__P.*", "", 1, pline) sub("^.*[ ][*]*", "", def) sub("[ ][ ]*__P.*", "", pline) sub("^.*[ ][*]*", "", pline) printf("#define %s %s@DB_VERSION_UNIQUE_NAME@\n", def, def) >> i_dfile pline, pline) >> i_dfile } pline = "" } Loading @@ -53,20 +53,20 @@ # functions in libraries built with that configuration option. /EXTERN:/ { sub("^.*EXTERN:[ ][ ]*", "") if ($0 ~ "^#if|^#ifdef|^#ifndef|^#else|^#endif") { if ($0 ~ /^#(if|ifdef|ifndef|else|endif)/) { print $0 >> e_pfile print $0 >> e_dfile next } eline = sprintf("%s %s", eline, $0) if (eline ~ "));") { if (eline ~ /\)\);/) { sub("^[ ]*", "", eline) print eline >> e_pfile if (eline !~ db_version_unique_name && eline !~ "^int txn_") { def = gensub("[ ][ ]*__P.*", "", 1, eline) sub("^.*[ ][*]*", "", def) if (eline !~ db_version_unique_name && eline !~ /^int txn_/) { sub("[ ][ ]*__P.*", "", eline) sub("^.*[ ][*]*", "", eline) printf("#define %s %s@DB_VERSION_UNIQUE_NAME@\n", def, def) >> e_dfile eline, eline) >> e_dfile } eline = "" } Loading
include/mysql.h +1 −0 Original line number Diff line number Diff line Loading @@ -627,6 +627,7 @@ typedef struct st_mysql_methods MYSQL_RES * (*use_result)(MYSQL *mysql); void (*fetch_lengths)(unsigned long *to, MYSQL_ROW column, unsigned int field_count); void (*flush_use_result)(MYSQL *mysql); #if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) MYSQL_FIELD * (*list_fields)(MYSQL *mysql); my_bool (*read_prepare_result)(MYSQL *mysql, MYSQL_STMT *stmt); Loading
include/sql_common.h +0 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ extern "C" { MYSQL_FIELD *unpack_fields(MYSQL_DATA *data,MEM_ROOT *alloc,uint fields, my_bool default_value, uint server_capabilities); void free_rows(MYSQL_DATA *cur); void flush_use_result(MYSQL *mysql); my_bool mysql_autenticate(MYSQL *mysql, const char *passwd); void free_old_query(MYSQL *mysql); void end_server(MYSQL *mysql); Loading
libmysql/libmysql.c +2 −2 Original line number Diff line number Diff line Loading @@ -4392,7 +4392,7 @@ my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt) if (mysql->status != MYSQL_STATUS_READY) { /* There is a result set and it belongs to this statement */ flush_use_result(mysql); (*mysql->methods->flush_use_result)(mysql); mysql->status= MYSQL_STATUS_READY; } } Loading Loading @@ -4442,7 +4442,7 @@ my_bool STDCALL mysql_stmt_close(MYSQL_STMT *stmt) Flush result set of the connection. If it does not belong to this statement, set a warning. */ flush_use_result(mysql); (*mysql->methods->flush_use_result)(mysql); if (mysql->unbuffered_fetch_owner) *mysql->unbuffered_fetch_owner= TRUE; mysql->status= MYSQL_STATUS_READY; Loading
libmysqld/lib_sql.cc +34 −11 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, thd->clear_error(); mysql->affected_rows= ~(my_ulonglong) 0; mysql->field_count= 0; net->last_errno= 0; thd->store_globals(); // Fix if more than one connect /* Loading @@ -107,17 +108,38 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, if (!skip_check) result= thd->net.last_errno ? -1 : 0; /* If mysql->field_count is set it means the parsing of the query was OK and metadata was returned (see Protocol::send_fields). In this case we postpone the error to be returned in mysql_stmt_store_result (see emb_read_rows) to behave just as standalone server. */ if (!mysql->field_count) embedded_get_error(mysql); mysql->server_status= thd->server_status; mysql->warning_count= ((THD*)mysql->thd)->total_warn_count; return result; } static void emb_flush_use_result(MYSQL *mysql) { MYSQL_DATA *data= ((THD*)(mysql->thd))->data; if (data) { free_rows(data); ((THD*)(mysql->thd))->data= NULL; } } static MYSQL_DATA * emb_read_rows(MYSQL *mysql, MYSQL_FIELD *mysql_fields __attribute__((unused)), unsigned int fields __attribute__((unused))) { MYSQL_DATA *result= ((THD*)mysql->thd)->data; embedded_get_error(mysql); if (mysql->net.last_errno) return NULL; if (!result) { if (!(result=(MYSQL_DATA*) my_malloc(sizeof(MYSQL_DATA), Loading Loading @@ -227,6 +249,9 @@ int emb_read_binary_rows(MYSQL_STMT *stmt) int emb_unbuffered_fetch(MYSQL *mysql, char **row) { MYSQL_DATA *data= ((THD*)mysql->thd)->data; embedded_get_error(mysql); if (mysql->net.last_errno) return mysql->net.last_errno; if (!data || !data->data) { *row= NULL; Loading Loading @@ -293,6 +318,7 @@ MYSQL_METHODS embedded_methods= emb_read_rows, emb_mysql_store_result, emb_fetch_lengths, emb_flush_use_result, emb_list_fields, emb_read_prepare_result, emb_stmt_execute, Loading Loading @@ -442,14 +468,6 @@ int init_embedded_server(int argc, char **argv, char **groups) } } /* Update mysqld variables from client variables if set The client variables are set also by get_one_option() in mysqld.cc */ if (max_allowed_packet) global_system_variables.max_allowed_packet= max_allowed_packet; if (net_buffer_length) global_system_variables.net_buffer_length= net_buffer_length; return 0; } Loading Loading @@ -478,18 +496,20 @@ void *create_embedded_thd(int client_flag, char *db) if (thd->store_globals()) { fprintf(stderr,"store_globals failed.\n"); return NULL; goto err; } thd->mysys_var= my_thread_var; thd->dbug_thread_id= my_thread_id(); thd->thread_stack= (char*) &thd; /* TODO - add init_connect command execution */ thd->proc_info=0; // Remove 'login' thd->command=COM_SLEEP; thd->version=refresh_version; thd->set_time(); init_sql_alloc(&thd->mem_root,8192,8192); thd->init_for_queries(); thd->client_capabilities= client_flag; thd->db= db; Loading @@ -504,6 +524,9 @@ void *create_embedded_thd(int client_flag, char *db) thread_count++; return thd; err: delete(thd); return NULL; } #ifdef NO_EMBEDDED_ACCESS_CHECKS Loading