Current Path : /home/usr.opt/mysql57/mysql-test/r/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //home/usr.opt/mysql57/mysql-test/r/version_token.result |
# # Bug #23210850: VERSION_TOKEN better protected # # Define a UDF before installing the plugin create function version_tokens_show returns string soname 'version_token.so'; SELECT version_tokens_show(); ERROR HY000: Can't initialize function 'version_tokens_show'; version_token plugin is not installed. # Testing installing the plugin twice while there's a UDF defined INSTALL PLUGIN version_tokens SONAME 'version_token.so'; UNINSTALL PLUGIN version_tokens; Warnings: Warning 1620 Plugin is busy and will be uninstalled on shutdown INSTALL PLUGIN version_tokens SONAME 'version_token.so'; UNINSTALL PLUGIN version_tokens; Warnings: Warning 1620 Plugin is busy and will be uninstalled on shutdown # Should not crash when unloading the so through removing the UDF drop function version_tokens_show; INSTALL PLUGIN version_tokens SONAME 'version_token.so'; create function version_tokens_set returns string soname 'version_token.so'; create function version_tokens_show returns string soname 'version_token.so'; create function version_tokens_edit returns string soname 'version_token.so'; create function version_tokens_delete returns string soname 'version_token.so'; create function version_tokens_lock_shared returns int soname 'version_token.so'; create function version_tokens_lock_exclusive returns int soname 'version_token.so'; create function version_tokens_unlock returns int soname 'version_token.so'; # Error checks for UDFs select version_tokens_set("token1 = abc;token2= def",123); ERROR HY000: Can't initialize function 'version_tokens_set'; Wrong arguments provided for the function. select version_tokens_edit("token1= 123; token3 = asdf",123); ERROR HY000: Can't initialize function 'version_tokens_edit'; Wrong arguments provided for the function. select version_tokens_delete("token1;token3",123); ERROR HY000: Can't initialize function 'version_tokens_delete'; Wrong arguments provided for the function. select version_tokens_show("123"); ERROR HY000: Can't initialize function 'version_tokens_show'; This function does not take any arguments. select version_tokens_set(123); ERROR HY000: Can't initialize function 'version_tokens_set'; Wrong arguments provided for the function. select version_tokens_edit(123); ERROR HY000: Can't initialize function 'version_tokens_edit'; Wrong arguments provided for the function. select version_tokens_delete(123); ERROR HY000: Can't initialize function 'version_tokens_delete'; Wrong arguments provided for the function. select version_tokens_lock_shared("Less arguments"); ERROR HY000: Can't initialize function 'version_tokens_lock_shared'; Requires at least two arguments: (lock(...),timeout). select version_tokens_lock_shared(1,"Wrong argument type"); ERROR HY000: Can't initialize function 'version_tokens_lock_shared'; Wrong argument type - expected integer. select version_tokens_lock_exclusive("Less arguments"); ERROR HY000: Can't initialize function 'version_tokens_lock_exclusive'; Requires at least two arguments: (lock(...),timeout). select version_tokens_lock_exclusive(1,"Wrong argument type"); ERROR HY000: Can't initialize function 'version_tokens_lock_exclusive'; Wrong argument type - expected integer. select version_tokens_unlock("Takes no arguments"); ERROR HY000: Can't initialize function 'version_tokens_unlock'; Requires no arguments. select version_tokens_lock_shared("gizmo", -1); ERROR 22003: timeout value is out of range in 'version_tokens_lock_shared' select version_tokens_lock_exclusive("gizmo", -1); ERROR 22003: timeout value is out of range in 'version_tokens_lock_exclusive' CREATE USER vbhagi@localhost; select version_tokens_set("token1 = abc;token2= def"); version_tokens_set("token1 = abc;token2= def") 2 version tokens set. select version_tokens_show(); version_tokens_show() token1=abc;token2=def; select version_tokens_set(""); version_tokens_set("") Version tokens list cleared. select version_tokens_show(); version_tokens_show() NULL select version_tokens_set("token1 = abc;token2= def"); version_tokens_set("token1 = abc;token2= def") 2 version tokens set. select version_tokens_show(); version_tokens_show() token1=abc;token2=def; select version_tokens_edit("token1= 123; token3 = asdf"); version_tokens_edit("token1= 123; token3 = asdf") 2 version tokens updated. select version_tokens_show(); version_tokens_show() token2=def;token3=asdf;token1=123; do version_tokens_set("token1 = def;;;; ;invalid_token; token2= abc;;"); Warnings: Warning 42000 Invalid version token pair encountered. The list provided is only partially updated. select version_tokens_show(); version_tokens_show() token1=def; do version_tokens_set("token1 = def;; token111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111=123;; ;invalid_token; token2= abc;;"); Warnings: Warning 42000 Lengthy version token name encountered. Maximum length allowed for a token name is 64 characters. The list provided is only partially updated. select version_tokens_show(); version_tokens_show() token1=def; do version_tokens_set("token1 = none;;;; ;invalid_token; token2= 123;;"); Warnings: Warning 42000 Invalid version token pair encountered. The list provided is only partially updated. select version_tokens_show(); version_tokens_show() token1=none; do version_tokens_set("token1=def;token2= abc; ;token3=ghi"); select version_tokens_show(); version_tokens_show() token1=def;token3=ghi;token2=abc; select version_tokens_delete("invalid=token"); version_tokens_delete("invalid=token") 0 version tokens deleted. select version_tokens_show(); version_tokens_show() token1=def;token3=ghi;token2=abc; select version_tokens_delete("token1;token3"); version_tokens_delete("token1;token3") 2 version tokens deleted. select version_tokens_show(); version_tokens_show() token2=abc; select version_tokens_delete("*"); version_tokens_delete("*") 0 version tokens deleted. select version_tokens_show(); version_tokens_show() token2=abc; do version_tokens_set("token1=def;token2= abc;token3=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112"); select version_tokens_show(); version_tokens_show() token1=def;token3=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112;token2=abc; # Connection: con1 # The UDFs fail due to lack of privileges. select version_tokens_set("token1 = abc;token2= def"); ERROR HY000: Can't initialize function 'version_tokens_set'; The user is not privileged to use this function. select version_tokens_edit("token1= 123; token3 = asdf"); ERROR HY000: Can't initialize function 'version_tokens_edit'; The user is not privileged to use this function. select version_tokens_delete("token1;token3"); ERROR HY000: Can't initialize function 'version_tokens_delete'; The user is not privileged to use this function. select version_tokens_show(); ERROR HY000: Can't initialize function 'version_tokens_show'; The user is not privileged to use this function. set @@version_tokens_session= "token1=def"; select 1; 1 1 select 1; 1 1 set @@version_tokens_session= "token3=abc"; select 1; ERROR 42000: Version token mismatch for token3. Correct value 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112 # Connection: con1 refreshed # Next statement goes through as the connection is refreshed. select @@version_tokens_session; @@version_tokens_session NULL set @@version_tokens_session= "token111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111=abc;;"; set @@old_passwords= 0; ERROR 42000: Lengthy version token name encountered. Maximum length allowed for a token name is 64 characters. # Connection: con1 refreshed # Next statement goes through as the connection is refreshed. select @@version_tokens_session; @@version_tokens_session NULL set @@version_tokens_session= ";;"; set @@version_tokens_session= NULL; set @@version_tokens_session= "token1=def;;;;;;;;"; set @@version_tokens_session= "token1=def;;; token2 = abc ; = ;;;;"; # Connection: con1 refreshed set @@version_tokens_session= "token1=def;;; token2 = abc ; sdf = ;;;;"; set @@old_passwords= 0; ERROR 42000: Empty version token name/value encountered # Connection: con1 refreshed set @@version_tokens_session= "token1=def;; ; token2 = abc ;;;;;"; # Next queries get through as the session tokens are valid use test; create table t1 (c1 int); drop table t1; set @@version_tokens_session= "token1=def;;; token2 = abc ; = sdf ;;;;"; # This query fails as " = sdf" is not a valid token. create table t1 (c1 int); ERROR 42000: Empty version token name/value encountered # Connection: con1 refreshed set @@version_tokens_session= "token100=def;;; token2 = abc ;;;;;"; create table t1 (c1 int); ERROR 42000: Version token token100 not found. # Connection: default # Next statement goes through as it is from a different connection. select 1; 1 1 # Tests related to locking # Connection: vtcon1 SELECT version_tokens_set("a=aa;b=bb;c=cc"); version_tokens_set("a=aa;b=bb;c=cc") 3 version tokens set. set @@version_tokens_session= "a=aa"; SELECT sleep(6); # sleep for 6 seconds in background.; # Connection: vtcon2 SELECT version_tokens_lock_exclusive("b",20); version_tokens_lock_exclusive("b",20) 1 # Connection: vtcon3 SELECT version_tokens_lock_exclusive("a",20); version_tokens_lock_exclusive("a",20) 1 SELECT version_tokens_unlock(); version_tokens_unlock() 1 # Connection: vtcon1 sleep(6) 0 UNINSTALL PLUGIN version_tokens; Warnings: Warning 1620 Plugin is busy and will be uninstalled on shutdown # The UDFs fail as the plugin is uninstalled. select version_tokens_set("token1 = abc;token2= def"); ERROR HY000: Can't initialize function 'version_tokens_set'; version_token plugin is not installed. select version_tokens_edit("token1= 123; token3 = asdf"); ERROR HY000: Can't initialize function 'version_tokens_edit'; version_token plugin is not installed. select version_tokens_delete("token1;token3"); ERROR HY000: Can't initialize function 'version_tokens_delete'; version_token plugin is not installed. select version_tokens_show(); ERROR HY000: Can't initialize function 'version_tokens_show'; version_token plugin is not installed. drop function version_tokens_set; drop function version_tokens_show; drop function version_tokens_edit; drop function version_tokens_delete; drop function version_tokens_lock_shared; drop function version_tokens_lock_exclusive; drop function version_tokens_unlock; drop user vbhagi@localhost;