summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <sasha@mysql.sashanet.com>2001-09-19 19:45:13 -0600
committerunknown <sasha@mysql.sashanet.com>2001-09-19 19:45:13 -0600
commit8057a797a0cbef5bf59d37d0a8722a294b6e9f6a (patch)
tree1973abef2cb321be68c1b0e3984d698636a34dc7
parent30f4ea704431158f96163e7e62ad28a98164bbbf (diff)
downloadmariadb-git-8057a797a0cbef5bf59d37d0a8722a294b6e9f6a.tar.gz
GRANT ... REQUIRE ( for SSL).
client/mysqlmanagerc.c: fix to make it compile after merge sql/lex.h: fixes for GRANT ... REQUIRE sql/sql_lex.h: GRANT ... REQUIRE sql/sql_yacc.yy: GRANT ... REQUIRE tools/mysqlmanager.c: fix to make compile after merge
-rw-r--r--client/mysqlmanagerc.c2
-rw-r--r--sql/lex.h4
-rw-r--r--sql/sql_lex.h1
-rw-r--r--sql/sql_yacc.yy36
-rw-r--r--tools/mysqlmanager.c2
5 files changed, 40 insertions, 5 deletions
diff --git a/client/mysqlmanagerc.c b/client/mysqlmanagerc.c
index c4426c36426..ce5242364c3 100644
--- a/client/mysqlmanagerc.c
+++ b/client/mysqlmanagerc.c
@@ -16,7 +16,7 @@
#define MANAGER_CLIENT_VERSION "1.0"
-#include <global.h>
+#include <my_global.h>
#include <my_sys.h>
#include <m_string.h>
#include <mysql.h>
diff --git a/sql/lex.h b/sql/lex.h
index 1d481aa7c85..b72b42f2a3d 100644
--- a/sql/lex.h
+++ b/sql/lex.h
@@ -83,6 +83,7 @@ static SYMBOL symbols[] = {
{ "CHANGED", SYM(CHANGED),0,0},
{ "CHECK", SYM(CHECK_SYM),0,0},
{ "CHECKSUM", SYM(CHECKSUM_SYM),0,0},
+ { "CHIPHER", SYM(CHIPHER_SYM),0,0},
{ "CLOSE", SYM(CLOSE_SYM),0,0},
{ "COLUMN", SYM(COLUMN_SYM),0,0},
{ "COLUMNS", SYM(COLUMNS),0,0},
@@ -190,6 +191,7 @@ static SYMBOL symbols[] = {
{ "IS", SYM(IS),0,0},
{ "ISOLATION", SYM(ISOLATION),0,0},
{ "ISAM", SYM(ISAM_SYM),0,0},
+ { "ISSUER", SYM(ISSUER_SYM),0,0},
{ "JOIN", SYM(JOIN_SYM),0,0},
{ "KEY", SYM(KEY_SYM),0,0},
{ "KEYS", SYM(KEYS),0,0},
@@ -277,6 +279,7 @@ static SYMBOL symbols[] = {
{ "REPAIR", SYM(REPAIR),0,0},
{ "REPLACE", SYM(REPLACE),0,0},
{ "REPEATABLE", SYM(REPEATABLE_SYM),0,0},
+ { "REQUIRE", SYM(REQUIRE_SYM),0,0},
{ "RESET", SYM(RESET_SYM),0,0},
{ "RESTORE", SYM(RESTORE_SYM),0,0},
{ "RESTRICT", SYM(RESTRICT),0,0},
@@ -322,6 +325,7 @@ static SYMBOL symbols[] = {
{ "STRING", SYM(STRING_SYM),0,0},
{ "STOP", SYM(STOP_SYM),0,0},
{ "STRIPED", SYM(RAID_STRIPED_SYM),0,0},
+ { "SUBJECT", SYM(SUBJECT_SYM),0,0},
{ "TABLE", SYM(TABLE_SYM),0,0},
{ "TABLES", SYM(TABLES),0,0},
{ "TEMPORARY", SYM(TEMPORARY),0,0},
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 4d2441da246..ff404cce0d6 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -145,6 +145,7 @@ typedef struct st_lex {
char *length,*dec,*change,*name;
char *backup_dir; /* For RESTORE/BACKUP */
char* to_log; /* For PURGE MASTER LOGS TO */
+ char* ssl_subject,*ssl_issuer,*ssl_chipher;
String *wild;
sql_exchange *exchange;
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 5be1b86e8ab..34cdd317e99 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -98,7 +98,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token MIN_SYM
%token SUM_SYM
%token STD_SYM
-
+%token ABORT_SYM
%token ADD
%token ALTER
%token AFTER_SYM
@@ -134,7 +134,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token BINLOG_SYM
%token EVENTS_SYM
-%token ABORT_SYM
%token ACTION
%token AGGREGATE_SYM
%token ALL
@@ -450,6 +449,10 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token SQL_QUOTE_SHOW_CREATE
%token SQL_SLAVE_SKIP_COUNTER
+%token ISSUER_SYM
+%token SUBJECT_SYM
+%token CHIPHER_SYM
+
%left SET_VAR
%left OR_OR_CONCAT OR
%left AND
@@ -2819,6 +2822,7 @@ keyword:
| CHANGED {}
| CHECKSUM_SYM {}
| CHECK_SYM {}
+ | CHIPHER_SYM {}
| CLOSE_SYM {}
| COMMENT_SYM {}
| COMMIT_SYM {}
@@ -2856,6 +2860,7 @@ keyword:
| INDEXES {}
| ISOLATION {}
| ISAM_SYM {}
+ | ISSUER_SYM {}
| INNOBASE_SYM {}
| LAST_SYM {}
| LEVEL_SYM {}
@@ -2882,6 +2887,7 @@ keyword:
| NATIONAL_SYM {}
| NCHAR_SYM {}
| NEXT_SYM {}
+ | NEW_SYM {}
| NO_SYM {}
| OPEN_SYM {}
| PACK_KEYS_SYM {}
@@ -2909,10 +2915,12 @@ keyword:
| SESSION_SYM {}
| SHARE_SYM {}
| SHUTDOWN {}
+ | SLAVE {}
| START_SYM {}
| STATUS_SYM {}
| STOP_SYM {}
| STRING_SYM {}
+ | SUBJECT_SYM {}
| TEMPORARY {}
| TEXT_SYM {}
| TRANSACTION_SYM {}
@@ -3251,9 +3259,10 @@ grant:
lex->columns.empty();
lex->grant= lex->grant_tot_col=0;
lex->select->db=0;
+ lex->ssl_chipher=lex->ssl_subject=lex->ssl_issuer=0;
}
grant_privileges ON opt_table TO_SYM user_list
- grant_option
+ grant_option require_clause
grant_privileges:
grant_privilege_list {}
@@ -3287,6 +3296,27 @@ grant_privilege:
| FILE_SYM { Lex->grant |= FILE_ACL;}
| GRANT OPTION { Lex->grant |= GRANT_ACL;}
+require_clause: /* empty */
+ | REQUIRE_SYM require_list
+
+
+require_list: require_list_element AND require_list
+| require_list_element
+
+
+require_list_element: SUBJECT_SYM TEXT_STRING
+ {
+ Lex->ssl_subject=$2.str;
+ }
+ | ISSUER_SYM TEXT_STRING
+ {
+ Lex->ssl_issuer=$2.str;
+ }
+ | CHIPHER_SYM TEXT_STRING
+ {
+ Lex->ssl_chipher=$2.str;
+ }
+
opt_table:
'*'
{
diff --git a/tools/mysqlmanager.c b/tools/mysqlmanager.c
index 8e6e8470cf3..4ca8c7768cd 100644
--- a/tools/mysqlmanager.c
+++ b/tools/mysqlmanager.c
@@ -20,7 +20,7 @@
* Sasha Pachev <sasha@mysql.com>
**/
-#include <global.h>
+#include <my_global.h>
#include <my_sys.h>
#include <m_string.h>
#include <mysql.h>