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
409fbaa6
Commit
409fbaa6
authored
Dec 15, 2005
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new
parents
ed7eaa4c
bb233703
Changes
21
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
145 additions
and
244 deletions
+145
-244
mysql-test/r/innodb.result
mysql-test/r/innodb.result
+40
-11
mysql-test/t/innodb.test
mysql-test/t/innodb.test
+26
-12
mysql-test/t/mysqltest.test
mysql-test/t/mysqltest.test
+2
-2
mysql-test/t/rpl_relayrotate.test
mysql-test/t/rpl_relayrotate.test
+2
-3
sql/ha_innodb.cc
sql/ha_innodb.cc
+9
-0
sql/ha_innodb.h
sql/ha_innodb.h
+1
-1
sql/sp_head.cc
sql/sp_head.cc
+1
-1
sql/table.cc
sql/table.cc
+1
-2
storage/innobase/Makefile.am
storage/innobase/Makefile.am
+1
-1
storage/innobase/configure.in
storage/innobase/configure.in
+1
-1
storage/innobase/db/db0err.h
storage/innobase/db/db0err.h
+0
-44
storage/innobase/ha/ha0ha.c
storage/innobase/ha/ha0ha.c
+5
-0
storage/innobase/include/Makefile.am
storage/innobase/include/Makefile.am
+0
-60
storage/innobase/include/ha0ha.h
storage/innobase/include/ha0ha.h
+0
-15
storage/innobase/include/ha0ha.ic
storage/innobase/include/ha0ha.ic
+0
-27
storage/innobase/include/mem0mem.h
storage/innobase/include/mem0mem.h
+21
-17
storage/innobase/include/mem0mem.ic
storage/innobase/include/mem0mem.ic
+21
-24
storage/innobase/lock/lock0lock.c
storage/innobase/lock/lock0lock.c
+3
-15
storage/innobase/mem/mem0mem.c
storage/innobase/mem/mem0mem.c
+9
-7
support-files/mysql.spec.sh
support-files/mysql.spec.sh
+0
-1
zlib/Makefile.am
zlib/Makefile.am
+2
-0
No files found.
mysql-test/r/innodb.result
View file @
409fbaa6
...
...
@@ -2437,7 +2437,9 @@ a b
20 NULL
drop table t1;
create table t1 (v varchar(65530), key(v));
ERROR HY000: Can't create table 'test.t1' (errno: 139)
Warnings:
Warning 1071 Specified key was too long; max key length is 767 bytes
drop table t1;
create table t1 (v varchar(65536));
Warnings:
Note 1246 Converting column 'v' from VARCHAR to TEXT
...
...
@@ -2577,22 +2579,49 @@ create table t8 (col1 blob, index(col1(767)))
character set = latin1 engine = innodb;
create table t9 (col1 varchar(512), col2 varchar(512), index(col1, col2))
character set = latin1 engine = innodb;
show create table t9;
Table Create Table
t9 CREATE TABLE `t9` (
`col1` varchar(512) default NULL,
`col2` varchar(512) default NULL,
KEY `col1` (`col1`,`col2`)
)
ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1, t2, t3, t4, t5, t6, t7, t8, t9;
create table t1 (col1 varchar(768), index (col1))
create table t1 (col1 varchar(768), index(col1))
character set = latin1 engine = innodb;
Warnings:
Warning 1071 Specified key was too long; max key length is 767 bytes
create table t2 (col1 varbinary(768), index(col1))
character set = latin1 engine = innodb;
Warnings:
Warning 1071 Specified key was too long; max key length is 767 bytes
create table t3 (col1 text, index(col1(768)))
character set = latin1 engine = innodb;
ERROR HY000: Can't create table 'test.t1' (errno: 139)
create table t2 (col1 varchar(768) primary key)
Warnings:
Warning 1071 Specified key was too long; max key length is 767 bytes
create table t4 (col1 blob, index(col1(768)))
character set = latin1 engine = innodb;
Warnings:
Warning 1071 Specified key was too long; max key length is 767 bytes
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`col1` varchar(768) default NULL,
KEY `col1` (`col1`(767))
)
ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1, t2, t3, t4;
create table t1 (col1 varchar(768) primary key)
character set = latin1 engine = innodb;
ERROR
HY000: Can't create table 'test.t2' (errno: 139)
create table t
3
(col1 varbinary(768) primary key)
ERROR
42000: Specified key was too long; max key length is 767 bytes
create table t
2
(col1 varbinary(768) primary key)
character set = latin1 engine = innodb;
ERROR
HY000: Can't create table 'test.t3' (errno: 139)
create table t
4 (col1 text, index
(col1(768)))
ERROR
42000: Specified key was too long; max key length is 767 bytes
create table t
3 (col1 text, primary key
(col1(768)))
character set = latin1 engine = innodb;
ERROR
HY000: Can't create table 'test.t4' (errno: 139)
create table t
5 (col1 blob, index
(col1(768)))
ERROR
42000: Specified key was too long; max key length is 767 bytes
create table t
4 (col1 blob, primary key
(col1(768)))
character set = latin1 engine = innodb;
ERROR
HY000: Can't create table 'test.t5' (errno: 139)
ERROR
42000: Specified key was too long; max key length is 767 bytes
CREATE TABLE t1
(
id INT PRIMARY KEY
...
...
mysql-test/t/innodb.test
View file @
409fbaa6
...
...
@@ -1356,8 +1356,8 @@ source include/varchar.inc;
# Clean up filename -- embedded server reports whole path without .frm,
# regular server reports relative path with .frm (argh!)
--
replace_result
\\
/
$MYSQL_TEST_DIR
.
/
var
/
master
-
data
/
/
t1
.
frm
t1
--
error
1005
create
table
t1
(
v
varchar
(
65530
),
key
(
v
));
drop
table
t1
;
create
table
t1
(
v
varchar
(
65536
));
show
create
table
t1
;
drop
table
t1
;
...
...
@@ -1485,7 +1485,7 @@ CREATE TEMPORARY TABLE t2
DROP
TABLE
t1
;
#
# Test that index column max sizes are
check
ed (bug #13315)
# Test that index column max sizes are
honor
ed (bug #13315)
#
# prefix index
...
...
@@ -1512,22 +1512,36 @@ create table t8 (col1 blob, index(col1(767)))
create
table
t9
(
col1
varchar
(
512
),
col2
varchar
(
512
),
index
(
col1
,
col2
))
character
set
=
latin1
engine
=
innodb
;
show
create
table
t9
;
drop
table
t1
,
t2
,
t3
,
t4
,
t5
,
t6
,
t7
,
t8
,
t9
;
--
error
1005
create
table
t1
(
col1
varchar
(
768
),
index
(
col1
))
# these should have their index length trimmed
create
table
t1
(
col1
varchar
(
768
),
index
(
col1
))
character
set
=
latin1
engine
=
innodb
;
--
error
1005
create
table
t2
(
col1
varchar
(
768
)
primary
key
)
create
table
t2
(
col1
varbinary
(
768
),
index
(
col1
))
character
set
=
latin1
engine
=
innodb
;
--
error
1005
create
table
t3
(
col1
varbinary
(
768
)
primary
key
)
create
table
t3
(
col1
text
,
index
(
col1
(
768
)))
character
set
=
latin1
engine
=
innodb
;
--
error
1005
create
table
t4
(
col1
text
,
index
(
col1
(
768
)))
create
table
t4
(
col1
blob
,
index
(
col1
(
768
)))
character
set
=
latin1
engine
=
innodb
;
--
error
1005
create
table
t5
(
col1
blob
,
index
(
col1
(
768
)))
show
create
table
t1
;
drop
table
t1
,
t2
,
t3
,
t4
;
# these should be refused
--
error
1071
create
table
t1
(
col1
varchar
(
768
)
primary
key
)
character
set
=
latin1
engine
=
innodb
;
--
error
1071
create
table
t2
(
col1
varbinary
(
768
)
primary
key
)
character
set
=
latin1
engine
=
innodb
;
--
error
1071
create
table
t3
(
col1
text
,
primary
key
(
col1
(
768
)))
character
set
=
latin1
engine
=
innodb
;
--
error
1071
create
table
t4
(
col1
blob
,
primary
key
(
col1
(
768
)))
character
set
=
latin1
engine
=
innodb
;
#
...
...
mysql-test/t/mysqltest.test
View file @
409fbaa6
...
...
@@ -968,9 +968,9 @@ drop table t1;
--
error
1
--
exec
$MYSQL_TEST
--
record
-
x
$MYSQL_TEST_DIR
/
var
/
tmp
/
bug11731
.
sql
-
R
$MYSQL_TEST_DIR
/
var
/
tmp
/
bug11731
.
out
# The .out file should be empty
, cat will fail!
# The .out file should be empty
--
error
1
--
exec
cat
$MYSQL_TEST_DIR
/
var
/
tmp
/
bug11731
.
out
--
exec
test
-
s
$MYSQL_TEST_DIR
/
var
/
tmp
/
bug11731
.
out
drop
table
t1
;
...
...
mysql-test/t/rpl_relayrotate.test
View file @
409fbaa6
...
...
@@ -52,9 +52,8 @@ start slave;
# which proves that the transaction restarted at
# the right place.
# We must wait for the transaction to commit before
# reading, MASTER_POS_WAIT() will do it for sure
# (the only statement with position>=3000 is COMMIT).
select
master_pos_wait
(
'master-bin.001'
,
3000
)
>=
0
;
# reading:
sync_with_master
;
select
max
(
a
)
from
t1
;
connection
master
;
...
...
sql/ha_innodb.cc
View file @
409fbaa6
...
...
@@ -2540,6 +2540,12 @@ ha_innobase::open(
DBUG_RETURN
(
0
);
}
uint
ha_innobase
::
max_supported_key_part_length
()
const
{
return
(
DICT_MAX_INDEX_COL_LEN
-
1
);
}
/**********************************************************************
Closes a handle to an InnoDB table. */
...
...
@@ -4698,6 +4704,9 @@ create_index(
0
,
prefix_len
);
}
/* Even though we've defined max_supported_key_part_length, we
still do our own checking using field_lengths to be absolutely
sure we don't create too long indexes. */
error
=
row_create_index_for_mysql
(
index
,
trx
,
field_lengths
);
error
=
convert_error_code_to_mysql
(
error
,
NULL
);
...
...
sql/ha_innodb.h
View file @
409fbaa6
...
...
@@ -110,7 +110,7 @@ class ha_innobase: public handler
but currently MySQL does not work with keys
whose size is > MAX_KEY_LENGTH */
uint
max_supported_key_length
()
const
{
return
3500
;
}
uint
max_supported_key_part_length
()
const
{
return
3500
;
}
uint
max_supported_key_part_length
()
const
;
const
key_map
*
keys_to_use_for_scanning
()
{
return
&
key_map_full
;
}
bool
has_transactions
()
{
return
1
;}
...
...
sql/sp_head.cc
View file @
409fbaa6
...
...
@@ -886,7 +886,7 @@ void sp_head::recursion_level_error()
THD
*
thd
=
current_thd
;
my_error
(
ER_SP_RECURSION_LIMIT
,
MYF
(
0
),
thd
->
variables
.
max_sp_recursion_depth
,
m_name
);
m_name
.
str
);
}
else
my_error
(
ER_SP_NO_RECURSION
,
MYF
(
0
));
...
...
sql/table.cc
View file @
409fbaa6
...
...
@@ -1877,13 +1877,12 @@ File create_frm(THD *thd, const char *name, const char *db,
if
(
create_info
->
options
&
HA_LEX_CREATE_TMP_TABLE
)
create_flags
|=
O_EXCL
|
O_NOFOLLOW
;
#if SIZEOF_OFF_T > 4
/* Fix this when we have new .frm files; Current limit is 4G rows (QQ) */
if
(
create_info
->
max_rows
>
UINT_MAX32
)
create_info
->
max_rows
=
UINT_MAX32
;
if
(
create_info
->
min_rows
>
UINT_MAX32
)
create_info
->
min_rows
=
UINT_MAX32
;
#endif
/*
Ensure that raid_chunks can't be larger than 255, as this would cause
problems with drop database
...
...
storage/innobase/Makefile.am
View file @
409fbaa6
...
...
@@ -23,7 +23,7 @@ TAR = gtar
noinst_HEADERS
=
ib_config.h
SUBDIRS
=
os ut btr buf data dict dyn
eval
fil fsp fut
\
ha ibuf
include
lock log mach mem mtr page
\
ha ibuf lock log mach mem mtr page
\
pars que
read
rem row srv
sync
thr trx usr
# Don't update the files from bitkeeper
...
...
storage/innobase/configure.in
View file @
409fbaa6
...
...
@@ -128,7 +128,7 @@ AC_OUTPUT(Makefile os/Makefile ut/Makefile btr/Makefile dnl
buf/Makefile data/Makefile dnl
dict/Makefile dyn/Makefile dnl
eval/Makefile fil/Makefile fsp/Makefile fut/Makefile dnl
ha/Makefile ibuf/Makefile
include/Makefile
dnl
ha/Makefile ibuf/Makefile dnl
lock/Makefile log/Makefile dnl
mach/Makefile mem/Makefile mtr/Makefile dnl
page/Makefile pars/Makefile que/Makefile dnl
...
...
storage/innobase/db/db0err.h
deleted
100644 → 0
View file @
ed7eaa4c
/******************************************************
Global error codes for the database
(c) 1996 Innobase Oy
Created 5/24/1996 Heikki Tuuri
*******************************************************/
#ifndef db0err_h
#define db0err_h
#define DB_SUCCESS 10
/* The following are error codes */
#define DB_ERROR 11
#define DB_OUT_OF_MEMORY 12
#define DB_OUT_OF_FILE_SPACE 13
#define DB_LOCK_WAIT 14
#define DB_DEADLOCK 15
#define DB_ROLLBACK 16
#define DB_DUPLICATE_KEY 17
#define DB_QUE_THR_SUSPENDED 18
#define DB_MISSING_HISTORY 19
/* required history data has been
deleted due to lack of space in
rollback segment */
#define DB_CLUSTER_NOT_FOUND 30
#define DB_TABLE_NOT_FOUND 31
#define DB_MUST_GET_MORE_FILE_SPACE 32
/* the database has to be stopped
and restrated with more file space */
#define DB_TABLE_IS_BEING_USED 33
#define DB_TOO_BIG_RECORD 34
/* a record in an index would become
bigger than 1/2 free space in a page
frame */
/* The following are partial failure codes */
#define DB_FAIL 1000
#define DB_OVERFLOW 1001
#define DB_UNDERFLOW 1002
#define DB_STRONG_FAIL 1003
#define DB_RECORD_NOT_FOUND 1500
#define DB_END_OF_INDEX 1501
#endif
storage/innobase/ha/ha0ha.c
View file @
409fbaa6
...
...
@@ -40,9 +40,13 @@ ha_create(
table
->
adaptive
=
FALSE
;
}
/* Creating MEM_HEAP_BTR_SEARCH type heaps can potentially fail,
but in practise it never should in this case, hence the asserts. */
if
(
n_mutexes
==
0
)
{
if
(
in_btr_search
)
{
table
->
heap
=
mem_heap_create_in_btr_search
(
4096
);
ut_a
(
table
->
heap
);
}
else
{
table
->
heap
=
mem_heap_create_in_buffer
(
4096
);
}
...
...
@@ -57,6 +61,7 @@ ha_create(
for
(
i
=
0
;
i
<
n_mutexes
;
i
++
)
{
if
(
in_btr_search
)
{
table
->
heaps
[
i
]
=
mem_heap_create_in_btr_search
(
4096
);
ut_a
(
table
->
heaps
[
i
]);
}
else
{
table
->
heaps
[
i
]
=
mem_heap_create_in_buffer
(
4096
);
}
...
...
storage/innobase/include/Makefile.am
deleted
100644 → 0
View file @
ed7eaa4c
# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
# & Innobase Oy
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
noinst_HEADERS
=
btr0btr.h btr0btr.ic btr0cur.h btr0cur.ic
\
btr0pcur.h btr0pcur.ic btr0sea.h btr0sea.ic btr0types.h
\
buf0buf.h buf0buf.ic buf0flu.h buf0flu.ic buf0lru.h
\
buf0lru.ic buf0rea.h buf0types.h data0data.h data0data.ic data0type.h
\
data0type.ic data0types.h db0err.h dict0boot.h
\
dict0boot.ic dict0crea.h dict0crea.ic dict0dict.h
\
dict0dict.ic dict0load.h dict0load.ic dict0mem.h
\
dict0mem.ic dict0types.h dyn0dyn.h dyn0dyn.ic eval0eval.h
\
eval0eval.ic eval0proc.h eval0proc.ic fil0fil.h fsp0fsp.h
\
fsp0fsp.ic fut0fut.h fut0fut.ic fut0lst.h fut0lst.ic
\
ha0ha.h ha0ha.ic hash0hash.h hash0hash.ic
\
ibuf0ibuf.h ibuf0ibuf.ic ibuf0types.h lock0lock.h
\
lock0lock.ic lock0types.h log0log.h log0log.ic log0recv.h
\
log0recv.ic mach0data.h mach0data.ic
\
mem0dbg.h mem0dbg.ic mem0mem.h mem0mem.ic mem0pool.h
\
mem0pool.ic mtr0log.h mtr0log.ic mtr0mtr.h mtr0mtr.ic
\
mtr0types.h os0file.h os0proc.h os0proc.ic
\
os0sync.h os0sync.ic os0thread.h
\
os0thread.ic page0cur.h page0cur.ic page0page.h
\
page0page.ic page0types.h pars0grm.h pars0opt.h
\
pars0opt.ic pars0pars.h pars0pars.ic pars0sym.h
\
pars0sym.ic pars0types.h que0que.h que0que.ic que0types.h
\
read0read.h read0read.ic read0types.h rem0cmp.h
\
rem0cmp.ic rem0rec.h rem0rec.ic rem0types.h row0ins.h
\
row0ins.ic row0mysql.h row0mysql.ic row0purge.h
\
row0purge.ic row0row.h row0row.ic row0sel.h row0sel.ic
\
row0types.h row0uins.h row0uins.ic row0umod.h row0umod.ic
\
row0undo.h row0undo.ic row0upd.h row0upd.ic row0vers.h
\
row0vers.ic srv0que.h srv0srv.h srv0srv.ic srv0start.h
\
sync0arr.h sync0arr.ic sync0rw.h
\
sync0rw.ic sync0sync.h sync0sync.ic sync0types.h
\
thr0loc.h thr0loc.ic trx0purge.h trx0purge.ic trx0rec.h
\
trx0rec.ic trx0roll.h trx0roll.ic trx0rseg.h trx0rseg.ic
\
trx0sys.h trx0sys.ic trx0trx.h trx0trx.ic trx0types.h
\
trx0undo.h trx0undo.ic trx0xa.h univ.i
\
usr0sess.h usr0sess.ic usr0types.h ut0byte.h ut0byte.ic
\
ut0dbg.h ut0lst.h ut0mem.h ut0mem.ic ut0rnd.h ut0rnd.ic
\
ut0sort.h ut0ut.h ut0ut.ic
EXTRA_DIST
=
Makefile.i
# Don't update the files from bitkeeper
%
::
SCCS/s.%
storage/innobase/include/ha0ha.h
View file @
409fbaa6
...
...
@@ -68,21 +68,6 @@ ha_insert_for_fold(
node is created! */
void
*
data
);
/* in: data, must not be NULL */
/*****************************************************************
Reserves the necessary hash table mutex and inserts an entry into the hash
table. */
UNIV_INLINE
ibool
ha_insert_for_fold_mutex
(
/*=====================*/
/* out: TRUE if succeed, FALSE if no more
memory could be allocated */
hash_table_t
*
table
,
/* in: hash table */
ulint
fold
,
/* in: folded value of data; if a node with
the same fold value already exists, it is
updated to point to the same data, and no new
node is created! */
void
*
data
);
/* in: data, must not be NULL */
/*****************************************************************
Deletes an entry from a hash table. */
void
...
...
storage/innobase/include/ha0ha.ic
View file @
409fbaa6
...
...
@@ -191,30 +191,3 @@ ha_search_and_delete_if_found(
return(FALSE);
}
/*****************************************************************
Reserves the necessary hash table mutex and inserts an entry into the hash
table. */
UNIV_INLINE
ibool
ha_insert_for_fold_mutex(
/*=====================*/
/* out: TRUE if succeed, FALSE if no more
memory could be allocated */
hash_table_t* table, /* in: hash table */
ulint fold, /* in: folded value of data; if a node with
the same fold value already exists, it is
updated to point to the same data, and no new
node is created! */
void* data) /* in: data, must not be NULL */
{
ibool ret;
hash_mutex_enter(table, fold);
ret = ha_insert_for_fold(table, fold, data);
hash_mutex_exit(table, fold);
return(ret);
}
storage/innobase/include/mem0mem.h
View file @
409fbaa6
...
...
@@ -31,13 +31,18 @@ typedef mem_block_info_t mem_block_t;
typedef
mem_block_t
mem_heap_t
;
/* Types of allocation for memory heaps: DYNAMIC means allocation from the
dynamic memory pool of the C compiler, BUFFER means allocation from the
index
page
buffer pool; the latter method is used for very big heaps */
dynamic memory pool of the C compiler, BUFFER means allocation from the
buffer pool; the latter method is used for very big heaps */
#define MEM_HEAP_DYNAMIC 0
/* the most common type */
#define MEM_HEAP_BUFFER 1
#define MEM_HEAP_BTR_SEARCH 2
/* this flag can be ORed to the
previous */
#define MEM_HEAP_BTR_SEARCH 2
/* this flag can optionally be
ORed to MEM_HEAP_BUFFER, in which
case heap->free_block is used in
some cases for memory allocations,
and if it's NULL, the memory
allocation functions can return
NULL. */
/* The following start size is used for the first block in the memory heap if
the size is not specified, i.e., 0 is given as the parameter in the call of
...
...
@@ -98,13 +103,15 @@ heap freeing. */
(heap), __FILE__, __LINE__)
/*********************************************************************
NOTE: Use the corresponding macros instead of this function. Creates a
memory heap
which allocates memory from dynamic space. For debugging
purposes, takes also the file name and line as argument
. */
memory heap
. For debugging purposes, takes also the file name and line as
arguments
. */
UNIV_INLINE
mem_heap_t
*
mem_heap_create_func
(
/*=================*/
/* out, own: memory heap */
/* out, own: memory heap, NULL if
did not succeed (only possible for
MEM_HEAP_BTR_SEARCH type heaps)*/
ulint
n
,
/* in: desired start block size,
this means that a single user buffer
of size n will fit in the block,
...
...
@@ -121,11 +128,9 @@ mem_heap_create_func(
block is not unintentionally erased
(if allocated in the stack), before
the memory heap is explicitly freed. */
ulint
type
,
/* in: MEM_HEAP_DYNAMIC
or MEM_HEAP_BUFFER */
ulint
type
,
/* in: heap type */
const
char
*
file_name
,
/* in: file name where created */
ulint
line
/* in: line where created */
);
ulint
line
);
/* in: line where created */
/*********************************************************************
NOTE: Use the corresponding macro instead of this function. Frees the space
occupied by a memory heap. In the debug version erases the heap memory
...
...
@@ -143,8 +148,9 @@ UNIV_INLINE
void
*
mem_heap_alloc
(
/*===========*/
/* out: allocated storage, NULL if
did not succeed */
/* out: allocated storage, NULL if did not
succeed (only possible for
MEM_HEAP_BTR_SEARCH type heaps) */
mem_heap_t
*
heap
,
/* in: memory heap */
ulint
n
);
/* in: number of bytes; if the heap is allowed
to grow into the buffer pool, this must be
...
...
@@ -220,8 +226,7 @@ UNIV_INLINE
void
*
mem_alloc_func
(
/*===========*/
/* out, own: free storage, NULL
if did not succeed */
/* out, own: free storage */
ulint
n
,
/* in: desired number of bytes */
const
char
*
file_name
,
/* in: file name where created */
ulint
line
/* in: line where created */
...
...
@@ -235,8 +240,7 @@ with mem_free. */
void
*
mem_alloc_func_noninline
(
/*=====================*/
/* out, own: free storage,
NULL if did not succeed */
/* out, own: free storage */
ulint
n
,
/* in: desired number of bytes */
const
char
*
file_name
,
/* in: file name where created */
ulint
line
/* in: line where created */
...
...
storage/innobase/include/mem0mem.ic
View file @
409fbaa6
...
...
@@ -16,8 +16,9 @@ Creates a memory heap block where data can be allocated. */
mem_block_t*
mem_heap_create_block(
/*==================*/
/* out, own: memory heap block,
NULL if did not succeed */
/* out, own: memory heap block, NULL if
did not succeed (only possible for
MEM_HEAP_BTR_SEARCH type heaps) */
mem_heap_t* heap, /* in: memory heap or NULL if first block
should be created */
ulint n, /* in: number of bytes needed for user data, or
...
...
@@ -50,7 +51,8 @@ mem_block_t*
mem_heap_add_block(
/*===============*/
/* out: created block, NULL if did not
succeed */
succeed (only possible for
MEM_HEAP_BTR_SEARCH type heaps)*/
mem_heap_t* heap, /* in: memory heap */
ulint n); /* in: number of bytes user needs */
...
...
@@ -126,7 +128,9 @@ UNIV_INLINE
void*
mem_heap_alloc(
/*===========*/
/* out: allocated storage */
/* out: allocated storage, NULL if did not
succeed (only possible for
MEM_HEAP_BTR_SEARCH type heaps) */
mem_heap_t* heap, /* in: memory heap */
ulint n) /* in: number of bytes; if the heap is allowed
to grow into the buffer pool, this must be
...
...
@@ -370,13 +374,15 @@ mem_heap_free_top(
/*********************************************************************
NOTE: Use the corresponding macros instead of this function. Creates a
memory heap
which allocates memory from dynamic space. For debugging
purposes, takes also the file name and line as
argument. */
memory heap
. For debugging purposes, takes also the file name and line as
argument. */
UNIV_INLINE
mem_heap_t*
mem_heap_create_func(
/*=================*/
/* out, own: memory heap */
/* out, own: memory heap, NULL if
did not succeed (only possible for
MEM_HEAP_BTR_SEARCH type heaps)*/
ulint n, /* in: desired start block size,
this means that a single user buffer
of size n will fit in the block,
...
...
@@ -393,11 +399,9 @@ mem_heap_create_func(
block is not unintentionally erased
(if allocated in the stack), before
the memory heap is explicitly freed. */
ulint type, /* in: MEM_HEAP_DYNAMIC
or MEM_HEAP_BUFFER */
ulint type, /* in: heap type */
const char* file_name, /* in: file name where created */
ulint line /* in: line where created */
)
ulint line) /* in: line where created */
{
mem_block_t* block;
...
...
@@ -409,7 +413,10 @@ mem_heap_create_func(
init_block, type, file_name, line);
}
ut_ad(block);
if (block == NULL) {
return(NULL);
}
UT_LIST_INIT(block->base);
...
...
@@ -418,11 +425,6 @@ mem_heap_create_func(
#ifdef UNIV_MEM_DEBUG
if (block == NULL) {
return(block);
}
mem_hash_insert(block, file_name, line);
#endif
...
...
@@ -484,8 +486,7 @@ UNIV_INLINE
void*
mem_alloc_func(
/*===========*/
/* out, own: free storage, NULL
if did not succeed */
/* out, own: free storage */
ulint n, /* in: desired number of bytes */
const char* file_name, /* in: file name where created */
ulint line /* in: line where created */
...
...
@@ -496,10 +497,6 @@ mem_alloc_func(
heap = mem_heap_create_func(n, NULL, MEM_HEAP_DYNAMIC, file_name,
line);
if (heap == NULL) {
return(NULL);
}
/* Note that as we created the first block in the heap big enough
for the buffer requested by the caller, the buffer will be in the
...
...
storage/innobase/lock/lock0lock.c
View file @
409fbaa6
...
...
@@ -1705,7 +1705,7 @@ static
lock_t
*
lock_rec_create
(
/*============*/
/* out: created lock
, NULL if out of memory
*/
/* out: created lock */
ulint
type_mode
,
/* in: lock mode and wait flag, type is
ignored and replaced by LOCK_REC */
rec_t
*
rec
,
/* in: record on page */
...
...
@@ -1747,11 +1747,6 @@ lock_rec_create(
lock
=
mem_heap_alloc
(
trx
->
lock_heap
,
sizeof
(
lock_t
)
+
n_bytes
);
if
(
UNIV_UNLIKELY
(
lock
==
NULL
))
{
return
(
NULL
);
}
UT_LIST_ADD_LAST
(
trx_locks
,
trx
->
trx_locks
,
lock
);
lock
->
trx
=
trx
;
...
...
@@ -1886,8 +1881,7 @@ static
lock_t
*
lock_rec_add_to_queue
(
/*==================*/
/* out: lock where the bit was set, NULL if out
of memory */
/* out: lock where the bit was set */
ulint
type_mode
,
/* in: lock mode, wait, gap etc. flags;
type is ignored and replaced by LOCK_REC */
rec_t
*
rec
,
/* in: record on page */
...
...
@@ -3405,8 +3399,7 @@ UNIV_INLINE
lock_t
*
lock_table_create
(
/*==============*/
/* out, own: new lock object, or NULL if
out of memory */
/* out, own: new lock object */
dict_table_t
*
table
,
/* in: database table in dictionary cache */
ulint
type_mode
,
/* in: lock mode possibly ORed with
LOCK_WAIT */
...
...
@@ -3432,11 +3425,6 @@ lock_table_create(
lock
=
mem_heap_alloc
(
trx
->
lock_heap
,
sizeof
(
lock_t
));
}
if
(
lock
==
NULL
)
{
return
(
NULL
);
}
UT_LIST_ADD_LAST
(
trx_locks
,
trx
->
trx_locks
,
lock
);
lock
->
type_mode
=
type_mode
|
LOCK_TABLE
;
...
...
storage/innobase/mem/mem0mem.c
View file @
409fbaa6
...
...
@@ -92,12 +92,10 @@ with mem_free. */
void
*
mem_alloc_func_noninline
(
/*=====================*/
/* out, own: free storage,
NULL if did not succeed */
/* out, own: free storage */
ulint
n
,
/* in: desired number of bytes */
const
char
*
file_name
,
/* in: file name where created */
ulint
line
/* in: line where created */
)
ulint
line
)
/* in: line where created */
{
return
(
mem_alloc_func
(
n
,
file_name
,
line
));
}
...
...
@@ -122,8 +120,9 @@ Creates a memory heap block where data can be allocated. */
mem_block_t
*
mem_heap_create_block
(
/*==================*/
/* out, own: memory heap block,
NULL if did not succeed */
/* out, own: memory heap block, NULL if
did not succeed (only possible for
MEM_HEAP_BTR_SEARCH type heaps) */
mem_heap_t
*
heap
,
/* in: memory heap or NULL if first block
should be created */
ulint
n
,
/* in: number of bytes needed for user data, or
...
...
@@ -182,6 +181,8 @@ mem_heap_create_block(
}
if
(
block
==
NULL
)
{
/* Only MEM_HEAP_BTR_SEARCH allocation should ever fail. */
ut_a
(
type
&
MEM_HEAP_BTR_SEARCH
);
return
(
NULL
);
}
...
...
@@ -222,7 +223,8 @@ mem_block_t*
mem_heap_add_block
(
/*===============*/
/* out: created block, NULL if did not
succeed */
succeed (only possible for
MEM_HEAP_BTR_SEARCH type heaps)*/
mem_heap_t
*
heap
,
/* in: memory heap */
ulint
n
)
/* in: number of bytes user needs */
{
...
...
support-files/mysql.spec.sh
View file @
409fbaa6
...
...
@@ -368,7 +368,6 @@ BuildMySQL "--disable-shared \
--with-mysqld-ldflags='-all-static'
\
--with-client-ldflags='-all-static'
\
$USE_OTHER_LIBC_DIR
\
%else
%endif
--with-zlib-dir=bundled
\
--with-comment=
\"
MySQL Community Edition - Standard (GPL)
\"
\
...
...
zlib/Makefile.am
View file @
409fbaa6
...
...
@@ -18,6 +18,8 @@
pkglib_LTLIBRARIES
=
libz.la
libz_la_LDFLAGS
=
-version-info
3:3:2
noinst_HEADERS
=
crc32.h deflate.h inffast.h inffixed.h inflate.h
\
inftrees.h trees.h zconf.h zlib.h zutil.h
...
...
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