* New result files due to new error message/error numbers
* Fixed system_mysql_db tests to work with servers table
* Added UTF8 charset to table defs
mysql-test/include/system_db_struct.inc:
WL# 3031
Added servers table to inc file used in system_mysql_db* tests
mysql-test/lib/init_db.sql:
WL# 3031
Added UTF charset to table def
mysql-test/r/mysql.result:
WL# 3031
New result files, new error messages shifted error #s up by two
mysql-test/r/rpl_sp.result:
WL# 3031
New result files, new error messages shifted error #s up by two
mysql-test/r/sp.result:
WL# 3031
New result files, new error messages shifted error #s up by two
mysql-test/r/sp_gis.result:
WL# 3031
New result files, new error messages shifted error #s up by two
mysql-test/r/system_mysql_db.result:
WL #3031
New system_mysql_db tests required adding servers table creation. Some more
comments in these tests would have been nice to explain what they do ;)
mysql-test/t/system_mysql_db_fix30020.test:
WL #3031
New system_mysql_db tests required adding servers table creation. Some more
comments in these tests would have been nice to explain what they do ;)
mysql-test/t/system_mysql_db_fix40123.test:
WL #3031
New system_mysql_db tests required adding servers table creation. Some more
comments in these tests would have been nice to explain what they do ;)
mysql-test/t/system_mysql_db_fix50030.test:
WL #3031
New system_mysql_db tests required adding servers table creation. Some more
comments in these tests would have been nice to explain what they do ;)
scripts/mysql_create_system_tables.sh:
WL# 3031
Added utf8 charset to table def
scripts/mysql_fix_privilege_tables.sql:
WL# 3031
Added servers table to mysql_fix_privilege_tables
into govinda.patg.net:/home/patg/mysql-build/mysql-5.1-arch-wl3031-merge
mysql-test/lib/init_db.sql:
Auto merged
mysql-test/r/1st.result:
Auto merged
mysql-test/r/connect.result:
Auto merged
mysql-test/r/information_schema.result:
Auto merged
mysql-test/r/mysql.result:
Auto merged
mysql-test/r/mysqlcheck.result:
Auto merged
mysql-test/r/show_check.result:
Auto merged
mysql-test/r/system_mysql_db.result:
Auto merged
scripts/mysql_create_system_tables.sh:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/federated/ha_federated.cc:
Auto merged
mysql-test/r/sp.result:
WL# 3031
More fun with error codes. These error codes vary in the result files because new error codes have been added
mysql-test/r/sp_gis.result:
WL# 3031
More fun with error codes. These error codes vary in the result files because new error codes have been added
Post-commit issues fixed
* Test results for other tests fixed due to added error #s
* Memory allocation/free issues found with running with valgrind
* Fix to mysql-test-run shell script to run federated_server test (installs
mysql.servers table properly)
mysql-test/r/1st.result:
WL #3031
New result for 1st test
mysql-test/r/backup.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/connect.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/information_schema.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/mysql.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/mysqlcheck.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/ndb_dd_basic.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/ndb_dd_ddl.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/select.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/show_check.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/sp.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/sp_gis.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/sp_trans.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/system_mysql_db.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/type_timestamp.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/warnings.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
mysql-test/r/xml.result:
WL #3031
Error codes differ due to addition of error codes for federated server errors (2)
so all test results with hard-coded error #s will be off by two. New results generated.
scripts/mysql_create_system_tables.sh:
WL #3031
Fixed old mysql-test-run.sh script to work with new mysql.servers table as reported
by Cisco
sql/sql_yacc.yy:
WL# 3031
OPTIONS/options must be usable as table or column name.
storage/federated/ha_federated.cc:
WL# 3031
* Fixed allocation and free issues (warnings found with --valgrind)
* Fixed cast issues
* Made sure port was set accordingly
Backport of functionality in private 5.2 tree.
Added new language to parser, new mysql.servers table and associated code
to be used by the federated storage engine to allow central connection information
per WL entry.
libmysqld/Makefile.am:
WL# 3031
Added sql_servers.cc to libmysqld Makefile.am
mysql-test/lib/init_db.sql:
WL# 3031
Added mysql.servers creation to init_db.sql, which is in turn called by mysql-test-run.pl
scripts/mysql_create_system_tables.sh:
WL# 3031
Added mysql.servers table creation to script called by non-perl mysql-test-run
sql/Makefile.am:
WL# 3031
Added sql_servers source and headers to Makefile.am to be built
sql/lex.h:
WL# 3031
Added tokens needed for SERVERS scheme
sql/mysql_priv.h:
WL #3031
Added sql_servers.h to mysql_priv.h so mysqld.cc and other code can link with sql_servers code
sql/mysqld.cc:
WL# 3031
Added servers_free and servers_init to mysqld
sql/sql_lex.cc:
WL# 3031
Added lex->server_options parameter initialisation
sql/sql_lex.h:
WL #3031
Added SQLCOM commands needed for sql_server actions
sql/sql_parse.cc:
WL# 3031
Added switch actions for new SQLCOM sql_server actions
sql/sql_yacc.yy:
WL #3031
Added tokens needed for sql_servers, CREATE/DROP/ALTER server functionality
sql/share/errmsg.txt:
WL# 3031
Added two new errors to errormsg.sys
storage/federated/ha_federated.cc:
WL #3031
Modified federated storage engine to use new connection scheme (servers
table) if connection string only specifies connection name vs. complete
URL
storage/federated/ha_federated.h:
WL# 3031
Added new share members needed for connection scheme
sql/sql_servers.cc:
WL #3031
sql_servers.cc - all methods required for manipulating mysql.servers table
to work with federated new connection scheme (CREATE/ALTER/DROP SERVER ...)
sql/sql_servers.h:
WL #3031
New header file for sql_servers functionality
mysql-test/r/federated_server.result:
WL #3031
New test results for testing new connection scheme
sql/sql_yacc.yy.bak:
WL #3031
Added tokens and definitions required for new CREATE/ALTER/DROP SERVER
for sql_servers functionality. See WL for details.
mysql-test/t/federated_server.test:
WL #3031
New test for testing CREATE/ALTER/DROP SERVER, as well as testing that
federated works with both tradition connection scheme as well as new
connection scheme.
Moved .progress files into the log directory
Moved 'cluster' database tables into the MySQL database, to not have 'cluster' beeing a reserved database name
Fixed bug where mysqld got a core dump when trying to use a table created by MySQL 3.23
Fixed some compiler warnings
Fixed small memory leak in libmysql
Note that this doesn't changeset doesn't include the new mysqldump.c code required to run some tests. This will be added when I merge 5.0 to 5.1
client/client_priv.h:
Added OPT_DEBUG_INFO and OPT_COLUMN_TYPES
client/mysql.cc:
Split --debug-info into --debug-info and --column-type-info
client/mysql_upgrade.c:
Give only error info at end if using --debug-info
client/mysqladmin.cc:
Added --debug-info to detect memory leaks in mysqltest
client/mysqlbinlog.cc:
Added --debug-info to detect memory leaks in mysqltest
client/mysqlcheck.c:
Added --debug-info to detect memory leaks in mysqltest
client/mysqlimport.c:
Added --debug-info to detect memory leaks in mysqltest
client/mysqlshow.c:
Added --debug-info to detect memory leaks in mysqltest
client/mysqltest.c:
Added --debug-info to detect memory leaks in mysqltest
Added option --logdir to force .progress files in a specific directory
libmysql/libmysql.c:
Fixed memory leak
mysql-test/include/ndb_setup_slave.inc:
Moved cluster tables under 'mysql'
mysql-test/include/query_cache.inc:
Added more tests for query cache
mysql-test/lib/init_db.sql:
Move cluster.binlog_index -> mysql.binlog_index
mysql-test/lib/mtr_report.pl:
Find memory leaks
mysql-test/mysql-test-run-shell.sh:
Added --debug-info to programs to detect memory leaks
mysql-test/mysql-test-run.pl:
Added --debug-info to programs to detect memory leaks
Force log files to var/log
cluster tables moved under 'mysql'
mysql-test/r/cache_innodb.result:
New query cache test with innodb
mysql-test/r/connect.result:
binlog_index is now in mysql
mysql-test/r/drop.result:
Removed 'cluster' database
mysql-test/r/information_schema.result:
Removed 'cluster' database
mysql-test/r/mysqlcheck.result:
cluster.binlog_index -> mysql.binlog_index
mysql-test/r/ndb_binlog_basic.result:
cluster.binlog_index -> mysql.binlog_index
mysql-test/r/ndb_binlog_ddl_multi.result:
cluster -> mysql
mysql-test/r/ndb_binlog_discover.result:
cluster -> mysql
mysql-test/r/ndb_binlog_multi.result:
cluster -> mysql
mysql-test/r/ndb_restore_compat.result:
cluster -> mysql
mysql-test/r/ps_1general.result:
Removed cluster database
mysql-test/r/rpl_create_database.result:
Removed cluster database
mysql-test/r/rpl_load_from_master.result:
Removed cluster database
mysql-test/r/rpl_loaddata_m.result:
Removed cluster database
mysql-test/r/rpl_ndb_bank.result:
cluster -> mysql
mysql-test/r/rpl_ndb_dd_advance.result:
cluster -> mysql
mysql-test/r/rpl_ndb_dd_basic.result:
cluster -> mysql
mysql-test/r/rpl_ndb_idempotent.result:
cluster -> mysql
mysql-test/r/rpl_ndb_log.result:
cluster -> mysql
mysql-test/r/rpl_ndb_multi.result:
cluster -> mysql
mysql-test/r/rpl_ndb_sync.result:
cluster -> mysql
mysql-test/r/rpl_row_basic_11bugs.result:
Removed cluster database
mysql-test/r/rpl_truncate_7ndb.result:
Position have changed
mysql-test/r/rpl_truncate_7ndb_2.result:
cluster -> mysql
mysql-test/r/schema.result:
Removed cluster database
mysql-test/r/show_check.result:
Removed cluster database
mysql-test/r/system_mysql_db.result:
binlog_index moved under mysql
mysql-test/r/upgrade.result:
More tests
mysql-test/t/information_schema.test:
cluster -> mysql
mysql-test/t/mysqldump.test:
More test to detect memory leaks
mysql-test/t/ndb_binlog_basic.test:
cluster -> mysql
mysql-test/t/ndb_binlog_multi.test:
cluster -> mysql
mysql-test/t/ndb_restore_compat.test:
cluster -> mysql
mysql-test/t/rpl_ndb_bank.test:
cluster -> mysql
mysql-test/t/rpl_ndb_dd_advance.test:
cluster -> mysql
mysql-test/t/rpl_ndb_idempotent.test:
cluster -> mysql
mysql-test/t/rpl_ndb_multi.test:
cluster -> mysql
mysql-test/t/rpl_ndb_sync.test:
cluster -> mysql
mysql-test/t/system_mysql_db_fix.test:
Drop also binlog_index
mysql-test/t/upgrade.test:
Check that tables created with 3.23 works
mysys/my_error.c:
Remove all registered errors (to avoid memory leaks)
mysys/my_init.c:
call my_error_unregister_all() to avoid some possible memory leaks
mysys/mysys_priv.h:
Added prototype
scripts/mysql_create_system_tables.sh:
cluster -> mysql
scripts/mysql_fix_privilege_tables.sql:
Changed -- to #
Create binlog_index table if it dosesn't exist
sql/field.cc:
Made offset() inline
sql/field.h:
Changed prototype of offset() to not make it depending on TABLE structure
sql/field_conv.cc:
Removed some usage of current_thd
sql/ha_ndbcluster_tables.h:
cluster -> mysql
sql/item_sum.cc:
Usage of new 'offset' parameters
sql/key.cc:
Changed 'find_ref_key' to not be dependent on field->table
(This fixed a crash when using a table created in MySQL 3.23)
sql/mysql_priv.h:
Changed find_ref_key() to not use field->table
sql/mysqld.cc:
Fix that plugin_init() works properly on bootstrap
(Previously we got warnings from plugin_init)
sql/sql_class.cc:
new 'field->offset()'
sql/sql_select.cc:
New field->offset()
sql/table.cc:
We don't need field->table to be set in find_ref_key() or find_field() anymore.
storage/archive/ha_archive.cc:
New field->offset()
storage/federated/ha_federated.cc:
New field->offset()
storage/innobase/handler/ha_innodb.cc:
Fixed compiler warnings
storage/myisam/ha_myisam.cc:
Fixed compiler warnings (Wrong paramter to sprintf())
New field->offset()
storage/myisam/ha_myisam.h:
Fixed wrong type of table_flags
storage/ndb/tools/restore/Restore.cpp:
Fixed compiler warning
mysql-test/r/1st.result:
New BitKeeper file ``mysql-test/r/1st.result''
mysql-test/std_data/old_table-323.frm:
New BitKeeper file ``mysql-test/std_data/old_table-323.frm''
mysql-test/t/1st.test:
New BitKeeper file ``mysql-test/t/1st.test''
mysql-test/r/mysqldump.result:
Change in output from low letter to capital letter.
Fixed test.
scripts/mysql_create_system_tables.sh:
definer was removed from part of the key.
vio/viosocket.c:
Fixed output from DBUG_PRINT() to match the style
in other parts of the code.
mysql-test/lib/init_db.sql:
make name not binary, then event names won't be case sensitive
mysql-test/r/events.result:
output fix
mysql-test/r/events_bugs.result:
update result
mysql-test/t/events_bugs.test:
test case for bug #16415 events' names are case sensitive
scripts/mysql_create_system_tables.sh:
make name not binary, then event names won't be case sensitive
scripts/mysql_fix_privilege_tables.sql:
make name not binary, then event names won't be case sensitive
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.
add sql_mode to mysql.event
WL#1034 (Internal CRON)
mysql-test/lib/init_db.sql:
partial fix for bug#16407 (sql_mode not regarded)
add sql_mode to mysql.event
mysql-test/r/system_mysql_db.result:
partial fix for bug#16407 (sql_mode not regarded)
add sql_mode to mysql.event
scripts/mysql_create_system_tables.sh:
partial fix for bug#16407 (sql_mode not regarded)
add sql_mode to mysql.event
scripts/mysql_fix_privilege_tables.sql:
partial fix for bug#16407 (sql_mode not regarded)
add sql_mode to mysql.event
mysql-test/lib/init_db.sql:
Auto merged
scripts/mysql_create_system_tables.sh:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged
sql/event.cc:
Auto merged
sql/event.h:
Auto merged
sql/event_executor.cc:
Auto merged
sql/event_priv.h:
Auto merged
sql/event_timed.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/events.result:
manual merge
mysql-test/r/system_mysql_db.result:
manual merge
mysql-test/t/events.test:
manual merge
post-review change - use pointer instead of copy on the stack.
WL#1034 (Internal CRON)
This patch adds INFORMATION_SCHEMA.EVENTS table with the following format:
EVENT_CATALOG - MYSQL_TYPE_STRING (Always NULL)
EVENT_SCHEMA - MYSQL_TYPE_STRING (the database)
EVENT_NAME - MYSQL_TYPE_STRING (the name)
DEFINER - MYSQL_TYPE_STRING (user@host)
EVENT_BODY - MYSQL_TYPE_STRING (the body from mysql.event)
EVENT_TYPE - MYSQL_TYPE_STRING ("ONE TIME" | "RECURRING")
EXECUTE_AT - MYSQL_TYPE_TIMESTAMP (set for "ONE TIME" otherwise NULL)
INTERVAL_VALUE - MYSQL_TYPE_LONG (set for RECURRING otherwise NULL)
INTERVAL_FIELD - MYSQL_TYPE_STRING (set for RECURRING otherwise NULL)
SQL_MODE - MYSQL_TYPE_STRING (for now NULL)
STARTS - MYSQL_TYPE_TIMESTAMP (starts from mysql.event)
ENDS - MYSQL_TYPE_TIMESTAMP (ends from mysql.event)
STATUS - MYSQL_TYPE_STRING (ENABLED | DISABLED)
ON_COMPLETION - MYSQL_TYPE_STRING (NOT PRESERVE | PRESERVE)
CREATED - MYSQL_TYPE_TIMESTAMP
LAST_ALTERED - MYSQL_TYPE_TIMESTAMP
LAST_EXECUTED - MYSQL_TYPE_TIMESTAMP
EVENT_COMMENT - MYSQL_TYPE_STRING
SQL_MODE is NULL for now, because the value is still not stored in mysql.event .
Support will be added as a fix for another bug.
This patch also adds SHOW [FULL] EVENTS [FROM db] [LIKE pattern]
1. SHOW EVENTS shows always only the events on the same user,
because the PK of mysql.event is (definer, db, name) several
users may have event with the same name -> no information disclosure.
2. SHOW FULL EVENTS - shows the events (in the current db as SHOW EVENTS)
of all users. The user has to have PROCESS privilege, if not then
SHOW FULL EVENTS behave like SHOW EVENTS.
3. If [FROM db] is specified then this db is considered.
4. Event names can be filtered with LIKE pattern.
SHOW EVENTS returns table with the following columns, which are subset of
the data which is returned by SELECT * FROM I_S.EVENTS
Db
Name
Definer
Type
Execute at
Interval value
Interval field
Starts
Ends
Status
mysql-test/lib/init_db.sql:
change the PK - (definer, db, name)
quicker searches when SHOW EVENTS;
allow also different users to have events with the same name ->
no information disclosure
mysql-test/r/events.result:
result of new tests
mysql-test/r/information_schema.result:
result of new tests
mysql-test/r/information_schema_db.result:
result of new tests
mysql-test/r/system_mysql_db.result:
result of new tests
mysql-test/t/events.test:
new tests for information_schema.events
scripts/mysql_create_system_tables.sh:
change the PK of mysql.event to (definer, db, name)
scripts/mysql_fix_privilege_tables.sql:
change the PK of mysql.event to (definer, db, name)
sql/event.cc:
pass around the definer of the event because of the new PK
which is (definer, db, name). It's needed for index searching.
sql/event.h:
- make enum evex_table_field again public so it can be used
in sql_show.cc
- make created and modified ulonglong, because they should be such
- make public evex_open_event_table so it can be used in sql_show.cc
sql/event_executor.cc:
- cosmetics
sql/event_priv.h:
- moved enum evex_table_field and evex_open_event_table()
to event.h (made them therefore public)
sql/event_timed.cc:
- in event_timed::init_definer() always fill this.definer with
the concatenated value of definer_user@definer_host. Makes
later the work easier.
- pass around the definer wherever is needed for searching
(new prototype of evex_db_find_evex_aux)
sql/mysqld.cc:
- add counter for SHOW EVENTS
sql/sql_lex.h:
- register SHOW EVENTS as command
sql/sql_parse.cc:
- handle SCH_EVENTS (I_S.EVENTS like SCH_TRIGGERS)
- make additional check in case of SHOW EVENTS (check for EVENT on
the current database. if it is null check_access() gives appropriate
message back.
sql/sql_show.cc:
- add INFORMATION_SCHEMA.EVENTS and SHOW EVENTS
- I_S.EVENTS.SQL_MODE is NULL for now -> not implemented. Trudy
asked to be added so bug #16642 can be completely closed. There
is another bug report which will fix the lack of storage of
SQL_MODE during event creation.
sql/sql_yacc.yy:
- always call event_timed::init_definer() when CREATE/ALTER/DROP
EVENT but not when just compiling the body of the event because
in this case this operation is not needed, it takes memory and
CPU time and at the end the result is not used. event_timed::definer
is used only on SQLCOM_CREATE/ALTER/DROP_EVENT execution not on
statement compilation.
- add SHOW [FULL] EVENTS [FROM db] [LIKE pattern]
in case of FULL and the user has PROCESS privilege then he will see
also others' events in the current database, otherwise the output
is the same as of SHOW EVENTS. Because the events are per DB only
the events from the current database are shown. pattern is applied
against event name. FROM db is self explanatory.
sql/table.h:
add SCH_EVENTS as part of INFORMATION_SCHEMA
sql/event.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_yacc.yy:
Auto merged
scripts/mysql_create_system_tables.sh:
SCCS merged
tree to get rid of multiple typos in CS comments and
unify the patch.
configure.in:
CSV is compiled in by default now
include/my_base.h:
add new ha_extra flag for the log tables
mysql-test/include/im_check_os.inc:
we should only run im tests if csv is on for now: im relies
on mysqld options available only in csv build.
mysql-test/include/system_db_struct.inc:
check log tables structure
mysql-test/lib/init_db.sql:
create log tables when running tests.
mysql-test/mysql-test-run.pl:
Add old logs flag to IM tests. As IM could only deal with
old logs (this feature is not needed with log tables)
mysql-test/r/connect.result:
update result
mysql-test/r/csv.result:
update result
mysql-test/r/im_utils.result:
update result
mysql-test/r/information_schema.result:
update result
mysql-test/r/mysqlcheck.result:
update result
mysql-test/r/show_check.result:
update result
mysql-test/r/system_mysql_db.result:
update result
mysql-test/t/connect.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
mysql-test/t/csv.test:
add tests for concurrent insert (the functionality is added
to CSV in this patch)
mysql-test/t/information_schema.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
mysql-test/t/mysqlcheck.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
mysql-test/t/show_check.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
mysql-test/t/system_mysql_db.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
mysql-test/t/system_mysql_db_fix.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
scripts/mysql_create_system_tables.sh:
new system tables: slow_log and general_log
scripts/mysql_fix_privilege_tables.sql:
add new log tables: use an SP to create them for
non-csv build to work fine.
sql/ha_myisam.cc:
move locking-related checks to the hanlder
sql/ha_myisam.h:
new function declared
sql/handler.h:
new virtual function is added: we should check for handler-related
locking issues in the handler
sql/lock.cc:
from now on we check for handler-related locking issues
in the handler itself rather then in lock.cc
sql/log.cc:
Add log tables support, refactoring: there are log event
handlers with common interface. They are used by the LOGGER
class, which is responsible for their initialization, cleanup
and managment. Logging to the tables provided by one of the
log event handler types.
sql/log.h:
declare new log classes
sql/log_event.cc:
convert old logging routines calls to use new API
sql/mysql_priv.h:
define common log routines and objects
sql/mysqld.cc:
Add support for the log tables. Their initalization, cleanup
and specific options.
sql/share/errmsg.txt:
add new error messages for the log tables
sql/slave.cc:
convert old logging routines calls to use new API
sql/sql_base.cc:
TABLE objects used by the logger should be skipped
during refreshes (as log tables are always opened
and locked). fix table_is_used to skip them. This
is needed for FLUSH LOGS to work
sql/sql_db.cc:
convert old logging routines calls to use new API
sql/sql_delete.cc:
fix TRUNCATE to work with log tables
sql/sql_parse.cc:
command_name is now an array of LEX_STRINGs
sql/sql_prepare.cc:
convert old logging routines calls to use new API
sql/sql_show.cc:
convert old logging routines calls to use new API
sql/sql_table.cc:
don't reoped the log tables for admin purposes
sql/table.cc:
mark log tables as such during the open
sql/table.h:
add log-related info
storage/csv/ha_tina.cc:
add support for concurrent insert (see bk commit - 5.1 tree
(petr:1.1910) for standalone patch), add log tables-specific
csv table handling.
storage/csv/ha_tina.h:
enable concurrent insert for CSV, add log table flag
mysql-test/r/log_tables.result:
New BitKeeper file ``mysql-test/r/log_tables.result''
mysql-test/t/log_tables.test:
New BitKeeper file ``mysql-test/t/log_tables.test''
mysql-test/include/have_ndb_extra.inc:
New BitKeeper file ``mysql-test/include/have_ndb_extra.inc''
mysql-test/include/not_ndb.inc:
New BitKeeper file ``mysql-test/include/not_ndb.inc''
mysql-test/r/have_ndb_extra.require:
New BitKeeper file ``mysql-test/r/have_ndb_extra.require''
mysql-test/r/ndb_alter_table_row.result:
New BitKeeper file ``mysql-test/r/ndb_alter_table_row.result''
mysql-test/r/ndb_alter_table_stm.result:
New BitKeeper file ``mysql-test/r/ndb_alter_table_stm.result''
mysql-test/r/ndb_binlog_basic.result:
New BitKeeper file ``mysql-test/r/ndb_binlog_basic.result''
mysql-test/r/ndb_binlog_multi.result:
New BitKeeper file ``mysql-test/r/ndb_binlog_multi.result''
mysql-test/r/ndb_multi_row.result:
New BitKeeper file ``mysql-test/r/ndb_multi_row.result''
mysql-test/r/not_ndb.require:
New BitKeeper file ``mysql-test/r/not_ndb.require''
mysql-test/r/rpl_ndb_bank.result:
New BitKeeper file ``mysql-test/r/rpl_ndb_bank.result''
mysql-test/r/rpl_ndb_basic.result:
New BitKeeper file ``mysql-test/r/rpl_ndb_basic.result''
mysql-test/r/rpl_ndb_disk.result:
New BitKeeper file ``mysql-test/r/rpl_ndb_disk.result''
mysql-test/r/rpl_ndb_idempotent.result:
New BitKeeper file ``mysql-test/r/rpl_ndb_idempotent.result''
mysql-test/r/rpl_ndb_load.result:
New BitKeeper file ``mysql-test/r/rpl_ndb_load.result''
mysql-test/r/rpl_ndb_multi.result:
New BitKeeper file ``mysql-test/r/rpl_ndb_multi.result''
mysql-test/r/rpl_ndb_sync.result:
New BitKeeper file ``mysql-test/r/rpl_ndb_sync.result''
mysql-test/r/rpl_row_basic_7ndb.result:
New BitKeeper file ``mysql-test/r/rpl_row_basic_7ndb.result''
mysql-test/t/ndb_alter_table_row.test:
New BitKeeper file ``mysql-test/t/ndb_alter_table_row.test''
mysql-test/t/ndb_alter_table_stm.test:
New BitKeeper file ``mysql-test/t/ndb_alter_table_stm.test''
mysql-test/t/ndb_binlog_basic.test:
New BitKeeper file ``mysql-test/t/ndb_binlog_basic.test''
mysql-test/t/ndb_binlog_multi.test:
New BitKeeper file ``mysql-test/t/ndb_binlog_multi.test''
mysql-test/t/ndb_multi_row.test:
New BitKeeper file ``mysql-test/t/ndb_multi_row.test''
mysql-test/t/rpl_ndb_bank.test:
New BitKeeper file ``mysql-test/t/rpl_ndb_bank.test''
mysql-test/t/rpl_ndb_basic.test:
New BitKeeper file ``mysql-test/t/rpl_ndb_basic.test''
mysql-test/t/rpl_ndb_disk.test:
New BitKeeper file ``mysql-test/t/rpl_ndb_disk.test''
mysql-test/t/rpl_ndb_idempotent.test:
New BitKeeper file ``mysql-test/t/rpl_ndb_idempotent.test''
mysql-test/t/rpl_ndb_load.test:
New BitKeeper file ``mysql-test/t/rpl_ndb_load.test''
mysql-test/t/rpl_ndb_multi.test:
New BitKeeper file ``mysql-test/t/rpl_ndb_multi.test''
mysql-test/t/rpl_ndb_sync.test:
New BitKeeper file ``mysql-test/t/rpl_ndb_sync.test''
mysql-test/t/rpl_row_basic_7ndb.test:
New BitKeeper file ``mysql-test/t/rpl_row_basic_7ndb.test''
sql/ha_ndbcluster_binlog.cc:
New BitKeeper file ``sql/ha_ndbcluster_binlog.cc''
sql/ha_ndbcluster_binlog.h:
New BitKeeper file ``sql/ha_ndbcluster_binlog.h''
sql/ha_ndbcluster_tables.h:
New BitKeeper file ``sql/ha_ndbcluster_tables.h''
sql/rpl_injector.cc:
New BitKeeper file ``sql/rpl_injector.cc''
sql/rpl_injector.h:
New BitKeeper file ``sql/rpl_injector.h''
storage/ndb/include/kernel/signaldata/DihFragCount.hpp:
New BitKeeper file ``storage/ndb/include/kernel/signaldata/DihFragCount.hpp''
fix INSERT/REPLACE statements so test suite runs again.
The question is why we have 2 parallel universes - 2 different
ways to start the test suite, a shell and perl version. One more case
where redundancy makes life nightmare.
scripts/mysql_create_system_tables.sh:
fix INSERT/REPLACE statements so test suite runs again.
The question is why we have 2 parallel universes - 2 different
ways to start the test suite, a shell and perl version. One more case
where redundancy makes life nightmare.
- various fixes of test cases
(hopefully the last pre-push update before the push)
mysql-test/include/system_db_struct.inc:
extend test case to include testing for event system table
mysql-test/r/events.result:
results of events test
mysql-test/r/system_mysql_db.result:
more testing - add structure of event system table
mysql-test/t/events.test:
test case for events (internal CRON)
mysql-test/t/system_mysql_db_fix.test:
drop event table and leave the test database empty
scripts/mysql_create_system_tables.sh:
add missing create table statement
scripts/mysql_fix_privilege_tables.sql:
don't specify the database. this fixes a failing test case which creates the
tables not on mysql but on a test database and then tests again mysql.
sql/event_executor.cc:
if asked to stop -> stop.
include/my_sys.h:
sort_dynamic()
mysys/my_once.c:
MY_ZEROFILL support in my_once_alloc
plugin/fulltext/Makefile.am:
no lib prefix for modules. really build .so
scripts/mysql_create_system_tables.sh:
remove obsolete syntax (and warnings)
sql/sql_parse.cc:
don't call add_to_status/bzero in a loop
WL#2763 - MySQL plugin interface: step 1
Manual merge from CNET tree.
include/ft_global.h:
Default parser added.
include/my_global.h:
dlopen related code moved from sql_udf.cc into my_global.h
include/myisam.h:
Added fulltext parser to MI_KEYDEF
libmysqld/Makefile.am:
Added LIBDIR macro.
mysql-test/r/connect.result:
Test result fixed: added plugin table
mysql-test/r/information_schema.result:
Test result fixed: added plugin table.
mysql-test/r/mysqlcheck.result:
Test result fixed: added plugin table.
mysql-test/r/system_mysql_db.result:
Test fixed: added plugin table
mysql-test/t/system_mysql_db_fix.test:
Test fixed: added plugin table
scripts/mysql_create_system_tables.sh:
Added mysql.plugin table.
scripts/mysql_fix_privilege_tables.sql:
Added mysql.plugin table.
sql/Makefile.am:
Added LIBDIR macro.
sql/ha_myisam.cc:
Pass fulltext parser from sql to myisam layer.
sql/lex.h:
Plugin related symbols.
sql/mysqld.cc:
Initialize/deinitialize plugins, pass opt_plugin_dir.
plugin-dir renamed to plugin_dir.
plugin_dir is relative to mysql_home now.
sql/set_var.cc:
plugin_dir added to SHOW VARIABLES.
sql/share/errmsg.txt:
Plugin related error messages.
sql/sql_class.h:
Added parser to Key class.
Hold parser_name instead of plugin in Key class.
sql/sql_lex.h:
INSTALL/UNINSTALL PLUGIN commands.
sql/sql_parse.cc:
INSTALL/UNINSTALL PLUGIN commands.
sql/sql_show.cc:
SHOW CREATE TABLE: output parser name if index was created WITH PARSER.
sql/sql_table.cc:
Pass fulltext parser from yacc to sql layer.
sql/sql_udf.cc:
dlopen related code moved into my_global.h.
Implemented better check for UDF path.
UDF loads libraries that are under plugin_dir now.
sql/sql_yacc.yy:
INSTALL/UNINSTALL PLUGIN syntax.
Added WITH PARSER syntax to CREATE/ALTER TABLE/INDEX.
opt_fulltext_parser must allocate memory, since it will be used afterwards.
sql/table.cc:
Save/restore fulltext parser in extra data segment.
Added DBUG_PRINTs.
storage/myisam/ft_boolean_search.c:
Split functions so they can be used by fulltext parser.
Use fulltext parser if specified.
storage/myisam/ft_nlq_search.c:
Use fulltext parser.
storage/myisam/ft_parser.c:
Split functions so they can be used by fulltext parser.
Use fulltext parser if specified.
storage/myisam/ft_static.c:
Default fulltext parser added.
storage/myisam/ft_update.c:
Use fulltext parser.
storage/myisam/ftdefs.h:
FTB_PARAM moved into plugin.h and renamed to MYSQL_FTPARSER_BOOLEAN_INFO.
storage/myisam/mi_open.c:
Set default parser.
produce a sensible error when that limit is exceeded. (Bug #11602)
client/mysqltest.c:
Increase query buffer size, and explain why
mysql-test/r/system_mysql_db.result:
Update results
scripts/mysql_create_system_tables.sh:
Increase size of proc.body
scripts/mysql_fix_privilege_tables.sql:
Increase size of proc.body
sql/share/errmsg.txt:
Add error for SP routines that are too long
sql/sp.cc:
Raise an error when the SP body is too long.
sql/sp.h:
Add error for SP body being too long.
sql/sql_parse.cc:
Handle SP_BODY_TOO_LONG error.
mysql-test/r/sp-big.result:
New BitKeeper file ``mysql-test/r/sp-big.result''
mysql-test/t/sp-big.test:
New BitKeeper file ``mysql-test/t/sp-big.test''
Two separate problems. A key buffer was too small in sp.cc for multi-byte
fields, and the creation and fixing of mysql.proc in the scripts hadn't been
updated with the correct character sets and collations (like the other
system tables had).
Note: No special test case, as the use of utf8 for mysql.proc will make
any existing crash (if the buffer overrrun wasn't fixed).
mysql-test/r/sp-error.result:
Updated test case for too long SP names (as the limit has increased with the use of utf8).
mysql-test/t/sp-error.test:
Updated test case for too long SP names (as the limit has increased with the use of utf8).
scripts/mysql_create_system_tables.sh:
Use utf8 for mysql.proc, just like for the other system tables.
scripts/mysql_fix_privilege_tables.sql:
Use utf8 for mysql.proc, just like for the other system tables.
(Some tabs also replaced by space)
sql/sp.cc:
Use a larger key buffer for stored procedures to avoid stack overrun with multi-byte keys.
mysql-test/r/grant.result:
test of new table privileges
mysql-test/r/system_mysql_db.result:
added new table priveleges
mysql-test/r/view_grant.result:
error changed
mysql-test/t/grant.test:
test of new table privileges
mysql-test/t/view_grant.test:
error changed
scripts/mysql_create_system_tables.sh:
add new table privileges
scripts/mysql_fix_privilege_tables.sql:
fixed system tables fix script
sql/sql_acl.h:
fixed coding/decoding new tables grants
Rename some functions
more fine-grained sp privileges
make grant/revoke sp grammar less ambigious
mysql-test/r/sp-security.result:
change test for new syntax
mysql-test/r/system_mysql_db.result:
change test for new syntax
mysql-test/t/sp-security.test:
change test for new syntax
scripts/mysql_create_system_tables.sh:
now store routine_type for procs_priv
scripts/mysql_fix_privilege_tables.sql:
now store routine_type for procs_priv
sql/item_func.cc:
rename of function
sql/mysql_priv.h:
rename of function
sql/sp_head.cc:
extra arg for check_some_routine_access
sql/sql_acl.cc:
rename of function. now handle func/proc acls seperately
sql/sql_acl.h:
rename of function
sql/sql_parse.cc:
rename of function
grants for procs handled distinctly from funcs
sql/sql_show.cc:
check_some_routine_access extra arg
sql/sql_base.cc:
fix for build
sql/sql_yacc.yy:
fix for build
scripts/mysql_create_system_tables.sh:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged
sql/set_var.cc:
Auto merged
support-files/mysql.server.sh:
Auto merged
sql/ha_ndbcluster.cc:
Merge
sql/handler.cc:
Merge
sql/handler.h:
Merge
sql/mysqld.cc:
Merge
the row type is dynamic (For 4.1 tables old 'VARCHAR' fields are converted to
true VARCHAR in the next ALTER TABLE)
This ensures that one can use MySQL 5.0 privilege tables with MySQL 4.1.
(Fix imported from main 5.0 tree to 5.0.3 build tree.)
mysql-test/r/information_schema.result:
Update results (for .frm version number change)
mysql-test/r/ndb_autodiscover.result:
Update results (for .frm version number change)
mysql-test/r/ps_1general.result:
Update results (for .frm version number change)
mysql-test/r/show_check.result:
Update results (for .frm version number change)
mysql-test/r/view.result:
Update results (for .frm version number change)
scripts/fill_func_tables.sh:
Ensure that no privilege tables that is used in 4.1 uses VARCHAR
scripts/mysql_create_system_tables.sh:
Ensure that no privilege tables that is used in 4.1 uses VARCHAR
sql/sql_table.cc:
Only set create_info->varchar if we are using the new VARCHAR field
scripts/mysql_fix_privilege_tables.sh:
Fixed bug that made it impossible to run the script from the mysql source dist
scripts/mysql_fix_privilege_tables.sql:
Ensure that no privilege tables that is used in 4.1 uses VARCHAR
sql/table.cc:
Hack to ensure that CHAR's created in 5.0 are not converted to VARCHAR even if
the row type is dynamic (For 4.1 tables old 'VARCHAR' fields are converted to
true VARCHAR in the next ALTER TABLE)
sql/mysql_priv.h:
Add note about updated scripts with new SQL_MODE settings
scripts/mysql_create_system_tables.sh:
Add new SQL_MODE settings
mysql-test/include/system_db_struct.inc:
Add proc table to system_mysql_db tests.
mysql-test/r/system_mysql_db.result:
Include proc table output
scripts/mysql_fix_privilege_tables.sql:
Make sure full list of SQL_MODE settings is in proc table
in the grant tables case-insensitive and updating test results.
scripts/mysql_create_system_tables.sh:
Fix collation of procs_priv.proc_priv
scripts/mysql_fix_privilege_tables.sql:
Fix enum fields to have case-insensitive collation
mysql-test/r/information_schema.result:
Update results
mysql-test/r/system_mysql_db.result:
Update results
mysql-test/r/lowercase_table_grant.result:
Update results
BitKeeper/triggers/post-commit:
Auto merged
mysql-test/r/lowercase_table2.result:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/t/variables.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/r/system_mysql_db.result:
Update results
scripts/mysql_create_system_tables.sh:
Merge fix for Bug #7617, making enum fields in grant tables
case-insensitive.
scripts/mysql_fix_privilege_tables.sql:
Merge fix for Bug #7617, and fix additional enum/set columns.
sql/sql_acl.cc:
Hand-merge due to whitespace change
sql/sql_lex.cc:
Hand-merge bug fix.
BitKeeper/etc/logging_ok:
auto-union
BitKeeper/triggers/post-commit:
Auto merged
innobase/row/row0mysql.c:
Auto merged
myisam/ft_boolean_search.c:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/r/distinct.result:
Auto merged
mysql-test/r/fulltext.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/union.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/union.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_list.h:
Auto merged
sql/examples/ha_archive.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_string.h:
Auto merged
vio/viosocket.c:
Auto merged
scripts/mysql_create_system_tables.sh:
simple merge
sql/field.cc:
simple merge
sql/item.h:
simple merge
sql/sql_lex.h:
simple merge
sql/sql_yacc.yy:
Merge
(join_table_list was not comptely merged. Need to run test to know how things works...)
sql/table.cc:
Keep code from 5.0, except delted one not needed line
strings/ctype-ucs2.c:
Auto merge
case-insensitive. (Bug #7989)
mysql-test/r/system_mysql_db.result:
Update results
scripts/mysql_create_system_tables.sh:
Need to create enum and set columns with case-insensitive collation
scripts/mysql_fix_privilege_tables.sql:
Modify all enum and set columns to be case-insensitive (and re-order some of
the fix-ups to make it all happen smoothly).
to the 'host' privilege table. (Bug #8166)
scripts/mysql_fix_privilege_tables.sql:
Add Create_routine_priv, Alter_routine_priv, and Execute_priv to host table
scripts/mysql_create_system_tables.sh:
Add Create_routine_priv, Alter_routine_priv, and Execute_priv to host table
mysql-test/r/system_mysql_db.result:
Update results
of concurrent connections for the same account)"
Added support of account specific max_user_connections limit. Made all
user limits to be counted per account instead of the old behavior,
which was per user/host accounting. Added option which enables the old
behavior. Added testing of these to the test suite.
(After review version).
client/mysqltest.c:
Extended mysqltest to be able to handle connect() statements for which
error is expected.
- Added replace_dynstr_append() utility function.
- added connect_n_handle_errors() function which connects with server
without retries and handles errors as if "connect" was usual
statement.
- do_connect(): added ability to handle connects which are expected
to return an error.
- run_query_normal(): Moved all expected-error-handling code to separate
normal_handle_error()/normal_handle_no_error() functions to be able
to reuse them in connect_n_handle_errors().
mysql-test/r/grant.result:
Fixed test results since one more column to mysql.user was added.
mysql-test/r/system_mysql_db.result:
Fixed test results since one more column to mysql.user was added.
scripts/mysql_create_system_tables.sh:
Added max_user_connections column to mysql.user table for storing
new maximal concurrent connections per account limit.
scripts/mysql_fix_privilege_tables.sql:
Added max_user_connections column to mysql.user table for storing
new maximal concurrent connections per account limit.
sql/lex.h:
Added MAX_USER_CONNECTIONS symbol used for specifying
maximum number of concurrent connections per account.
sql/mysql_priv.h:
Added declaration of opt_old_style_user_limits variable which is defined
in sql/mysqld.cc used in sql/sql_parse.cc.
sql/mysqld.cc:
Added "old-style-user-limits" option which forces user limits to behave
in old way i.e. to be counted per user/host pair instead of per account.
Added comment describing mqh_used variable.
sql/set_var.cc:
Added sys_var_max_user_conn class which implements support for the new
behavior of max_user_connections variable. Now the global instance of
this variable holds default maximum number of concurrent connections per
account (as it was before) and the session instance gives read-only
access to account-specific version of this limit.
sql/set_var.h:
Added sys_var_max_user_conn class which implements support for the new
behavior of max_user_connections variable. Now the global instance of
this variable holds default maximum number of concurrent connections per
account (as it was before) and the session instance gives read-only
access to account-specific version of this limit.
sql/sql_acl.cc:
Added support for account-specific MAX_USER_CONNECTIONS limit.
Tweaked USER_RESOURCES and their handling for better clarity.
sql/sql_parse.cc:
Added support for account-specific MAX_USER_CONNECTIONS (maximum number
of concurrent connections per account) limit. Changed default behavior
of all user limits to be per account instead of per user+host.
'--old-style-user-limits' option was added to enable the old behavior.
Made maximum number of connections per hour to be independant on the
value of global max_user_connections variable.
sql/sql_yacc.yy:
Added support of new MAX_USER_CONNECTIONS limit to grammar.
Renamed USER_RESOURCES::connections member to conn_per_hour and bits
member to specified_limits. Also enum is used instead of naked numbers
when we are working with specified_limits.
sql/structs.h:
USER_RESOURCES struct:
- Added user_conn member to store the maximum number of concurrent
connections for an account. Renamed connections member to
conn_per_hour for less ambiguity.
- Renamed member 'bits' to 'specified_limits' for the sake of clarity.
The member was used as a flag indicating which limits were mentioned
in GRANT clause.
- Added comments.
USER_CONN struct:
- Removed unused user_len member.
- Added comments.
Implement fine-grained control over access to stored procedures
Privileges are cached (same way as existing table/column privs)
mysql-test/include/system_db_struct.inc:
WL#925 - Privileges for stored routines
New system table: procs_priv
mysql-test/r/connect.result:
WL#925 - Privileges for stored routines
New system table: procs_priv
mysql-test/r/grant.result:
WL#925 - Privileges for stored routines
user table has additional privilege attributes
SHOW PRIVILEGES amended
mysql-test/r/grant2.result:
Fix result
mysql-test/r/information_schema.result:
WL#925 - Privileges for stored routines
New system table procs_priv
New user privileges
mysql-test/r/show_check.result:
Fix result
mysql-test/r/sp-security.result:
WL#925 - Privileges for stored routines
Fix existing tests to work with new privileges
New tests for new privileges
mysql-test/r/sp.result:
WL#925 - Privileges for stored routines
Fix SHOW PRIVILEGES results
mysql-test/r/system_mysql_db.result:
WL#925 - Privileges for stored routines
New system table: procs_priv
user and db tables have new privilege attributes
mysql-test/t/grant2.test:
Fix test
mysql-test/t/show_check.test:
Fix test
mysql-test/t/sp-security.test:
WL#925 - Privileges for stored routines
Allow existing tests to run with new privilege checks
New tests for privileges
mysql-test/t/system_mysql_db_fix.test:
WL#925 - Privileges for stored routines
New system table: procs_priv
scripts/mysql_create_system_tables.sh:
WL#925 - Privileges for stored routines
db and user has new privilege attributes
new system table: procs_priv
scripts/mysql_fix_privilege_tables.sql:
WL#925 - Privileges for stored routines
new system table: procs_priv
scripts/mysql_install_db.sh:
WL#925 - Privileges for stored routines
Amend comment
sql/item_func.cc:
WL#925 - Privileges for stored routines
Privilege check for stored FUNCTION routine
sql/lex.h:
WL#925 - Privileges for stored routines
new token ROUTINE
sql/mysql_priv.h:
WL#925 - Privileges for stored routines
New function: check_procedure_access()
sql/mysqld.cc:
WL#925 - Privileges for stored routines
system option automatic-sp-privileges
sql/set_var.cc:
WL#925 - Privileges for stored routines
system option automatic-sp-privileges
sql/share/errmsg.txt:
WL#925 - Privileges for stored routines
rename errormessage to conform:
ER_SP_ACCESS_DENIED_ERROR -> ER_PROCACCESS_DENIED_ERROR
New error messages
ER_NONEXISTING_PROC_GRANT, ER_PROC_AUTO_GRANT_FAIL, ER_PROC_AUTO_REVOKE_FAIL
sql/sp.cc:
WL#925 - Privileges for stored routines
new function: sp_exists_routine()
sql/sp.h:
WL#925 - Privileges for stored routines
new function: sp_exists_routine()
sql/sql_acl.cc:
WL#925 - Privileges for stored routines
Implementation for SP privileges.
Privileges are cached in memory hash.
New functions:
mysql_procedure_grant()
check_grant_procedure()
sp_revoke_privileges()
sp_grant_privileges()
sql/sql_acl.h:
WL#925 - Privileges for stored routines
New privilege bits: CREATE_PROC_ACL, ALTER_PROC_ACL
Alter confusing bit-segments to be shifted
New macros: fix_rights_for_procedure() get_rights_for_procedure()
New functions:
mysql_procedure_grant()
check_grant_procedure()
sp_grant_privileges()
sp_revoke_privileges()
sql/sql_lex.h:
WL#925 - Privileges for stored routines
new all_privileges attribute in LEX
sql/sql_parse.cc:
WL#925 - Privileges for stored routines
Remove function: check_sp_definer_access()
Add handling for SP grants/revokes
Add privilege checks for stored procedure invocation
sql/sql_show.cc:
WL#925 - Privileges for stored routines
update result for SHOW PRIVILEGES
sql/sql_yacc.yy:
WL#925 - Privileges for stored routines
New token ROUTINE
rename some rules
handle CREATE ROUTINE / ALTER ROUTINE privileges
NO SQL
CONTAINS SQL (default)
READS SQL DATA
MODIFIES SQL DATA
These are needed as hints for the replication.
(Before this, we did have the default in the mysql.proc table, but no support in the parser.)
mysql-test/r/sp.result:
Modified test cases for new data access characteristics.
mysql-test/t/sp.test:
Modified test cases for new data access characteristics.
scripts/mysql_create_system_tables.sh:
We now support all the SP data access characteristics (not just CONTAINS SQL).
scripts/mysql_fix_privilege_tables.sql:
We now support all the SP data access characteristics (not just CONTAINS SQL).
sql/lex.h:
New tokens for SP data access characteristics.
sql/sp.cc:
Store, print and support alter of data access characteristics.
sql/sp_head.cc:
Added SP_ prefix to some symbols.
sql/sql_lex.h:
Added SP_ prefix to some symbols, and added SP data access enum.
sql/sql_yacc.yy:
Parse SP data access characteristics.
(And allow "alter ... language sql", mostly as a formality, it was accidently
put in the wrong clause before.)
(Includes merge of arena code in 4.1 and 5.0)
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
VC++Files/sql/mysqld.dsp:
Auto merged
client/mysql.cc:
Auto merged
client/mysqltest.c:
Auto merged
include/my_global.h:
Auto merged
include/my_sys.h:
Auto merged
include/mysql.h:
Auto merged
include/mysql_com.h:
Auto merged
innobase/row/row0sel.c:
Auto merged
libmysql/client_settings.h:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/Makefile.am:
Auto merged
libmysqld/examples/Makefile.am:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/myisamchk.c:
Auto merged
myisam/sort.c:
Auto merged
mysql-test/r/connect.result:
Auto merged
mysql-test/r/ctype_recoding.result:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/r/func_in.result:
Auto merged
mysql-test/r/func_like.result:
Auto merged
mysql-test/r/gis.result:
Auto merged
mysql-test/r/having.result:
Auto merged
mysql-test/r/heap.result:
Auto merged
mysql-test/r/join.result:
Auto merged
mysql-test/r/key.result:
Auto merged
mysql-test/r/lowercase_table.result:
Auto merged
mysql-test/r/ndb_autodiscover.result:
Auto merged
mysql-test/r/null.result:
Auto merged
mysql-test/r/olap.result:
Auto merged
mysql-test/r/order_by.result:
Auto merged
mysql-test/r/ps_1general.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/ps_6bdb.result:
Auto merged
mysql-test/r/range.result:
Auto merged
mysql-test/r/rename.result:
Auto merged
mysql-test/r/show_check.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/union.result:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/t/alter_table.test:
Auto merged
mysql-test/t/null.test:
Auto merged
mysql-test/t/ps_1general.test:
Auto merged
mysql-test/t/rpl_charset.test:
Auto merged
mysql-test/t/rpl_heap.test:
Auto merged
mysql-test/t/rpl_relayrotate.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/variables.test:
Auto merged
netware/mysql_test_run.c:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
scripts/mysql_create_system_tables.sh:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged
scripts/mysql_install_db.sh:
Auto merged
sql/ha_berkeley.cc:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_innodb.h:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_create.cc:
Auto merged
sql/item_create.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/item_timefunc.h:
Auto merged
sql/lex.h:
Auto merged
sql/lock.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/protocol.cc:
Auto merged
sql/records.cc:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_acl.h:
Auto merged
sql/sql_db.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_list.h:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_rename.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_string.h:
Auto merged
sql/table.cc:
Auto merged
sql-common/client.c:
Auto merged
client/mysqlbinlog.cc:
Merge with 4.1
configure.in:
Merge with 4.1
include/mysqld_error.h:
Add new error message (1) from 4.1
mysql-test/mysql-test-run.sh:
Merge with 4.1
mysql-test/r/func_gconcat.result:
Merge with 4.1
mysql-test/r/func_if.result:
Merge with 4.1
mysql-test/r/grant.result:
Merge with 4.1
mysql-test/r/join_outer.result:
Merge with 4.1
mysql-test/r/rpl_charset.result:
Merge with 4.1 (This has to be fixed before pushing)
mysql-test/r/system_mysql_db.result:
Merge with 4.1.
Added collation to new privileges
mysql-test/t/grant.test:
Merge with 4.1
mysql-test/t/grant_cache.test:
Merge with 4.1
mysql-test/t/show_check.test:
Merge with 4.1
sql/Makefile.am:
Merge with 4.1
sql/item.cc:
Merge with 4.1
sql/item_cmpfunc.cc:
Merge with 4.1 (arena code)
sql/item_subselect.cc:
Merge with 4.1
sql/item_subselect.h:
Merge with 4.1
sql/item_sum.cc:
Merge with 4.1
sql/item_sum.h:
Merge with 4.1
sql/log.cc:
Merge with 4.1 (Remove code that is not relevant for 5.0)
sql/mysqld.cc:
Merge with 4.1
sql/opt_range.cc:
Merge with 4.1
sql/share/czech/errmsg.txt:
Merge with 4.1
sql/share/danish/errmsg.txt:
Merge with 4.1
sql/share/dutch/errmsg.txt:
Merge with 4.1
sql/share/english/errmsg.txt:
Merge with 4.1
sql/share/estonian/errmsg.txt:
Merge with 4.1
sql/share/french/errmsg.txt:
Merge with 4.1
sql/share/german/errmsg.txt:
Merge with 4.1
sql/share/greek/errmsg.txt:
Merge with 4.1
sql/share/hungarian/errmsg.txt:
Merge with 4.1
sql/share/italian/errmsg.txt:
Merge with 4.1
sql/share/japanese/errmsg.txt:
Merge with 4.1
sql/share/korean/errmsg.txt:
Merge with 4.1
sql/share/norwegian-ny/errmsg.txt:
Merge with 4.1
sql/share/norwegian/errmsg.txt:
Merge with 4.1
sql/share/polish/errmsg.txt:
Merge with 4.1
sql/share/portuguese/errmsg.txt:
Merge with 4.1
sql/share/romanian/errmsg.txt:
Merge with 4.1
sql/share/russian/errmsg.txt:
Merge with 4.1
sql/share/serbian/errmsg.txt:
Merge with 4.1
sql/share/slovak/errmsg.txt:
Merge with 4.1
sql/share/spanish/errmsg.txt:
Merge with 4.1
sql/share/swedish/errmsg.txt:
Merge with 4.1
sql/share/ukrainian/errmsg.txt:
Merge with 4.1
sql/sql_base.cc:
Merge with 4.1
sql/sql_class.cc:
Merge with 4.1
Use arena code from 4.1
sql/sql_class.h:
Merge with 4.1
Use arena code from 4.1
sql/sql_derived.cc:
Merge with 4.1
sql/sql_lex.cc:
Merge with 4.1
sql/sql_lex.h:
Merge with 4.1
sql/sql_parse.cc:
Merge with 4.1
sql/sql_prepare.cc:
Merge with 4.1
sql/sql_select.cc:
Merge with 4.1
sql/sql_table.cc:
Merge with 4.1
sql/sql_union.cc:
Merge with 4.1
sql/sql_yacc.yy:
Merge with 4.1
sql/tztime.cc:
Merge with 4.1
tests/client_test.c:
Merge with 4.1