A prerequisite for several fulltext and XML bugs.
MY_CHARSET_HANDLER now has a new function "ctype"
to detect a type of the next character in a string
(i.e. digit, letter, space, punctuation, control, etc),
which now works correctly for both 8bit and multibyte charsets.
Previously only 8bit charsets worked correctly,
while any multibyte character was considered as letter
in multibyte charsets.
Many files:
Adding new function
Makefile.am:
Adding build rules for uctypedump,
a dump tool to create my_uctype.h
using Unicode Character Database file.
m_ctype.h:
Adding declaration of my_uni_ctype,
ctype data for Unicode.
Adding new member into MY_CHARSET_HANDLER
Makefile.am:
Adding my_uctype.h into noinst_HEADERS
my_uctype.h, uctypedump.c:
new files:
ctype data for unicode,
and the tool to generate it from
a Unicode Character Database file.
include/Makefile.am:
Adding my_uctype.h
include/m_ctype.h:
Adding declaration of my_uni_ctype,
ctype data for Unicode.
strings/Makefile.am:
Adding build rules for uctypedump,
a dump tool to create my_uctype.h
using Unicode Character Database file.
strings/ctype-big5.c:
Adding new function
strings/ctype-bin.c:
Adding new function
strings/ctype-cp932.c:
Adding new function
strings/ctype-euc_kr.c:
Adding new function
strings/ctype-eucjpms.c:
Adding new function
strings/ctype-gb2312.c:
Adding new function
strings/ctype-gbk.c:
Adding new function
strings/ctype-latin1.c:
Adding new function
strings/ctype-mb.c:
Adding new function
strings/ctype-simple.c:
Adding new function
strings/ctype-sjis.c:
Adding new function
strings/ctype-tis620.c:
Adding new function
strings/ctype-ucs2.c:
Adding new function
strings/ctype-ujis.c:
Adding new function
strings/ctype-utf8.c:
Adding new function
mysql-test/t/disabled.def:
disabling new test that was added during null-merge from 5.0
the new test innodb_unsafe_binlog will be re-enabled when the
5.1 snapshot for InnoDB is applied. Disabling test rather than
removing files to make future merges easier (removing the files
would cause merge conflicts when the files are re-added in the
5.1 snapshot).
mysql-test/r/ndb_dd_dump.result:
New BitKeeper file ``mysql-test/r/ndb_dd_dump.result''
mysql-test/t/ndb_dd_dump.test:
New BitKeeper file ``mysql-test/t/ndb_dd_dump.test''
into mysql.com:/home/emurphy/src/mysql/bk-clean/mysql-5.1-new-merge
Null-merge InnoDB snapshots from 5.0 to 5.1
storage/innobase/include/lock0lock.h:
Auto merged
mysql-test/r/innodb.result:
null-merge from 5.0
mysql-test/t/innodb.test:
null-merge from 5.0
sql/ha_innodb.cc:
null-merge from 5.0
storage/innobase/include/data0type.h:
null-merge from 5.0
storage/innobase/include/data0type.ic:
null-merge from 5.0
storage/innobase/include/os0file.h:
null-merge from 5.0
storage/innobase/include/row0mysql.h:
null-merge from 5.0
storage/innobase/lock/lock0lock.c:
null-merge from 5.0
storage/innobase/os/os0file.c:
null-merge from 5.0
storage/innobase/row/row0ins.c:
null-merge from 5.0
storage/innobase/row/row0mysql.c:
null-merge from 5.0
storage/innobase/row/row0sel.c:
null-merge from 5.0
storage/innobase/trx/trx0trx.c:
null-merge from 5.0
When we add new privilege we should update mysql-test/lib/init_db.sql
accordingly.
mysql-test/lib/init_db.sql:
Added TRIGGER privilege.
sql/sql_acl.h:
Updated comment describing process of addition of new privileges - added yet
another script place which should be modified when new privilege is added.
storage/ndb/src/ndbapi/NdbBlob.cpp:
fix some mem leaks (event ops however are never dtor-ed yet)
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
fix some mem leaks (event ops however are never dtor-ed yet)
storage/ndb/test/ndbapi/test_event_merge.cpp:
fix some mem leaks (event ops however are never dtor-ed yet)
into mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new-wl1892
sql/ha_ndbcluster_binlog.cc:
Auto merged
storage/ndb/include/ndbapi/NdbDictionary.hpp:
Auto merged
storage/ndb/src/ndbapi/NdbDictionary.cpp:
Auto merged
into mysql.com:/home/stewart/Documents/MySQL/5.1/tmp_merge
mysql-test/r/information_schema.result:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.h:
Auto merged
sql/sql_show.cc:
Auto merged
fix up test cases.
mysql-test/r/information_schema.result:
update result for INFORMATION_SCHEMA.FILES
mysql-test/r/information_schema_db.result:
update result for INFORMATION_SCHEMA.FILES
sql/ha_ndbcluster.cc:
in fill_files_table, use my_snprintf instead of snprintf
sql/sql_show.cc:
correct DBUG_ENTER for fill_schema_files
sql/table.h:
add SCH_FILES to information schema enum
into mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new-wl1892
sql/ha_ndbcluster_binlog.cc:
Auto merged
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
Auto merged
Implement table-level TRIGGER privilege to control access to triggers.
Before this path global SUPER privilege was used for this purpose, that
was the big security problem.
In details, before this patch SUPER privilege was required:
- for the user at CREATE TRIGGER time to create a new trigger;
- for the user at DROP TRIGGER time to drop the existing trigger;
- for the definer at trigger activation time to execute the trigger (if the
definer loses SUPER privilege, all its triggers become unavailable);
This patch changes the behaviour in the following way:
- TRIGGER privilege on the subject table for trigger is required:
- for the user at CREATE TRIGGER time to create a new trigger;
- for the user at DROP TRIGGER time to drop the existing trigger;
- for the definer at trigger activation time to execute the trigger
(if the definer loses TRIGGER privilege on the subject table, all its
triggers on this table become unavailable).
- SUPER privilege is still required:
- for the user at CREATE TRIGGER time to explicitly set the trigger
definer to the user other than CURRENT_USER().
When the server works with database of the previous version (w/o TRIGGER
privilege), or if the database is being upgraded from the previous versions,
TRIGGER privilege is granted to whose users, who have CREATE privilege.
mysql-test/r/grant.result:
Updated the result file after adding TRIGGER privilege.
mysql-test/r/information_schema.result:
Updated the result file after adding TRIGGER privilege.
mysql-test/r/lowercase_table_grant.result:
Updated the result file after adding TRIGGER privilege.
mysql-test/r/ps.result:
Updated the result file after adding TRIGGER privilege.
mysql-test/r/sp.result:
Updated the result file after adding TRIGGER privilege.
mysql-test/r/trigger-compat.result:
Updated the result file after adding TRIGGER privilege.
mysql-test/r/trigger-grant.result:
Updated the result file after adding TRIGGER privilege.
mysql-test/t/trigger-compat.test:
Grant table-level TRIGGER privilege instead of global SUPER one.
mysql-test/t/trigger-grant.test:
1. Grant table-level TRIGGER privilege instead of global SUPER one.
2. Updated the test case to check that SUPER is required to specify
the user other than the current as a definer.
scripts/mysql_create_system_tables.sh:
Added TRIGGER privilege.
scripts/mysql_fix_privilege_tables.sql:
Added TRIGGER privilege.
sql/sql_acl.cc:
Added TRIGGER privilege.
sql/sql_acl.h:
Added TRIGGER privilege.
sql/sql_show.cc:
Added TRIGGER privilege.
sql/sql_trigger.cc:
Check TRIGGER privilege instead of SUPER.
sql/sql_yacc.yy:
Added TRIGGER privilege.