Commit 4605a107 authored by unknown's avatar unknown

Add all SQL_MODE settings to proc table. (Bug #8902)


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
parent 50914ba7
...@@ -11,3 +11,4 @@ show create table func; ...@@ -11,3 +11,4 @@ show create table func;
show create table tables_priv; show create table tables_priv;
show create table columns_priv; show create table columns_priv;
show create table procs_priv; show create table procs_priv;
show create table proc;
...@@ -154,5 +154,26 @@ procs_priv CREATE TABLE `procs_priv` ( ...@@ -154,5 +154,26 @@ procs_priv CREATE TABLE `procs_priv` (
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`), PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`),
KEY `Grantor` (`Grantor`) KEY `Grantor` (`Grantor`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges'
show create table proc;
Table Create Table
proc CREATE TABLE `proc` (
`db` char(64) character set latin1 collate latin1_bin NOT NULL default '',
`name` char(64) NOT NULL default '',
`type` enum('FUNCTION','PROCEDURE') NOT NULL default 'FUNCTION',
`specific_name` char(64) NOT NULL default '',
`language` enum('SQL') NOT NULL default 'SQL',
`sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL default 'CONTAINS_SQL',
`is_deterministic` enum('YES','NO') NOT NULL default 'NO',
`security_type` enum('INVOKER','DEFINER') NOT NULL default 'DEFINER',
`param_list` blob NOT NULL,
`returns` char(64) NOT NULL default '',
`body` blob NOT NULL,
`definer` char(77) character set latin1 collate latin1_bin NOT NULL default '',
`created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`modified` timestamp NOT NULL default '0000-00-00 00:00:00',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL default '',
`comment` char(64) character set latin1 collate latin1_bin NOT NULL default '',
PRIMARY KEY (`db`,`name`,`type`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Stored Procedures'
show tables; show tables;
Tables_in_test Tables_in_test
...@@ -702,7 +702,17 @@ then ...@@ -702,7 +702,17 @@ then
c_p="$c_p 'MYSQL323'," c_p="$c_p 'MYSQL323',"
c_p="$c_p 'MYSQL40'," c_p="$c_p 'MYSQL40',"
c_p="$c_p 'ANSI'," c_p="$c_p 'ANSI',"
c_p="$c_p 'NO_AUTO_VALUE_ON_ZERO'" c_p="$c_p 'NO_AUTO_VALUE_ON_ZERO',"
c_p="$c_p 'NO_BACKSLASH_ESCAPES',"
c_p="$c_p 'STRICT_TRANS_TABLES',"
c_p="$c_p 'STRICT_ALL_TABLES',"
c_p="$c_p 'NO_ZERO_IN_DATE',"
c_p="$c_p 'NO_ZERO_DATE',"
c_p="$c_p 'INVALID_DATES',"
c_p="$c_p 'ERROR_FOR_DIVISION_BY_ZERO',"
c_p="$c_p 'TRADITIONAL',"
c_p="$c_p 'NO_AUTO_CREATE_USER',"
c_p="$c_p 'HIGH_NOT_PRECEDENCE'"
c_p="$c_p ) DEFAULT 0 NOT NULL," c_p="$c_p ) DEFAULT 0 NOT NULL,"
c_p="$c_p comment char(64) binary DEFAULT '' NOT NULL," c_p="$c_p comment char(64) binary DEFAULT '' NOT NULL,"
c_p="$c_p PRIMARY KEY (db,name,type)" c_p="$c_p PRIMARY KEY (db,name,type)"
......
...@@ -422,7 +422,17 @@ CREATE TABLE IF NOT EXISTS proc ( ...@@ -422,7 +422,17 @@ CREATE TABLE IF NOT EXISTS proc (
'MYSQL323', 'MYSQL323',
'MYSQL40', 'MYSQL40',
'ANSI', 'ANSI',
'NO_AUTO_VALUE_ON_ZERO' 'NO_AUTO_VALUE_ON_ZERO',
'NO_BACKSLASH_ESCAPES',
'STRICT_TRANS_TABLES',
'STRICT_ALL_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'INVALID_DATES',
'ERROR_FOR_DIVISION_BY_ZERO',
'TRADITIONAL',
'NO_AUTO_CREATE_USER',
'HIGH_NOT_PRECEDENCE'
) DEFAULT 0 NOT NULL, ) DEFAULT 0 NOT NULL,
comment char(64) binary DEFAULT '' NOT NULL, comment char(64) binary DEFAULT '' NOT NULL,
PRIMARY KEY (db,name,type) PRIMARY KEY (db,name,type)
...@@ -436,4 +446,36 @@ ALTER TABLE proc MODIFY name char(64) DEFAULT '' NOT NULL, ...@@ -436,4 +446,36 @@ ALTER TABLE proc MODIFY name char(64) DEFAULT '' NOT NULL,
'NO_SQL', 'NO_SQL',
'READS_SQL_DATA', 'READS_SQL_DATA',
'MODIFIES_SQL_DATA' 'MODIFIES_SQL_DATA'
) DEFAULT 'CONTAINS_SQL' NOT NULL; ) DEFAULT 'CONTAINS_SQL' NOT NULL,
MODIFY sql_mode
set('REAL_AS_FLOAT',
'PIPES_AS_CONCAT',
'ANSI_QUOTES',
'IGNORE_SPACE',
'NOT_USED',
'ONLY_FULL_GROUP_BY',
'NO_UNSIGNED_SUBTRACTION',
'NO_DIR_IN_CREATE',
'POSTGRESQL',
'ORACLE',
'MSSQL',
'DB2',
'MAXDB',
'NO_KEY_OPTIONS',
'NO_TABLE_OPTIONS',
'NO_FIELD_OPTIONS',
'MYSQL323',
'MYSQL40',
'ANSI',
'NO_AUTO_VALUE_ON_ZERO',
'NO_BACKSLASH_ESCAPES',
'STRICT_TRANS_TABLES',
'STRICT_ALL_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'INVALID_DATES',
'ERROR_FOR_DIVISION_BY_ZERO',
'TRADITIONAL',
'NO_AUTO_CREATE_USER',
'HIGH_NOT_PRECEDENCE'
) DEFAULT 0 NOT NULL;
...@@ -299,6 +299,10 @@ extern CHARSET_INFO *national_charset_info, *table_alias_charset; ...@@ -299,6 +299,10 @@ extern CHARSET_INFO *national_charset_info, *table_alias_charset;
use strictly more than 64 bits by adding one more define above, you should use strictly more than 64 bits by adding one more define above, you should
contact the replication team because the replication code should then be contact the replication team because the replication code should then be
updated (to store more bytes on disk). updated (to store more bytes on disk).
NOTE: When adding new SQL_MODE types, make sure to also add them to
../scripts/mysql_create_system_tables.sh and
../scripts/mysql_fix_privilege_tables.sql
*/ */
#define RAID_BLOCK_SIZE 1024 #define RAID_BLOCK_SIZE 1024
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment