| Index: third_party/sqlite/patches/0004-Exclude-journal-file-from-Time-Machine-if-database-i.patch
|
| diff --git a/third_party/sqlite/patches/0005-Exclude-journal-file-from-Time-Machine-if-database-i.patch b/third_party/sqlite/patches/0004-Exclude-journal-file-from-Time-Machine-if-database-i.patch
|
| similarity index 70%
|
| rename from third_party/sqlite/patches/0005-Exclude-journal-file-from-Time-Machine-if-database-i.patch
|
| rename to third_party/sqlite/patches/0004-Exclude-journal-file-from-Time-Machine-if-database-i.patch
|
| index eee979e21f149a617548172444793e9cb970d6f9..b9cf9d517401bc0428cdc2a2620a62461c8f691f 100644
|
| --- a/third_party/sqlite/patches/0005-Exclude-journal-file-from-Time-Machine-if-database-i.patch
|
| +++ b/third_party/sqlite/patches/0004-Exclude-journal-file-from-Time-Machine-if-database-i.patch
|
| @@ -1,7 +1,7 @@
|
| -From 74d49159b2d2e227095872b96aacc0f40edc4a20 Mon Sep 17 00:00:00 2001
|
| +From edfff157e1d9292bfcce6553b76ee913b53b1aa1 Mon Sep 17 00:00:00 2001
|
| From: mrossetti <mrossetti@chromium.org>
|
| Date: Tue, 31 May 2011 23:12:11 +0000
|
| -Subject: [PATCH 05/23] Exclude journal file from Time Machine if database is
|
| +Subject: [PATCH 04/16] Exclude journal file from Time Machine if database is
|
| excluded.
|
|
|
| BUG=74053
|
| @@ -11,6 +11,8 @@ Original review URL: http://codereview.chromium.org/6990066
|
| TODO(shess): The fts3_porter.c change is due to a conflict with an included
|
| Apple library. Perhaps move the operative code to a .c file, and firewall
|
| SQLite from that include.
|
| +
|
| +TODO(shess): Revisit this for -wal mode. http://crbug.com/78507
|
| ---
|
| third_party/sqlite/src/Makefile.linux-gcc | 4 ++++
|
| third_party/sqlite/src/ext/fts3/fts3_porter.c | 6 ++---
|
| @@ -36,10 +38,10 @@ index 6d67ba7..554bf56 100644
|
| #### Leave SQLITE_DEBUG undefined for maximum speed. Use SQLITE_DEBUG=1
|
| # to check for memory leaks. Use SQLITE_DEBUG=2 to print a log of all
|
| diff --git a/third_party/sqlite/src/ext/fts3/fts3_porter.c b/third_party/sqlite/src/ext/fts3/fts3_porter.c
|
| -index 27f9cf3..f7f047c 100644
|
| +index db175ac..933602a 100644
|
| --- a/third_party/sqlite/src/ext/fts3/fts3_porter.c
|
| +++ b/third_party/sqlite/src/ext/fts3/fts3_porter.c
|
| -@@ -129,7 +129,7 @@ static int porterClose(sqlite3_tokenizer_cursor *pCursor){
|
| +@@ -128,7 +128,7 @@ static int porterClose(sqlite3_tokenizer_cursor *pCursor){
|
| /*
|
| ** Vowel or consonant
|
| */
|
| @@ -48,7 +50,7 @@ index 27f9cf3..f7f047c 100644
|
| 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0,
|
| 1, 1, 1, 2, 1
|
| };
|
| -@@ -153,7 +153,7 @@ static int isConsonant(const char *z){
|
| +@@ -152,7 +152,7 @@ static int isConsonant(const char *z){
|
| char x = *z;
|
| if( x==0 ) return 0;
|
| assert( x>='a' && x<='z' );
|
| @@ -57,7 +59,7 @@ index 27f9cf3..f7f047c 100644
|
| if( j<2 ) return j;
|
| return z[1]==0 || isVowel(z + 1);
|
| }
|
| -@@ -162,7 +162,7 @@ static int isVowel(const char *z){
|
| +@@ -161,7 +161,7 @@ static int isVowel(const char *z){
|
| char x = *z;
|
| if( x==0 ) return 0;
|
| assert( x>='a' && x<='z' );
|
| @@ -67,24 +69,24 @@ index 27f9cf3..f7f047c 100644
|
| return isConsonant(z + 1);
|
| }
|
| diff --git a/third_party/sqlite/src/main.mk b/third_party/sqlite/src/main.mk
|
| -index e1df7a7..b0aa4b2 100644
|
| +index 4a7ac02..dc56b0d 100644
|
| --- a/third_party/sqlite/src/main.mk
|
| +++ b/third_party/sqlite/src/main.mk
|
| -@@ -513,7 +513,7 @@ TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE
|
| +@@ -591,7 +591,7 @@ TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE
|
| testfixture$(EXE): $(TESTSRC2) libsqlite3.a $(TESTSRC) $(TOP)/src/tclsqlite.c
|
| $(TCCX) $(TCL_FLAGS) -DTCLSH=1 $(TESTFIXTURE_FLAGS) \
|
| $(TESTSRC) $(TESTSRC2) $(TOP)/src/tclsqlite.c \
|
| -- -o testfixture$(EXE) $(LIBTCL) $(THREADLIB) libsqlite3.a
|
| -+ -o testfixture$(EXE) $(LIBTCL) $(THREADLIB) libsqlite3.a $(TLIBS)
|
| +- -o testfixture$(EXE) $(LIBTCL) libsqlite3.a $(THREADLIB)
|
| ++ -o testfixture$(EXE) $(LIBTCL) libsqlite3.a $(THREADLIB) $(TLIBS)
|
|
|
| amalgamation-testfixture$(EXE): sqlite3.c $(TESTSRC) $(TOP)/src/tclsqlite.c
|
| $(TCCX) $(TCL_FLAGS) -DTCLSH=1 $(TESTFIXTURE_FLAGS) \
|
| diff --git a/third_party/sqlite/src/src/pager.c b/third_party/sqlite/src/src/pager.c
|
| -index e6d1cde..a4fe318 100644
|
| +index d840a39..34fa50f 100644
|
| --- a/third_party/sqlite/src/src/pager.c
|
| +++ b/third_party/sqlite/src/src/pager.c
|
| -@@ -5093,6 +5093,20 @@ void sqlite3PagerUnref(DbPage *pPg){
|
| - }
|
| +@@ -5467,6 +5467,20 @@ void sqlite3PagerUnref(DbPage *pPg){
|
| + if( pPg ) sqlite3PagerUnrefNotNull(pPg);
|
| }
|
|
|
| +#if defined(__APPLE__)
|
| @@ -104,36 +106,36 @@ index e6d1cde..a4fe318 100644
|
| /*
|
| ** This function is called at the start of every write transaction.
|
| ** There must already be a RESERVED or EXCLUSIVE lock on the database
|
| -@@ -5152,6 +5166,24 @@ static int pager_open_journal(Pager *pPager){
|
| - #else
|
| - rc = sqlite3OsOpen(pVfs, pPager->zJournal, pPager->jfd, flags, 0);
|
| - #endif
|
| +@@ -5531,6 +5545,24 @@ static int pager_open_journal(Pager *pPager){
|
| + #else
|
| + rc = sqlite3OsOpen(pVfs, pPager->zJournal, pPager->jfd, flags, 0);
|
| + #endif
|
| +#if defined(__APPLE__)
|
| -+ /* Set the TimeMachine exclusion metadata for the journal if it has
|
| -+ ** been set for the database. Only do this for unix-type vfs
|
| -+ ** implementations. */
|
| -+ if( rc==SQLITE_OK && pPager->zFilename!=NULL
|
| -+ && strlen(pPager->zFilename)>0
|
| -+ && strncmp(pVfs->zName, "unix", 4)==0
|
| -+ && ( pVfs->zName[4]=='-' || pVfs->zName[4]=='\0' ) ){
|
| -+ CFURLRef database = create_cfurl_from_cstring(pPager->zFilename);
|
| -+ if( CSBackupIsItemExcluded(database, NULL) ){
|
| -+ CFURLRef journal = create_cfurl_from_cstring(pPager->zJournal);
|
| -+ /* Ignore errors from the following exclusion call. */
|
| -+ CSBackupSetItemExcluded(journal, TRUE, FALSE);
|
| -+ CFRelease(journal);
|
| ++ /* Set the TimeMachine exclusion metadata for the journal if it has
|
| ++ ** been set for the database. Only do this for unix-type vfs
|
| ++ ** implementations. */
|
| ++ if( rc==SQLITE_OK && pPager->zFilename!=NULL
|
| ++ && strlen(pPager->zFilename)>0
|
| ++ && strncmp(pVfs->zName, "unix", 4)==0
|
| ++ && ( pVfs->zName[4]=='-' || pVfs->zName[4]=='\0' ) ){
|
| ++ CFURLRef database = create_cfurl_from_cstring(pPager->zFilename);
|
| ++ if( CSBackupIsItemExcluded(database, NULL) ){
|
| ++ CFURLRef journal = create_cfurl_from_cstring(pPager->zJournal);
|
| ++ /* Ignore errors from the following exclusion call. */
|
| ++ CSBackupSetItemExcluded(journal, TRUE, FALSE);
|
| ++ CFRelease(journal);
|
| ++ }
|
| ++ CFRelease(database);
|
| + }
|
| -+ CFRelease(database);
|
| -+ }
|
| +#endif
|
| + }
|
| }
|
| assert( rc!=SQLITE_OK || isOpen(pPager->jfd) );
|
| - }
|
| diff --git a/third_party/sqlite/src/src/sqliteInt.h b/third_party/sqlite/src/src/sqliteInt.h
|
| -index ea0925e..684fa57 100644
|
| +index 63036c5..9d6a7d8 100644
|
| --- a/third_party/sqlite/src/src/sqliteInt.h
|
| +++ b/third_party/sqlite/src/src/sqliteInt.h
|
| -@@ -2522,6 +2522,16 @@ int sqlite3CantopenError(int);
|
| +@@ -2985,6 +2985,16 @@ int sqlite3CantopenError(int);
|
| #endif
|
|
|
| /*
|
|
|