mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-05 15:55:57 +03:00
Omit unused batch-atomic-write code if SQLITE_ENABLE_BATCH_ATOMIC_WRITE is
not defined. FossilOrigin-Name: a89b62c4966cd297326e8712da40e0962d2328d7ba1f201d5abcec911eeef347
This commit is contained in:
16
manifest
16
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Use\sioctl(F2FS_IOC_GET_FEATURES)\sto\sdetermine\swhether\sor\snot\satomic\sbatch\nwrites\sare\savailable.
|
C Omit\sunused\sbatch-atomic-write\scode\sif\sSQLITE_ENABLE_BATCH_ATOMIC_WRITE\sis\nnot\sdefined.
|
||||||
D 2017-07-21T21:06:24.650
|
D 2017-07-22T16:00:34.947
|
||||||
F Makefile.in d9873c9925917cca9990ee24be17eb9613a668012c85a343aef7e5536ae266e8
|
F Makefile.in d9873c9925917cca9990ee24be17eb9613a668012c85a343aef7e5536ae266e8
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc 02b469e9dcd5b7ee63fc1fb05babc174260ee4cfa4e0ef2e48c3c6801567a016
|
F Makefile.msc 02b469e9dcd5b7ee63fc1fb05babc174260ee4cfa4e0ef2e48c3c6801567a016
|
||||||
@@ -436,10 +436,10 @@ F src/os.c add02933b1dce7a39a005b00a2f5364b763e9a24
|
|||||||
F src/os.h 8e976e59eb4ca1c0fca6d35ee803e38951cb0343
|
F src/os.h 8e976e59eb4ca1c0fca6d35ee803e38951cb0343
|
||||||
F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
|
F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
|
||||||
F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
|
F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
|
||||||
F src/os_unix.c 7feae9cad46b5e43a87bf15133dd463b72ed7b8ad913833981582d8cd3f3802f
|
F src/os_unix.c 9e7300ba4564bf1b95ef6f4ea5635a55d5b609fb8ec621183e7aadd48930ae45
|
||||||
F src/os_win.c 2a6c73eef01c51a048cc4ddccd57f981afbec18a
|
F src/os_win.c 2a6c73eef01c51a048cc4ddccd57f981afbec18a
|
||||||
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
|
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
|
||||||
F src/pager.c a42704980ed4ce38ed75981acf12a4d34bea2419306c7ffe26940869c458df48
|
F src/pager.c 5e5e39f192e714ff1c07ea5b892da91db0cd824b58c4d1c389d141c3d82a8671
|
||||||
F src/pager.h f2a99646c5533ffe11afa43e9e0bea74054e4efa
|
F src/pager.h f2a99646c5533ffe11afa43e9e0bea74054e4efa
|
||||||
F src/parse.y e384cb73f99e1b074085c974b37f4d830e885359e4b60837e30f7d67c16ba65b
|
F src/parse.y e384cb73f99e1b074085c974b37f4d830e885359e4b60837e30f7d67c16ba65b
|
||||||
F src/pcache.c 62835bed959e2914edd26afadfecce29ece0e870
|
F src/pcache.c 62835bed959e2914edd26afadfecce29ece0e870
|
||||||
@@ -1637,7 +1637,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 65ec077ba63ab84ab8da91033adcf4a57bb9269ebcdd10f9e6c97c265512a80c
|
P 532bbf1f2b1028db4e581c756533aa660e482d833caaed4eafb299ef9b584f3a
|
||||||
R 327ce51aa62d96bf2e9523d47812fe94
|
R f8cc85762105a69ca21fc4aefd58063e
|
||||||
U dan
|
U drh
|
||||||
Z 311d111b16e6fbf70dad068ea69fda6d
|
Z 90f565a84bb7c55ed3503f958b4951cd
|
||||||
|
@@ -1 +1 @@
|
|||||||
532bbf1f2b1028db4e581c756533aa660e482d833caaed4eafb299ef9b584f3a
|
a89b62c4966cd297326e8712da40e0962d2328d7ba1f201d5abcec911eeef347
|
@@ -327,14 +327,18 @@ static pid_t randomnessPid = 0;
|
|||||||
# define lseek lseek64
|
# define lseek lseek64
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __linux__
|
||||||
|
/*
|
||||||
|
** Linux-specific IOCTL magic numbers used for controlling F2FS
|
||||||
|
*/
|
||||||
#define F2FS_IOCTL_MAGIC 0xf5
|
#define F2FS_IOCTL_MAGIC 0xf5
|
||||||
#define F2FS_IOC_START_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 1)
|
#define F2FS_IOC_START_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 1)
|
||||||
#define F2FS_IOC_COMMIT_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 2)
|
#define F2FS_IOC_COMMIT_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 2)
|
||||||
#define F2FS_IOC_START_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 3)
|
#define F2FS_IOC_START_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 3)
|
||||||
#define F2FS_IOC_ABORT_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 5)
|
#define F2FS_IOC_ABORT_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 5)
|
||||||
#define F2FS_IOC_GET_FEATURES _IOR(F2FS_IOCTL_MAGIC, 12, u32)
|
#define F2FS_IOC_GET_FEATURES _IOR(F2FS_IOCTL_MAGIC, 12, u32)
|
||||||
|
|
||||||
#define F2FS_FEATURE_ATOMIC_WRITE 0x0004
|
#define F2FS_FEATURE_ATOMIC_WRITE 0x0004
|
||||||
|
#endif /* __linux__ */
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -3789,6 +3793,7 @@ static int unixGetTempname(int nBuf, char *zBuf);
|
|||||||
static int unixFileControl(sqlite3_file *id, int op, void *pArg){
|
static int unixFileControl(sqlite3_file *id, int op, void *pArg){
|
||||||
unixFile *pFile = (unixFile*)id;
|
unixFile *pFile = (unixFile*)id;
|
||||||
switch( op ){
|
switch( op ){
|
||||||
|
#if defined(__linux__) && defined(SQLITE_ENABLE_BATCH_ATOMIC_WRITE)
|
||||||
case SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: {
|
case SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: {
|
||||||
int rc = osIoctl(pFile->h, F2FS_IOC_START_ATOMIC_WRITE);
|
int rc = osIoctl(pFile->h, F2FS_IOC_START_ATOMIC_WRITE);
|
||||||
return rc ? SQLITE_ERROR : SQLITE_OK;
|
return rc ? SQLITE_ERROR : SQLITE_OK;
|
||||||
@@ -3801,6 +3806,7 @@ static int unixFileControl(sqlite3_file *id, int op, void *pArg){
|
|||||||
int rc = osIoctl(pFile->h, F2FS_IOC_ABORT_VOLATILE_WRITE);
|
int rc = osIoctl(pFile->h, F2FS_IOC_ABORT_VOLATILE_WRITE);
|
||||||
return rc ? SQLITE_ERROR : SQLITE_OK;
|
return rc ? SQLITE_ERROR : SQLITE_OK;
|
||||||
}
|
}
|
||||||
|
#endif /* __linux__ && SQLITE_ENABLE_BATCH_ATOMIC_WRITE */
|
||||||
|
|
||||||
case SQLITE_FCNTL_LOCKSTATE: {
|
case SQLITE_FCNTL_LOCKSTATE: {
|
||||||
*(int*)pArg = pFile->eFileLock;
|
*(int*)pArg = pFile->eFileLock;
|
||||||
@@ -3895,10 +3901,11 @@ static int unixFileControl(sqlite3_file *id, int op, void *pArg){
|
|||||||
*/
|
*/
|
||||||
#ifndef __QNXNTO__
|
#ifndef __QNXNTO__
|
||||||
static void setDeviceCharacteristics(unixFile *pFd){
|
static void setDeviceCharacteristics(unixFile *pFd){
|
||||||
|
assert( pFd->deviceCharacteristics==0 || pFd->sectorSize!=0 );
|
||||||
if( pFd->sectorSize==0 ){
|
if( pFd->sectorSize==0 ){
|
||||||
|
#if defined(__linux__) && defined(SQLITE_ENABLE_BATCH_ATOMIC_WRITE)
|
||||||
int res;
|
int res;
|
||||||
u32 f = 0;
|
u32 f = 0;
|
||||||
assert( pFd->deviceCharacteristics==0 );
|
|
||||||
|
|
||||||
/* Check for support for F2FS atomic batch writes. */
|
/* Check for support for F2FS atomic batch writes. */
|
||||||
res = osIoctl(pFd->h, F2FS_IOC_GET_FEATURES, &f);
|
res = osIoctl(pFd->h, F2FS_IOC_GET_FEATURES, &f);
|
||||||
@@ -3909,6 +3916,7 @@ static void setDeviceCharacteristics(unixFile *pFd){
|
|||||||
SQLITE_IOCAP_SEQUENTIAL |
|
SQLITE_IOCAP_SEQUENTIAL |
|
||||||
SQLITE_IOCAP_SAFE_APPEND;
|
SQLITE_IOCAP_SAFE_APPEND;
|
||||||
}
|
}
|
||||||
|
#endif /* __linux__ && SQLITE_ENABLE_BATCH_ATOMIC_WRITE */
|
||||||
|
|
||||||
/* Set the POWERSAFE_OVERWRITE flag if requested. */
|
/* Set the POWERSAFE_OVERWRITE flag if requested. */
|
||||||
if( pFd->ctrlFlags & UNIXFILE_PSOW ){
|
if( pFd->ctrlFlags & UNIXFILE_PSOW ){
|
||||||
|
@@ -6399,7 +6399,7 @@ int sqlite3PagerCommitPhaseOne(
|
|||||||
&& pPager->journalMode!=PAGER_JOURNALMODE_MEMORY
|
&& pPager->journalMode!=PAGER_JOURNALMODE_MEMORY
|
||||||
&& sqlite3JournalIsInMemory(pPager->jfd);
|
&& sqlite3JournalIsInMemory(pPager->jfd);
|
||||||
#else
|
#else
|
||||||
const int bBatch = 0;
|
# define bBatch 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SQLITE_ENABLE_ATOMIC_WRITE
|
#ifdef SQLITE_ENABLE_ATOMIC_WRITE
|
||||||
|
Reference in New Issue
Block a user