The cause for the bug is that the priorities of all rules/terminals
that process the FROM clause are not fully specified, and the
parser generator produces a parser that doesn't always parse
the FROM clause so that JOINs are left-associative. As a result
the final join tree produced by the parser is incorrect, which
is the cause for subsequent name resolution to fail.
mysql-test/r/select.result:
Test for BUG#13832.
mysql-test/t/select.test:
Test for BUG#13832.
sql/sql_yacc.yy:
Fix for BUG#13832 - Unknown column t1.a in 'on clause'.
List all join-related operators as having lower priority
than the join operands to make the parser process join-
related productions from left to right.
Bug#13238 mysqldump and mysqladmin hangs
Avoid recursion into init_available_charsets.
Serg's version didn't work for me: I got
double mutex locking.
Pushing this version instead
(It was approved by Serg anyway)
mysys/charset.c:
Bug#13238 mysqldump and mysqladmin hangs
Avoid recursion into init_available_charsets.
Serg's version didn't work for me: I got
double mutex locking.
Pushing this version instead
(It was approved by Serg anyway)
into mysql.com:/home/emurphy/src/bk-innodb/mysql-5.0
innobase/include/rem0rec.h:
Auto merged
innobase/include/rem0rec.ic:
Auto merged
innobase/row/row0upd.c:
Auto merged
during replication.
Modified my_dir(). Now this function skips hidden and system
files which sometimes are created by Windows.
NOTE. The fix is similar to the previuos one (05 July 2004)
except for correct setting of the 'attrib' variable value
(within the previous fix this variable was left uninitialized
when my_dir() was called with My_flags & MY_WANT_STAT == 0).
mysys/my_lib.c:
Modified my_dir().
Now this function skips hidden and system files
which sometimes are created by Windows.
without database"
mysql-test/r/sp-error.result:
Test results fixed (a test case for Bug#13587)
mysql-test/t/sp-error.test:
A test case for Bug#13587 "Server crash when SP is created without
database"
sql/sql_parse.cc:
- move initialization of lex->sphead->m_db before it's used.
- cleanup; comment why right now can't be cleaned any more
Changed option text in mysqldump.c
mysqldump.c:
Changed text to read "+00:00" as opposed to "UTC" (per what the code does)
client/mysqldump.c:
Changed text to read "+00:00" as opposed to "UTC" (per what the code does)
sql/ha_federated.cc:
Re-application of patch from earlier, adding debug to create_where_from_key as well
as small bug fix for setting of records and deleted in delete_all_rows to after db call.
mysql-test/r/archive.result:
Result file for adding check table support
mysql-test/t/archive.test:
Simple test for check table. The additional select is added just to make sure the file is not destroyed.
sql/ha_archive.cc:
Updates for adding CHECK table support. is_crashed() now returns the state of the file.
sql/ha_archive.h:
Updates for adding CHECK table support
mysql-test/r/update.result:
Auto merged
mysql-test/t/update.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/records.cc:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/structs.h:
Auto merged
use USE_PRAGMA_INTERFACE before include of my_global.h,
where it is defined
server-tools/instance-manager/command.h:
don't use USE_PRAGMA_INTERFACE before my_global.h, where it is defined
server-tools/instance-manager/listener.h:
don't use USE_PRAGMA_INTERFACE before my_global.h, where it is defined
server-tools/instance-manager/mysql_connection.h:
don't use USE_PRAGMA_INTERFACE before my_global.h, where it is defined
server-tools/instance-manager/options.h:
don't use USE_PRAGMA_INTERFACE before my_global.h, where it is defined
server-tools/instance-manager/thread_registry.cc:
fix register
server-tools/instance-manager/thread_registry.h:
don't use USE_PRAGMA_INTERFACE before my_global.h, where it is defined
server-tools/instance-manager/user_map.h:
don't use USE_PRAGMA_INTERFACE before my_global.h, where it is defined
mysql-test/r/skip_grants.result:
creation view with DEFINER clause if --skip-grant-tables
mysql-test/t/skip_grants.test:
creation view with DEFINER clause if --skip-grant-tables
sql/sql_acl.cc:
check of ACL initialization in is_acl_user()
mysql-test/my_manage.c:
Avoid warning: i not used in case of Windows.
mysql-test/mysql_test_run_new.c:
Removed unused variable.
sql/item_func.cc:
Removed unused variables.
strings/ctype-simple.c:
Added cast.
strings/ctype-ucs2.c:
Added cast.
sql/sql_show.cc:
1. Use Field_longlong::store(longlong nr, bool unsigned_val) for ulonglong values
instead of Field_longlong::store(double nr).
2. CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH fields filing order fixed (8 <-> 9).
'information_schema' is excluded from list of databases for mysqlcheck command
mysql-test/mysql-test-run.pl:
dded support for 'mysqlcheck'
mysql-test/mysql-test-run.sh:
dded support for 'mysqlcheck'
droping trigger on InnoDB table".
Deadlock occured in cases when we were trying to create two triggers for
the same InnoDB table concurrently and both threads were able to reach
close_cached_table() simultaneously. Bugfix implements new approach to
table locking and table cache invalidation during creation/dropping
of trigger.
No testcase is supplied since bug was repeatable only under high concurrency.
sql/mysql_priv.h:
reopen_name_locked_table():
Changed function signature to make it more robust against erroneous usage.
sql/sql_base.cc:
reopen_name_locked_table():
Changed function signature to make it more robust against erroneous usage.
Obtaining LOCK_open lock is now resposibility of caller.
When searching for the table to open we should not prefer connection's current
database over database which was explicitly specified in TABLE_LIST::db member
(even if database is not explicitly specified for table in original query
TABLE_LIST::db will be set properly at parsing stage).
Fixed behavior of function in cases when error occurs during opening of table.
sql/sql_table.cc:
prepare_for_restore()/prepare_for_repair():
We should not prefer connection's current database over database which was
specified in TABLE_LIST::db member (even if database is not explicitly
specified for table in original query TABLE_LIST::db will be set properly
at parsing stage). Fixed behavior in unlikely case when we are unable
to open table which we are restoring/reparing at the end of preparation
stage.
sql/sql_trigger.cc:
mysql_create_or_drop_trigger():
Now instead of opening and locking table, creating trigger, and then trying
to invalidate all instances of this table in table cache, we obtain name
lock on table first (thus ensuring that no other thread has this table
open), open it, create trigger and then close table therefore releasing lock.
New approach is more in line with other places where change .frm files
(i.e. change table meta-data).
With this change we also get rid of deadlock which occured in cases when we
were trying to create two triggers for the same InnoDB table concurrently
and both threads were able to reach close_cached_table() simultaneously.
(Alternative was to forbid to InnoDB downgrade locks for CREATE/DROP
TRIGGER statements in one way or another but I think that proposed
solution is better long term).