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
7cb3e592
Commit
7cb3e592
authored
May 13, 2005
by
serg@serg.mylan
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
parents
047fa114
6b85ca33
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
162 additions
and
29 deletions
+162
-29
BitKeeper/etc/config
BitKeeper/etc/config
+1
-0
BitKeeper/etc/logging_ok
BitKeeper/etc/logging_ok
+1
-0
libmysql/errmsg.c
libmysql/errmsg.c
+3
-3
mysql-test/r/sp.result
mysql-test/r/sp.result
+25
-0
mysql-test/r/type_newdecimal.result
mysql-test/r/type_newdecimal.result
+9
-0
mysql-test/t/sp.test
mysql-test/t/sp.test
+29
-0
mysql-test/t/type_newdecimal.test
mysql-test/t/type_newdecimal.test
+10
-0
sql/field.cc
sql/field.cc
+6
-1
sql/item.cc
sql/item.cc
+7
-0
sql/item.h
sql/item.h
+12
-2
sql/item_func.cc
sql/item_func.cc
+1
-1
sql/sp_head.cc
sql/sp_head.cc
+42
-13
sql/sp_rcontext.cc
sql/sp_rcontext.cc
+3
-3
sql/sp_rcontext.h
sql/sp_rcontext.h
+9
-1
sql/sql_class.cc
sql/sql_class.cc
+3
-4
sql/sql_lex.h
sql/sql_lex.h
+1
-1
No files found.
BitKeeper/etc/config
View file @
7cb3e592
...
@@ -69,6 +69,7 @@ pager:
...
@@ -69,6 +69,7 @@ pager:
hours:
hours:
[serg:]checkout:get
[serg:]checkout:get
[arjen:]checkout:get
[arjen:]checkout:get
[kostja:]checkout:get
[nick:]checkout:get
[nick:]checkout:get
checkout:edit
checkout:edit
eoln:unix
eoln:unix
BitKeeper/etc/logging_ok
View file @
7cb3e592
...
@@ -126,6 +126,7 @@ kaa@polly.local
...
@@ -126,6 +126,7 @@ kaa@polly.local
kaj@work.mysql.com
kaj@work.mysql.com
kent@mysql.com
kent@mysql.com
konstantin@mysql.com
konstantin@mysql.com
kosipov@production.mysql.com
kostja@oak.local
kostja@oak.local
lars@mysql.com
lars@mysql.com
lenz@kallisto.mysql.com
lenz@kallisto.mysql.com
...
...
libmysql/errmsg.c
View file @
7cb3e592
...
@@ -80,7 +80,7 @@ const char *client_errors[]=
...
@@ -80,7 +80,7 @@ const char *client_errors[]=
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Attempt to read column without prior row fetch"
,
"Attempt to read column without prior row fetch"
,
"Prepared statement contains no metadata"
,
"Prepared statement contains no metadata"
,
"Attempt to read a row while there is no result set associated with the statement"
"Attempt to read a row while there is no result set associated with the statement"
,
""
""
};
};
...
@@ -142,7 +142,7 @@ const char *client_errors[]=
...
@@ -142,7 +142,7 @@ const char *client_errors[]=
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Attempt to read column without prior row fetch"
,
"Attempt to read column without prior row fetch"
,
"Prepared statement contains no metadata"
,
"Prepared statement contains no metadata"
,
"Attempt to read a row while there is no result set associated with the statement"
"Attempt to read a row while there is no result set associated with the statement"
,
""
""
};
};
...
@@ -202,7 +202,7 @@ const char *client_errors[]=
...
@@ -202,7 +202,7 @@ const char *client_errors[]=
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Attempt to read column without prior row fetch"
,
"Attempt to read column without prior row fetch"
,
"Prepared statement contains no metadata"
,
"Prepared statement contains no metadata"
,
"Attempt to read a row while there is no result set associated with the statement"
"Attempt to read a row while there is no result set associated with the statement"
,
""
""
};
};
#endif
#endif
...
...
mysql-test/r/sp.result
View file @
7cb3e592
...
@@ -3073,4 +3073,29 @@ update v1 set data = 10|
...
@@ -3073,4 +3073,29 @@ update v1 set data = 10|
call bug9841()|
call bug9841()|
drop view v1|
drop view v1|
drop procedure bug9841|
drop procedure bug9841|
drop procedure if exists bug5963|
create procedure bug5963_1 () begin declare v int; set v = (select s1 from t3); select v; end;|
create table t3 (s1 int)|
insert into t3 values (5)|
call bug5963_1()|
v
5
call bug5963_1()|
v
5
drop procedure bug5963_1|
drop table t3|
create procedure bug5963_2 (cfk_value int)
begin
if cfk_value in (select cpk from t3) then
set @x = 5;
end if;
end;
|
create table t3 (cpk int)|
insert into t3 values (1)|
call bug5963_2(1)|
call bug5963_2(1)|
drop procedure bug5963_2|
drop table t3|
drop table t1,t2;
drop table t1,t2;
mysql-test/r/type_newdecimal.result
View file @
7cb3e592
...
@@ -876,3 +876,12 @@ SELECT * FROM t1;
...
@@ -876,3 +876,12 @@ SELECT * FROM t1;
f1 f2
f1 f2
9999999999999999999999999999999999.00000000000000000000 0.00
9999999999999999999999999999999999.00000000000000000000 0.00
DROP TABLE t1;
DROP TABLE t1;
CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB;
INSERT INTO t1 (GRADE) VALUES (151),(252),(343);
SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300;
GRADE
252
SELECT GRADE FROM t1 WHERE GRADE= 151;
GRADE
151
DROP TABLE t1;
mysql-test/t/sp.test
View file @
7cb3e592
...
@@ -3772,6 +3772,35 @@ drop view v1|
...
@@ -3772,6 +3772,35 @@ drop view v1|
drop
procedure
bug9841
|
drop
procedure
bug9841
|
#
# BUG#5963 subqueries in SET/IF
#
--
disable_warnings
drop
procedure
if
exists
bug5963
|
--
enable_warnings
create
procedure
bug5963_1
()
begin
declare
v
int
;
set
v
=
(
select
s1
from
t3
);
select
v
;
end
;
|
create
table
t3
(
s1
int
)
|
insert
into
t3
values
(
5
)
|
call
bug5963_1
()
|
call
bug5963_1
()
|
drop
procedure
bug5963_1
|
drop
table
t3
|
create
procedure
bug5963_2
(
cfk_value
int
)
begin
if
cfk_value
in
(
select
cpk
from
t3
)
then
set
@
x
=
5
;
end
if
;
end
;
|
create
table
t3
(
cpk
int
)
|
insert
into
t3
values
(
1
)
|
call
bug5963_2
(
1
)
|
call
bug5963_2
(
1
)
|
drop
procedure
bug5963_2
|
drop
table
t3
|
#
#
# BUG#NNNN: New bug synopsis
# BUG#NNNN: New bug synopsis
#
#
...
...
mysql-test/t/type_newdecimal.test
View file @
7cb3e592
...
@@ -906,3 +906,13 @@ CREATE TABLE t1 (f1 DECIMAL (64,20), f2 DECIMAL(2,2));
...
@@ -906,3 +906,13 @@ CREATE TABLE t1 (f1 DECIMAL (64,20), f2 DECIMAL(2,2));
INSERT
INTO
t1
VALUES
(
9999999999999999999999999999999999
,
0
);
INSERT
INTO
t1
VALUES
(
9999999999999999999999999999999999
,
0
);
SELECT
*
FROM
t1
;
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
DROP
TABLE
t1
;
#
# Bug #10465
#
CREATE
TABLE
t1
(
GRADE
DECIMAL
(
4
)
NOT
NULL
,
PRIMARY
KEY
(
GRADE
))
ENGINE
=
INNODB
;
INSERT
INTO
t1
(
GRADE
)
VALUES
(
151
),(
252
),(
343
);
SELECT
GRADE
FROM
t1
WHERE
GRADE
>
160
AND
GRADE
<
300
;
SELECT
GRADE
FROM
t1
WHERE
GRADE
=
151
;
DROP
TABLE
t1
;
sql/field.cc
View file @
7cb3e592
...
@@ -8060,7 +8060,12 @@ void create_field::create_length_to_internal_length(void)
...
@@ -8060,7 +8060,12 @@ void create_field::create_length_to_internal_length(void)
}
}
break
;
break
;
case
MYSQL_TYPE_NEWDECIMAL
:
case
MYSQL_TYPE_NEWDECIMAL
:
key_length
=
pack_length
=
my_decimal_get_binary_size
(
length
,
decimals
);
key_length
=
pack_length
=
my_decimal_get_binary_size
(
my_decimal_length_to_precision
(
length
,
decimals
,
flags
&
UNSIGNED_FLAG
),
decimals
);
break
;
break
;
default:
default:
key_length
=
pack_length
=
calc_pack_length
(
sql_type
,
length
);
key_length
=
pack_length
=
calc_pack_length
(
sql_type
,
length
);
...
...
sql/item.cc
View file @
7cb3e592
...
@@ -740,6 +740,13 @@ Item_splocal::this_item()
...
@@ -740,6 +740,13 @@ Item_splocal::this_item()
return
thd
->
spcont
->
get_item
(
m_offset
);
return
thd
->
spcont
->
get_item
(
m_offset
);
}
}
Item
**
Item_splocal
::
this_item_addr
(
THD
*
thd
,
Item
**
addr
)
{
return
thd
->
spcont
->
get_item_addr
(
m_offset
);
}
Item
*
Item
*
Item_splocal
::
this_const_item
()
const
Item_splocal
::
this_const_item
()
const
{
{
...
...
sql/item.h
View file @
7cb3e592
...
@@ -526,7 +526,16 @@ class Item {
...
@@ -526,7 +526,16 @@ class Item {
virtual
Item
*
set_no_const_sub
(
byte
*
arg
)
{
return
this
;
}
virtual
Item
*
set_no_const_sub
(
byte
*
arg
)
{
return
this
;
}
virtual
Item
*
replace_equal_field
(
byte
*
arg
)
{
return
this
;
}
virtual
Item
*
replace_equal_field
(
byte
*
arg
)
{
return
this
;
}
virtual
Item
*
this_item
()
{
return
this
;
}
/* For SPs mostly. */
/*
For SP local variable returns pointer to Item representing its
current value and pointer to current Item otherwise.
*/
virtual
Item
*
this_item
()
{
return
this
;
}
/*
For SP local variable returns address of pointer to Item representing its
current value and pointer passed via parameter otherwise.
*/
virtual
Item
**
this_item_addr
(
THD
*
thd
,
Item
**
addr
)
{
return
addr
;
}
virtual
Item
*
this_const_item
()
const
{
return
const_cast
<
Item
*>
(
this
);
}
/* For SPs mostly. */
virtual
Item
*
this_const_item
()
const
{
return
const_cast
<
Item
*>
(
this
);
}
/* For SPs mostly. */
// Row emulation
// Row emulation
...
@@ -573,6 +582,7 @@ class Item_splocal : public Item
...
@@ -573,6 +582,7 @@ class Item_splocal : public Item
bool
is_splocal
()
{
return
1
;
}
/* Needed for error checking */
bool
is_splocal
()
{
return
1
;
}
/* Needed for error checking */
Item
*
this_item
();
Item
*
this_item
();
Item
**
this_item_addr
(
THD
*
thd
,
Item
**
);
Item
*
this_const_item
()
const
;
Item
*
this_const_item
()
const
;
bool
fix_fields
(
THD
*
,
struct
st_table_list
*
,
Item
**
);
bool
fix_fields
(
THD
*
,
struct
st_table_list
*
,
Item
**
);
...
...
sql/item_func.cc
View file @
7cb3e592
...
@@ -1255,8 +1255,8 @@ void Item_func_div::result_precision()
...
@@ -1255,8 +1255,8 @@ void Item_func_div::result_precision()
void
Item_func_div
::
fix_length_and_dec
()
void
Item_func_div
::
fix_length_and_dec
()
{
{
DBUG_ENTER
(
"Item_func_div::fix_length_and_dec"
);
DBUG_ENTER
(
"Item_func_div::fix_length_and_dec"
);
Item_num_op
::
fix_length_and_dec
();
prec_increment
=
current_thd
->
variables
.
div_precincrement
;
prec_increment
=
current_thd
->
variables
.
div_precincrement
;
Item_num_op
::
fix_length_and_dec
();
switch
(
hybrid_type
)
{
switch
(
hybrid_type
)
{
case
REAL_RESULT
:
case
REAL_RESULT
:
{
{
...
...
sql/sp_head.cc
View file @
7cb3e592
...
@@ -97,19 +97,48 @@ sp_multi_results_command(enum enum_sql_command cmd)
...
@@ -97,19 +97,48 @@ sp_multi_results_command(enum enum_sql_command cmd)
}
}
}
}
/*
Prepare Item for execution (call of fix_fields)
SYNOPSIS
sp_prepare_func_item()
thd thread handler
it_addr pointer on item refernce
RETURN
NULL error
prepared item
*/
static
Item
*
sp_prepare_func_item
(
THD
*
thd
,
Item
**
it_addr
)
{
Item
*
it
=
*
it_addr
;
DBUG_ENTER
(
"sp_prepare_func_item"
);
it_addr
=
it
->
this_item_addr
(
thd
,
it_addr
);
if
(
!
it
->
fixed
&&
(
*
it_addr
)
->
fix_fields
(
thd
,
0
,
it_addr
))
{
DBUG_PRINT
(
"info"
,
(
"fix_fields() failed"
));
DBUG_RETURN
(
NULL
);
}
DBUG_RETURN
(
*
it_addr
);
}
/* Evaluate a (presumed) func item. Always returns an item, the parameter
/* Evaluate a (presumed) func item. Always returns an item, the parameter
** if nothing else.
** if nothing else.
*/
*/
Item
*
Item
*
sp_eval_func_item
(
THD
*
thd
,
Item
*
it
,
enum
enum_field_types
type
)
sp_eval_func_item
(
THD
*
thd
,
Item
*
*
it_addr
,
enum
enum_field_types
type
)
{
{
DBUG_ENTER
(
"sp_eval_func_item"
);
DBUG_ENTER
(
"sp_eval_func_item"
);
it
=
it
->
this_item
(
);
Item
*
it
=
sp_prepare_func_item
(
thd
,
it_addr
);
DBUG_PRINT
(
"info"
,
(
"type: %d"
,
type
));
DBUG_PRINT
(
"info"
,
(
"type: %d"
,
type
));
if
(
!
it
->
fixed
&&
it
->
fix_fields
(
thd
,
0
,
&
it
)
)
if
(
!
it
)
{
{
DBUG_PRINT
(
"info"
,
(
"fix_fields() failed"
));
DBUG_RETURN
(
NULL
);
DBUG_RETURN
(
NULL
);
}
}
...
@@ -679,7 +708,7 @@ sp_head::execute_function(THD *thd, Item **argp, uint argcount, Item **resp)
...
@@ -679,7 +708,7 @@ sp_head::execute_function(THD *thd, Item **argp, uint argcount, Item **resp)
for
(
i
=
0
;
i
<
params
&&
i
<
argcount
;
i
++
)
for
(
i
=
0
;
i
<
params
&&
i
<
argcount
;
i
++
)
{
{
sp_pvar_t
*
pvar
=
m_pcont
->
find_pvar
(
i
);
sp_pvar_t
*
pvar
=
m_pcont
->
find_pvar
(
i
);
Item
*
it
=
sp_eval_func_item
(
thd
,
*
argp
++
,
pvar
->
type
);
Item
*
it
=
sp_eval_func_item
(
thd
,
argp
++
,
pvar
->
type
);
if
(
it
)
if
(
it
)
nctx
->
push_item
(
it
);
nctx
->
push_item
(
it
);
...
@@ -761,7 +790,7 @@ sp_head::execute_procedure(THD *thd, List<Item> *args)
...
@@ -761,7 +790,7 @@ sp_head::execute_procedure(THD *thd, List<Item> *args)
{
{
Item_null
*
nit
=
NULL
;
// Re-use this, and only create if needed
Item_null
*
nit
=
NULL
;
// Re-use this, and only create if needed
uint
i
;
uint
i
;
List_iterator
_fast
<
Item
>
li
(
*
args
);
List_iterator
<
Item
>
li
(
*
args
);
Item
*
it
;
Item
*
it
;
nctx
=
new
sp_rcontext
(
csize
,
hmax
,
cmax
);
nctx
=
new
sp_rcontext
(
csize
,
hmax
,
cmax
);
...
@@ -794,7 +823,7 @@ sp_head::execute_procedure(THD *thd, List<Item> *args)
...
@@ -794,7 +823,7 @@ sp_head::execute_procedure(THD *thd, List<Item> *args)
}
}
else
else
{
{
Item
*
it2
=
sp_eval_func_item
(
thd
,
it
,
pvar
->
type
);
Item
*
it2
=
sp_eval_func_item
(
thd
,
li
.
ref
()
,
pvar
->
type
);
if
(
it2
)
if
(
it2
)
nctx
->
push_item
(
it2
);
// IN or INOUT
nctx
->
push_item
(
it2
);
// IN or INOUT
...
@@ -1439,7 +1468,7 @@ sp_instr_set::exec_core(THD *thd, uint *nextp)
...
@@ -1439,7 +1468,7 @@ sp_instr_set::exec_core(THD *thd, uint *nextp)
Item
*
it
;
Item
*
it
;
int
res
;
int
res
;
it
=
sp_eval_func_item
(
thd
,
m_value
,
m_type
);
it
=
sp_eval_func_item
(
thd
,
&
m_value
,
m_type
);
if
(
!
it
)
if
(
!
it
)
res
=
-
1
;
res
=
-
1
;
else
else
...
@@ -1569,13 +1598,13 @@ sp_instr_jump_if::exec_core(THD *thd, uint *nextp)
...
@@ -1569,13 +1598,13 @@ sp_instr_jump_if::exec_core(THD *thd, uint *nextp)
Item
*
it
;
Item
*
it
;
int
res
;
int
res
;
it
=
sp_
eval_func_item
(
thd
,
m_expr
,
MYSQL_TYPE_TINY
);
it
=
sp_
prepare_func_item
(
thd
,
&
m_expr
);
if
(
!
it
)
if
(
!
it
)
res
=
-
1
;
res
=
-
1
;
else
else
{
{
res
=
0
;
res
=
0
;
if
(
it
->
val_
int
())
if
(
it
->
val_
bool
())
*
nextp
=
m_dest
;
*
nextp
=
m_dest
;
else
else
*
nextp
=
m_ip
+
1
;
*
nextp
=
m_ip
+
1
;
...
@@ -1627,13 +1656,13 @@ sp_instr_jump_if_not::exec_core(THD *thd, uint *nextp)
...
@@ -1627,13 +1656,13 @@ sp_instr_jump_if_not::exec_core(THD *thd, uint *nextp)
Item
*
it
;
Item
*
it
;
int
res
;
int
res
;
it
=
sp_
eval_func_item
(
thd
,
m_expr
,
MYSQL_TYPE_TINY
);
it
=
sp_
prepare_func_item
(
thd
,
&
m_expr
);
if
(
!
it
)
if
(
!
it
)
res
=
-
1
;
res
=
-
1
;
else
else
{
{
res
=
0
;
res
=
0
;
if
(
!
it
->
val_
int
())
if
(
!
it
->
val_
bool
())
*
nextp
=
m_dest
;
*
nextp
=
m_dest
;
else
else
*
nextp
=
m_ip
+
1
;
*
nextp
=
m_ip
+
1
;
...
@@ -1685,7 +1714,7 @@ sp_instr_freturn::exec_core(THD *thd, uint *nextp)
...
@@ -1685,7 +1714,7 @@ sp_instr_freturn::exec_core(THD *thd, uint *nextp)
Item
*
it
;
Item
*
it
;
int
res
;
int
res
;
it
=
sp_eval_func_item
(
thd
,
m_value
,
m_type
);
it
=
sp_eval_func_item
(
thd
,
&
m_value
,
m_type
);
if
(
!
it
)
if
(
!
it
)
res
=
-
1
;
res
=
-
1
;
else
else
...
...
sql/sp_rcontext.cc
View file @
7cb3e592
...
@@ -41,10 +41,10 @@ sp_rcontext::sp_rcontext(uint fsize, uint hmax, uint cmax)
...
@@ -41,10 +41,10 @@ sp_rcontext::sp_rcontext(uint fsize, uint hmax, uint cmax)
}
}
int
int
sp_rcontext
::
set_item_eval
(
uint
idx
,
Item
*
i
,
enum_field_types
type
)
sp_rcontext
::
set_item_eval
(
uint
idx
,
Item
*
*
item_addr
,
enum_field_types
type
)
{
{
extern
Item
*
sp_eval_func_item
(
THD
*
thd
,
Item
*
it
,
enum_field_types
type
);
extern
Item
*
sp_eval_func_item
(
THD
*
thd
,
Item
*
*
it
,
enum_field_types
type
);
Item
*
it
=
sp_eval_func_item
(
current_thd
,
i
,
type
);
Item
*
it
=
sp_eval_func_item
(
current_thd
,
i
tem_addr
,
type
);
if
(
!
it
)
if
(
!
it
)
return
-
1
;
return
-
1
;
...
...
sql/sp_rcontext.h
View file @
7cb3e592
...
@@ -74,7 +74,7 @@ class sp_rcontext : public Sql_alloc
...
@@ -74,7 +74,7 @@ class sp_rcontext : public Sql_alloc
/* Returns 0 on success, -1 on (eval) failure */
/* Returns 0 on success, -1 on (eval) failure */
int
int
set_item_eval
(
uint
idx
,
Item
*
i
,
enum_field_types
type
);
set_item_eval
(
uint
idx
,
Item
*
*
i
,
enum_field_types
type
);
inline
Item
*
inline
Item
*
get_item
(
uint
idx
)
get_item
(
uint
idx
)
...
@@ -82,6 +82,14 @@ class sp_rcontext : public Sql_alloc
...
@@ -82,6 +82,14 @@ class sp_rcontext : public Sql_alloc
return
m_frame
[
idx
];
return
m_frame
[
idx
];
}
}
inline
Item
**
get_item_addr
(
uint
idx
)
{
return
m_frame
+
idx
;
}
inline
void
inline
void
set_result
(
Item
*
it
)
set_result
(
Item
*
it
)
{
{
...
...
sql/sql_class.cc
View file @
7cb3e592
...
@@ -1719,10 +1719,9 @@ bool select_dumpvar::send_data(List<Item> &items)
...
@@ -1719,10 +1719,9 @@ bool select_dumpvar::send_data(List<Item> &items)
List_iterator_fast
<
Item_func_set_user_var
>
li
(
vars
);
List_iterator_fast
<
Item_func_set_user_var
>
li
(
vars
);
List_iterator_fast
<
Item_splocal
>
var_li
(
local_vars
);
List_iterator_fast
<
Item_splocal
>
var_li
(
local_vars
);
List_iterator_fast
<
my_var
>
my_li
(
var_list
);
List_iterator_fast
<
my_var
>
my_li
(
var_list
);
List_iterator
_fast
<
Item
>
it
(
items
);
List_iterator
<
Item
>
it
(
items
);
Item_func_set_user_var
*
xx
;
Item_func_set_user_var
*
xx
;
Item_splocal
*
yy
;
Item_splocal
*
yy
;
Item
*
item
;
my_var
*
zz
;
my_var
*
zz
;
DBUG_ENTER
(
"send_data"
);
DBUG_ENTER
(
"send_data"
);
if
(
unit
->
offset_limit_cnt
)
if
(
unit
->
offset_limit_cnt
)
...
@@ -1741,13 +1740,13 @@ bool select_dumpvar::send_data(List<Item> &items)
...
@@ -1741,13 +1740,13 @@ bool select_dumpvar::send_data(List<Item> &items)
my_message
(
ER_TOO_MANY_ROWS
,
ER
(
ER_TOO_MANY_ROWS
),
MYF
(
0
));
my_message
(
ER_TOO_MANY_ROWS
,
ER
(
ER_TOO_MANY_ROWS
),
MYF
(
0
));
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
}
}
while
((
zz
=
my_li
++
)
&&
(
it
em
=
it
++
))
while
((
zz
=
my_li
++
)
&&
(
it
++
))
{
{
if
(
zz
->
local
)
if
(
zz
->
local
)
{
{
if
((
yy
=
var_li
++
))
if
((
yy
=
var_li
++
))
{
{
if
(
thd
->
spcont
->
set_item_eval
(
yy
->
get_offset
(),
it
em
,
zz
->
type
))
if
(
thd
->
spcont
->
set_item_eval
(
yy
->
get_offset
(),
it
.
ref
()
,
zz
->
type
))
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
}
}
}
}
...
...
sql/sql_lex.h
View file @
7cb3e592
...
@@ -296,7 +296,7 @@ class st_select_lex_node {
...
@@ -296,7 +296,7 @@ class st_select_lex_node {
*
link_next
,
**
link_prev
;
/* list of whole SELECT_LEX */
*
link_next
,
**
link_prev
;
/* list of whole SELECT_LEX */
public:
public:
ulong
options
;
ulong
long
options
;
/*
/*
result of this query can't be cached, bit field, can be :
result of this query can't be cached, bit field, can be :
UNCACHEABLE_DEPENDENT
UNCACHEABLE_DEPENDENT
...
...
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