Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
74b01ca3
Commit
74b01ca3
authored
Jun 25, 2004
by
bell@sanja.is.com.ua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
type of parameter assignment for parameters from variables added (BUG#4280)
parent
f6ea88e8
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
42 additions
and
10 deletions
+42
-10
mysql-test/r/ps.result
mysql-test/r/ps.result
+14
-0
mysql-test/t/ps.test
mysql-test/t/ps.test
+14
-0
sql/item.cc
sql/item.cc
+4
-0
sql/item.h
sql/item.h
+10
-10
No files found.
mysql-test/r/ps.result
View file @
74b01ca3
...
...
@@ -137,3 +137,17 @@ execute stmt1;
FOUND_ROWS()
0
deallocate prepare stmt1;
drop table t1;
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;
mysql-test/t/ps.test
View file @
74b01ca3
...
...
@@ -140,3 +140,17 @@ execute stmt1;
# Expect 0
execute
stmt1
;
deallocate
prepare
stmt1
;
drop
table
t1
;
#
# 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
;
sql/item.cc
View file @
74b01ca3
...
...
@@ -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
:
{
...
...
sql/item.h
View file @
74b01ca3
...
...
@@ -422,7 +422,7 @@ class Item_null :public Item
class
Item_param
:
public
Item
{
public:
public:
enum
enum_item_param_state
{
NO_VALUE
,
NULL_VALUE
,
INT_VALUE
,
REAL_VALUE
,
...
...
@@ -442,8 +442,8 @@ class Item_param :public Item
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 @@ class Item_param :public Item
/*
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 @@ class Item_param :public Item
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 @@ class Item_param :public Item
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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment