mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
This commit is contained in:
commit
b100adf750
35 changed files with 177 additions and 57 deletions
|
@ -29,6 +29,7 @@ dellis@goetia.(none)
|
|||
dlenev@brandersnatch.localdomain
|
||||
dlenev@build.mysql.com
|
||||
dlenev@mysql.com
|
||||
gbichot@quadxeon.mysql.com
|
||||
gerberb@ou800.zenez.com
|
||||
gluh@gluh.(none)
|
||||
gluh@gluh.mysql.r18.ru
|
||||
|
@ -109,9 +110,11 @@ nick@mysql.com
|
|||
nick@nick.leippe.com
|
||||
patg@krsna.patg.net
|
||||
paul@central.snake.net
|
||||
paul@frost.snake.net
|
||||
paul@ice.local
|
||||
paul@ice.snake.net
|
||||
paul@kite-hub.kitebird.com
|
||||
paul@snake-hub.snake.net
|
||||
paul@teton.kitebird.com
|
||||
pem@mysql.com
|
||||
peter@linux.local
|
||||
|
|
|
@ -617,16 +617,20 @@ sub abort
|
|||
|
||||
if ($opt_user)
|
||||
{
|
||||
$mail_header_file="$opt_tmp/do-command.$$";
|
||||
open(TMP,">$mail_header_file");
|
||||
# Take the last 40 lines of the build log
|
||||
open(LOG, "$log") or die $!;
|
||||
my @log= <LOG>;
|
||||
close LOG;
|
||||
splice @log => 0, -40;
|
||||
my $mail_file="$opt_tmp/do-command.$$";
|
||||
open(TMP,">$mail_file") or die $!;
|
||||
print TMP "From: mysqldev\@$full_host_name\n";
|
||||
print TMP "To: $email\n";
|
||||
print TMP "Subject: $host($uname): $ver$opt_version_suffix compilation failed\n\n";
|
||||
print TMP @log;
|
||||
close TMP;
|
||||
system("tail -n 40 $log > $log.mail");
|
||||
system("cat $mail_header_file $log.mail | $sendmail -t -f $email");
|
||||
unlink($mail_header_file);
|
||||
unlink("$log.mail");
|
||||
system("$sendmail -t -f $email < $mail_file");
|
||||
unlink($mail_file);
|
||||
}
|
||||
exit 1;
|
||||
}
|
||||
|
|
18
Docs/changelog-4.0.xml
Executable file
18
Docs/changelog-4.0.xml
Executable file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
|
||||
<!--
|
||||
This is a dummy changelog file. Don't use it yet.
|
||||
It merges upward without conflict.
|
||||
-->
|
||||
<appendix id="news-4-0-x">
|
||||
|
||||
<title>
|
||||
Changes in release 4.0.x
|
||||
</title>
|
||||
|
||||
<para>
|
||||
This is a dummy changelog file. Don't use it yet.
|
||||
</para>
|
||||
|
||||
</appendix>
|
|
@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
|
|||
AC_INIT(sql/mysqld.cc)
|
||||
AC_CANONICAL_SYSTEM
|
||||
# The Docs Makefile.am parses this line!
|
||||
AM_INIT_AUTOMAKE(mysql, 4.0.24)
|
||||
AM_INIT_AUTOMAKE(mysql, 4.0.25)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
PROTOCOL_VERSION=10
|
||||
|
|
|
@ -639,7 +639,7 @@ dict_load_table(
|
|||
|
||||
/* Check if the table name in record is the searched one */
|
||||
if (len != ut_strlen(name) || ut_memcmp(name, field, len) != 0) {
|
||||
|
||||
err_exit:
|
||||
btr_pcur_close(&pcur);
|
||||
mtr_commit(&mtr);
|
||||
mem_heap_free(heap);
|
||||
|
@ -647,22 +647,6 @@ dict_load_table(
|
|||
return(NULL);
|
||||
}
|
||||
|
||||
#if MYSQL_VERSION_ID < 50300
|
||||
/* Starting from MySQL 5.0.3, the high-order bit of MIX_LEN is the
|
||||
"compact format" flag. */
|
||||
field = rec_get_nth_field(rec, 7, &len);
|
||||
if (mach_read_from_1(field) & 0x80) {
|
||||
btr_pcur_close(&pcur);
|
||||
mtr_commit(&mtr);
|
||||
mem_heap_free(heap);
|
||||
ut_print_timestamp(stderr);
|
||||
fprintf(stderr,
|
||||
" InnoDB: table %s is in the new compact format\n"
|
||||
"InnoDB: of MySQL 5.0.3 or later\n", name);
|
||||
return(NULL);
|
||||
}
|
||||
#endif /* MYSQL_VERSION_ID < 50300 */
|
||||
|
||||
ut_a(0 == ut_strcmp((char *) "SPACE",
|
||||
dict_field_get_col(
|
||||
dict_index_get_nth_field(
|
||||
|
@ -678,6 +662,13 @@ dict_load_table(
|
|||
|
||||
field = rec_get_nth_field(rec, 4, &len);
|
||||
n_cols = mach_read_from_4(field);
|
||||
if (n_cols & 0x80000000UL) {
|
||||
ut_print_timestamp(stderr);
|
||||
fprintf(stderr,
|
||||
" InnoDB: table %s is in the new compact format\n"
|
||||
"InnoDB: of MySQL 5.0.3 or later\n", name);
|
||||
goto err_exit;
|
||||
}
|
||||
|
||||
table = dict_mem_table_create(name, space, n_cols);
|
||||
|
||||
|
|
|
@ -101,6 +101,7 @@ extern ibool srv_use_doublewrite_buf;
|
|||
extern ibool srv_set_thread_priorities;
|
||||
extern int srv_query_thread_priority;
|
||||
|
||||
extern ulong srv_max_buf_pool_modified_pct;
|
||||
extern ulong srv_max_purge_lag;
|
||||
/*-------------------------------------------*/
|
||||
|
||||
|
|
|
@ -346,6 +346,12 @@ struct trx_struct{
|
|||
in MySQL's binlog write, we will
|
||||
flush the log to disk later in
|
||||
a separate call */
|
||||
ibool must_flush_log_later;/* this flag is set to TRUE in
|
||||
trx_commit_off_kernel() if
|
||||
flush_log_later was TRUE, and there
|
||||
were modifications by the transaction;
|
||||
in that case we must flush the log
|
||||
in trx_commit_complete_for_mysql() */
|
||||
dulint commit_lsn; /* lsn at the time of the commit */
|
||||
ibool dict_operation; /* TRUE if the trx is used to create
|
||||
a table, create an index, or drop a
|
||||
|
|
|
@ -165,7 +165,7 @@ in the buffer pool to all database pages in the buffer pool smaller than
|
|||
the following number. But it is not guaranteed that the value stays below
|
||||
that during a time of heavy update/insert activity. */
|
||||
|
||||
ulint srv_max_buf_pool_modified_pct = 90;
|
||||
ulong srv_max_buf_pool_modified_pct = 90;
|
||||
|
||||
/* If the following is != 0 we do not allow inserts etc. This protects
|
||||
the user from forgetting the innodb_force_recovery keyword to my.cnf */
|
||||
|
|
|
@ -96,6 +96,7 @@ trx_create(
|
|||
trx->check_unique_secondary = TRUE;
|
||||
|
||||
trx->flush_log_later = FALSE;
|
||||
trx->must_flush_log_later = FALSE;
|
||||
|
||||
trx->dict_operation = FALSE;
|
||||
|
||||
|
@ -634,6 +635,8 @@ trx_commit_off_kernel(
|
|||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
rseg = trx->rseg;
|
||||
|
||||
trx->must_flush_log_later = FALSE;
|
||||
|
||||
if (trx->insert_undo != NULL || trx->update_undo != NULL) {
|
||||
|
||||
|
@ -798,6 +801,7 @@ trx_commit_off_kernel(
|
|||
|
||||
if (trx->flush_log_later) {
|
||||
/* Do nothing yet */
|
||||
trx->must_flush_log_later = TRUE;
|
||||
} else if (srv_flush_log_at_trx_commit == 0) {
|
||||
/* Do nothing */
|
||||
} else if (srv_flush_log_at_trx_commit == 1) {
|
||||
|
@ -1516,7 +1520,9 @@ trx_commit_complete_for_mysql(
|
|||
|
||||
trx->op_info = (char*)"flushing log";
|
||||
|
||||
if (srv_flush_log_at_trx_commit == 0) {
|
||||
if (!trx->must_flush_log_later) {
|
||||
/* Do nothing */
|
||||
} if (srv_flush_log_at_trx_commit == 0) {
|
||||
/* Do nothing */
|
||||
} else if (srv_flush_log_at_trx_commit == 1) {
|
||||
if (srv_unix_file_flush_method == SRV_UNIX_NOSYNC) {
|
||||
|
@ -1538,6 +1544,8 @@ trx_commit_complete_for_mysql(
|
|||
ut_error;
|
||||
}
|
||||
|
||||
trx->must_flush_log_later = FALSE;
|
||||
|
||||
trx->op_info = (char*)"";
|
||||
|
||||
return(0);
|
||||
|
|
|
@ -130,7 +130,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -87,7 +87,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ version number and exit.
|
|||
Wait and retry if the database server connection is down.
|
||||
.SH FILES
|
||||
.TP 2.2i
|
||||
.I @sysconfdir@/my.cnf
|
||||
.I /etc/my.cnf
|
||||
MySQL configuration file
|
||||
.TP
|
||||
.I @bindir@/mysql
|
||||
|
@ -145,7 +145,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -30,7 +30,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -44,7 +44,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -110,7 +110,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -194,7 +194,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -219,7 +219,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -74,7 +74,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -263,7 +263,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -9,7 +9,7 @@ In most cases, you can run the executable from the command line with a "--help"
|
|||
argument to display a brief summary of the executable's arguments and function.
|
||||
For more information about MySQL, please refer to the MySQL reference manual,
|
||||
which may already be installed locally and which is also available online at
|
||||
http://dev.mysql.com/doc/
|
||||
http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.\" end of man page
|
||||
|
|
|
@ -83,7 +83,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -43,7 +43,7 @@ replace(1)
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -57,7 +57,7 @@ perror(1),
|
|||
.P
|
||||
For more information please refer to the MySQL reference
|
||||
manual, which may already be installed locally and which
|
||||
is also available online at http://www.mysql.com/doc/en/
|
||||
is also available online at http://dev.mysql.com/doc/mysql/en
|
||||
.SH BUGS
|
||||
Please refer to http://bugs.mysql.com/ to report bugs.
|
||||
.SH AUTHOR
|
||||
|
|
|
@ -304,3 +304,18 @@ QUOTE('A')
|
|||
'A'
|
||||
'A'
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id int PRIMARY KEY, str char(255) NOT NULL);
|
||||
CREATE TABLE t2 (id int NOT NULL UNIQUE);
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
INSERT INTO t1 VALUES (1, aes_encrypt('foo', 'bar'));
|
||||
INSERT INTO t1 VALUES (2, 'not valid');
|
||||
SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id;
|
||||
id aes_decrypt(str, 'bar')
|
||||
1 foo
|
||||
2 NULL
|
||||
SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id
|
||||
ORDER BY t1.id;
|
||||
id aes_decrypt(str, 'bar')
|
||||
1 foo
|
||||
2 NULL
|
||||
DROP TABLE t1, t2;
|
||||
|
|
|
@ -684,3 +684,23 @@ t1 ALL NULL NULL NULL NULL 3
|
|||
t2 ALL NULL NULL NULL NULL 2
|
||||
t3 ALL NULL NULL NULL NULL 2
|
||||
drop table t1, t2, t3;
|
||||
create table t1 (
|
||||
a int(11),
|
||||
b char(10),
|
||||
key (a)
|
||||
);
|
||||
insert into t1 (a) values (1),(2),(3),(4);
|
||||
create table t2 (a int);
|
||||
select * from t1 left join t2 on t1.a=t2.a where not (t2.a <=> t1.a);
|
||||
a b a
|
||||
1 NULL NULL
|
||||
2 NULL NULL
|
||||
3 NULL NULL
|
||||
4 NULL NULL
|
||||
select * from t1 left join t2 on t1.a=t2.a having not (t2.a <=> t1.a);
|
||||
a b a
|
||||
1 NULL NULL
|
||||
2 NULL NULL
|
||||
3 NULL NULL
|
||||
4 NULL NULL
|
||||
drop table t1,t2;
|
||||
|
|
|
@ -209,3 +209,10 @@ insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
|
|||
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
|
||||
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
|
||||
drop table t1, t2;
|
||||
create table t1 (a int, b char(255), key(a, b(20)));
|
||||
insert into t1 values (0, '1');
|
||||
update t1 set b = b + 1 where a = 0;
|
||||
select * from t1;
|
||||
a b
|
||||
0 2
|
||||
drop table t1;
|
||||
|
|
|
@ -198,3 +198,20 @@ select quote(trim(concat(' ', 'a')));
|
|||
CREATE TABLE t1 SELECT 1 UNION SELECT 2 UNION SELECT 3;
|
||||
SELECT QUOTE('A') FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Test case for bug #8669: null aes_decrypt result in order by query
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (id int PRIMARY KEY, str char(255) NOT NULL);
|
||||
CREATE TABLE t2 (id int NOT NULL UNIQUE);
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
INSERT INTO t1 VALUES (1, aes_encrypt('foo', 'bar'));
|
||||
INSERT INTO t1 VALUES (2, 'not valid');
|
||||
|
||||
SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id;
|
||||
SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id
|
||||
ORDER BY t1.id;
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
|
|
|
@ -450,3 +450,16 @@ select * from t1 left join t2 on b1 = a1 left join t3 on c1 = a1 and b1 is
|
|||
explain select * from t1 left join t2 on b1 = a1 left join t3 on c1 = a1 and b1 is null;
|
||||
|
||||
drop table t1, t2, t3;
|
||||
|
||||
# Test for BUG#8711 '<=>' was considered to be a NULL-rejecting predicate.
|
||||
create table t1 (
|
||||
a int(11),
|
||||
b char(10),
|
||||
key (a)
|
||||
);
|
||||
insert into t1 (a) values (1),(2),(3),(4);
|
||||
create table t2 (a int);
|
||||
|
||||
select * from t1 left join t2 on t1.a=t2.a where not (t2.a <=> t1.a);
|
||||
select * from t1 left join t2 on t1.a=t2.a having not (t2.a <=> t1.a);
|
||||
drop table t1,t2;
|
||||
|
|
|
@ -164,3 +164,13 @@ insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
|
|||
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
|
||||
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Bug #8942: a problem with update and partial key part
|
||||
#
|
||||
|
||||
create table t1 (a int, b char(255), key(a, b(20)));
|
||||
insert into t1 values (0, '1');
|
||||
update t1 set b = b + 1 where a = 0;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
export MYDEV="F:/mydev"
|
||||
|
||||
export MWCNWx86Includes="$MYDEV/libc/include;$MYDEV/fs64/headers;$MYDEV/zlib-1.1.4;$MYDEV"
|
||||
export MWNWx86Libraries="$MYDEV/libc/imports;$MYDEV/mw/lib;$MYDEV/fs64/imports;$MYDEV/zlib-1.1.4;$MYDEV/mysql-4.0.21/netware/BUILD"
|
||||
export MWNWx86Libraries="$MYDEV/libc/imports;$MYDEV/mw/lib;$MYDEV/fs64/imports;$MYDEV/zlib-1.1.4;$MYDEV/mysql-VERSION/netware/BUILD"
|
||||
export MWNWx86LibraryFiles="libcpre.o;libc.imp;netware.imp;mwcrtl.lib;mwcpp.lib;libz.a;neb.imp;zPublics.imp;knetware.imp"
|
||||
|
||||
export WINEPATH="$MYDEV/mw/bin"
|
||||
|
||||
# the default added path is "$HOME/mydev/mysql-x.x-x/netware/BUILD"
|
||||
export PATH="$PATH:/home/kp/mydev/mysql-4.0.21/netware/BUILD"
|
||||
export PATH="$PATH:BUILD_DIR/mysql-VERSION/netware/BUILD"
|
||||
|
||||
export AR='mwldnlm'
|
||||
export AR_FLAGS='-type library -o'
|
||||
|
|
|
@ -78,6 +78,7 @@ public:
|
|||
Item_func_equal(Item *a,Item *b) :Item_bool_func2(a,b) { };
|
||||
longlong val_int();
|
||||
void fix_length_and_dec();
|
||||
table_map not_null_tables() const { return 0; }
|
||||
enum Functype functype() const { return EQUAL_FUNC; }
|
||||
enum Functype rev_functype() const { return EQUAL_FUNC; }
|
||||
cond_result eq_cmp_result() const { return COND_TRUE; }
|
||||
|
|
|
@ -208,6 +208,7 @@ String *Item_func_aes_decrypt::val_str(String *str)
|
|||
void Item_func_aes_decrypt::fix_length_and_dec()
|
||||
{
|
||||
max_length=args[0]->max_length;
|
||||
maybe_null= 1;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1465,7 +1466,8 @@ Item_func_format::Item_func_format(Item *org,int dec) :Item_str_func(org)
|
|||
String *Item_func_format::val_str(String *str)
|
||||
{
|
||||
double nr =args[0]->val();
|
||||
uint32 diff,length,str_length;
|
||||
uint32 length,str_length;
|
||||
int diff;
|
||||
uint dec;
|
||||
if ((null_value=args[0]->null_value))
|
||||
return 0; /* purecov: inspected */
|
||||
|
@ -1483,17 +1485,17 @@ String *Item_func_format::val_str(String *str)
|
|||
if (str_length >= dec+4)
|
||||
{
|
||||
char *tmp,*pos;
|
||||
length= str->length()+(diff=(str_length- dec-1)/3);
|
||||
length= str->length()+(diff= (int)(str_length- dec-1)/3);
|
||||
str= copy_if_not_alloced(&tmp_str,str,length);
|
||||
str->length(length);
|
||||
tmp= (char*) str->ptr()+length - dec-1;
|
||||
for (pos= (char*) str->ptr()+length-1; pos != tmp; pos--)
|
||||
pos[0]= pos[-(int) diff];
|
||||
pos[0]= pos[-diff];
|
||||
while (diff)
|
||||
{
|
||||
pos[0]=pos[-(int) diff]; pos--;
|
||||
pos[0]=pos[-(int) diff]; pos--;
|
||||
pos[0]=pos[-(int) diff]; pos--;
|
||||
pos[0]=pos[-diff]; pos--;
|
||||
pos[0]=pos[-diff]; pos--;
|
||||
pos[0]=pos[-diff]; pos--;
|
||||
pos[0]=',';
|
||||
pos--;
|
||||
diff--;
|
||||
|
|
|
@ -265,7 +265,7 @@ bool check_if_key_used(TABLE *table, uint idx, List<Item> &fields)
|
|||
f.rewind();
|
||||
while ((field=(Item_field*) f++))
|
||||
{
|
||||
if (key_part->field == field->field)
|
||||
if (key_part->field->eq(field->field))
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2360,8 +2360,10 @@ int Create_file_log_event::exec_event(struct st_relay_log_info* rli)
|
|||
strmov(p, ".info"); // strmov takes less code than memcpy
|
||||
strnmov(proc_info, "Making temp file ", 17); // no end 0
|
||||
thd->proc_info= proc_info;
|
||||
if ((fd = my_open(fname_buf, O_WRONLY|O_CREAT|O_BINARY|O_TRUNC,
|
||||
MYF(MY_WME))) < 0 ||
|
||||
my_delete(fname_buf, MYF(0)); // old copy may exist already
|
||||
if ((fd= my_create(fname_buf, CREATE_MODE,
|
||||
O_WRONLY | O_BINARY | O_EXCL | O_NOFOLLOW,
|
||||
MYF(MY_WME))) < 0 ||
|
||||
init_io_cache(&file, fd, IO_SIZE, WRITE_CACHE, (my_off_t)0, 0,
|
||||
MYF(MY_WME|MY_NABP)))
|
||||
{
|
||||
|
@ -2383,8 +2385,10 @@ int Create_file_log_event::exec_event(struct st_relay_log_info* rli)
|
|||
my_close(fd, MYF(0));
|
||||
|
||||
// fname_buf now already has .data, not .info, because we did our trick
|
||||
if ((fd = my_open(fname_buf, O_WRONLY|O_CREAT|O_BINARY|O_TRUNC,
|
||||
MYF(MY_WME))) < 0)
|
||||
my_delete(fname_buf, MYF(0)); // old copy may exist already
|
||||
if ((fd= my_create(fname_buf, CREATE_MODE,
|
||||
O_WRONLY | O_BINARY | O_EXCL | O_NOFOLLOW,
|
||||
MYF(MY_WME))) < 0)
|
||||
{
|
||||
slave_print_error(rli,my_errno, "Error in Create_file event: could not open file '%s'", fname_buf);
|
||||
goto err;
|
||||
|
@ -2426,7 +2430,7 @@ int Append_block_log_event::exec_event(struct st_relay_log_info* rli)
|
|||
memcpy(p, ".data", 6);
|
||||
strnmov(proc_info, "Making temp file ", 17); // no end 0
|
||||
thd->proc_info= proc_info;
|
||||
if ((fd = my_open(fname, O_WRONLY|O_APPEND|O_BINARY, MYF(MY_WME))) < 0)
|
||||
if ((fd = my_open(fname, O_WRONLY|O_APPEND|O_BINARY|O_NOFOLLOW, MYF(MY_WME))) < 0)
|
||||
{
|
||||
slave_print_error(rli,my_errno, "Error in Append_block event: could not open file '%s'", fname);
|
||||
goto err;
|
||||
|
@ -2455,7 +2459,7 @@ int Execute_load_log_event::exec_event(struct st_relay_log_info* rli)
|
|||
Load_log_event* lev = 0;
|
||||
|
||||
memcpy(p, ".info", 6);
|
||||
if ((fd = my_open(fname, O_RDONLY|O_BINARY, MYF(MY_WME))) < 0 ||
|
||||
if ((fd = my_open(fname, O_RDONLY|O_BINARY|O_NOFOLLOW, MYF(MY_WME))) < 0 ||
|
||||
init_io_cache(&file, fd, IO_SIZE, READ_CACHE, (my_off_t)0, 0,
|
||||
MYF(MY_WME|MY_NABP)))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue