Bug #59744 tx_isolation vs transaction-isolation documentation

Submitted: 26 Jan 2011 15:26 Modified: 26 Jan 2011 15:47
Reporter: Leandro Morgado Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:all versions OS:Any
Assigned to: Jon Stephens CPU Architecture:Any

[26 Jan 2011 15:26] Leandro Morgado
Description:
To set the transaction isolation level we have two options:

1) At boot time we can pass the --transaction-isolation option to mysqld or place it in my.cnf:

[mysqld]
...
transaction-isolation = READ-UNCOMMITTED

2) In runtime we can set the tx_isolation system variable:

mysql> SET tx_isolation = 'READ-COMMITTED';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @@GLOBAL.tx_isolation, @@tx_isolation;
+-----------------------+----------------+
| @@GLOBAL.tx_isolation | @@tx_isolation |
+-----------------------+----------------+
| READ-UNCOMMITTED      | READ-COMMITTED |
+-----------------------+----------------+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE "%isolation";
+---------------+----------------+
| Variable_name | Value          |
+---------------+----------------+
| tx_isolation  | READ-COMMITTED |
+---------------+----------------+
1 row in set (0.00 sec)

NOTE: One would expect the variable names to be the same so that either of the following commands would work:

1)[mysqld]
...
tx_isolation = READ-UNCOMMITTED

2)mysql> SET transaction-isolation = 'READ-COMMITTED';

Why are the variable names different when the most common case in mysqld is to have the same name for options and system vars (whenever possible).

How to repeat:
Try to set isolation levels with either of:

1)[mysqld]
...
tx_isolation = READ-UNCOMMITTED

2) mysql> SET transaction-isolation = 'READ-COMMITTED';

Suggested fix:
Perhaps the variable/options names can be made consistent, perhaps not.  In any case, users should be alerted to this "gotcha" in the docs for:

http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_tx_isolation

Adding a simple warning like the following can prevent confusion:

"To set the isolation level in the my.cnf options file or pass it at runtime to mysqld, please use transaction-isolation (URL link to http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_transaction-isola..."
[26 Jan 2011 15:47] Jon Stephens
Thank you for your bug report. This issue has been addressed in the documentation. The updated documentation will appear on our website shortly, and will be included in the next release of the relevant products.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.039 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.