Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add the sqlite3OsFileModTime() interface. But it is still unused. The change counter in page 1 is always incremented. (CVS 1594) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
186c6f93e12978907c5f0ff81d90bdf7 |
User & Date: | drh 2004-06-15 00:29:04.000 |
Context
2004-06-15
| ||
01:40 | Do not use the page containing locks for anything to avoid problems with the manditory file locking on windows. (CVS 1595) (check-in: 5a81420277 user: drh tags: trunk) | |
00:29 | Add the sqlite3OsFileModTime() interface. But it is still unused. The change counter in page 1 is always incremented. (CVS 1594) (check-in: 186c6f93e1 user: drh tags: trunk) | |
2004-06-14
| ||
23:46 | Update some old tests to use the new API. (CVS 1593) (check-in: af6edd2c0a user: danielk1977 tags: trunk) | |
Changes
Changes to src/os.h.
︙ | ︙ | |||
156 157 158 159 160 161 162 163 164 165 166 167 168 169 | int sqlite3OsSeek(OsFile*, off_t offset); int sqlite3OsSync(OsFile*); int sqlite3OsTruncate(OsFile*, off_t size); int sqlite3OsFileSize(OsFile*, off_t *pSize); int sqlite3OsRandomSeed(char*); int sqlite3OsSleep(int ms); int sqlite3OsCurrentTime(double*); void sqlite3OsEnterMutex(void); void sqlite3OsLeaveMutex(void); char *sqlite3OsFullPathname(const char*); int sqlite3OsLock(OsFile*, int); int sqlite3OsUnlock(OsFile*, int); int sqlite3OsCheckReservedLock(OsFile *id); | > | 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | int sqlite3OsSeek(OsFile*, off_t offset); int sqlite3OsSync(OsFile*); int sqlite3OsTruncate(OsFile*, off_t size); int sqlite3OsFileSize(OsFile*, off_t *pSize); int sqlite3OsRandomSeed(char*); int sqlite3OsSleep(int ms); int sqlite3OsCurrentTime(double*); int sqlite3OsFileModTime(OsFile*, double*); void sqlite3OsEnterMutex(void); void sqlite3OsLeaveMutex(void); char *sqlite3OsFullPathname(const char*); int sqlite3OsLock(OsFile*, int); int sqlite3OsUnlock(OsFile*, int); int sqlite3OsCheckReservedLock(OsFile *id); |
︙ | ︙ |
Changes to src/os_unix.c.
︙ | ︙ | |||
1037 1038 1039 1040 1041 1042 1043 1044 1045 | #ifdef SQLITE_TEST if( sqlite3_current_time ){ *prNow = sqlite3_current_time/86400.0 + 2440587.5; } #endif return 0; } #endif /* OS_UNIX */ | > > > > > > > > > > > > > > > > > > | 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 | #ifdef SQLITE_TEST if( sqlite3_current_time ){ *prNow = sqlite3_current_time/86400.0 + 2440587.5; } #endif return 0; } /* ** Find the time that the file was last modified. Write the ** modification time and date as a Julian Day number into *prNow and ** return SQLITE_OK. Return SQLITE_ERROR if the modification ** time cannot be found. */ int sqlite3OsFileModTime(OsFile *id, double *prNow){ int rc; struct stat statbuf; if( fstat(id->h, &statbuf)==0 ){ *prNow = statbuf.st_mtime/86400.0 + 2440587.5; rc = SQLITE_OK; }else{ rc = SQLITE_ERROR; } return rc; } #endif /* OS_UNIX */ |
Changes to src/os_win.c.
︙ | ︙ | |||
678 679 680 681 682 683 684 685 686 | #ifdef SQLITE_TEST if( sqlite3_current_time ){ *prNow = sqlite3_current_time/86400.0 + 2440587.5; } #endif return 0; } #endif /* OS_WIN */ | > > > > > > > > > > > > > > > > > > > > > > > | 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 | #ifdef SQLITE_TEST if( sqlite3_current_time ){ *prNow = sqlite3_current_time/86400.0 + 2440587.5; } #endif return 0; } /* ** Find the time that the file was last modified. Write the ** modification time and date as a Julian Day number into *prNow and ** return SQLITE_OK. Return SQLITE_ERROR if the modification ** time cannot be found. */ int sqlite3OsFileModTime(OsFile *id, double *prMTime){ int rc; FILETIME ft; /* FILETIME structure is a 64-bit value representing the number of ** 100-nanosecond intervals since January 1, 1601 (= JD 2305813.5). */ if( GetFileTime(id->h, 0, 0, &ft) ){ double t; t = ((double)ft.dwHighDateTime) * 4294967296.0; *prMTime = (t + ft.dwLowDateTime)/864000000000.0 + 2305813.5; rc = SQLITE_OK; }else{ rc = SQLITE_ERROR; } return rc; } #endif /* OS_WIN */ |