Commit b74c43f4 authored by venu@myvenu.com's avatar venu@myvenu.com

protocol fixups

parent 5601da7a
...@@ -58,7 +58,7 @@ const char *client_errors[]= ...@@ -58,7 +58,7 @@ const char *client_errors[]=
"No parameters exists in the statement", "No parameters exists in the statement",
"Invalid parameter number", "Invalid parameter number",
"Can't send long data for non string or binary data types (parameter: %d)", "Can't send long data for non string or binary data types (parameter: %d)",
"Using not supported parameter type: %d (parameter: %d)" "Using un supported parameter type: %d (parameter: %d)"
"Shared memory (%lu)", "Shared memory (%lu)",
"Can't open shared memory. Request event don't create (%lu)", "Can't open shared memory. Request event don't create (%lu)",
"Can't open shared memory. Answer event don't create (%lu)", "Can't open shared memory. Answer event don't create (%lu)",
...@@ -111,7 +111,7 @@ const char *client_errors[]= ...@@ -111,7 +111,7 @@ const char *client_errors[]=
"No parameters exists in the statement", "No parameters exists in the statement",
"Invalid parameter number", "Invalid parameter number",
"Can't send long data for non string or binary data types (parameter: %d)", "Can't send long data for non string or binary data types (parameter: %d)",
"Using not supported parameter type: %d (parameter: %d)" "Using un supported parameter type: %d (parameter: %d)"
"Shared memory (%lu)", "Shared memory (%lu)",
"Can't open shared memory. Request event don't create (%lu)", "Can't open shared memory. Request event don't create (%lu)",
"Can't open shared memory. Answer event don't create (%lu)", "Can't open shared memory. Answer event don't create (%lu)",
...@@ -162,7 +162,7 @@ const char *client_errors[]= ...@@ -162,7 +162,7 @@ const char *client_errors[]=
"No parameters exists in the statement", "No parameters exists in the statement",
"Invalid parameter number", "Invalid parameter number",
"Can't send long data for non string or binary data types (parameter: %d)", "Can't send long data for non string or binary data types (parameter: %d)",
"Using not supported parameter type: %d (parameter: %d)" "Using un supported parameter type: %d (parameter: %d)"
"Shared memory (%lu)", "Shared memory (%lu)",
"Can't open shared memory. Request event don't create (%lu)", "Can't open shared memory. Request event don't create (%lu)",
"Can't open shared memory. Answer event don't create (%lu)", "Can't open shared memory. Answer event don't create (%lu)",
......
This diff is collapsed.
...@@ -102,8 +102,24 @@ EXPORTS ...@@ -102,8 +102,24 @@ EXPORTS
mysql_add_slave mysql_add_slave
mysql_warning_count mysql_warning_count
mysql_warnings mysql_warnings
mysql_prepare
mysql_execute
mysql_param_count
mysql_bind_param
mysql_bind_result
mysql_prepare_result
mysql_stmt_close
mysql_stmt_error
mysql_stmt_errno
mysql_fetch
mysql_send_long_data
mysql_multi_query
mysql_next_result
mysql_commit
mysql_rollback
mysql_autocommit
......
...@@ -315,32 +315,27 @@ void Item_param::set_null() ...@@ -315,32 +315,27 @@ void Item_param::set_null()
void Item_param::set_int(longlong i) void Item_param::set_int(longlong i)
{ {
int_value=(longlong)i; int_value=(longlong)i;
item_result_type = INT_RESULT;
item_type = INT_ITEM; item_type = INT_ITEM;
} }
void Item_param::set_double(double value) void Item_param::set_double(double value)
{ {
real_value=value; real_value=value;
item_result_type = REAL_RESULT;
item_type = REAL_ITEM; item_type = REAL_ITEM;
} }
void Item_param::set_value(const char *str, uint length, CHARSET_INFO *cs) void Item_param::set_value(const char *str, uint length)
{ {
str_value.set(str,length,cs); str_value.set(str,length,thd_charset());
item_result_type = STRING_RESULT;
item_type = STRING_ITEM; item_type = STRING_ITEM;
} }
void Item_param::set_longdata(const char *str, ulong length, CHARSET_INFO *cs) void Item_param::set_longdata(const char *str, ulong length)
{ {
/* TODO: Fix this for binary handling by making use of str_value.append(str,length);
buffer_type.. long_data_supplied= 1;
*/
str_value.append(str,length);
} }
......
...@@ -186,8 +186,8 @@ class Item_param :public Item ...@@ -186,8 +186,8 @@ class Item_param :public Item
Item_param(char *name_par=0) Item_param(char *name_par=0)
{ {
name= name_par ? name_par : (char*) "?"; name= name_par ? name_par : (char*) "?";
long_data_supplied = false; long_data_supplied= false;
item_type = STRING_ITEM; item_type= STRING_ITEM;
item_result_type = STRING_RESULT; item_result_type = STRING_RESULT;
} }
enum Type type() const { return item_type; } enum Type type() const { return item_type; }
...@@ -199,12 +199,13 @@ class Item_param :public Item ...@@ -199,12 +199,13 @@ class Item_param :public Item
void set_null(); void set_null();
void set_int(longlong i); void set_int(longlong i);
void set_double(double i); void set_double(double i);
void set_value(const char *str, uint length, CHARSET_INFO *cs); void set_value(const char *str, uint length);
void set_long_str(const char *str, ulong length, CHARSET_INFO *cs); void set_long_str(const char *str, ulong length);
void set_long_binary(const char *str, ulong length, CHARSET_INFO *cs); void set_long_binary(const char *str, ulong length);
void set_longdata(const char *str, ulong length, CHARSET_INFO *cs); void set_longdata(const char *str, ulong length);
void set_long_end(); void set_long_end();
void reset() {} void reset() {}
void (*setup_param_func)(Item_param *param, uchar **pos);
enum Item_result result_type () const enum Item_result result_type () const
{ return item_result_type; } { return item_result_type; }
Item *new_item() { return new Item_param(name); } Item *new_item() { return new Item_param(name); }
......
...@@ -509,7 +509,7 @@ int mysqld_show_column_types(THD *thd); ...@@ -509,7 +509,7 @@ int mysqld_show_column_types(THD *thd);
int mysqld_help (THD *thd, const char *text); int mysqld_help (THD *thd, const char *text);
/* sql_prepare.cc */ /* sql_prepare.cc */
int compare_prep_stmt(PREP_STMT *a, PREP_STMT *b, void *not_used); int compare_prep_stmt(void *not_used, PREP_STMT *stmt, ulong *key);
void free_prep_stmt(PREP_STMT *stmt, TREE_FREE mode, void *not_used); void free_prep_stmt(PREP_STMT *stmt, TREE_FREE mode, void *not_used);
bool mysql_stmt_prepare(THD *thd, char *packet, uint packet_length); bool mysql_stmt_prepare(THD *thd, char *packet, uint packet_length);
void mysql_stmt_execute(THD *thd, char *packet); void mysql_stmt_execute(THD *thd, char *packet);
......
...@@ -325,7 +325,7 @@ typedef struct st_prep_stmt ...@@ -325,7 +325,7 @@ typedef struct st_prep_stmt
uint param_count; uint param_count;
uint last_errno; uint last_errno;
char last_error[MYSQL_ERRMSG_SIZE]; char last_error[MYSQL_ERRMSG_SIZE];
bool error_in_prepare, long_data_used; bool error_in_prepare, long_data_used, param_inited;
} PREP_STMT; } PREP_STMT;
...@@ -510,7 +510,6 @@ class THD :public ilink { ...@@ -510,7 +510,6 @@ class THD :public ilink {
bool safe_to_cache_query; bool safe_to_cache_query;
bool volatile killed; bool volatile killed;
bool prepare_command; bool prepare_command;
Item_param *params; // Pointer to array of params
/* /*
If we do a purge of binary logs, log index info of the threads If we do a purge of binary logs, log index info of the threads
......
...@@ -115,7 +115,7 @@ static const char *warning_level_names[]= {"Note", "Warning", "Error", "?"}; ...@@ -115,7 +115,7 @@ static const char *warning_level_names[]= {"Note", "Warning", "Error", "?"};
my_bool mysqld_show_warnings(THD *thd, ulong levels_to_show) my_bool mysqld_show_warnings(THD *thd, ulong levels_to_show)
{ {
List<Item> field_list; List<Item> field_list;
DBUG_ENTER("mysqld_show_errors"); DBUG_ENTER("mysqld_show_warnings");
field_list.push_back(new Item_empty_string("Level", 7)); field_list.push_back(new Item_empty_string("Level", 7));
field_list.push_back(new Item_int("Code",0,4)); field_list.push_back(new Item_int("Code",0,4));
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment