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
cb5473cb
Commit
cb5473cb
authored
Apr 09, 2013
by
Sergei Golubchik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
write frm pieces contiguously, don't align them on a 4K boundary
(in partition_archive.test frm size goes down 16 times :)
parent
e671cba9
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
13 additions
and
24 deletions
+13
-24
mysql-test/suite/archive/archive.result
mysql-test/suite/archive/archive.result
+2
-2
mysql-test/suite/archive/partition_archive.result
mysql-test/suite/archive/partition_archive.result
+2
-2
sql/table.cc
sql/table.cc
+0
-5
sql/unireg.cc
sql/unireg.cc
+9
-15
No files found.
mysql-test/suite/archive/archive.result
View file @
cb5473cb
...
@@ -12701,12 +12701,12 @@ CREATE TABLE t1(a INT, b BLOB) ENGINE=archive;
...
@@ -12701,12 +12701,12 @@ CREATE TABLE t1(a INT, b BLOB) ENGINE=archive;
SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM
SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM
INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test';
INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test';
DATA_LENGTH AVG_ROW_LENGTH
DATA_LENGTH AVG_ROW_LENGTH
8608
15
535
15
INSERT INTO t1 VALUES(1, 'sampleblob1'),(2, 'sampleblob2');
INSERT INTO t1 VALUES(1, 'sampleblob1'),(2, 'sampleblob2');
SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM
SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM
INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test';
INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test';
DATA_LENGTH AVG_ROW_LENGTH
DATA_LENGTH AVG_ROW_LENGTH
8642 4321
569 284
DROP TABLE t1;
DROP TABLE t1;
SET @save_join_buffer_size= @@join_buffer_size;
SET @save_join_buffer_size= @@join_buffer_size;
SET @@join_buffer_size= 8192;
SET @@join_buffer_size= 8192;
...
...
mysql-test/suite/archive/partition_archive.result
View file @
cb5473cb
...
@@ -15,10 +15,10 @@ ENGINE = ARCHIVE;
...
@@ -15,10 +15,10 @@ ENGINE = ARCHIVE;
INSERT INTO t1 VALUES(CURRENT_DATE);
INSERT INTO t1 VALUES(CURRENT_DATE);
SELECT DATA_LENGTH, INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
SELECT DATA_LENGTH, INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
DATA_LENGTH INDEX_LENGTH
DATA_LENGTH INDEX_LENGTH
8604
0
520
0
SELECT DATA_LENGTH, INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
SELECT DATA_LENGTH, INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
DATA_LENGTH INDEX_LENGTH
DATA_LENGTH INDEX_LENGTH
8604
0
520
0
DROP TABLE t1;
DROP TABLE t1;
drop database if exists db99;
drop database if exists db99;
drop table if exists t1;
drop table if exists t1;
...
...
sql/table.cc
View file @
cb5473cb
...
@@ -2926,7 +2926,6 @@ void append_unescaped(String *res, const char *pos, uint length)
...
@@ -2926,7 +2926,6 @@ void append_unescaped(String *res, const char *pos, uint length)
void
prepare_frm_header
(
THD
*
thd
,
uint
reclength
,
uchar
*
fileinfo
,
void
prepare_frm_header
(
THD
*
thd
,
uint
reclength
,
uchar
*
fileinfo
,
HA_CREATE_INFO
*
create_info
,
uint
keys
,
KEY
*
key_info
)
HA_CREATE_INFO
*
create_info
,
uint
keys
,
KEY
*
key_info
)
{
{
ulong
length
;
ulong
key_comment_total_bytes
=
0
;
ulong
key_comment_total_bytes
=
0
;
uint
i
;
uint
i
;
DBUG_ENTER
(
"prepare_frm_header"
);
DBUG_ENTER
(
"prepare_frm_header"
);
...
@@ -2947,7 +2946,6 @@ void prepare_frm_header(THD *thd, uint reclength, uchar *fileinfo,
...
@@ -2947,7 +2946,6 @@ void prepare_frm_header(THD *thd, uint reclength, uchar *fileinfo,
fileinfo
[
3
]
=
(
uchar
)
ha_legacy_type
(
fileinfo
[
3
]
=
(
uchar
)
ha_legacy_type
(
ha_checktype
(
thd
,
ha_legacy_type
(
create_info
->
db_type
),
0
,
0
));
ha_checktype
(
thd
,
ha_legacy_type
(
create_info
->
db_type
),
0
,
0
));
int2store
(
fileinfo
+
4
,
3
);
int2store
(
fileinfo
+
4
,
3
);
int2store
(
fileinfo
+
6
,
IO_SIZE
);
/* Next block starts here */
/*
/*
Keep in sync with pack_keys() in unireg.cc
Keep in sync with pack_keys() in unireg.cc
For each key:
For each key:
...
@@ -2971,10 +2969,7 @@ void prepare_frm_header(THD *thd, uint reclength, uchar *fileinfo,
...
@@ -2971,10 +2969,7 @@ void prepare_frm_header(THD *thd, uint reclength, uchar *fileinfo,
key_length
=
keys
*
(
8
+
MAX_REF_PARTS
*
9
+
NAME_LEN
+
1
)
+
16
key_length
=
keys
*
(
8
+
MAX_REF_PARTS
*
9
+
NAME_LEN
+
1
)
+
16
+
key_comment_total_bytes
;
+
key_comment_total_bytes
;
length
=
next_io_size
((
ulong
)
(
IO_SIZE
+
key_length
+
reclength
+
create_info
->
extra_size
));
int2store
(
fileinfo
+
8
,
1
);
int2store
(
fileinfo
+
8
,
1
);
int4store
(
fileinfo
+
10
,
length
);
tmp_key_length
=
(
key_length
<
0xffff
)
?
key_length
:
0xffff
;
tmp_key_length
=
(
key_length
<
0xffff
)
?
key_length
:
0xffff
;
int2store
(
fileinfo
+
14
,
tmp_key_length
);
int2store
(
fileinfo
+
14
,
tmp_key_length
);
int2store
(
fileinfo
+
16
,
reclength
);
int2store
(
fileinfo
+
16
,
reclength
);
...
...
sql/unireg.cc
View file @
cb5473cb
...
@@ -206,24 +206,18 @@ bool mysql_create_frm(THD *thd, const char *file_name,
...
@@ -206,24 +206,18 @@ bool mysql_create_frm(THD *thd, const char *file_name,
prepare_frm_header
(
thd
,
reclength
,
fileinfo
,
create_info
,
keys
,
key_info
);
prepare_frm_header
(
thd
,
reclength
,
fileinfo
,
create_info
,
keys
,
key_info
);
key_buff_length
=
uint4korr
(
fileinfo
+
47
);
key_buff_length
=
uint4korr
(
fileinfo
+
47
);
filepos
=
uint4korr
(
fileinfo
+
10
);
{
frm_length
=
FRM_HEADER_SIZE
;
// fileinfo;
size_t
len1
,
len2
,
len3
;
frm_length
+=
7
;
// "form entry"
len1
=
FRM_HEADER_SIZE
;
// fileinfo
len1
+=
7
;
// "form entry"
len2
=
uint2korr
(
fileinfo
+
6
);
// 4096
len2
+=
key_buff_length
;
len2
+=
reclength
;
len2
+=
create_info
->
extra_size
;
len3
=
filepos
;
int2store
(
fileinfo
+
6
,
frm_length
);
len3
+=
FRM_FORMINFO_SIZE
;
//forminfo
frm_length
+=
key_buff_length
;
len3
+=
packed_fields_length
(
create_fields
);
frm_length
+=
reclength
;
// row with default values
frm_length
+=
create_info
->
extra_size
;
frm_length
=
len3
;
filepos
=
frm_length
;
}
frm_length
+=
FRM_FORMINFO_SIZE
;
// forminfo
frm_length
+=
packed_fields_length
(
create_fields
);
frm_ptr
=
(
uchar
*
)
my_malloc
(
frm_length
,
MYF
(
MY_ZEROFILL
|
MY_THREAD_SPECIFIC
));
frm_ptr
=
(
uchar
*
)
my_malloc
(
frm_length
,
MYF
(
MY_ZEROFILL
|
MY_THREAD_SPECIFIC
));
if
(
!
frm_ptr
)
if
(
!
frm_ptr
)
...
...
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