List:Commits« Previous MessageNext Message »
From:Stewart Smith Date:June 30 2008 1:30am
Subject:bzr commit into mysql-6.0-backup branch (stewart:2647) WL#4271
View as plain text  
#At file:///home/stewart/mysql/stew-encrypted-backup-preview1/

 2647 stewart@stripped	2008-06-30
      [patch 03/10] WL4271: Encrypted Online Backup: add symbols to parser---
       mysql-test/r/backup_encrypted_syntax_basic.result |   18 +++++++++++
       mysql-test/t/backup_encrypted_syntax_basic.test   |   17 ++++++++++
       sql/lex.h                                         |    3 +
       sql/sql_lex.h                                     |    4 ++
       sql/sql_yacc.yy                                   |   35 +++++++++++++++++++++-
       5 files changed, 76 insertions(+), 1 deletion(-)
      
      Index: stew-encrypted-backup/sql/sql_yacc.yy
      ===================================================================
added:
  mysql-test/r/backup_encrypted_syntax_basic.result
  mysql-test/t/backup_encrypted_syntax_basic.test
modified:
  sql/lex.h
  sql/sql_lex.h
  sql/sql_yacc.yy

=== added file 'mysql-test/r/backup_encrypted_syntax_basic.result'
--- a/mysql-test/r/backup_encrypted_syntax_basic.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/r/backup_encrypted_syntax_basic.result	2008-06-30 01:30:48 +0000
@@ -0,0 +1,18 @@
+BACKUP DATABASE test TO 'test.ba';
+backup_id
+1
+BACKUP DATABASE test TO 'test1.ba' ENCRYPTION_ALGORITHM=foo;
+backup_id
+2
+BACKUP DATABASE test TO 'test2.ba' ENCRYPTION_ALGORITHM=aes;
+backup_id
+3
+BACKUP DATABASE test TO 'test3.ba' ENCRYPTION_ALGORITHM=aes ENCRYPTION_KEYSIZE=128;
+backup_id
+4
+BACKUP DATABASE test TO 'test4.ba' ENCRYPTION_ALGORITHM=aes ENCRYPTION_KEYSIZE=128 PASSWORD='pants';
+backup_id
+5
+BACKUP DATABASE test TO 'test5.ba' ENCRYPTION_ALGORITHM=aes ENCRYPTION_KEYSIZE=128 ENCRYPTION_KEYFILE='foo.key';
+backup_id
+6

=== added file 'mysql-test/t/backup_encrypted_syntax_basic.test'
--- a/mysql-test/t/backup_encrypted_syntax_basic.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/backup_encrypted_syntax_basic.test	2008-06-30 01:30:48 +0000
@@ -0,0 +1,17 @@
+--source include/not_embedded.inc
+
+BACKUP DATABASE test TO 'test.ba';
+BACKUP DATABASE test TO 'test1.ba' ENCRYPTION_ALGORITHM=foo;
+BACKUP DATABASE test TO 'test2.ba' ENCRYPTION_ALGORITHM=aes;
+BACKUP DATABASE test TO 'test3.ba' ENCRYPTION_ALGORITHM=aes ENCRYPTION_KEYSIZE=128;
+BACKUP DATABASE test TO 'test4.ba' ENCRYPTION_ALGORITHM=aes ENCRYPTION_KEYSIZE=128 PASSWORD='pants';
+BACKUP DATABASE test TO 'test5.ba' ENCRYPTION_ALGORITHM=aes ENCRYPTION_KEYSIZE=128 ENCRYPTION_KEYFILE='foo.key';
+
+
+--remove_file $MYSQLTEST_VARDIR/master-data/test.ba
+--remove_file $MYSQLTEST_VARDIR/master-data/test1.ba
+--remove_file $MYSQLTEST_VARDIR/master-data/test2.ba
+--remove_file $MYSQLTEST_VARDIR/master-data/test3.ba
+--remove_file $MYSQLTEST_VARDIR/master-data/test4.ba
+--remove_file $MYSQLTEST_VARDIR/master-data/test5.ba
+

