mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into poseidon.ndb.mysql.com:/home/tomas/v7
This commit is contained in:
@ -12433,31 +12433,108 @@ a b
|
|||||||
DROP TABLE t5;
|
DROP TABLE t5;
|
||||||
CREATE TABLE `t5` (
|
CREATE TABLE `t5` (
|
||||||
`a` int(11) NOT NULL auto_increment,
|
`a` int(11) NOT NULL auto_increment,
|
||||||
b char(12),
|
b blob(12),
|
||||||
KEY (`a`)
|
KEY (`a`)
|
||||||
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
|
) 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, "We the people");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "in order to form a more pefect union");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "establish justice");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "foo grok ");
|
||||||
INSERT INTO t5 VALUES (32, "foo");
|
INSERT INTO t5 VALUES (32, "ensure domestic tranquility");
|
||||||
INSERT INTO t5 VALUES (23, "foo");
|
INSERT INTO t5 VALUES (23, "provide for the common defense");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "fo fooo");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "foo just naother bit of text");
|
||||||
INSERT INTO t5 VALUES (3, "foo");
|
INSERT INTO t5 VALUES (3, "foo this is mine to think about");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "promote the general welfare");
|
||||||
SELECT * FROM t5;
|
SELECT * FROM t5;
|
||||||
a b
|
a b
|
||||||
1 foo
|
1 foo
|
||||||
2 foo
|
2 We the people
|
||||||
3 foo
|
3 in order to form a more pefect union
|
||||||
4 foo
|
4 establish justice
|
||||||
5 foo
|
5 foo grok
|
||||||
32 foo
|
32 ensure domestic tranquility
|
||||||
23 foo
|
23 provide for the common defense
|
||||||
33 foo
|
33 fo fooo
|
||||||
34 foo
|
34 foo just naother bit of text
|
||||||
3 foo
|
3 foo this is mine to think about
|
||||||
35 foo
|
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;
|
drop table t1, t2, t4, t5;
|
||||||
|
@ -1409,22 +1409,52 @@ DROP TABLE t5;
|
|||||||
|
|
||||||
CREATE TABLE `t5` (
|
CREATE TABLE `t5` (
|
||||||
`a` int(11) NOT NULL auto_increment,
|
`a` int(11) NOT NULL auto_increment,
|
||||||
b char(12),
|
b blob(12),
|
||||||
KEY (`a`)
|
KEY (`a`)
|
||||||
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
|
) 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, "We the people");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "in order to form a more pefect union");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "establish justice");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "foo grok ");
|
||||||
INSERT INTO t5 VALUES (32, "foo");
|
INSERT INTO t5 VALUES (32, "ensure domestic tranquility");
|
||||||
INSERT INTO t5 VALUES (23, "foo");
|
INSERT INTO t5 VALUES (23, "provide for the common defense");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "fo fooo");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "foo just naother bit of text");
|
||||||
INSERT INTO t5 VALUES (3, "foo");
|
INSERT INTO t5 VALUES (3, "foo this is mine to think about");
|
||||||
INSERT INTO t5 VALUES (NULL, "foo");
|
INSERT INTO t5 VALUES (NULL, "promote the general welfare");
|
||||||
SELECT * FROM t5;
|
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
|
# Cleanup, test is over
|
||||||
|
@ -170,6 +170,7 @@ handlerton archive_hton = {
|
|||||||
NULL, /* Start Consistent Snapshot */
|
NULL, /* Start Consistent Snapshot */
|
||||||
NULL, /* Flush logs */
|
NULL, /* Flush logs */
|
||||||
NULL, /* Show status */
|
NULL, /* Show status */
|
||||||
|
NULL, /* Alter interface */
|
||||||
HTON_NO_FLAGS
|
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 ;
|
for (ptr= table->s->blob_field, end=ptr + table->s->blob_fields ;
|
||||||
ptr != end ;
|
ptr != end ;
|
||||||
ptr++)
|
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 */
|
/* Adjust our row buffer if we need be */
|
||||||
buffer.alloc(total_blob_length);
|
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();
|
size_t size= ((Field_blob*) table->field[*ptr])->get_length();
|
||||||
if (size)
|
if (size)
|
||||||
{
|
{
|
||||||
read= azread(file_to_read, last, size);
|
if (ha_get_bit_in_read_set(((Field_blob*) table->field[*ptr])->fieldnr))
|
||||||
if ((size_t) read != size)
|
{
|
||||||
DBUG_RETURN(HA_ERR_END_OF_FILE);
|
read= azread(file_to_read, last, size);
|
||||||
((Field_blob*) table->field[*ptr])->set_ptr(size, last);
|
if ((size_t) read != size)
|
||||||
last += 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);
|
DBUG_RETURN(0);
|
||||||
|
Reference in New Issue
Block a user