mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
Merge paul@bk-internal.mysql.com:/home/bk/mysql-4.1
into ice.snake.net:/Volumes/ice2/MySQL/bk/mysql-4.1
This commit is contained in:
commit
6a0676d8be
4 changed files with 40 additions and 10 deletions
|
@ -179,3 +179,16 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
|
||||
deallocate prepare stmt1;
|
||||
drop tables t1,t2;
|
||||
set @arg00=1;
|
||||
prepare stmt1 from ' create table t1 (m int) as select 1 as m ' ;
|
||||
execute stmt1 ;
|
||||
select m from t1;
|
||||
m
|
||||
1
|
||||
drop table t1;
|
||||
prepare stmt1 from ' create table t1 (m int) as select ? as m ' ;
|
||||
execute stmt1 using @arg00;
|
||||
select m from t1;
|
||||
m
|
||||
1
|
||||
drop table t1;
|
||||
|
|
|
@ -166,3 +166,16 @@ execute stmt1 ;
|
|||
explain SELECT (SELECT SUM(c1 + c12 + 0.0) FROM t2 where (t1.c2 - 0e-3) = t2.c2 GROUP BY t1.c15 LIMIT 1) as scalar_s, exists (select 1.0e+0 from t2 where t2.c3 * 9.0000000000 = t1.c4) as exists_s, c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s FROM t1, (select c25 x, c32 y from t2) tt WHERE x * 1 = c25;
|
||||
deallocate prepare stmt1;
|
||||
drop tables t1,t2;
|
||||
|
||||
#
|
||||
# parameters from variables (for field creation)
|
||||
#
|
||||
set @arg00=1;
|
||||
prepare stmt1 from ' create table t1 (m int) as select 1 as m ' ;
|
||||
execute stmt1 ;
|
||||
select m from t1;
|
||||
drop table t1;
|
||||
prepare stmt1 from ' create table t1 (m int) as select ? as m ' ;
|
||||
execute stmt1 using @arg00;
|
||||
select m from t1;
|
||||
drop table t1;
|
||||
|
|
|
@ -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:
|
||||
{
|
||||
|
|
20
sql/item.h
20
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
|
||||
|
|
Loading…
Reference in a new issue