=== modified file 'sql/lex.h'
--- a/sql/lex.h	2008-06-25 13:30:04 +0000
+++ b/sql/lex.h	2008-06-30 01:30:48 +0000
@@ -183,6 +183,9 @@ static SYMBOL symbols[] = {
   { "ELSEIF",           SYM(ELSEIF_SYM)},
   { "ENABLE",		SYM(ENABLE_SYM)},
   { "ENCLOSED",		SYM(ENCLOSED)},
+  { "ENCRYPTION_ALGORITHM", SYM(ENCRYPTION_ALGORITHM_SYM)},
+  { "ENCRYPTION_KEYSIZE", SYM(ENCRYPTION_KEYSIZE_SYM)},
+  { "ENCRYPTION_KEYFILE", SYM(ENCRYPTION_KEYFILE_SYM)},
   { "END",		SYM(END)},
   { "ENDS",		SYM(ENDS_SYM)},
   { "ENGINE",		SYM(ENGINE_SYM)},

=== modified file 'sql/sql_lex.h'
--- a/sql/sql_lex.h	2008-06-25 13:30:04 +0000
+++ b/sql/sql_lex.h	2008-06-30 01:30:48 +0000
@@ -1526,6 +1526,10 @@ typedef struct st_lex : public Query_tab
   LEX_STRING name;
   char *help_arg;
   LEX_STRING backup_dir;				/* For RESTORE/BACKUP */
+  LEX_STRING encryption_algorithm;
+  ulong encryption_keysize;
+  LEX_STRING encryption_keyfile;
+  LEX_STRING encryption_password;
   bool backup_compression;
   char* to_log;                                 /* For PURGE MASTER LOGS TO */
   char* x509_subject,*x509_issuer,*ssl_cipher;

=== modified file 'sql/sql_yacc.yy'
--- a/sql/sql_yacc.yy	2008-06-30 01:30:06 +0000
+++ b/sql/sql_yacc.yy	2008-06-30 01:30:48 +0000
@@ -749,6 +749,9 @@ bool my_yyoverflow(short **a, YYSTYPE **
 %token  ELSEIF_SYM
 %token  ENABLE_SYM
 %token  ENCLOSED
+%token  ENCRYPTION_ALGORITHM_SYM
+%token  ENCRYPTION_KEYSIZE_SYM
+%token  ENCRYPTION_KEYFILE_SYM
 %token  END                           /* SQL-2003-R */
 %token  ENDS_SYM
 %token  END_OF_INPUT                  /* INTERNAL */
@@ -1221,6 +1224,7 @@ bool my_yyoverflow(short **a, YYSTYPE **
         NCHAR_STRING opt_component key_cache_name
         sp_opt_label BIN_NUM label_ident TEXT_STRING_filesystem ident_or_empty
         opt_constraint constraint opt_ident
+	opt_encryption_algorithm opt_encryption_keyfile opt_encryption_password
 
 %type <lex_str_ptr>
         opt_table_alias
@@ -1247,6 +1251,7 @@ bool my_yyoverflow(short **a, YYSTYPE **
         ev_alter_on_schedule_completion opt_ev_rename_to opt_ev_sql_stmt
         opt_transactional_lock_timeout
         /* opt_lock_timeout_value */
+	opt_encryption_keysize
 
 %type <m_fk_option>
         delete_option
@@ -6309,6 +6314,10 @@ backup:
           TO_SYM
           TEXT_STRING_sys
           opt_compression
+	  opt_encryption_algorithm
+	  opt_encryption_keysize
+	  opt_encryption_keyfile
+	  opt_encryption_password
           {
             LEX *lex= Lex;
             if (lex->sphead)
@@ -6317,7 +6326,11 @@ backup:
               MYSQL_YYABORT;
             }
             lex->sql_command = SQLCOM_BACKUP;
-            lex->backup_dir = $5; 
+            lex->backup_dir = $5;
+	    lex->encryption_algorithm= $7;
+	    lex->encryption_keysize= $8;
+	    lex->encryption_keyfile= $9;
+	    lex->encryption_password= $10;
           }
         | BACKUP_TEST_SYM
           database_list
@@ -6348,6 +6361,26 @@ opt_compression_algorithm:
           }
         ;
 
+opt_encryption_algorithm:
+	/* empty */	{ $$= null_lex_str; }
+	| ENCRYPTION_ALGORITHM_SYM opt_equal IDENT_sys	{ $$= $3; }
+	;
+
+opt_encryption_keysize:
+	/* empty */	{ $$= 0; }
+	| ENCRYPTION_KEYSIZE_SYM opt_equal ulong_num	{ $$= $3; }
+	;
+
+opt_encryption_keyfile:
+	/* empty */		{ $$= null_lex_str; }
+	| ENCRYPTION_KEYFILE_SYM opt_equal TEXT_STRING_sys	{ $$= $3; }
+	;
+
+opt_encryption_password:
+	/* empty */		{ $$= null_lex_str; }
+	| PASSWORD opt_equal TEXT_STRING_sys	    { $$= $3; }
+	;
+
 database_list:
           '*'
           {

Thread
bzr commit into mysql-6.0-backup branch (stewart:2647) WL#4271Stewart Smith30 Jun