NAME_CONST('whatever', -1) * MAX(whatever) bombed since -1 was
not seen as constant, but as FUNCTION_UNARY_MINUS(constant)
while we are at the same time pretending it was a basic const
item. This confused the aggregate handlers in exciting ways.
We now make NAME_CONST() behave more consistently.
mysql-test/r/func_misc.result:
show that a combination of NAME_CONST('x', -y) and an aggregate
no longer crashes the server.
mysql-test/t/func_misc.test:
show that a combination of NAME_CONST('x', -y) and an aggregate
no longer crashes the server.
sql/ha_ndbcluster_cond.cc:
tell cluster about "new" function type NEG_FUNC.
(this was previous identified as UNKNOWN_FUNC,
so we just handle it the same way, that's all.)
sql/ha_ndbcluster_cond.h:
tell cluster about "new" function type NEG_FUNC.
(this was previous identified as UNKNOWN_FUNC,
so we just handle it the same way, that's all.)
sql/item.cc:
make NAME_CONST() transparent in that type() of
-constant is that of constant, not that of unary
minus (id est, FUNC_ITEM).
sql/item.h:
Move constructor to item.cc
sql/item_func.h:
Revert Bug#30832; we can apply the magic more narrowly
(just for NAME_CONST() rather than all Item_func_neg).
Introduce new function type "NEG_FUNC."
Was a double-free of the Unique member of Item_func_group_concat.
This was not causing a crash because the Unique is a descendent of
Sql_alloc.
Fixed to free the Unique only if it was allocated for the instance
of Item_func_group_concat it was referenced from
mysql-test/r/func_gconcat.result:
Bug #34747: test case
mysql-test/t/func_gconcat.test:
Bug #34747: test case
sql/item_sum.cc:
Bug #34747: free the Unique only if it was allocated
for this instance of Item_func_group_concat
- Remove duplicate macro defintions.
CMakeLists.txt:
Bug #23839 Multiple declarations of macros
- Make sure _WIN64 is defined for proper Intellisense functionality.
include/config-win.h:
Bug #23839 Multiple declarations of macros
- Remove extra definitions. Use the my_global.h defines instead.
include/my_global.h:
Bug #23839 Multiple declarations of macros
- Slight change to maintain current definitions for Windows.
There was no way to return an error from the client library
if no MYSQL connections was established.
So here i added variables to store that king of errors and
made functions like mysql_error(NULL) to return these.
client/mysql.cc:
Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
Show the error message on std_error
include/sql_common.h:
Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
cant_connect_sqlstate constant declared
libmysql/libmysql.c:
Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
mysql_sqlstate(NULL) returns 'unknown_sqlstate'
libmysqld/lib_sql.cc:
Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
EMBEDDED_SERVER version of the vprint_msg_to_log() implemented
sql-common/client.c:
Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
mysql_server_last_errno and mysql_server_last_error introduced
to store errors not related to particular connections.
mysql_error(NULL) and mysql_errno(NULL) now returns these
mysql_server_last_error and errno respectively
sql/log.cc:
Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
EMBEDDED_LIBRARY implementation of the vprint_msg_to_log() moved
to lib_sql.cc
Use MYSQL_NUMERIC_VERSION, only three numbers separated with dot
misc.m4, character_sets.m4, openssl.m4:
Removed unneded semicolon
config/ac-macros/character_sets.m4:
Removed unneded semicolon
config/ac-macros/misc.m4:
Removed unneded semicolon
config/ac-macros/openssl.m4:
Removed unneded semicolon
support-files/MacOSX/Info.plist.sh:
Use MYSQL_NUMERIC_VERSION, only three numbers separated with dot
support-files/MacOSX/Makefile.am:
Use MYSQL_NUMERIC_VERSION, only three numbers separated with dot
Corrected calculation of version id, incorrect last two digits if < 10
Keep "sp1" or "a" in MYSQL_NO_DASH_VERSION, to set correct version in
RPM spec file
Added MYSQL_NUMERIC_VERSION that is like MYSQL_NO_DASH_VERSION before
Added clear doc how the different version variables differ
SocketServer.cpp:
Corrected typo in debug error message
ndb/src/common/util/SocketServer.cpp:
Corrected typo in debug error message
configure.in:
Corrected calculation of version id, incorrect last two digits if < 10
Keep "sp1" or "a" in MYSQL_NO_DASH_VERSION, to set correct version in
RPM spec file
Added MYSQL_NUMERIC_VERSION that is like MYSQL_NO_DASH_VERSION before
Added clear doc how the different version variables differ
documentation
While the manual mentions FRAC_SECOND only for the TIMESTAMPADD()
function, it was also possible to use FRAC_SECOND with DATE_ADD(),
DATE_SUB() and +/- INTERVAL.
Fixed the parser to match the manual, i.e. using FRAC_SECOND for
anything other than TIMESTAMPADD()/TIMESTAMPDIFF() now produces a
syntax error.
Additionally, the patch allows MICROSECOND to be used in TIMESTAMPADD/
TIMESTAMPDIFF and marks FRAC_SECOND as deprecated.
mysql-test/r/func_time.result:
Added a test case for bug #33834.
mysql-test/t/func_time.test:
Added a test case for bug #33834.
sql/sql_yacc.yy:
Reject FRAC_SECOND for anything other than TIMESTAMPADD() or
TIMESTAMPDIFF().
Allow MICROSECOND to be used with TIMESTAMPADD()/TIMESTAMPDIFF().
Warn about FRAC_SECOND being a deprecated unit.
mysql_config --cflags gave a flag that forced the HP/UX
C++ compiler into C-mode; as a result, C++ sources could
not be compiled correctly.
We now filter out the offending flag (like we do for Sun)
so that --cflags will work for both C and C++.
scripts/mysql_config.sh:
Add -AC99 (for HP/UX) to the list of flags we need to remove
from "mysql_config --cflags" so they work for C and C++ both.
log-slave-updates and circul repl
Slave SQL thread may execute one extra event when there are events
skipped by slave I/O thread (e.g. originated by the same server).
Whereas it was requested not to do so by the UNTIL condition.
This happens because we compare with the end position of previously
executed event. This is fine when there are no skipped by slave I/O
thread events, as end position of previous event equals to start
position of to be executed event. Otherwise this position equals to
start position of skipped event.
This is fixed by:
- reading the event to be executed before checking if the until condition
is satisfied.
- comparing the start position of the event to be executed. Since we do
not have the start position available, we compute it by subtracting
event length from end position (which is available).
- if there are no events on the event queue at the slave sql starting
time, that meet until condition, we stop immediately, as in this
case we do not want to wait for next event.
mysql-test/r/rpl_dual_pos_advance.result:
A test case for BUG#13861.
mysql-test/t/rpl_dual_pos_advance.test:
A test case for BUG#13861.
sql/log_event.cc:
Store length of event. This is needed for further calculation of
the beginning of event.
sql/slave.cc:
Slave SQL thread may execute one extra event when there are events
skipped by slave I/O thread (e.g. originated by the same server).
Whereas it was requested not to do so by the UNTIL condition.
This happens because we compare with the end position of previously
executed event. This is fine when there are no skipped by slave I/O
thread events, as end position of previous event equals to start
position of to be executed event. Otherwise this position equals to
start position of skipped event.
This is fixed by:
- reading the event to be executed before checking if the until condition
is satisfied.
- comparing the start position of the event to be executed. Since we do
not have the start position available, we compute it by subtracting
event length from end position (which is available).
- if there are no events on the event queue at the slave sql starting
time, that meet until condition, we stop immediately, as in this
case we do not want to wait for next event.
sql/slave.h:
Added master_log_pos parametr to is_until_satisfied().
mysql-test/t/rpl_dual_pos_advance-slave.opt:
New BitKeeper file ``mysql-test/t/rpl_dual_pos_advance-slave.opt''
suite)
Under some circumstances a combination of aggregate functions and
GROUP BY in a SELECT query over a VIEW could lead to incorrect
calculation of the result type of the aggregate function. This in
turn could result in incorrect results, or assertion failures on debug
builds.
Fixed by changing the logic in Item_sum_hybrid::fix_fields() so that
the argument's item is dereferenced before calling its type() method.
mysql-test/r/view.result:
Added a test case for bug #33049.
mysql-test/t/view.test:
Added a test case for bug #33049.
sql/item_sum.cc:
When calculating the result type of an aggregate function, dereference
the argument's item before calling its type() method.
skip lock_type update for temporary tables
mysql-test/r/tablelock.result:
test result
mysql-test/t/tablelock.test:
test case
sql/sql_base.cc:
skip lock_type update for temporary tables
The problem is that CREATE VIEW statements inside prepared statements
weren't being expanded during the prepare phase, which leads to objects
not being allocated in the appropriate memory arenas.
The solution is to perform the validation of CREATE VIEW statements
during the prepare phase of a prepared statement. The validation
during the prepare phase assures that transformations of the parsed
tree will use the permanent arena of the prepared statement.
mysql-test/r/ps.result:
Add test case result for Bug#32890
mysql-test/t/ps.test:
Add test case for Bug#32890
sql/item.h:
Restore original field name if name is auto generated.
sql/sql_prepare.cc:
Validate and prepare a CREATE VIEW statement for execution.
sql/sql_view.cc:
Move privileges check to it's own function.
sql/sql_view.h:
Export function which check privileges of a CREATE VIEW statement.
- fix test failures that was already there but now are
more consistent when the 1 second sleep has been removed from
ndb_waiter
mysql-test/t/ndb_autodiscover.test:
Wait until mysqld has reconnected to ndbd after ndbd has been restarted
mysql-test/t/ndb_autodiscover3.test:
Wait until mysqld has reconnected to ndbd after ndbd has been restarted
mysql-test/include/ndb_wait_connected.inc:
Wait until mysqld has reconnected to ndbd after ndbd has been restarted
a table name.
The problem was that fill_defined_view_parts() did not return
an error if a table is going to be altered. That happened if
the table was already in the table cache. In that case,
open_table() returned non-NULL value (valid TABLE-instance from
the cache).
The fix is to ensure that an error is thrown even if the table
is in the cache.
(This is a backport of the original patch for 5.1)
mysql-test/r/view.result:
Fix result file.
mysql-test/r/view_grant.result:
Fix result file.
mysql-test/t/view.test:
Add a test case for Bug#34337: Server crash when Altering a view
using a table name.
mysql-test/t/view_grant.test:
Fix order-dependency.
sql/sql_view.cc:
Report an error if we're going to work with a table.
Executing a prepared statement associated with a materialized
cursor yields to the client a metadata packet with wrong table
and database names. The problem was occurring because the server
was sending the the name of the temporary table used by the cursor
instead of the table name of the original table. The same problem
occurs when selecting from views, in which case the table name was
being sent and not the name of the view.
The solution is to fill the list item from the temporary table but
preserving the table and database names of the original fields. This
is achieved by tweaking the Select_materialize to accept a pointer to
the Materialized_cursor class which contains the item list to be filled.
sql/sql_cursor.cc:
Fill the item list in the send_fields method and preserve
the table and database name of the fields.
tests/mysql_client_test.c:
Add test case for Bug#32265
The test case for the bug#31048 checks that there is no crash on stack
overrun. But due to different stack sizes on different platforms it failed
on some of them.
The new test case check that a query with at least 4 level subquery nesting
works without the stack overrun nesting and other levels of nesting doesn't
cause a crash.
mysql-test/t/subselect.test:
Corrected test case for the bug#31048.
mysql-test/r/subselect.result:
Corrected test case for the bug#31048.
into mysql.com:/home/bar/mysql-work/mysql-5.0.b32510v2
mysql-test/r/ctype_big5.result:
Auto merged
mysql-test/r/ctype_cp932.result:
Auto merged
mysql-test/r/ctype_euckr.result:
Auto merged
mysql-test/r/ctype_gb2312.result:
Auto merged
mysql-test/r/ctype_gbk.result:
Auto merged
mysql-test/r/ctype_uca.result:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/t/ctype_cp932.test:
Auto merged
mysql-test/t/ctype_uca.test:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
strings/ctype-ucs2.c:
Auto merged
and ps-protocol
Finding a routine should be a transparent operation as
far as the binary log is concerned.
But it was influencing the binary log because of the TIMESTAMP
column in the proc table.
Fixed by preserving and restoring the time_zone usage flag when
searching for a stored routine in the proc table.
mysql-test/r/binlog_innodb.result:
Bug #30604: test case
mysql-test/r/ctype_cp932_binlog.result:
Bug #30604: updated test results (a procedure call before that)
mysql-test/t/binlog_innodb.test:
Bug #30604: test case
sql/sp.cc:
Bug #30604: finding a routine should be a transparent operation as
far as the binary log is concerned.
Fixed by preserving and restoring the time_zone usage flag.
breaks replication
NAME_CONST() didn't replicate constant character set and collation
correctly.
With this fix NAME_CONST() inherits collation from the value argument.
mysql-test/r/func_misc.result:
A test case for BUG#34289.
mysql-test/t/func_misc.test:
A test case for BUG#34289.
sql/item.cc:
Inherit collation from value argument.
- Replace per-thread signal()'s with SetUnhandledExceptionFilter().
The only remaining signal() is for SIGABRT (default abort()
handler in VS2005 is broken, i.e removes user exception filter)
- remove MessageBox()'es from error handling code
- Windows port for print_stacktrace() and write_core()
- Cleanup, removed some unused functions
sql/CMakeLists.txt:
Implement stack tracing on and generating crash dumps on Windows
sql/mysqld.cc:
Correct signal handling on Windows.
- For console events, like CTRL-C use SetConsoleCtrlHandler
- For exceptions like access violation, use SetUnhandledExceptionFilter
- For SIGABRT generate exception via __debugbreak() intrinsic
if built with VS2005 and later , since default SIGABRT handler
replaces unhandled exception filter specified by user
- make provisions to debug exception filter, as it is not trivial
(should be compiled with /DDEBUG_UNHANDLED_EXCEPTION_FILTER)
sql/sql_parse.cc:
Remove message box from windows signal handler.
The only thread specific handler left is for SIGABRT,
which is broken on VS2005 and later (user specified unhandled exception
filter gets overwritten)
sql/stacktrace.c:
Stack tracing and generating crash dumps on Windows
sql/stacktrace.h:
Implement print_stacktrace and write_core on Windows
Check for an existing MySQL server package from a different vendor or
major MySQL version. In such a case, refuse to install the server and
recommend how to safely remove the old packages before installing the
new ones.
support-files/mysql.spec.sh:
Add to the %pre server scriptlet checks to ensure that we're not
upgrading from another vendor's package, or that this is not a
major version upgrade. If an automatic upgrade isn't safe, print
basic instructions on how to do a manual upgrade, and bail out.
Remove code from mysqlhotcopy which deals with the so-called "RAID"
feature of older MyISAM.
scripts/mysqlhotcopy.sh:
Remove code which tried to handle the so-called "RAID" files.
The "RAID" feature has been dropped from MySQL builds, and this
code caused mysqlhotcopy to skip (silently) over databases with
two-character names (e.g., "ab").