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
1246d2a2
Commit
1246d2a2
authored
Jan 13, 2006
by
tomas@poseidon.ndb.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into poseidon.ndb.mysql.com:/home/tomas/v7
parents
e648a8fe
8651cee8
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
156 additions
and
38 deletions
+156
-38
mysql-test/r/archive.result
mysql-test/r/archive.result
+98
-21
mysql-test/t/archive.test
mysql-test/t/archive.test
+41
-11
sql/ha_archive.cc
sql/ha_archive.cc
+17
-6
No files found.
mysql-test/r/archive.result
View file @
1246d2a2
...
...
@@ -12433,31 +12433,108 @@ a b
DROP TABLE t5;
CREATE TABLE `t5` (
`a` int(11) NOT NULL auto_increment,
b
char
(12),
b
blob
(12),
KEY (`a`)
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
INSERT INTO t5 VALUES (NULL, "foo");
INSERT INTO t5 VALUES (NULL, "
foo
");
INSERT INTO t5 VALUES (NULL, "
foo
");
INSERT INTO t5 VALUES (NULL, "
foo
");
INSERT INTO t5 VALUES (NULL, "foo");
INSERT INTO t5 VALUES (32, "
foo
");
INSERT INTO t5 VALUES (23, "
foo
");
INSERT INTO t5 VALUES (NULL, "foo");
INSERT INTO t5 VALUES (NULL, "foo");
INSERT INTO t5 VALUES (3, "foo");
INSERT INTO t5 VALUES (NULL, "
foo
");
INSERT INTO t5 VALUES (NULL, "
We the people
");
INSERT INTO t5 VALUES (NULL, "
in order to form a more pefect union
");
INSERT INTO t5 VALUES (NULL, "
establish justice
");
INSERT INTO t5 VALUES (NULL, "foo
grok
");
INSERT INTO t5 VALUES (32, "
ensure domestic tranquility
");
INSERT INTO t5 VALUES (23, "
provide for the common defense
");
INSERT INTO t5 VALUES (NULL, "fo
foo
o");
INSERT INTO t5 VALUES (NULL, "foo
just naother bit of text
");
INSERT INTO t5 VALUES (3, "foo
this is mine to think about
");
INSERT INTO t5 VALUES (NULL, "
promote the general welfare
");
SELECT * FROM t5;
a b
1 foo
2 foo
3 foo
4 foo
5 foo
32 foo
23 foo
33 foo
34 foo
3 foo
35 foo
2 We the people
3 in order to form a more pefect union
4 establish justice
5 foo grok
32 ensure domestic tranquility
23 provide for the common defense
33 fo fooo
34 foo just naother bit of text
3 foo this is mine to think about
35 promote the general welfare
SELECT b FROM t5;
b
foo
We the people
in order to form a more pefect union
establish justice
foo grok
ensure domestic tranquility
provide for the common defense
fo fooo
foo just naother bit of text
foo this is mine to think about
promote the general welfare
SELECT b FROM t5 WHERE a =3;
b
in order to form a more pefect union
foo this is mine to think about
SELECT b FROM t5 WHERE a IN (32, 23, 5);
b
foo grok
ensure domestic tranquility
provide for the common defense
DROP TABLE t5;
CREATE TABLE `t5` (
`a` int(11) NOT NULL auto_increment,
b blob(12),
c blob(12),
KEY (`a`)
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
INSERT INTO t5 VALUES (NULL, "foo", "grok this!");
INSERT INTO t5 VALUES (NULL, "We the people", NULL);
INSERT INTO t5 VALUES (NULL, "in order to form a more peefect union", "secure the blessing of liberty");
INSERT INTO t5 VALUES (NULL, "establish justice", "to ourselves and");
INSERT INTO t5 VALUES (32, "ensure domestic tranquility", NULL);
INSERT INTO t5 VALUES (23, "provide for the common defense", "posterity");
INSERT INTO t5 VALUES (NULL, "promote the general welfare", "do ordain");
SELECT * FROM t5;
a b c
1 foo grok this!
2 We the people NULL
3 in order to form a more peefect union secure the blessing of liberty
4 establish justice to ourselves and
32 ensure domestic tranquility NULL
23 provide for the common defense posterity
33 promote the general welfare do ordain
SELECT b FROM t5;
b
foo
We the people
in order to form a more peefect union
establish justice
ensure domestic tranquility
provide for the common defense
promote the general welfare
SELECT b FROM t5 WHERE a =3;
b
in order to form a more peefect union
SELECT b FROM t5 WHERE a IN (32, 23, 5);
b
ensure domestic tranquility
provide for the common defense
SELECT c FROM t5;
c
grok this!
NULL
secure the blessing of liberty
to ourselves and
NULL
posterity
do ordain
SELECT c FROM t5 WHERE a =3;
c
secure the blessing of liberty
SELECT c FROM t5 WHERE a IN (32, 23, 5);
c
NULL
posterity
drop table t1, t2, t4, t5;
mysql-test/t/archive.test
View file @
1246d2a2
...
...
@@ -1409,22 +1409,52 @@ DROP TABLE t5;
CREATE
TABLE
`t5`
(
`a`
int
(
11
)
NOT
NULL
auto_increment
,
b
char
(
12
),
b
blob
(
12
),
KEY
(
`a`
)
)
ENGINE
=
ARCHIVE
DEFAULT
CHARSET
=
latin1
;
INSERT
INTO
t5
VALUES
(
NULL
,
"foo"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"foo"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"foo"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"foo"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"foo"
);
INSERT
INTO
t5
VALUES
(
32
,
"foo"
);
INSERT
INTO
t5
VALUES
(
23
,
"foo"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"foo"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"foo"
);
INSERT
INTO
t5
VALUES
(
3
,
"foo"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"foo"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"We the people"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"in order to form a more pefect union"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"establish justice"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"foo grok "
);
INSERT
INTO
t5
VALUES
(
32
,
"ensure domestic tranquility"
);
INSERT
INTO
t5
VALUES
(
23
,
"provide for the common defense"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"fo fooo"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"foo just naother bit of text"
);
INSERT
INTO
t5
VALUES
(
3
,
"foo this is mine to think about"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"promote the general welfare"
);
SELECT
*
FROM
t5
;
SELECT
b
FROM
t5
;
SELECT
b
FROM
t5
WHERE
a
=
3
;
SELECT
b
FROM
t5
WHERE
a
IN
(
32
,
23
,
5
);
#More blob tests
DROP
TABLE
t5
;
CREATE
TABLE
`t5`
(
`a`
int
(
11
)
NOT
NULL
auto_increment
,
b
blob
(
12
),
c
blob
(
12
),
KEY
(
`a`
)
)
ENGINE
=
ARCHIVE
DEFAULT
CHARSET
=
latin1
;
INSERT
INTO
t5
VALUES
(
NULL
,
"foo"
,
"grok this!"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"We the people"
,
NULL
);
INSERT
INTO
t5
VALUES
(
NULL
,
"in order to form a more peefect union"
,
"secure the blessing of liberty"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"establish justice"
,
"to ourselves and"
);
INSERT
INTO
t5
VALUES
(
32
,
"ensure domestic tranquility"
,
NULL
);
INSERT
INTO
t5
VALUES
(
23
,
"provide for the common defense"
,
"posterity"
);
INSERT
INTO
t5
VALUES
(
NULL
,
"promote the general welfare"
,
"do ordain"
);
SELECT
*
FROM
t5
;
SELECT
b
FROM
t5
;
SELECT
b
FROM
t5
WHERE
a
=
3
;
SELECT
b
FROM
t5
WHERE
a
IN
(
32
,
23
,
5
);
SELECT
c
FROM
t5
;
SELECT
c
FROM
t5
WHERE
a
=
3
;
SELECT
c
FROM
t5
WHERE
a
IN
(
32
,
23
,
5
);
#
# Cleanup, test is over
...
...
sql/ha_archive.cc
View file @
1246d2a2
...
...
@@ -170,6 +170,7 @@ handlerton archive_hton = {
NULL
,
/* Start Consistent Snapshot */
NULL
,
/* Flush logs */
NULL
,
/* Show status */
NULL
,
/* Alter interface */
HTON_NO_FLAGS
};
...
...
@@ -973,7 +974,10 @@ int ha_archive::get_row(azio_stream *file_to_read, byte *buf)
for
(
ptr
=
table
->
s
->
blob_field
,
end
=
ptr
+
table
->
s
->
blob_fields
;
ptr
!=
end
;
ptr
++
)
total_blob_length
+=
((
Field_blob
*
)
table
->
field
[
*
ptr
])
->
get_length
();
{
if
(
ha_get_bit_in_read_set
(((
Field_blob
*
)
table
->
field
[
*
ptr
])
->
fieldnr
))
total_blob_length
+=
((
Field_blob
*
)
table
->
field
[
*
ptr
])
->
get_length
();
}
/* Adjust our row buffer if we need be */
buffer
.
alloc
(
total_blob_length
);
...
...
@@ -987,11 +991,18 @@ int ha_archive::get_row(azio_stream *file_to_read, byte *buf)
size_t
size
=
((
Field_blob
*
)
table
->
field
[
*
ptr
])
->
get_length
();
if
(
size
)
{
read
=
azread
(
file_to_read
,
last
,
size
);
if
((
size_t
)
read
!=
size
)
DBUG_RETURN
(
HA_ERR_END_OF_FILE
);
((
Field_blob
*
)
table
->
field
[
*
ptr
])
->
set_ptr
(
size
,
last
);
last
+=
size
;
if
(
ha_get_bit_in_read_set
(((
Field_blob
*
)
table
->
field
[
*
ptr
])
->
fieldnr
))
{
read
=
azread
(
file_to_read
,
last
,
size
);
if
((
size_t
)
read
!=
size
)
DBUG_RETURN
(
HA_ERR_END_OF_FILE
);
((
Field_blob
*
)
table
->
field
[
*
ptr
])
->
set_ptr
(
size
,
last
);
last
+=
size
;
}
else
{
(
void
)
azseek
(
file_to_read
,
size
,
SEEK_CUR
);
}
}
}
DBUG_RETURN
(
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