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
f15c5686
Commit
f15c5686
authored
Jul 26, 2006
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into moonbone.local:/work/19862-bug-5.0-opt-mysql
parents
38091170
1150869c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
8 additions
and
8 deletions
+8
-8
sql/item.h
sql/item.h
+1
-1
sql/item_func.cc
sql/item_func.cc
+2
-2
sql/item_func.h
sql/item_func.h
+4
-1
sql/sql_select.cc
sql/sql_select.cc
+1
-4
No files found.
sql/item.h
View file @
f15c5686
...
...
@@ -752,7 +752,7 @@ class Item {
virtual
bool
find_item_in_field_list_processor
(
byte
*
arg
)
{
return
0
;
}
virtual
bool
change_context_processor
(
byte
*
context
)
{
return
0
;
}
virtual
bool
reset_query_id_processor
(
byte
*
query_id
)
{
return
0
;
}
virtual
bool
func_type_checker
_processor
(
byte
*
arg
)
{
return
0
;
}
virtual
bool
is_expensive
_processor
(
byte
*
arg
)
{
return
0
;
}
virtual
Item
*
equal_fields_propagator
(
byte
*
arg
)
{
return
this
;
}
virtual
Item
*
set_no_const_sub
(
byte
*
arg
)
{
return
this
;
}
...
...
sql/item_func.cc
View file @
f15c5686
...
...
@@ -399,9 +399,9 @@ Field *Item_func::tmp_table_field(TABLE *t_arg)
}
bool
Item_func
::
func_type_checker
_processor
(
byte
*
arg
)
bool
Item_func
::
is_expensive
_processor
(
byte
*
arg
)
{
return
*
((
Functype
*
)
arg
)
==
functyp
e
();
return
is_expensiv
e
();
}
...
...
sql/item_func.h
View file @
f15c5686
...
...
@@ -189,7 +189,8 @@ class Item_func :public Item_result_field
Item
*
transform
(
Item_transformer
transformer
,
byte
*
arg
);
void
traverse_cond
(
Cond_traverser
traverser
,
void
*
arg
,
traverse_order
order
);
bool
func_type_checker_processor
(
byte
*
arg
);
bool
is_expensive_processor
(
byte
*
arg
);
virtual
bool
is_expensive
()
{
return
0
;
}
};
...
...
@@ -947,6 +948,7 @@ class Item_udf_func :public Item_func
void
cleanup
();
Item_result
result_type
()
const
{
return
udf
.
result_type
();
}
table_map
not_null_tables
()
const
{
return
0
;
}
bool
is_expensive
()
{
return
1
;
}
};
...
...
@@ -1475,6 +1477,7 @@ class Item_func_sp :public Item_func
virtual
enum
Functype
functype
()
const
{
return
FUNC_SP
;
}
bool
fix_fields
(
THD
*
thd
,
Item
**
ref
);
bool
is_expensive
()
{
return
1
;
}
};
...
...
sql/sql_select.cc
View file @
f15c5686
...
...
@@ -1073,10 +1073,7 @@ JOIN::optimize()
for
(
ORDER
*
tmp_order
=
order
;
tmp_order
;
tmp_order
=
tmp_order
->
next
)
{
Item
*
item
=
*
tmp_order
->
item
;
Item_func
::
Functype
type
=
Item_func
::
FUNC_SP
;
Item_func
::
Functype
type1
=
Item_func
::
UDF_FUNC
;
if
(
item
->
walk
(
&
Item
::
func_type_checker_processor
,(
byte
*
)
&
type
)
||
item
->
walk
(
&
Item
::
func_type_checker_processor
,(
byte
*
)
&
type1
))
if
(
item
->
walk
(
&
Item
::
is_expensive_processor
,(
byte
*
)
0
))
{
/* Force tmp table without sort */
need_tmp
=
1
;
simple_order
=
simple_group
=
0
;
...
...
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