into mysql.com:/misc/mysql/31800/51-31800
mysql-test/r/select.result:
Auto merged
mysql-test/t/select.test:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
BETWEEN was more lenient with regard to what it accepted as a DATE/DATETIME
in comparisons than greater-than and less-than were. ChangeSet makes < >
comparisons similarly robust with regard to trailing garbage (" GMT-1")
and "missing" leading zeros. Now all three comparators behave similarly
in that they throw a warning for "junk" at the end of the data, but then
proceed anyway if possible. Before < > fell back on a string- (rather than
date-) comparison when a warning-condition was raised in the string-to-date
conversion. Now the fallback only happens on actual errors, while warning-
conditions still result in a warning being to delivered to the client.
mysql-test/r/select.result:
Show that we compare DATE/DATETIME-like strings as date(time)s
now, rather than as bin-strings.
Adjust older result as "2005-09-3a" is now correctly seen as
"2005-09-3" + trailing garbage, rather than as "2005-09-30".
mysql-test/t/select.test:
Show that we compare DATE/DATETIME-like strings as date(time)s
now, rather than as bin-strings.
sql-common/my_time.c:
correct/clarify date-related comments, particulary for check_date().
doxygenize comment while at it.
sql/item_cmpfunc.cc:
get_date_from_str() no longer signals an error when all we had
was a warning-condition -- and one we already gave the user a
warning for at that. Preamble doxygenized.
Problem: there was no standard syntax error when
creating partitions with syntax error in
the partitioning clause.
Solution: added "Syntax error: " to the error message
mysql-test/r/partition.result:
Bug#29368: Incorrect error for syntax error when createing
partition
test result update
mysql-test/r/partition_error.result:
Bug#29368: Incorrect error for syntax error when createing
partition
test result
mysql-test/t/partition_error.test:
Bug#29368: Incorrect error for syntax error when createing
partition
test case
sql/share/errmsg.txt:
Bug#29368: Incorrect error for syntax error when createing
partition
Modified error messages
into stella.local:/home2/mydev/mysql-5.1-bug31210
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_connect.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_servers.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
sql/table.cc:
Auto merged
into mysql.com:/misc/mysql/31990/51-31990
mysql-test/r/cast.result:
Auto merged
mysql-test/t/cast.test:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/item_timefunc.h:
Auto merged
into ramayana.hindu.god:/home/tsmith/m/bk/build/51-fix
include/my_sys.h:
Auto merged
libmysql/CMakeLists.txt:
Auto merged
mysys/default.c:
Manual merge
Problem: the table's INDEX and DATA DIR was taken
directly from the table's first partition.
This allowed rename attack similar to
bug#32111 when ALTER TABLE REMOVE PARTITIONING
Solution: Silently ignore the INDEX/DATA DIR
for the table. (Like some other storage engines
do).
Partitioned tables do not support DATA/INDEX
DIR on the table level, only on its partitions.
mysql-test/r/partition_mgm.result:
Bug#32091: Security breach via directory changes
test result
mysql-test/t/partition_mgm.test:
Bug#32091: Security breach via directory changes
test case
sql/ha_partition.cc:
Bug#32091: Security breach via directory changes
Do not use the first partition's DATA/INDEX DIR
as the table's DATA/INDEX DIR.
(A partitioned table do not have support for DATA/
INDEX DIR, only its partitions do)
The bug is a regression introduced by the fix for bug30596. The problem
was that in cases when groups in GROUP BY correspond to only one row,
and there is ORDER BY, the GROUP BY was removed and the ORDER BY
rewritten to ORDER BY <group_by_columns> without checking if the
columns in GROUP BY and ORDER BY are compatible. This led to
incorrect ordering of the result set as it was sorted using the
GROUP BY columns. Additionaly, the code discarded ASC/DESC modifiers
from ORDER BY even if its columns were compatible with the GROUP BY
ones.
This patch fixes the regression by checking if ORDER BY columns form a
prefix of the GROUP BY ones, and rewriting ORDER BY only in that case,
preserving the ASC/DESC modifiers. That check is sufficient, since the
GROUP BY columns contain a unique index.
mysql-test/r/group_by.result:
Added a test case for bug #32202.
mysql-test/t/group_by.test:
Added a test case for bug #32202.
sql/sql_select.cc:
In cases when groups in GROUP BY correspond to only one row and there
is ORDER BY, rewrite the query to ORDER BY <group_by_columns> only if
the columns in ORDER BY and GROUP BY are compatible, i.e. either one
forms a prefix for another.
Bug#32153 Status output differs - scheduling ?
Modifications:
1. Introduce additional poll routines + adjust queries
as fixes for Bug#32153 and another non reported bug
found during stability testing
2. Replace builtin poll routines by wait_condition.inc.
3. Update the comments
mysql-test/suite/funcs_1/datadict/processlist_val.inc:
Fixes, details are in changeset comment
mysql-test/suite/funcs_1/r/a_processlist_val_no_prot.result:
Updated results
mysql-test/suite/funcs_1/r/b_processlist_val_ps.result:
Updated results
When running mysqlbinlog on a 64-bit machine with a corrupt relay log,
it causes mysqlbinlog to crash. In this case, the crash is caused
because a request for 18446744073709534806U bytes is issued, which
apparantly can be served on a 64-bit machine (speculatively, I assume)
but this causes the memcpy() issued later to copy the data to segfault.
The request for the number of bytes is caused by a computation
of data_len - server_vars_len where server_vars_len is corrupt in such
a sense that it is > data_len. This causes a wrap-around, with the
the data_len given above.
This patch adds a check that if server_vars_len is greater than
data_len before the substraction, and aborts reading the event in
that case marking the event as invalid. It also adds checks to see
that reading the server variables does not go outside the bounds
of the available space, giving a limited amount of integrity check.
mysql-test/r/mysqlbinlog.result:
Result change.
mysql-test/t/mysqlbinlog.test:
Adding test that it fails gracefully for a corrupt relay log.
sql/log_event.cc:
Adding check that status var length does not cause wrap-around
when performing subtraction. Extending get_str_len_and_pointer() to
check that the string can actually be read without reading outside
bounds. Adding checks when reading server variables from the Query-
log_event so that the variable can really be read. Abort reading
and mark the event as invalid otherwise.
mysql-test/std_data/corrupt-relay-bin.000624:
BitKeeper file /home/mats/devel/b31793-mysql-5.0-rpl/mysql-test/std_data/corrupt-relay-bin.000624
into polly.(none):/home/kaa/src/opt/bug32020/my51-bug31445
mysql-test/r/skip_grants.result:
Auto merged
mysql-test/t/skip_grants.test:
Auto merged
sql/sql_udf.cc:
Auto merged
causes out of memory errors
The code in mysql_create_function() and mysql_drop_function() assumed
that the only reason for UDFs being uninitialized at that point is an
out-of-memory error during initialization. However, another possible
reason for that is the --skip-grant-tables option in which case UDF
initialization is skipped and UDFs are unavailable.
The solution is to check whether mysqld is running with
--skip-grant-tables and issue a proper error in such a case.
mysql-test/r/skip_grants.result:
Added a test case for bug #32020.
mysql-test/t/skip_grants.test:
Added a test case for bug #32020.
sql/sql_udf.cc:
Issue a proper error when a user tries to CREATE/DROP a UDF
on a server running with the --skip-grant-tables option.
Pushing test case for bug only. Bug already fixed as a result of the patch for BUG#19958.
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Adding test to see that no error is given on slave when deleting
rows that don't exist on table without primary key.
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
Result change.
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
Result change.
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
Result change.
mysql-test/suite/rpl/r/rpl_found_rows.result:
Result change.
mysql-test/suite/rpl/t/rpl_found_rows.test:
Adding ORDER BY to avoid order dependencies.
Setting BINLOG_FORMAT=MIXED; for all master clients: one were missing.
Dropping procedures that polluted later test results.
Non-deterministic parameters of SHOW SLAVE STATUS are masked out
by means of using the standard include-macro.
The masked-out parameters are not needed by the logics of the original
tests. What is need to demonstre that replication is not stopped remains.
mysql-test/suite/rpl/r/rpl_innodb_bug28430.result:
results changed
mysql-test/suite/rpl/t/rpl_innodb_bug28430.test:
using the standard macro that takes care of masking out env specific values
to install system tables directly from the source tree (useful for
testing purposes). This helps clean the script up a lot and clarify
the three possible ways the script can be called (using compiled-in
paths, passing --basedir pointing to alternative install location,
or --srcdir). Include further tidying as well.
This fixes bug#30759.
scripts/mysql_install_db.sh:
Re-order the logic in printing messages at the end of the
script, to make it clearer which paths are taken depending
on tests or outcome of command status. Tidy some output.
into polly.(none):/home/kaa/src/opt/bug32103/my51-bug26215
mysql-test/r/select.result:
Auto merged
mysql-test/t/select.test:
Auto merged
sql/item.h:
Auto merged
HOUR(), MINUTE(), ... returned spurious results when used on a DATE-cast.
This happened because DATE-cast object did not overload get_time() method
in superclass Item. The default method was inappropriate here and
misinterpreted the data.
Patch adds missing method; get_time() on DATE-casts now returns SQL-NULL
on NULL input, 0 otherwise. This coincides with the way DATE-columns
behave.
mysql-test/r/cast.result:
Show that HOUR(), MINUTE(), ... return sensible values when used
on DATE-cast objects, namely NULL for NULL-dates and 0 otherwise.
Show that this coincides with how DATE-columns behave.
mysql-test/t/cast.test:
Show that HOUR(), MINUTE(), ... return sensible values when used
on DATE-cast objects, namely NULL for NULL-dates and 0 otherwise.
Show that this coincides with how DATE-columns behave.
sql/item_timefunc.cc:
Add get_time() method to DATE-cast object to overload
the method in Item superclass that would return spurious
results. Return zero-result; flag NULL if input was NULL.
sql/item_timefunc.h:
Add get_time() declaration to DATE-cast object.