Version Tokens •Take a shared lock for each token named in the client token list (that is, in the version_tokens_session  value) •Perform the comparison between the server and client token lists •Execute the statement or produce an error depending on the comparison result •Release the locks • version_tokens_set()  completely replaces the current list and assigns a new list. The argument is a semicolon-separated list of  name = value  pairs. • version_tokens_edit()  enables partial modifications to the current list. It can add new tokens or change the values of existing tokens. The argument is a semicolon-separated list of  name = value  pairs. • version_tokens_delete()  deletes tokens from the current list. The argument is a semicolon- separated list of token names. • version_tokens_show()  displays the current token list. It takes no argument. Each of those functions, if successful, returns a binary string indicating what action occurred. The following example establishes the server token list, modifies it by adding a new token, deletes some tokens, and displays the resulting token list: Warnings occur if a token list is malformed: The server uses shared locks so that comparisons for multiple sessions can occur without blocking, while preventing changes to the tokens for any session that attempts to acquire an exclusive lock before it manipulates tokens of the same names in the server token list. The preceding example uses only a few of the functions included in the Version Tokens plugin library, but there are others. One set of functions permits the server’s list of version tokens to be manipulated and inspected. Another set of functions permits version tokens to be locked and unlocked. These functions permit the server’s list of version tokens to be created, changed, removed, and inspected: mysql>  SELECT version_tokens_set(’tok1=a;tok2=b’); +-------------------------------------+ | version_tokens_set(’tok1=a;tok2=b’) | +-------------------------------------+ | 2 version tokens set. | +-------------------------------------+ mysql>  SELECT version_tokens_edit(’tok3=c’); +-------------------------------+ | version_tokens_edit(’tok3=c’) | +-------------------------------+ | 1 version tokens updated. | +-------------------------------+ mysql>  SELECT version_tokens_delete(’tok2;tok1’); +------------------------------------+ | version_tokens_delete(’tok2;tok1’) | +------------------------------------+ | 2 version tokens deleted. | +------------------------------------+ mysql>  SELECT version_tokens_show(); +-----------------------+ | version_tokens_show() | +-----------------------+ | tok3=c; | +-----------------------+ mysql>  SELECT version_tokens_set(’tok1=a; =c’); 1103