| Bug #40092 | Storage Engine API uses time_t datatype | ||
|---|---|---|---|
| Submitted: | 17 Oct 2008 0:20 | Modified: | 14 Jul 18:04 |
| Reporter: | Vladislav Vaintroub | ||
| Status: | Closed | ||
| Category: | Server: SE API | Severity: | S3 (Non-critical) |
| Version: | 5.1 | OS: | Any |
| Assigned to: | Narayanan venkateswaran | Target Version: | 6.0-beta |
| Triage: | Triaged: D2 (Serious) | ||
[17 Oct 2008 0:20]
Vladislav Vaintroub
[23 Oct 2008 14:40]
Stewart Smith
I'd raise the point that this is designed to be struct stat type data (if not just a cache of fstat data). For engines that store table in file (e.g. myisam), it just copies the stat info across. So we should either be consistent with struct stat on the platform (so the copy is simple), remove these from the handler interface (which I'm not convinced is a bad idea) or have our own arbitrary time type (not a good idea). So i'm not convinced this really is a bug.... if your OS isn't going to deal with 2039, then neither is the mysqld :)
[11 Nov 2008 1:20]
Vladislav Vaintroub
Stewart, struct stat != struct stat on some platforms;) Here is a full zoo if stat http://msdn.microsoft.com/en-us/library/14h5k7ff.aspx, depending on whether ot not they can handle 64 bit file sizes and return time in 32 or 64 bit.It produces strange creatures stat32i64 or stat64i32. But the point was really that: suppose pluggable storage engine exists on Windows it is external API. People start writing DLL that is dynamically loaded into server, as they can do today on Unix. Suppose further, somebody uses Visual Studio 2003 and somebody will use VS2005. The definition of time_t differs in those 2 compilers (one has 32 bit and another 64 bit). Dependent on how server was compiled, one guy will loose and his storage engine will crash. It might be different on unixes, and time_t is always the same as size_t and struct stat is absolutely portable. On Windows, it is a matter of compiler and its flags.
[6 Dec 2008 8:16]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/60804 2729 V Narayanan 2008-12-06 Bug#40092 Storage Engine API uses time_t datatype Change the usage of time_t in the Storage engine API to datatypes with known size.
[9 Jan 13:00]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/62806 2728 V Narayanan 2009-01-09 Bug#40092 Storage Engine API uses time_t datatype Change the usage of time_t in the Storage engine API to datatypes with known size.
[13 Jan 10:52]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/63081 2962 V Narayanan 2009-01-13 Bug#40092 Storage Engine API uses time_t datatype Change the usage of time_t in the Storage engine API to datatypes with known size.
[20 Jan 19:53]
Bugs System
Pushed into 6.0.10-alpha (revid:joro@sun.com-20090119171328-2hemf2ndc1dxl0et) (version source revid:timothy.smith@sun.com-20090114143745-x2dvnmix6gjlt6z6) (merge vers: 6.0.10-alpha) (pib:6)
[30 Apr 14:36]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/73143 2880 Narayanan V 2009-04-30 Bug#39802 On Windows, 32-bit time_t should be enforced Bug#40092 Storage engine API uses time_t datatype Change the usage of time_t in the storage engine API to datatypes with known size @ sql/handler.h Bug#39802 On Windows, 32-bit time_t should be enforced Bug#40092 Storage engine API uses time_t datatype Changed create_time, check_time, update_time in the ha_statistics and PARTITION_INFO structures to ulong.
[30 Apr 14:58]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/73148 2880 Narayanan V 2009-04-30 Bug#40092 Storage engine API uses time_t datatype Change the usage of time_t in the storage engine API to datatypes with known size. @ sql/handler.h Bug#40092 Storage engine API uses time_t datatype Changed create_time, check_time, update_time in the ha_statistics and PARTITION_INFO structures to ulong.
[30 Apr 15:06]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/73151 2880 Narayanan V 2009-04-30 Bug#39802 On Windows, 32-bit time_t should be enforced Bug#40092 Storage engine API uses time_t datatype Change the usage of time_t in the storage engine API to datatypes with known size @ sql/handler.h Bug#39802 On Windows, 32-bit time_t should be enforced Bug#40092 Storage engine API uses time_t datatype Change create_time, check_time, update_time in the ha_statistics and PARTITION_INFO structures to ulong.
[4 May 10:59]
Narayanan venkateswaran
Please disregard commits made on Apr 30th
[14 Jul 15:23]
MC Brown
Internal change only. No changelog entry required.
[14 Jul 16:24]
Sergei Golubchik
no, this isn't "internal". Suggested changelog entry: "Storage engine plugins on windows could've been built with a definition of time_t which was different from the server expectations. It would cause affected plugins to crash."
[14 Jul 18:04]
MC Brown
A note has been added to the 6.0.10 changelog: Storage engine plugins on Windows could've been built with a definition of time_t which was different from the server expectations. The difference could cause affected plugins to crash. In addition, the use of the time_t type in the storage engine API layer has been enforced.
