Commit eb292e25 authored by unknown's avatar unknown

Merge mysql.com:/home/timka/mysql/src/5.0-virgin

into mysql.com:/home/timka/mysql/src/5.0-dbg


sql/opt_range.cc:
  Auto merged
parents 9c60ec7f 7263eb0e
...@@ -36,22 +36,22 @@ CLEAN_FILES: $(txt_files) ...@@ -36,22 +36,22 @@ CLEAN_FILES: $(txt_files)
GT = $(srcdir)/Support/generate-text-files.pl GT = $(srcdir)/Support/generate-text-files.pl
../INSTALL-SOURCE: mysql.info $(GT) ../INSTALL-SOURCE: mysql.info $(GT)
perl -w $(GT) mysql.info "Installing" "Tutorial" > $@ perl -w $(GT) mysql.info "installing-source" "windows-source-build" > $@
../INSTALL-WIN-SOURCE: mysql.info $(GT) ../INSTALL-WIN-SOURCE: mysql.info $(GT)
perl -w $(GT) mysql.info "Windows source build" "Post-installation" > $@ perl -w $(GT) mysql.info "windows-source-build" "post-installation" > $@
# We put the description for the binary installation here so that # We put the description for the binary installation here so that
# people who download source wont have to see it. It is moved up to # people who download source wont have to see it. It is moved up to
# the toplevel by the script that makes the binary tar files. # the toplevel by the script that makes the binary tar files.
INSTALL-BINARY: mysql.info $(GT) INSTALL-BINARY: mysql.info $(GT)
perl -w $(GT) mysql.info "Installing binary" "Installing source" > $@ perl -w $(GT) mysql.info "installing-binary" "installing-source" > $@
../EXCEPTIONS-CLIENT: mysql.info $(GT) ../EXCEPTIONS-CLIENT: mysql.info $(GT)
perl -w $(GT) mysql.info "MySQL FLOSS License Exception" "Function Index" > $@ perl -w $(GT) mysql.info "mysql-floss-license-exception" "function-index" > $@
../support-files/MacOSX/ReadMe.txt: mysql.info $(GT) ../support-files/MacOSX/ReadMe.txt: mysql.info $(GT)
perl -w $(GT) mysql.info "Mac OS X installation" "NetWare installation" > $@ perl -w $(GT) mysql.info "mac-os-x-installation" "netware-installation" > $@
# Don't update the files from bitkeeper # Don't update the files from bitkeeper
%::SCCS/s.% %::SCCS/s.%
#!/bin/sh
flags=`grep @image mirrors.texi | cut -d" " -f1 | cut -d/ -f2 | tr -d "}" | sort | uniq`
set -x
cd Flags
for c in $flags
do
# For PNM, to be used later
giftopnm ../Raw-Flags/$c.gif | pnmscale -xsize 30 > $c-tmp.pnm
pnmpaste $c-tmp.pnm 1 1 ../Images/flag-background.pnm > $c.pnm
rm -f $c-tmp.pnm
# For GIF version
ppmtogif $c.pnm > $c.gif
# or cjpeg -optimize -quality 70 -outfile $c.jpg
# For EPS version
pnmtops -noturn $c.pnm > $c.eps
# For PDF version
ps2pdf $c.eps $c.pdf
# For text version
echo -n "" > $c.txt
# PNM isn't really needed
rm -f $c.pnm
done
...@@ -13,7 +13,7 @@ while (<IN>) ...@@ -13,7 +13,7 @@ while (<IN>)
{ {
if ($in) if ($in)
{ {
if (/Node: $tnode,/) if (/Node: $tnode,/ || /\[index/)
{ {
$in = 0; $in = 0;
} }
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#if !defined(yaSSL_NEW_HPP) && defined(__GNUC__) #if !defined(yaSSL_NEW_HPP) && defined(__GNUC__) && !defined(__ICC)
#define yaSSL_NEW_HPP #define yaSSL_NEW_HPP
......
...@@ -123,3 +123,14 @@ key1a = 2 and key1b is null and key3a = 2 and key3b is null; ...@@ -123,3 +123,14 @@ key1a = 2 and key1b is null and key3a = 2 and key3b is null;
count(*) count(*)
4 4
drop table t1,t2; drop table t1,t2;
create table t1 (
id1 int,
id2 date ,
index idx2 (id1,id2),
index idx1 (id2)
) engine = innodb;
insert into t1 values(1,'20040101'), (2,'20040102');
select * from t1 where id1 = 1 and id2= '20040101';
id1 id2
1 2004-01-01
drop table t1;
...@@ -2816,3 +2816,24 @@ select * from t1; ...@@ -2816,3 +2816,24 @@ select * from t1;
EMPNUM EMPNUM
E1 E1
DROP TABLE t1,t2; DROP TABLE t1,t2;
CREATE TABLE t1(select_id BIGINT, values_id BIGINT);
INSERT INTO t1 VALUES (1, 1);
CREATE TABLE t2 (select_id BIGINT, values_id BIGINT,
PRIMARY KEY(select_id,values_id));
INSERT INTO t2 VALUES (0, 1), (0, 2), (0, 3), (1, 5);
SELECT values_id FROM t1
WHERE values_id IN (SELECT values_id FROM t2
WHERE select_id IN (1, 0));
values_id
1
SELECT values_id FROM t1
WHERE values_id IN (SELECT values_id FROM t2
WHERE select_id BETWEEN 0 AND 1);
values_id
1
SELECT values_id FROM t1
WHERE values_id IN (SELECT values_id FROM t2
WHERE select_id = 0 OR select_id = 1);
values_id
1
DROP TABLE t1, t2;
...@@ -120,3 +120,14 @@ select count(*) from t1 where ...@@ -120,3 +120,14 @@ select count(*) from t1 where
drop table t1,t2; drop table t1,t2;
# Test for BUG#8441
create table t1 (
id1 int,
id2 date ,
index idx2 (id1,id2),
index idx1 (id2)
) engine = innodb;
insert into t1 values(1,'20040101'), (2,'20040102');
select * from t1 where id1 = 1 and id2= '20040101';
drop table t1;
...@@ -1837,3 +1837,25 @@ WHERE t1.EMPNUM NOT IN ...@@ -1837,3 +1837,25 @@ WHERE t1.EMPNUM NOT IN
WHERE t1.EMPNUM = t2.EMPNUM); WHERE t1.EMPNUM = t2.EMPNUM);
select * from t1; select * from t1;
DROP TABLE t1,t2; DROP TABLE t1,t2;
#
# Test for bug #11487: range access in a subquery
#
CREATE TABLE t1(select_id BIGINT, values_id BIGINT);
INSERT INTO t1 VALUES (1, 1);
CREATE TABLE t2 (select_id BIGINT, values_id BIGINT,
PRIMARY KEY(select_id,values_id));
INSERT INTO t2 VALUES (0, 1), (0, 2), (0, 3), (1, 5);
SELECT values_id FROM t1
WHERE values_id IN (SELECT values_id FROM t2
WHERE select_id IN (1, 0));
SELECT values_id FROM t1
WHERE values_id IN (SELECT values_id FROM t2
WHERE select_id BETWEEN 0 AND 1);
SELECT values_id FROM t1
WHERE values_id IN (SELECT values_id FROM t2
WHERE select_id = 0 OR select_id = 1);
DROP TABLE t1, t2;
...@@ -2593,12 +2593,12 @@ static double ror_scan_selectivity(const ROR_INTERSECT_INFO *info, ...@@ -2593,12 +2593,12 @@ static double ror_scan_selectivity(const ROR_INTERSECT_INFO *info,
{ {
tuple_arg= scan->sel_arg; tuple_arg= scan->sel_arg;
/* Here we use the length of the first key part */ /* Here we use the length of the first key part */
tuple_arg->store_min(key_part->length, &key_ptr, 0); tuple_arg->store_min(key_part->store_length, &key_ptr, 0);
} }
while (tuple_arg->next_key_part != sel_arg) while (tuple_arg->next_key_part != sel_arg)
{ {
tuple_arg= tuple_arg->next_key_part; tuple_arg= tuple_arg->next_key_part;
tuple_arg->store_min(key_part[tuple_arg->part].length, &key_ptr, 0); tuple_arg->store_min(key_part[tuple_arg->part].store_length, &key_ptr, 0);
} }
min_range.length= max_range.length= ((char*) key_ptr - (char*) key_val); min_range.length= max_range.length= ((char*) key_ptr - (char*) key_val);
records= (info->param->table->file-> records= (info->param->table->file->
...@@ -6021,7 +6021,10 @@ int QUICK_RANGE_SELECT::reset() ...@@ -6021,7 +6021,10 @@ int QUICK_RANGE_SELECT::reset()
next=0; next=0;
range= NULL; range= NULL;
cur_range= (QUICK_RANGE**) ranges.buffer; cur_range= (QUICK_RANGE**) ranges.buffer;
if (file->inited == handler::NONE && (error= file->ha_index_init(index)))
DBUG_RETURN(error);
/* Do not allocate the buffers twice. */ /* Do not allocate the buffers twice. */
if (multi_range_length) if (multi_range_length)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment