mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 22:12:30 +01:00
Merge bk-internal:/home/bk/mysql-5.1-new-maint
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
This commit is contained in:
commit
4efc0f8ef4
7 changed files with 189 additions and 29 deletions
|
@ -17,3 +17,5 @@
|
||||||
452a92d0-31-8wSzSfZi165fcGcXPA
|
452a92d0-31-8wSzSfZi165fcGcXPA
|
||||||
454a7ef8gdvE_ddMlJyghvOAkKPNOQ
|
454a7ef8gdvE_ddMlJyghvOAkKPNOQ
|
||||||
454f8960jsVT_kMKJtZ9OCgXoba0xQ
|
454f8960jsVT_kMKJtZ9OCgXoba0xQ
|
||||||
|
4554a95d7txO1DuO9G3nAizI3SkFAA
|
||||||
|
4554b3722d71SbPiI2Gx-RhbZjmuIQ
|
||||||
|
|
|
@ -386,18 +386,18 @@ find_file(const char *name, const char *root, uint flags, char *result, size_t l
|
||||||
|
|
||||||
cp= strmake(result, root, len);
|
cp= strmake(result, root, len);
|
||||||
if (cp[-1] != FN_LIBCHAR)
|
if (cp[-1] != FN_LIBCHAR)
|
||||||
*cp= FN_LIBCHAR;
|
*cp++= FN_LIBCHAR;
|
||||||
|
|
||||||
ret= 1;
|
ret= 1;
|
||||||
va_start(va, len);
|
va_start(va, len);
|
||||||
subdir= (!(flags & MY_SEARCH_SELF)) ? va_arg(va, char *) : "";
|
subdir= (!(flags & MY_SEARCH_SELF)) ? va_arg(va, char *) : "";
|
||||||
while (ret && subdir)
|
while (subdir)
|
||||||
{
|
{
|
||||||
MY_DIR *dir;
|
MY_DIR *dir;
|
||||||
FILEINFO *match;
|
FILEINFO *match;
|
||||||
char *cp1;
|
char *cp1;
|
||||||
|
|
||||||
cp1= strnmov(cp + 1, subdir, len - (cp - result) - 1);
|
cp1= strnmov(cp, subdir, len - (cp - result) - 1);
|
||||||
|
|
||||||
dir= my_dir(result, (flags & MY_ISDIR) ? MY_WANT_STAT : MYF(0));
|
dir= my_dir(result, (flags & MY_ISDIR) ? MY_WANT_STAT : MYF(0));
|
||||||
if (dir)
|
if (dir)
|
||||||
|
@ -406,25 +406,20 @@ find_file(const char *name, const char *root, uint flags, char *result, size_t l
|
||||||
sizeof(FILEINFO), (qsort_cmp)comp_names);
|
sizeof(FILEINFO), (qsort_cmp)comp_names);
|
||||||
if (match)
|
if (match)
|
||||||
{
|
{
|
||||||
if (!(flags & MY_PARENT))
|
ret= (flags & MY_ISDIR) ? !MY_S_ISDIR(match->mystat->st_mode) : 0;
|
||||||
{
|
if (!ret)
|
||||||
if (cp1[-1] != FN_LIBCHAR)
|
{
|
||||||
|
if (cp1[-1] != FN_LIBCHAR)
|
||||||
*cp1++= FN_LIBCHAR;
|
*cp1++= FN_LIBCHAR;
|
||||||
strnmov(cp1, name, len - (cp1 - result));
|
|
||||||
|
if (!(flags & MY_PARENT))
|
||||||
|
strnmov(cp1, name, len - (cp1 - result));
|
||||||
|
else
|
||||||
|
*cp1= '\0';
|
||||||
|
|
||||||
|
my_dirend(dir);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (cp1[-1] == FN_LIBCHAR)
|
|
||||||
--cp1;
|
|
||||||
while (*--cp1 == FN_LIBCHAR)
|
|
||||||
{}
|
|
||||||
*++cp1= FN_LIBCHAR;
|
|
||||||
*++cp1= '\0';
|
|
||||||
}
|
|
||||||
if (flags & MY_ISDIR)
|
|
||||||
ret= !MY_S_ISDIR(match->mystat->st_mode);
|
|
||||||
else
|
|
||||||
ret= 0;
|
|
||||||
}
|
}
|
||||||
my_dirend(dir);
|
my_dirend(dir);
|
||||||
}
|
}
|
||||||
|
@ -484,7 +479,7 @@ int main(int argc, char **argv)
|
||||||
|| find_file(mysqld_name, basedir, MYF(0), path, sizeof(path),
|
|| find_file(mysqld_name, basedir, MYF(0), path, sizeof(path),
|
||||||
"bin", "libexec", NullS))
|
"bin", "libexec", NullS))
|
||||||
{
|
{
|
||||||
my_strdup((gptr)basedir, MYF(0));
|
my_free((gptr)basedir, MYF(0));
|
||||||
basedir= (char *)DEFAULT_MYSQL_HOME;
|
basedir= (char *)DEFAULT_MYSQL_HOME;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -219,6 +219,7 @@ our $opt_ndbcluster_port_slave;
|
||||||
our $opt_ndbconnectstring_slave;
|
our $opt_ndbconnectstring_slave;
|
||||||
|
|
||||||
our $opt_record;
|
our $opt_record;
|
||||||
|
our $opt_report_features;
|
||||||
our $opt_check_testcases;
|
our $opt_check_testcases;
|
||||||
|
|
||||||
our $opt_skip;
|
our $opt_skip;
|
||||||
|
|
|
@ -104,3 +104,95 @@ a b c d e f g h i j k l m n o p q r s t u v w x y z a1 b1
|
||||||
1 0000 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
1 0000 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
create table bug20691 (i int, d datetime NOT NULL, dn datetime not null default '0000-00-00 00:00:00');
|
||||||
|
insert into bug20691 values (1, DEFAULT, DEFAULT), (1, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (1, DEFAULT, DEFAULT);
|
||||||
|
Warnings:
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
insert into bug20691 (i) values (2);
|
||||||
|
Warnings:
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
desc bug20691;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
i int(11) YES NULL
|
||||||
|
d datetime NO
|
||||||
|
dn datetime NO 0000-00-00 00:00:00
|
||||||
|
insert into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT);
|
||||||
|
Warnings:
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
insert into bug20691 (i) values (4);
|
||||||
|
Warnings:
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
insert into bug20691 values (5, DEFAULT, DEFAULT), (5, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (5, DEFAULT, DEFAULT);
|
||||||
|
Warnings:
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
SET sql_mode = 'ALLOW_INVALID_DATES';
|
||||||
|
insert into bug20691 values (6, DEFAULT, DEFAULT), (6, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (6, DEFAULT, DEFAULT);
|
||||||
|
Warnings:
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
SET sql_mode = 'STRICT_ALL_TABLES';
|
||||||
|
insert into bug20691 values (7, DEFAULT, DEFAULT), (7, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (7, DEFAULT, DEFAULT);
|
||||||
|
ERROR HY000: Field 'd' doesn't have a default value
|
||||||
|
select * from bug20691 order by i asc;
|
||||||
|
i d dn
|
||||||
|
1 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||||
|
1 1975-07-10 07:10:03 1978-01-13 14:08:51
|
||||||
|
1 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||||
|
2 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||||
|
3 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||||
|
3 1975-07-10 07:10:03 1978-01-13 14:08:51
|
||||||
|
3 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||||
|
4 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||||
|
5 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||||
|
5 1975-07-10 07:10:03 1978-01-13 14:08:51
|
||||||
|
5 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||||
|
6 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||||
|
6 1975-07-10 07:10:03 1978-01-13 14:08:51
|
||||||
|
6 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||||
|
drop table bug20691;
|
||||||
|
SET sql_mode = '';
|
||||||
|
create table bug20691 (
|
||||||
|
a set('one', 'two', 'three') not null,
|
||||||
|
b enum('small', 'medium', 'large', 'enormous', 'ellisonego') not null,
|
||||||
|
c time not null,
|
||||||
|
d date not null,
|
||||||
|
e int not null,
|
||||||
|
f long not null,
|
||||||
|
g blob not null,
|
||||||
|
h datetime not null,
|
||||||
|
i decimal not null,
|
||||||
|
x int);
|
||||||
|
insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:00:00', 23, 1);
|
||||||
|
insert into bug20691 (x) values (2);
|
||||||
|
Warnings:
|
||||||
|
Warning 1364 Field 'a' doesn't have a default value
|
||||||
|
Warning 1364 Field 'c' doesn't have a default value
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
Warning 1364 Field 'e' doesn't have a default value
|
||||||
|
Warning 1364 Field 'f' doesn't have a default value
|
||||||
|
Warning 1364 Field 'g' doesn't have a default value
|
||||||
|
Warning 1364 Field 'h' doesn't have a default value
|
||||||
|
Warning 1364 Field 'i' doesn't have a default value
|
||||||
|
insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:00:00', 23, 3);
|
||||||
|
insert into bug20691 values (DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, 4);
|
||||||
|
Warnings:
|
||||||
|
Warning 1364 Field 'a' doesn't have a default value
|
||||||
|
Warning 1364 Field 'b' doesn't have a default value
|
||||||
|
Warning 1364 Field 'c' doesn't have a default value
|
||||||
|
Warning 1364 Field 'd' doesn't have a default value
|
||||||
|
Warning 1364 Field 'e' doesn't have a default value
|
||||||
|
Warning 1364 Field 'f' doesn't have a default value
|
||||||
|
Warning 1364 Field 'g' doesn't have a default value
|
||||||
|
Warning 1364 Field 'h' doesn't have a default value
|
||||||
|
Warning 1364 Field 'i' doesn't have a default value
|
||||||
|
select * from bug20691 order by x asc;
|
||||||
|
a b c d e f g h i x
|
||||||
|
two large 00:00:05 0007-01-01 11 13 17 0019-01-01 00:00:00 23 1
|
||||||
|
small 00:00:00 0000-00-00 0 0000-00-00 00:00:00 0 2
|
||||||
|
two large 00:00:05 0007-01-01 11 13 17 0019-01-01 00:00:00 23 3
|
||||||
|
small 00:00:00 0000-00-00 0 0000-00-00 00:00:00 0 4
|
||||||
|
drop table bug20691;
|
||||||
|
End of 5.0 tests.
|
||||||
|
|
|
@ -82,3 +82,61 @@ SELECT * from t2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#20691: DATETIME col (NOT NULL, NO DEFAULT) may insert garbage when specifying DEFAULT
|
||||||
|
#
|
||||||
|
# From the docs:
|
||||||
|
# If the column can take NULL as a value, the column is defined with an
|
||||||
|
# explicit DEFAULT NULL clause. This is the same as before 5.0.2.
|
||||||
|
#
|
||||||
|
# If the column cannot take NULL as the value, MySQL defines the column with
|
||||||
|
# no explicit DEFAULT clause. For data entry, if an INSERT or REPLACE
|
||||||
|
# statement includes no value for the column, MySQL handles the column
|
||||||
|
# according to the SQL mode in effect at the time:
|
||||||
|
#
|
||||||
|
# * If strict SQL mode is not enabled, MySQL sets the column to the
|
||||||
|
# implicit default value for the column data type.
|
||||||
|
#
|
||||||
|
# * If strict mode is enabled, an error occurs for transactional tables and
|
||||||
|
# the statement is rolled back. For non-transactional tables, an error
|
||||||
|
# occurs, but if this happens for the second or subsequent row of a
|
||||||
|
# multiple-row statement, the preceding rows will have been inserted.
|
||||||
|
#
|
||||||
|
create table bug20691 (i int, d datetime NOT NULL, dn datetime not null default '0000-00-00 00:00:00');
|
||||||
|
insert into bug20691 values (1, DEFAULT, DEFAULT), (1, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (1, DEFAULT, DEFAULT);
|
||||||
|
insert into bug20691 (i) values (2);
|
||||||
|
desc bug20691;
|
||||||
|
insert into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT);
|
||||||
|
insert into bug20691 (i) values (4);
|
||||||
|
insert into bug20691 values (5, DEFAULT, DEFAULT), (5, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (5, DEFAULT, DEFAULT);
|
||||||
|
SET sql_mode = 'ALLOW_INVALID_DATES';
|
||||||
|
insert into bug20691 values (6, DEFAULT, DEFAULT), (6, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (6, DEFAULT, DEFAULT);
|
||||||
|
SET sql_mode = 'STRICT_ALL_TABLES';
|
||||||
|
--error 1364
|
||||||
|
insert into bug20691 values (7, DEFAULT, DEFAULT), (7, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (7, DEFAULT, DEFAULT);
|
||||||
|
select * from bug20691 order by i asc;
|
||||||
|
drop table bug20691;
|
||||||
|
|
||||||
|
SET sql_mode = '';
|
||||||
|
create table bug20691 (
|
||||||
|
a set('one', 'two', 'three') not null,
|
||||||
|
b enum('small', 'medium', 'large', 'enormous', 'ellisonego') not null,
|
||||||
|
c time not null,
|
||||||
|
d date not null,
|
||||||
|
e int not null,
|
||||||
|
f long not null,
|
||||||
|
g blob not null,
|
||||||
|
h datetime not null,
|
||||||
|
i decimal not null,
|
||||||
|
x int);
|
||||||
|
insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:00:00', 23, 1);
|
||||||
|
insert into bug20691 (x) values (2);
|
||||||
|
insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:00:00', 23, 3);
|
||||||
|
insert into bug20691 values (DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, 4);
|
||||||
|
select * from bug20691 order by x asc;
|
||||||
|
drop table bug20691;
|
||||||
|
|
||||||
|
###
|
||||||
|
--echo End of 5.0 tests.
|
||||||
|
|
||||||
|
|
|
@ -5467,6 +5467,7 @@ int Item_default_value::save_in_field(Field *field_arg, bool no_conversions)
|
||||||
ER(ER_NO_DEFAULT_FOR_FIELD),
|
ER(ER_NO_DEFAULT_FOR_FIELD),
|
||||||
field_arg->field_name);
|
field_arg->field_name);
|
||||||
}
|
}
|
||||||
|
field_arg->set_default();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
field_arg->set_default();
|
field_arg->set_default();
|
||||||
|
|
|
@ -340,7 +340,7 @@ bool opt_error_log= IF_WIN(1,0);
|
||||||
bool opt_disable_networking=0, opt_skip_show_db=0;
|
bool opt_disable_networking=0, opt_skip_show_db=0;
|
||||||
my_bool opt_character_set_client_handshake= 1;
|
my_bool opt_character_set_client_handshake= 1;
|
||||||
bool server_id_supplied = 0;
|
bool server_id_supplied = 0;
|
||||||
bool opt_endinfo,using_udf_functions;
|
bool opt_endinfo, using_udf_functions;
|
||||||
my_bool locked_in_memory;
|
my_bool locked_in_memory;
|
||||||
bool opt_using_transactions, using_update_log;
|
bool opt_using_transactions, using_update_log;
|
||||||
bool volatile abort_loop;
|
bool volatile abort_loop;
|
||||||
|
@ -2149,13 +2149,24 @@ later when used with nscd), disable LDAP in your nsswitch.conf, or use a\n\
|
||||||
mysqld that is not statically linked.\n");
|
mysqld that is not statically linked.\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (test_flags & TEST_CORE_ON_SIGNAL)
|
if (locked_in_memory)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Writing a core file\n");
|
fprintf(stderr, "\n\
|
||||||
fflush(stderr);
|
The \"--memlock\" argument, which was enabled, uses system calls that are\n\
|
||||||
write_core(sig);
|
unreliable and unstable on some operating systems and operating-system\n\
|
||||||
}
|
versions (notably, some versions of Linux). This crash could be due to use\n\
|
||||||
exit(1);
|
of those buggy OS calls. You should consider whether you really need the\n\
|
||||||
|
\"--memlock\" parameter and/or consult the OS distributer about \"mlockall\"\n\
|
||||||
|
bugs.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (test_flags & TEST_CORE_ON_SIGNAL)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Writing a core file\n");
|
||||||
|
fflush(stderr);
|
||||||
|
write_core(sig);
|
||||||
|
}
|
||||||
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef SA_RESETHAND
|
#ifndef SA_RESETHAND
|
||||||
|
|
Loading…
Reference in a new issue