Bug #1948 | system variable query_prealloc_size can be only global | ||
---|---|---|---|
Submitted: | 25 Nov 2003 7:32 | Modified: | 3 Feb 2004 4:04 |
Reporter: | Konstantin Osipov (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S3 (Non-critical) |
Version: | 4.0 | OS: | |
Assigned to: | Konstantin Osipov | CPU Architecture: | Any |
[25 Nov 2003 7:32]
Konstantin Osipov
[25 Nov 2003 7:34]
Konstantin Osipov
Current description for query_prealloc_size can be found here: http://www.mysql.com/doc/en/SHOW_VARIABLES.html
[25 Nov 2003 7:39]
Konstantin Osipov
The same is true for 'query_alloc_block_size'.
[10 Dec 2003 15:37]
Paul DuBois
I'm confused by this bug report. There are two issues. 1) Konstantin says: ---- How to repeat: SET query_prealloc_size=anyvalue and watch that real allocation does not take place. Suggested fix: Either remove query_prealloc_size from list of session variables, or do really perform prealloc when this variable is set. Also add full description of the variable to the docs. ---- But I find that if I set query_prealloc_size to some value, and then do SHOW VARIABLES, the value *has* been set. It may be that it is not *used*, but that is a different question. What is meant here? 2) If these variables really are global only (which is apparently the intent), then there is a server bug that cannot be addressed solely as a doc issue. If they are global only, then attempting to set them without explicitly specifying GLOBAL should result in an error. That is, they should be treated the same way a variable like key_buffer_size (also a global-only variable) is treated: mysql> SET key_buffer_size = 100000; ERROR 1229: Variable 'key_buffer_size' is a GLOBAL variable and should be set with SET GLOBAL Please confirm whether or not I am correct and advise me how to proceed. Thanks.
[15 Dec 2003 13:16]
Paul DuBois
Konstantin and I had a chat about this issue. The result is that we believe the behavior should be as follows: paul: - query_prealloc_size exists as a global variable, and can be changed with SET GLOBAL query_prealloc_size = value. paul: - Changes that are made that way affect only new connections. paul: - When a client connects, it has a session query_prealloc_size value that is initialized from the current global value. paul: - The session value is read-only; the client cannot change it. I will reassign this report to Konstantin. After he makes the changes, he'll reassign to me as a docs issue.
[3 Feb 2004 4:04]
Konstantin Osipov
Fixed in 4.0.18 (bk commit - 4.0 tree (konstantin:1.1695)