mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
merge
This commit is contained in:
@ -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
|
2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
|
||||||
deallocate prepare stmt1;
|
deallocate prepare stmt1;
|
||||||
drop tables t1,t2;
|
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;
|
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;
|
deallocate prepare stmt1;
|
||||||
drop tables t1,t2;
|
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) {
|
switch (entry->type) {
|
||||||
case REAL_RESULT:
|
case REAL_RESULT:
|
||||||
set_double(*(double*)entry->value);
|
set_double(*(double*)entry->value);
|
||||||
|
item_type= Item::REAL_ITEM;
|
||||||
|
item_result_type= REAL_RESULT;
|
||||||
break;
|
break;
|
||||||
case INT_RESULT:
|
case INT_RESULT:
|
||||||
set_int(*(longlong*)entry->value, 21);
|
set_int(*(longlong*)entry->value, 21);
|
||||||
|
item_type= Item::INT_ITEM;
|
||||||
|
item_result_type= INT_RESULT;
|
||||||
break;
|
break;
|
||||||
case STRING_RESULT:
|
case STRING_RESULT:
|
||||||
{
|
{
|
||||||
|
20
sql/item.h
20
sql/item.h
@ -422,7 +422,7 @@ public:
|
|||||||
|
|
||||||
class Item_param :public Item
|
class Item_param :public Item
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum enum_item_param_state
|
enum enum_item_param_state
|
||||||
{
|
{
|
||||||
NO_VALUE, NULL_VALUE, INT_VALUE, REAL_VALUE,
|
NO_VALUE, NULL_VALUE, INT_VALUE, REAL_VALUE,
|
||||||
@ -442,8 +442,8 @@ public:
|
|||||||
String str_value_ptr;
|
String str_value_ptr;
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
longlong integer;
|
longlong integer;
|
||||||
double real;
|
double real;
|
||||||
/*
|
/*
|
||||||
Character sets conversion info for string values.
|
Character sets conversion info for string values.
|
||||||
Character sets of client and connection defined at bind time are used
|
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
|
This points at character set of connection if conversion
|
||||||
to it is required (i. e. if placeholder typecode is not BLOB).
|
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()).
|
check in convert_str_value()).
|
||||||
*/
|
*/
|
||||||
CHARSET_INFO *final_character_set_of_str_value;
|
CHARSET_INFO *final_character_set_of_str_value;
|
||||||
@ -477,10 +477,10 @@ public:
|
|||||||
supply for this placeholder in mysql_stmt_execute.
|
supply for this placeholder in mysql_stmt_execute.
|
||||||
*/
|
*/
|
||||||
enum enum_field_types param_type;
|
enum enum_field_types param_type;
|
||||||
/*
|
/*
|
||||||
Offset of placeholder inside statement text. Used to create
|
Offset of placeholder inside statement text. Used to create
|
||||||
no-placeholders version of this statement for the binary log.
|
no-placeholders version of this statement for the binary log.
|
||||||
*/
|
*/
|
||||||
uint pos_in_query;
|
uint pos_in_query;
|
||||||
|
|
||||||
Item_param(uint pos_in_query_arg);
|
Item_param(uint pos_in_query_arg);
|
||||||
@ -515,11 +515,11 @@ public:
|
|||||||
const String *query_val_str(String *str) const;
|
const String *query_val_str(String *str) const;
|
||||||
|
|
||||||
bool convert_str_value(THD *thd);
|
bool convert_str_value(THD *thd);
|
||||||
|
|
||||||
Item *new_item() { return new Item_param(pos_in_query); }
|
Item *new_item() { return new Item_param(pos_in_query); }
|
||||||
/*
|
/*
|
||||||
If value for parameter was not set we treat it as non-const
|
If value for parameter was not set we treat it as non-const
|
||||||
so noone will use parameters value in fix_fields still
|
so noone will use parameters value in fix_fields still
|
||||||
parameter is constant during execution.
|
parameter is constant during execution.
|
||||||
*/
|
*/
|
||||||
virtual table_map used_tables() const
|
virtual table_map used_tables() const
|
||||||
|
Reference in New Issue
Block a user