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
753d1f86
Commit
753d1f86
authored
Nov 18, 2015
by
Sergey Vojtovich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MDEV-8716 - Obsolete sql_calloc() in favor of THD::calloc() and thd_calloc()
parent
0746a077
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
66 additions
and
70 deletions
+66
-70
sql/item.h
sql/item.h
+2
-3
sql/item_buff.cc
sql/item_buff.cc
+1
-1
sql/item_cmpfunc.cc
sql/item_cmpfunc.cc
+16
-13
sql/item_cmpfunc.h
sql/item_cmpfunc.h
+8
-9
sql/partition_info.cc
sql/partition_info.cc
+13
-12
sql/partition_info.h
sql/partition_info.h
+7
-5
sql/sql_partition.cc
sql/sql_partition.cc
+15
-14
sql/sql_statistics.cc
sql/sql_statistics.cc
+4
-3
sql/thr_malloc.cc
sql/thr_malloc.cc
+0
-9
sql/thr_malloc.h
sql/thr_malloc.h
+0
-1
No files found.
sql/item.h
View file @
753d1f86
...
...
@@ -25,7 +25,6 @@
#include "sql_priv.h"
/* STRING_BUFFER_USUAL_SIZE */
#include "unireg.h"
#include "sql_const.h"
/* RAND_TABLE_BIT, MAX_FIELD_NAME */
#include "thr_malloc.h"
/* sql_calloc */
#include "field.h"
/* Derivation */
#include "sql_type.h"
...
...
@@ -4790,11 +4789,11 @@ class Cached_item_field :public Cached_item
uint
length
;
public:
Cached_item_field
(
Field
*
arg_field
)
:
field
(
arg_field
)
Cached_item_field
(
THD
*
thd
,
Field
*
arg_field
)
:
field
(
arg_field
)
{
field
=
arg_field
;
/* TODO: take the memory allocation below out of the constructor. */
buff
=
(
uchar
*
)
sql_calloc
(
length
=
field
->
pack_length
());
buff
=
(
uchar
*
)
thd_calloc
(
thd
,
length
=
field
->
pack_length
());
}
bool
cmp
(
void
);
};
...
...
sql/item_buff.cc
View file @
753d1f86
...
...
@@ -43,7 +43,7 @@ Cached_item *new_Cached_item(THD *thd, Item *item, bool pass_through_ref)
{
Item_field
*
real_item
=
(
Item_field
*
)
item
->
real_item
();
Field
*
cached_field
=
real_item
->
field
;
return
new
Cached_item_field
(
cached_field
);
return
new
(
thd
->
mem_root
)
Cached_item_field
(
thd
,
cached_field
);
}
switch
(
item
->
result_type
())
{
case
STRING_RESULT
:
...
...
sql/item_cmpfunc.cc
View file @
753d1f86
...
...
@@ -3452,8 +3452,9 @@ int in_vector::find(Item *item)
return
(
int
)
((
*
compare
)(
collation
,
base
+
start
*
size
,
result
)
==
0
);
}
in_string
::
in_string
(
uint
elements
,
qsort2_cmp
cmp_func
,
CHARSET_INFO
*
cs
)
:
in_vector
(
elements
,
sizeof
(
String
),
cmp_func
,
cs
),
in_string
::
in_string
(
THD
*
thd
,
uint
elements
,
qsort2_cmp
cmp_func
,
CHARSET_INFO
*
cs
)
:
in_vector
(
thd
,
elements
,
sizeof
(
String
),
cmp_func
,
cs
),
tmp
(
buff
,
sizeof
(
buff
),
&
my_charset_bin
)
{}
...
...
@@ -3536,8 +3537,9 @@ void in_row::set(uint pos, Item *item)
DBUG_VOID_RETURN
;
}
in_longlong
::
in_longlong
(
uint
elements
)
:
in_vector
(
elements
,
sizeof
(
packed_longlong
),(
qsort2_cmp
)
cmp_longlong
,
0
)
in_longlong
::
in_longlong
(
THD
*
thd
,
uint
elements
)
:
in_vector
(
thd
,
elements
,
sizeof
(
packed_longlong
),
(
qsort2_cmp
)
cmp_longlong
,
0
)
{}
void
in_longlong
::
set
(
uint
pos
,
Item
*
item
)
...
...
@@ -3594,8 +3596,8 @@ Item *in_datetime::create_item(THD *thd)
}
in_double
::
in_double
(
uint
elements
)
:
in_vector
(
elements
,
sizeof
(
double
),
(
qsort2_cmp
)
cmp_double
,
0
)
in_double
::
in_double
(
THD
*
thd
,
uint
elements
)
:
in_vector
(
thd
,
elements
,
sizeof
(
double
),
(
qsort2_cmp
)
cmp_double
,
0
)
{}
void
in_double
::
set
(
uint
pos
,
Item
*
item
)
...
...
@@ -3617,8 +3619,8 @@ Item *in_double::create_item(THD *thd)
}
in_decimal
::
in_decimal
(
uint
elements
)
:
in_vector
(
elements
,
sizeof
(
my_decimal
),
(
qsort2_cmp
)
cmp_decimal
,
0
)
in_decimal
::
in_decimal
(
THD
*
thd
,
uint
elements
)
:
in_vector
(
thd
,
elements
,
sizeof
(
my_decimal
),
(
qsort2_cmp
)
cmp_decimal
,
0
)
{}
...
...
@@ -4063,14 +4065,15 @@ void Item_func_in::fix_length_and_dec()
}
switch
(
m_compare_type
)
{
case
STRING_RESULT
:
array
=
new
(
thd
->
mem_root
)
in_string
(
arg_count
-
1
,(
qsort2_cmp
)
srtcmp_in
,
array
=
new
(
thd
->
mem_root
)
in_string
(
thd
,
arg_count
-
1
,
(
qsort2_cmp
)
srtcmp_in
,
cmp_collation
.
collation
);
break
;
case
INT_RESULT
:
array
=
new
(
thd
->
mem_root
)
in_longlong
(
arg_count
-
1
);
array
=
new
(
thd
->
mem_root
)
in_longlong
(
thd
,
arg_count
-
1
);
break
;
case
REAL_RESULT
:
array
=
new
(
thd
->
mem_root
)
in_double
(
arg_count
-
1
);
array
=
new
(
thd
->
mem_root
)
in_double
(
thd
,
arg_count
-
1
);
break
;
case
ROW_RESULT
:
/*
...
...
@@ -4081,11 +4084,11 @@ void Item_func_in::fix_length_and_dec()
((
in_row
*
)
array
)
->
tmp
.
store_value
(
args
[
0
]);
break
;
case
DECIMAL_RESULT
:
array
=
new
(
thd
->
mem_root
)
in_decimal
(
arg_count
-
1
);
array
=
new
(
thd
->
mem_root
)
in_decimal
(
thd
,
arg_count
-
1
);
break
;
case
TIME_RESULT
:
date_arg
=
find_date_time_item
(
args
,
arg_count
,
0
);
array
=
new
(
thd
->
mem_root
)
in_datetime
(
date_arg
,
arg_count
-
1
);
array
=
new
(
thd
->
mem_root
)
in_datetime
(
thd
,
date_arg
,
arg_count
-
1
);
break
;
}
if
(
array
&&
!
(
thd
->
is_fatal_error
))
// If not EOM
...
...
sql/item_cmpfunc.h
View file @
753d1f86
...
...
@@ -23,7 +23,6 @@
#pragma interface
/* gcc class implementation */
#endif
#include "thr_malloc.h"
/* sql_calloc */
#include "item_func.h"
/* Item_int_func, Item_bool_func */
#define PCRE_STATIC 1
/* Important on Windows */
#include "pcre.h"
/* pcre header file */
...
...
@@ -1041,9 +1040,9 @@ class in_vector :public Sql_alloc
uint
count
;
uint
used_count
;
in_vector
()
{}
in_vector
(
uint
elements
,
uint
element_length
,
qsort2_cmp
cmp_func
,
in_vector
(
THD
*
thd
,
uint
elements
,
uint
element_length
,
qsort2_cmp
cmp_func
,
CHARSET_INFO
*
cmp_coll
)
:
base
((
char
*
)
sql_calloc
(
elements
*
element_length
)),
:
base
((
char
*
)
thd_calloc
(
thd
,
elements
*
element_length
)),
size
(
element_length
),
compare
(
cmp_func
),
collation
(
cmp_coll
),
count
(
elements
),
used_count
(
elements
)
{}
virtual
~
in_vector
()
{}
...
...
@@ -1100,7 +1099,7 @@ class in_string :public in_vector
}
};
public:
in_string
(
uint
elements
,
qsort2_cmp
cmp_func
,
CHARSET_INFO
*
cs
);
in_string
(
THD
*
thd
,
uint
elements
,
qsort2_cmp
cmp_func
,
CHARSET_INFO
*
cs
);
~
in_string
();
void
set
(
uint
pos
,
Item
*
item
);
uchar
*
get_value
(
Item
*
item
);
...
...
@@ -1128,7 +1127,7 @@ class in_longlong :public in_vector
longlong
unsigned_flag
;
// Use longlong, not bool, to preserve alignment
}
tmp
;
public:
in_longlong
(
uint
elements
);
in_longlong
(
THD
*
thd
,
uint
elements
);
void
set
(
uint
pos
,
Item
*
item
);
uchar
*
get_value
(
Item
*
item
);
Item
*
create_item
(
THD
*
thd
);
...
...
@@ -1159,8 +1158,8 @@ class in_datetime :public in_longlong
/* Cache for the left item. */
Item
*
lval_cache
;
in_datetime
(
Item
*
warn_item_arg
,
uint
elements
)
:
in_longlong
(
elements
),
thd
(
current_thd
),
warn_item
(
warn_item_arg
),
in_datetime
(
THD
*
thd
,
Item
*
warn_item_arg
,
uint
elements
)
:
in_longlong
(
thd
,
elements
),
thd
(
current_thd
),
warn_item
(
warn_item_arg
),
lval_cache
(
0
)
{};
void
set
(
uint
pos
,
Item
*
item
);
uchar
*
get_value
(
Item
*
item
);
...
...
@@ -1179,7 +1178,7 @@ class in_double :public in_vector
{
double
tmp
;
public:
in_double
(
uint
elements
);
in_double
(
THD
*
thd
,
uint
elements
);
void
set
(
uint
pos
,
Item
*
item
);
uchar
*
get_value
(
Item
*
item
);
Item
*
create_item
(
THD
*
thd
);
...
...
@@ -1195,7 +1194,7 @@ class in_decimal :public in_vector
{
my_decimal
val
;
public:
in_decimal
(
uint
elements
);
in_decimal
(
THD
*
thd
,
uint
elements
);
void
set
(
uint
pos
,
Item
*
item
);
uchar
*
get_value
(
Item
*
item
);
Item
*
create_item
(
THD
*
thd
);
...
...
sql/partition_info.cc
View file @
753d1f86
...
...
@@ -547,11 +547,11 @@ bool partition_info::set_used_partition(List<Item> &fields,
#define MAX_PART_NAME_SIZE 8
char
*
partition_info
::
create_default_partition_names
(
uint
part_no
,
char
*
partition_info
::
create_default_partition_names
(
THD
*
thd
,
uint
part_no
,
uint
num_parts_arg
,
uint
start_no
)
{
char
*
ptr
=
(
char
*
)
sql_calloc
(
num_parts_arg
*
MAX_PART_NAME_SIZE
);
char
*
ptr
=
(
char
*
)
thd
->
calloc
(
num_parts_arg
*
MAX_PART_NAME_SIZE
);
char
*
move_ptr
=
ptr
;
uint
i
=
0
;
DBUG_ENTER
(
"create_default_partition_names"
);
...
...
@@ -620,11 +620,11 @@ void partition_info::set_show_version_string(String *packet)
0 Memory allocation error
*/
char
*
partition_info
::
create_default_subpartition_name
(
uint
subpart_no
,
char
*
partition_info
::
create_default_subpartition_name
(
THD
*
thd
,
uint
subpart_no
,
const
char
*
part_name
)
{
uint
size_alloc
=
strlen
(
part_name
)
+
MAX_PART_NAME_SIZE
;
char
*
ptr
=
(
char
*
)
sql_
calloc
(
size_alloc
);
char
*
ptr
=
(
char
*
)
thd
->
calloc
(
size_alloc
);
DBUG_ENTER
(
"create_default_subpartition_name"
);
if
(
likely
(
ptr
!=
NULL
))
...
...
@@ -663,7 +663,7 @@ char *partition_info::create_default_subpartition_name(uint subpart_no,
The external routine needing this code is check_partition_info
*/
bool
partition_info
::
set_up_default_partitions
(
handler
*
file
,
bool
partition_info
::
set_up_default_partitions
(
THD
*
thd
,
handler
*
file
,
HA_CREATE_INFO
*
info
,
uint
start_no
)
{
...
...
@@ -695,7 +695,8 @@ bool partition_info::set_up_default_partitions(handler *file,
my_error
(
ER_TOO_MANY_PARTITIONS_ERROR
,
MYF
(
0
));
goto
end
;
}
if
(
unlikely
((
!
(
default_name
=
create_default_partition_names
(
0
,
num_parts
,
if
(
unlikely
((
!
(
default_name
=
create_default_partition_names
(
thd
,
0
,
num_parts
,
start_no
)))))
goto
end
;
i
=
0
;
...
...
@@ -744,7 +745,7 @@ bool partition_info::set_up_default_partitions(handler *file,
The external routine needing this code is check_partition_info
*/
bool
partition_info
::
set_up_default_subpartitions
(
handler
*
file
,
bool
partition_info
::
set_up_default_subpartitions
(
THD
*
thd
,
handler
*
file
,
HA_CREATE_INFO
*
info
)
{
uint
i
,
j
;
...
...
@@ -771,7 +772,7 @@ bool partition_info::set_up_default_subpartitions(handler *file,
if
(
likely
(
subpart_elem
!=
0
&&
(
!
part_elem
->
subpartitions
.
push_back
(
subpart_elem
))))
{
char
*
ptr
=
create_default_subpartition_name
(
j
,
char
*
ptr
=
create_default_subpartition_name
(
thd
,
j
,
part_elem
->
partition_name
);
if
(
!
ptr
)
goto
end
;
...
...
@@ -809,7 +810,7 @@ bool partition_info::set_up_default_subpartitions(handler *file,
this will return an error.
*/
bool
partition_info
::
set_up_defaults_for_partitioning
(
handler
*
file
,
bool
partition_info
::
set_up_defaults_for_partitioning
(
THD
*
thd
,
handler
*
file
,
HA_CREATE_INFO
*
info
,
uint
start_no
)
{
...
...
@@ -819,10 +820,10 @@ bool partition_info::set_up_defaults_for_partitioning(handler *file,
{
default_partitions_setup
=
TRUE
;
if
(
use_default_partitions
)
DBUG_RETURN
(
set_up_default_partitions
(
file
,
info
,
start_no
));
DBUG_RETURN
(
set_up_default_partitions
(
thd
,
file
,
info
,
start_no
));
if
(
is_sub_partitioned
()
&&
use_default_subpartitions
)
DBUG_RETURN
(
set_up_default_subpartitions
(
file
,
info
));
DBUG_RETURN
(
set_up_default_subpartitions
(
thd
,
file
,
info
));
}
DBUG_RETURN
(
FALSE
);
}
...
...
@@ -1702,7 +1703,7 @@ bool partition_info::check_partition_info(THD *thd, handlerton **eng_type,
my_error
(
ER_SUBPARTITION_ERROR
,
MYF
(
0
));
goto
end
;
}
if
(
unlikely
(
set_up_defaults_for_partitioning
(
file
,
info
,
(
uint
)
0
)))
if
(
unlikely
(
set_up_defaults_for_partitioning
(
thd
,
file
,
info
,
(
uint
)
0
)))
goto
end
;
if
(
!
(
tot_partitions
=
get_tot_partitions
()))
{
...
...
sql/partition_info.h
View file @
753d1f86
...
...
@@ -307,7 +307,8 @@ class partition_info : public Sql_alloc
return
num_parts
*
(
is_sub_partitioned
()
?
num_subparts
:
1
);
}
bool
set_up_defaults_for_partitioning
(
handler
*
file
,
HA_CREATE_INFO
*
info
,
bool
set_up_defaults_for_partitioning
(
THD
*
thd
,
handler
*
file
,
HA_CREATE_INFO
*
info
,
uint
start_no
);
char
*
find_duplicate_field
();
char
*
find_duplicate_name
();
...
...
@@ -371,12 +372,13 @@ class partition_info : public Sql_alloc
bool
has_same_partitioning
(
partition_info
*
new_part_info
);
private:
static
int
list_part_cmp
(
const
void
*
a
,
const
void
*
b
);
bool
set_up_default_partitions
(
handler
*
file
,
HA_CREATE_INFO
*
info
,
bool
set_up_default_partitions
(
THD
*
thd
,
handler
*
file
,
HA_CREATE_INFO
*
info
,
uint
start_no
);
bool
set_up_default_subpartitions
(
handler
*
file
,
HA_CREATE_INFO
*
info
);
char
*
create_default_partition_names
(
uint
part_no
,
uint
num_parts
,
bool
set_up_default_subpartitions
(
THD
*
thd
,
handler
*
file
,
HA_CREATE_INFO
*
info
);
char
*
create_default_partition_names
(
THD
*
thd
,
uint
part_no
,
uint
num_parts
,
uint
start_no
);
char
*
create_default_subpartition_name
(
uint
subpart_no
,
char
*
create_default_subpartition_name
(
THD
*
thd
,
uint
subpart_no
,
const
char
*
part_name
);
bool
prune_partition_bitmaps
(
TABLE_LIST
*
table_list
);
bool
add_named_partition
(
const
char
*
part_name
,
uint
length
);
...
...
sql/sql_partition.cc
View file @
753d1f86
...
...
@@ -255,7 +255,7 @@ static bool is_name_in_list(char *name, List<char> list_names)
FALSE Success
*/
bool
partition_default_handling
(
TABLE
*
table
,
partition_info
*
part_info
,
bool
partition_default_handling
(
T
HD
*
thd
,
T
ABLE
*
table
,
partition_info
*
part_info
,
bool
is_create_table_ind
,
const
char
*
normalized_path
)
{
...
...
@@ -283,7 +283,7 @@ bool partition_default_handling(TABLE *table, partition_info *part_info,
part_info
->
num_subparts
=
num_parts
/
part_info
->
num_parts
;
}
}
part_info
->
set_up_defaults_for_partitioning
(
table
->
file
,
part_info
->
set_up_defaults_for_partitioning
(
t
hd
,
t
able
->
file
,
NULL
,
0U
);
DBUG_RETURN
(
FALSE
);
}
...
...
@@ -455,7 +455,7 @@ int get_part_for_delete(const uchar *buf, const uchar *rec0,
function.
*/
static
bool
set_up_field_array
(
TABLE
*
table
,
static
bool
set_up_field_array
(
T
HD
*
thd
,
T
ABLE
*
table
,
bool
is_sub_part
)
{
Field
**
ptr
,
*
field
,
**
field_array
;
...
...
@@ -492,7 +492,7 @@ static bool set_up_field_array(TABLE *table,
DBUG_RETURN
(
result
);
}
size_field_array
=
(
num_fields
+
1
)
*
sizeof
(
Field
*
);
field_array
=
(
Field
**
)
sql_
calloc
(
size_field_array
);
field_array
=
(
Field
**
)
thd
->
calloc
(
size_field_array
);
if
(
unlikely
(
!
field_array
))
{
mem_alloc_error
(
size_field_array
);
...
...
@@ -617,7 +617,7 @@ static bool create_full_part_field_array(THD *thd, TABLE *table,
num_part_fields
++
;
}
size_field_array
=
(
num_part_fields
+
1
)
*
sizeof
(
Field
*
);
field_array
=
(
Field
**
)
sql_
calloc
(
size_field_array
);
field_array
=
(
Field
**
)
thd
->
calloc
(
size_field_array
);
if
(
unlikely
(
!
field_array
))
{
mem_alloc_error
(
size_field_array
);
...
...
@@ -804,7 +804,7 @@ static void clear_field_flag(TABLE *table)
*/
static
bool
handle_list_of_fields
(
List_iterator
<
char
>
it
,
static
bool
handle_list_of_fields
(
THD
*
thd
,
List_iterator
<
char
>
it
,
TABLE
*
table
,
partition_info
*
part_info
,
bool
is_sub_part
)
...
...
@@ -865,7 +865,7 @@ static bool handle_list_of_fields(List_iterator<char> it,
}
}
}
result
=
set_up_field_array
(
table
,
is_sub_part
);
result
=
set_up_field_array
(
t
hd
,
t
able
,
is_sub_part
);
end:
DBUG_RETURN
(
result
);
}
...
...
@@ -1034,7 +1034,7 @@ static bool fix_fields_part_func(THD *thd, Item* func_expr, TABLE *table,
if
((
!
is_sub_part
)
&&
(
error
=
check_signed_flag
(
part_info
)))
goto
end
;
result
=
set_up_field_array
(
table
,
is_sub_part
);
result
=
set_up_field_array
(
t
hd
,
t
able
,
is_sub_part
);
end:
end_lex_with_single_table
(
thd
,
table
,
old_lex
);
#if !defined(DBUG_OFF)
...
...
@@ -1622,7 +1622,7 @@ bool fix_partition_func(THD *thd, TABLE *table,
if
(
!
is_create_table_ind
||
thd
->
lex
->
sql_command
!=
SQLCOM_CREATE_TABLE
)
{
if
(
partition_default_handling
(
table
,
part_info
,
if
(
partition_default_handling
(
t
hd
,
t
able
,
part_info
,
is_create_table_ind
,
table
->
s
->
normalized_path
.
str
))
{
...
...
@@ -1641,7 +1641,7 @@ bool fix_partition_func(THD *thd, TABLE *table,
if
(
part_info
->
list_of_subpart_fields
)
{
List_iterator
<
char
>
it
(
part_info
->
subpart_field_list
);
if
(
unlikely
(
handle_list_of_fields
(
it
,
table
,
part_info
,
TRUE
)))
if
(
unlikely
(
handle_list_of_fields
(
thd
,
it
,
table
,
part_info
,
TRUE
)))
goto
end
;
}
else
...
...
@@ -1668,7 +1668,7 @@ bool fix_partition_func(THD *thd, TABLE *table,
if
(
part_info
->
list_of_part_fields
)
{
List_iterator
<
char
>
it
(
part_info
->
part_field_list
);
if
(
unlikely
(
handle_list_of_fields
(
it
,
table
,
part_info
,
FALSE
)))
if
(
unlikely
(
handle_list_of_fields
(
thd
,
it
,
table
,
part_info
,
FALSE
)))
goto
end
;
}
else
...
...
@@ -1690,7 +1690,7 @@ bool fix_partition_func(THD *thd, TABLE *table,
if
(
part_info
->
column_list
)
{
List_iterator
<
char
>
it
(
part_info
->
part_field_list
);
if
(
unlikely
(
handle_list_of_fields
(
it
,
table
,
part_info
,
FALSE
)))
if
(
unlikely
(
handle_list_of_fields
(
thd
,
it
,
table
,
part_info
,
FALSE
)))
goto
end
;
}
else
...
...
@@ -4976,7 +4976,7 @@ uint prep_alter_part_table(THD *thd, TABLE *table, Alter_info *alter_info,
}
alt_part_info
->
part_type
=
tab_part_info
->
part_type
;
alt_part_info
->
subpart_type
=
tab_part_info
->
subpart_type
;
if
(
alt_part_info
->
set_up_defaults_for_partitioning
(
table
->
file
,
0
,
if
(
alt_part_info
->
set_up_defaults_for_partitioning
(
t
hd
,
t
able
->
file
,
0
,
tab_part_info
->
num_parts
))
{
goto
err
;
...
...
@@ -5395,7 +5395,8 @@ state of p1.
DBUG_ASSERT
(
!
alt_part_info
->
use_default_partitions
);
/* We specified partitions explicitly so don't use defaults anymore. */
tab_part_info
->
use_default_partitions
=
FALSE
;
if
(
alt_part_info
->
set_up_defaults_for_partitioning
(
table
->
file
,
0
,
0
))
if
(
alt_part_info
->
set_up_defaults_for_partitioning
(
thd
,
table
->
file
,
0
,
0
))
{
goto
err
;
}
...
...
sql/sql_statistics.cc
View file @
753d1f86
...
...
@@ -1656,7 +1656,7 @@ class Index_prefix_calc: public Sql_alloc
bool
is_single_comp_pk
;
Index_prefix_calc
(
TABLE
*
table
,
KEY
*
key_info
)
Index_prefix_calc
(
T
HD
*
thd
,
T
ABLE
*
table
,
KEY
*
key_info
)
:
index_table
(
table
),
index_info
(
key_info
)
{
uint
i
;
...
...
@@ -1691,7 +1691,8 @@ class Index_prefix_calc: public Sql_alloc
break
;
if
(
!
(
state
->
last_prefix
=
new
Cached_item_field
(
key_info
->
key_part
[
i
].
field
)))
new
(
thd
->
mem_root
)
Cached_item_field
(
thd
,
key_info
->
key_part
[
i
].
field
)))
break
;
state
->
entry_count
=
state
->
prefix_count
=
0
;
prefixes
++
;
...
...
@@ -2475,7 +2476,7 @@ int collect_statistics_for_index(THD *thd, TABLE *table, uint index)
if
(
key_info
->
flags
&
HA_FULLTEXT
)
DBUG_RETURN
(
rc
);
Index_prefix_calc
index_prefix_calc
(
table
,
key_info
);
Index_prefix_calc
index_prefix_calc
(
t
hd
,
t
able
,
key_info
);
DEBUG_SYNC
(
table
->
in_use
,
"statistics_collection_start1"
);
DEBUG_SYNC
(
table
->
in_use
,
"statistics_collection_start2"
);
...
...
sql/thr_malloc.cc
View file @
753d1f86
...
...
@@ -75,15 +75,6 @@ void *sql_alloc(size_t Size)
#endif
void
*
sql_calloc
(
size_t
size
)
{
void
*
ptr
;
if
((
ptr
=
sql_alloc
(
size
)))
bzero
(
ptr
,
size
);
return
ptr
;
}
char
*
sql_strmake_with_convert
(
const
char
*
str
,
size_t
arg_length
,
CHARSET_INFO
*
from_cs
,
size_t
max_res_length
,
...
...
sql/thr_malloc.h
View file @
753d1f86
...
...
@@ -23,7 +23,6 @@ typedef struct st_mem_root MEM_ROOT;
void
init_sql_alloc
(
MEM_ROOT
*
root
,
uint
block_size
,
uint
pre_alloc_size
,
myf
my_flags
);
void
*
sql_alloc
(
size_t
);
void
*
sql_calloc
(
size_t
);
char
*
sql_strmake_with_convert
(
const
char
*
str
,
size_t
arg_length
,
CHARSET_INFO
*
from_cs
,
size_t
max_res_length
,
...
...
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