[MDEV-69] LP:912552 - SET optimizer_switch = REPLACE(...) causes ER_WRONG_VALUE_FOR_VAR Created: 2012-01-05 Updated: 2012-01-17 Resolved: 2012-01-17 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 5.5.20 |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
The following statement SET optimizer_switch = REPLACE( @@optimizer_switch, '=off', '=on' ) as well as many other similar constructions, fails with ER_WRONG_VALUE_FOR_VAR: 1231: Variable 'optimizer_switch' can't be set to the value of 'table_elimination=on'. In 5.2 and 5.3 it works all right. It does not seem to be about the value, since this way it works: SET @a = REPLACE( @@optimizer_switch, '=off', '=on' ); But not this way SET @b = @@optimizer_switch; It also does not seem to be about the result of REPLACE being too long, since this one works: SET optimizer_switch = REPLACE( @@optimizer_switch, '=on', '=off' ) REPLACE statements are a convenient way to set optimizer_switch to a needed value in tests, and keep it version-independent; otherwise, it's not an important problem in itself, but it might signify an underlying issue, either with the REPLACE function, or with the optimizer_switch, so I find it worrisome. Test case:
|
| Comments |
| Comment by Elena Stepanova [ 2012-01-05 ] |
|
Sergei, I'm not sure who it should be assigned to, since you are distributing 5.5 tasks, please pass it to whoever you think is appropriate. |
| Comment by Elena Stepanova [ 2012-01-06 ] |
|
bzr version-info |
| Comment by Elena Stepanova [ 2012-01-06 ] |
|
This bug has also been filed in LP as https://bugs.launchpad.net/maria/+bug/912552 |