[MDEV-5286] 64-bit server with 32-bit limits on variables Created: 2013-11-13 Updated: 2013-11-17 Resolved: 2013-11-17 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 10.0.5, 5.5.33a |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Will Fong | Assignee: | Ian Gilfillan |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
CentOS 6 64-bit |
||
| Description |
|
Looks like some variables have a maximum value of an unsigned 32bit integer, but the docs say they should be 64 bit. https://mariadb.com/kb/en/server-system-variables/#delayed_insert_limit In question: delayed_insert_limit Example:
|
| Comments |
| Comment by Sergei Golubchik [ 2013-11-13 ] |
|
Ian, could you please update the manual to match the code? Variables are defined in the sys_vars.cc file and you can easily see from there what is the valid range of values for every variable. Note, that UINT_MAX is 4294967295 |
| Comment by Ian Gilfillan [ 2013-11-14 ] |
|
Thanks, I see this. Why is the limit ULONG_MAX on MySQL, and UINT_MAX on MariaDB? |
| Comment by Sergei Golubchik [ 2013-11-14 ] |
|
Win64 portability. Win64 is 64 bit, but ulong is 32-bit, and ULONG_MAX is 4294967295. So some variables are truly 32-bit, others are truly 64-bit. And some (ulong) variables are 32-bit on 32-bit platforms and Win64 and 64-bit on 64-bit platforms excluding Win64. This was proven to be problematic in certain cases. We've basically removed all ULONG_MAX from system variable limits, so all ulong variables have now fixed architecture-independent limits. |