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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
167c9489
Commit
167c9489
authored
Nov 06, 2004
by
ram@gw.mysql.r18.ru
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
A fix (bug #6441: Aggregate UDF in multi-table query crashes MySQL when returning multiple rows).
parent
c3293b87
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
14 additions
and
10 deletions
+14
-10
sql/item_func.cc
sql/item_func.cc
+11
-8
sql/item_sum.h
sql/item_sum.h
+1
-1
sql/sql_udf.h
sql/sql_udf.h
+2
-1
No files found.
sql/item_func.cc
View file @
167c9489
...
@@ -1602,18 +1602,21 @@ longlong Item_func_bit_count::val_int()
...
@@ -1602,18 +1602,21 @@ longlong Item_func_bit_count::val_int()
udf_handler
::~
udf_handler
()
udf_handler
::~
udf_handler
()
{
{
if
(
initialized
)
if
(
!
not_original
)
{
{
if
(
u_d
->
func_deinit
!=
NULL
)
if
(
initialized
)
{
{
void
(
*
deinit
)(
UDF_INIT
*
)
=
(
void
(
*
)(
UDF_INIT
*
))
if
(
u_d
->
func_deinit
!=
NULL
)
u_d
->
func_deinit
;
{
(
*
deinit
)(
&
initid
);
void
(
*
deinit
)(
UDF_INIT
*
)
=
(
void
(
*
)(
UDF_INIT
*
))
u_d
->
func_deinit
;
(
*
deinit
)(
&
initid
);
}
free_udf
(
u_d
);
}
}
free_udf
(
u_d
);
if
(
buffers
)
// Because of bug in ecc
delete
[]
buffers
;
}
}
if
(
buffers
)
// Because of bug in ecc
delete
[]
buffers
;
}
}
...
...
sql/item_sum.h
View file @
167c9489
...
@@ -532,7 +532,7 @@ public:
...
@@ -532,7 +532,7 @@ public:
:
Item_sum
(
list
),
udf
(
udf_arg
)
:
Item_sum
(
list
),
udf
(
udf_arg
)
{
quick_group
=
0
;}
{
quick_group
=
0
;}
Item_udf_sum
(
THD
*
thd
,
Item_udf_sum
*
item
)
Item_udf_sum
(
THD
*
thd
,
Item_udf_sum
*
item
)
:
Item_sum
(
thd
,
item
),
udf
(
item
->
udf
)
{}
:
Item_sum
(
thd
,
item
),
udf
(
item
->
udf
)
{
udf
.
not_original
=
TRUE
;
}
const
char
*
func_name
()
const
{
return
udf
.
name
();
}
const
char
*
func_name
()
const
{
return
udf
.
name
();
}
bool
fix_fields
(
THD
*
thd
,
TABLE_LIST
*
tables
,
Item
**
ref
)
bool
fix_fields
(
THD
*
thd
,
TABLE_LIST
*
tables
,
Item
**
ref
)
{
{
...
...
sql/sql_udf.h
View file @
167c9489
...
@@ -56,8 +56,9 @@ class udf_handler :public Sql_alloc
...
@@ -56,8 +56,9 @@ class udf_handler :public Sql_alloc
public:
public:
table_map
used_tables_cache
;
table_map
used_tables_cache
;
bool
const_item_cache
;
bool
const_item_cache
;
bool
not_original
;
udf_handler
(
udf_func
*
udf_arg
)
:
u_d
(
udf_arg
),
buffers
(
0
),
error
(
0
),
udf_handler
(
udf_func
*
udf_arg
)
:
u_d
(
udf_arg
),
buffers
(
0
),
error
(
0
),
is_null
(
0
),
initialized
(
0
)
is_null
(
0
),
initialized
(
0
)
,
not_original
(
0
)
{}
{}
~
udf_handler
();
~
udf_handler
();
const
char
*
name
()
const
{
return
u_d
?
u_d
->
name
.
str
:
"?"
;
}
const
char
*
name
()
const
{
return
u_d
?
u_d
->
name
.
str
:
"?"
;
}
...
...
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