mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
WL#1363: Update the mysql.proc table and add new fields.
Also made the parsing and handling of SP characteristics more general and extendable, and added a few ch:istics. Docs/sp-imp-spec.txt: Updated spec with new schema. Docs/sp-implemented.txt: Added info about ALTER and SHOW. mysql-test/r/sp.result: Minor change in SHOW FUNCTION|PROCEDURE STATUS output. scripts/mysql_create_system_tables.sh: New mysql.proc schema. scripts/mysql_fix_privilege_tables.sql: New mysql.proc schema. sql/lex.h: New lex words for SP characteristics. sql/sp.cc: New mysql.proc schema. Also made the characteristics handling slightly more extendable. sql/sp.h: Made the characteristics handling slightly more extendable. sql/sp_head.cc: Made the characteristics handling slightly more extendable. sql/sp_head.h: Made the characteristics handling slightly more extendable. sql/sql_lex.h: Made the characteristics handling slightly more extendable. sql/sql_parse.cc: Made the characteristics handling slightly more extendable. sql/sql_yacc.yy: Made the characteristics handling slightly more extendable and made the parsing of characteristics more general, and added a few new dito. (LANGUAGE SQL, and [NOT] DETERMINISTIC for starters).
This commit is contained in:
@ -289,19 +289,45 @@ fi
|
||||
if test ! -f $mdata/proc.frm
|
||||
then
|
||||
c_p="$c_p CREATE TABLE proc ("
|
||||
c_p="$c_p name char(64) binary DEFAULT '' NOT NULL,"
|
||||
c_p="$c_p type enum('function','procedure') NOT NULL,"
|
||||
c_p="$c_p body blob DEFAULT '' NOT NULL,"
|
||||
c_p="$c_p creator char(77) binary DEFAULT '' NOT NULL,"
|
||||
c_p="$c_p modified timestamp,"
|
||||
c_p="$c_p created timestamp,"
|
||||
c_p="$c_p suid enum ('N', 'Y') DEFAULT 'Y' NOT NULL,"
|
||||
c_p="$c_p comment char(64) binary DEFAULT '' NOT NULL,"
|
||||
c_p="$c_p PRIMARY KEY (name,type)"
|
||||
c_p="$c_p )"
|
||||
c_p="$c_p comment='Stored Procedures';"
|
||||
c_p="$c_p schema char(64) binary DEFAULT '' NOT NULL,"
|
||||
c_p="$c_p name char(64) binary DEFAULT '' NOT NULL,"
|
||||
c_p="$c_p type enum('FUNCTION','PROCEDURE') NOT NULL,"
|
||||
c_p="$c_p specific_name char(64) binary DEFAULT '' NOT NULL,"
|
||||
c_p="$c_p language enum('SQL') DEFAULT 'SQL' NOT NULL,"
|
||||
c_p="$c_p sql_data_access enum('CONTAINS_SQL') DEFAULT 'CONTAINS_SQL' NOT NULL,"
|
||||
c_p="$c_p is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL,"
|
||||
c_p="$c_p definition blob DEFAULT '' NOT NULL,"
|
||||
c_p="$c_p security_type enum('INVOKER','DEFINER') DEFAULT 'INVOKER' NOT NULL,"
|
||||
c_p="$c_p definer char(77) binary DEFAULT '' NOT NULL,"
|
||||
c_p="$c_p created timestamp,"
|
||||
c_p="$c_p modified timestamp,"
|
||||
c_p="$c_p sql_mode set("
|
||||
c_p="$c_p 'REAL_AS_FLOAT',"
|
||||
c_p="$c_p 'PIPES_AS_CONCAT',"
|
||||
c_p="$c_p 'ANSI_QUOTES',"
|
||||
c_p="$c_p 'IGNORE_SPACE',"
|
||||
c_p="$c_p 'NOT_USED',"
|
||||
c_p="$c_p 'ONLY_FULL_GROUP_BY',"
|
||||
c_p="$c_p 'NO_UNSIGNED_SUBTRACTION',"
|
||||
c_p="$c_p 'NO_DIR_IN_CREATE',"
|
||||
c_p="$c_p 'POSTGRESQL',"
|
||||
c_p="$c_p 'ORACLE',"
|
||||
c_p="$c_p 'MSSQL',"
|
||||
c_p="$c_p 'DB2',"
|
||||
c_p="$c_p 'MAXDB',"
|
||||
c_p="$c_p 'NO_KEY_OPTIONS',"
|
||||
c_p="$c_p 'NO_TABLE_OPTIONS',"
|
||||
c_p="$c_p 'NO_FIELD_OPTIONS',"
|
||||
c_p="$c_p 'MYSQL323',"
|
||||
c_p="$c_p 'MYSQL40',"
|
||||
c_p="$c_p 'ANSI',"
|
||||
c_p="$c_p 'NO_AUTO_VALUE_ON_ZERO'"
|
||||
c_p="$c_p ) DEFAULT 0 NOT NULL,"
|
||||
c_p="$c_p comment char(64) binary DEFAULT '' NOT NULL,"
|
||||
c_p="$c_p PRIMARY KEY (schema,name,type)"
|
||||
c_p="$c_p ) comment='Stored Procedures';"
|
||||
fi
|
||||
|
||||
|
||||
cat << END_OF_DATA
|
||||
use mysql;
|
||||
$c_d
|
||||
|
@ -140,14 +140,40 @@ unique index (name)
|
||||
#
|
||||
|
||||
CREATE TABLE IF NOT EXISTS proc (
|
||||
name char(64) binary DEFAULT '' NOT NULL,
|
||||
type enum('function','procedure') NOT NULL,
|
||||
body blob DEFAULT '' NOT NULL,
|
||||
creator char(77) binary DEFAULT '' NOT NULL,
|
||||
modified timestamp,
|
||||
created timestamp,
|
||||
suid enum ('N', 'Y') DEFAULT 'Y' NOT NULL,
|
||||
comment char(64) binary DEFAULT '' NOT NULL,
|
||||
PRIMARY KEY (name,type)
|
||||
schema char(64) binary DEFAULT '' NOT NULL,
|
||||
name char(64) binary DEFAULT '' NOT NULL,
|
||||
type enum('FUNCTION','PROCEDURE') NOT NULL,
|
||||
specific_name char(64) binary DEFAULT '' NOT NULL,
|
||||
language enum('SQL') DEFAULT 'SQL' NOT NULL,
|
||||
sql_data_access enum('CONTAINS_SQL') DEFAULT 'CONTAINS_SQL' NOT NULL,
|
||||
is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL,
|
||||
definition blob DEFAULT '' NOT NULL,
|
||||
security_type enum('INVOKER','DEFINER') DEFAULT 'INVOKER' NOT NULL,
|
||||
definer char(77) binary DEFAULT '' NOT NULL,
|
||||
created timestamp,
|
||||
modified timestamp,
|
||||
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'
|
||||
) DEFAULT 0 NOT NULL,
|
||||
comment char(64) binary DEFAULT '' NOT NULL,
|
||||
PRIMARY KEY (schema,name,type)
|
||||
) comment='Stored Procedures';
|
||||
|
||||
|
Reference in New Issue
Block a user