diff options
author | unknown <bell@sanja.is.com.ua> | 2004-06-25 15:16:00 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2004-06-25 15:16:00 +0300 |
commit | ef0b6f07034d715f4d7e9669d4111906d19746dc (patch) | |
tree | 07ef6265c7e1ff66d5737e4eb9fa248e19ee31dd /sql | |
parent | d1e4305187a2e2c613f7cd289ad2cd2df914ea18 (diff) | |
download | mariadb-git-ef0b6f07034d715f4d7e9669d4111906d19746dc.tar.gz |
type of parameter assignment for parameters from variables added (BUG#4280)
mysql-test/r/ps.result:
parameters from variables (for field creation)
mysql-test/t/ps.test:
parameters from variables (for field creation)
sql/item.cc:
type of parameter assignment for parameters from variables
sql/item.h:
removed spaces at line ends in Item_param definition
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item.cc | 4 | ||||
-rw-r--r-- | sql/item.h | 20 |
2 files changed, 14 insertions, 10 deletions
diff --git a/sql/item.cc b/sql/item.cc index 0e9a73aacb2..658f5c42a43 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -759,9 +759,13 @@ bool Item_param::set_from_user_var(THD *thd, const user_var_entry *entry) switch (entry->type) { case REAL_RESULT: set_double(*(double*)entry->value); + item_type= Item::REAL_ITEM; + item_result_type= REAL_RESULT; break; case INT_RESULT: set_int(*(longlong*)entry->value, 21); + item_type= Item::INT_ITEM; + item_result_type= INT_RESULT; break; case STRING_RESULT: { diff --git a/sql/item.h b/sql/item.h index fe8c2cb0df1..235b15c56fc 100644 --- a/sql/item.h +++ b/sql/item.h @@ -422,7 +422,7 @@ public: class Item_param :public Item { -public: +public: enum enum_item_param_state { NO_VALUE, NULL_VALUE, INT_VALUE, REAL_VALUE, @@ -442,8 +442,8 @@ public: String str_value_ptr; union { - longlong integer; - double real; + longlong integer; + double real; /* Character sets conversion info for string values. Character sets of client and connection defined at bind time are used @@ -456,7 +456,7 @@ public: /* This points at character set of connection if conversion to it is required (i. e. if placeholder typecode is not BLOB). - Otherwise it's equal to character_set_client (to simplify + Otherwise it's equal to character_set_client (to simplify check in convert_str_value()). */ CHARSET_INFO *final_character_set_of_str_value; @@ -477,10 +477,10 @@ public: supply for this placeholder in mysql_stmt_execute. */ enum enum_field_types param_type; - /* + /* Offset of placeholder inside statement text. Used to create no-placeholders version of this statement for the binary log. - */ + */ uint pos_in_query; Item_param(uint pos_in_query_arg); @@ -515,11 +515,11 @@ public: const String *query_val_str(String *str) const; bool convert_str_value(THD *thd); - + Item *new_item() { return new Item_param(pos_in_query); } - /* - If value for parameter was not set we treat it as non-const - so noone will use parameters value in fix_fields still + /* + If value for parameter was not set we treat it as non-const + so noone will use parameters value in fix_fields still parameter is constant during execution. */ virtual table_map used_tables() const |