Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch shared-cache-memdb Excluding Merge-Ins
This is equivalent to a diff from 6d326d44 to 595dfdbf
2012-05-27
| ||
22:42 | Merge into trunk the changes that permit :memory: databases to use shared cache. (check-in: e72179f3 user: drh tags: trunk) | |
01:19 | Have user interfaces report out the filename of in-memory databases as an empty string, as it always has. This simplifies the changes. (Closed-Leaf check-in: 595dfdbf user: drh tags: shared-cache-memdb) | |
2012-05-26
| ||
20:08 | Only allow :memory: databases to share cache if there are created using a URI filename. This minimizes the risk of breakages in legacy applications that have shared-cache enabled but also use :memory: databases which they expect to keep separate. (check-in: e3ad61e0 user: drh tags: shared-cache-memdb) | |
18:42 | Merge fts4-unicode branch with trunk. (check-in: 25ba1f84 user: dan tags: trunk) | |
18:06 | Enable the use of shared cache for an in-memory database, so that separate database connections can share the same in-memory database. (check-in: 4590e433 user: drh tags: shared-cache-memdb) | |
2012-05-25
| ||
17:50 | Add an experimental tokenizer to fts4 - "unicode". This tokenizer works in the same way except that it understands unicode "simple case folding" and recognizes all characters not classified as "Letters" or "Numbers" by unicode as token separators. (check-in: 0c13570e user: dan tags: fts4-unicode) | |
2012-05-22
| ||
17:39 | Merge the 3.7.12.1 trunk changes into the WinRT branch. (check-in: b9ed0b26 user: drh tags: winrt) | |
13:11 | Version 3.7.12.1 (check-in: 972e75bb user: drh tags: apple-osx) | |
13:01 | Version 3.7.12.1 (check-in: d07b7b67 user: drh tags: sessions) | |
02:45 | Version 3.7.12.1 (check-in: 6d326d44 user: drh tags: trunk, release, version-3.7.12.1) | |
2012-05-21
| ||
22:45 | Increase the version number to 3.7.12.1. Minor changes to test scripts. (check-in: 5519cc5e user: drh tags: trunk) | |
Changes to src/btree.c.
︙ | |||
1753 1754 1755 1756 1757 1758 1759 | 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 | - + + + + - - - - - + + + + + + + - + | #endif #if !defined(SQLITE_OMIT_SHARED_CACHE) && !defined(SQLITE_OMIT_DISKIO) /* ** If this Btree is a candidate for shared cache, try to find an ** existing BtShared object that we can share with */ |
︙ | |||
8042 8043 8044 8045 8046 8047 8048 | 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 | - + + - + | *pnErr = sCheck.nErr; if( sCheck.nErr==0 ) sqlite3StrAccumReset(&sCheck.errMsg); return sqlite3StrAccumFinish(&sCheck.errMsg); } #endif /* SQLITE_OMIT_INTEGRITY_CHECK */ /* |
︙ |
Changes to src/main.c.
︙ | |||
2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 | 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 | + | }else{ zFile = sqlite3_malloc(nUri+2); if( !zFile ) return SQLITE_NOMEM; memcpy(zFile, zUri, nUri); zFile[nUri] = '\0'; zFile[nUri+1] = '\0'; flags &= ~SQLITE_OPEN_URI; } *ppVfs = sqlite3_vfs_find(zVfs); if( *ppVfs==0 ){ *pzErrMsg = sqlite3_mprintf("no such vfs: %s", zVfs); rc = SQLITE_ERROR; } |
︙ |
Changes to src/pager.c.
︙ | |||
4356 4357 4358 4359 4360 4361 4362 | 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 | + + + + - + + | /* Set the output variable to NULL in case an error occurs. */ *ppPager = 0; #ifndef SQLITE_OMIT_MEMORYDB if( flags & PAGER_MEMORY ){ memDb = 1; if( zFilename && zFilename[0] ){ zPathname = sqlite3DbStrDup(0, zFilename); if( zPathname==0 ) return SQLITE_NOMEM; nPathname = sqlite3Strlen30(zPathname); |
︙ | |||
6292 6293 6294 6295 6296 6297 6298 6299 | 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 | + + + + + + + - - + + | } return rc; } /* ** Return the full pathname of the database file. ** ** Except, if the pager is in-memory only, then return an empty string if ** nullIfMemDb is true. This routine is called with nullIfMemDb==1 when ** used to report the filename to the user, for compatibility with legacy ** behavior. But when the Btree needs to know the filename for matching to ** shared cache, it uses nullIfMemDb==0 so that in-memory databases can ** participate in shared-cache. */ |
︙ |
Changes to src/pager.h.
︙ | |||
147 148 149 150 151 152 153 | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | - + | int sqlite3PagerWalFramesize(Pager *pPager); #endif /* Functions used to query pager state and configuration. */ u8 sqlite3PagerIsreadonly(Pager*); int sqlite3PagerRefcount(Pager*); int sqlite3PagerMemUsed(Pager*); |
︙ |
Changes to src/test_btree.c.
︙ | |||
29 30 31 32 33 34 35 | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | - + | Tcl_Obj *CONST objv[] ){ #ifndef SQLITE_OMIT_SHARED_CACHE extern BtShared *sqlite3SharedCacheList; BtShared *pBt; Tcl_Obj *pRet = Tcl_NewObj(); for(pBt=GLOBAL(BtShared*,sqlite3SharedCacheList); pBt; pBt=pBt->pNext){ |
︙ |
Changes to src/vdbe.c.
︙ | |||
5507 5508 5509 5510 5511 5512 5513 | 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 | - + | pBt = db->aDb[pOp->p1].pBt; pPager = sqlite3BtreePager(pBt); eOld = sqlite3PagerGetJournalMode(pPager); if( eNew==PAGER_JOURNALMODE_QUERY ) eNew = eOld; if( !sqlite3PagerOkToChangeJournalMode(pPager) ) eNew = eOld; #ifndef SQLITE_OMIT_WAL |
︙ |
Changes to test/shared.test.
︙ | |||
1052 1053 1054 1055 1056 1057 1058 | 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 | + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | } {1 2 6 8 9 12 1 2 5 11 12 14 1 2 4} do_test shared-$av-15.2 { execsql { DROP TABLE t1 } db2 } {} db close db2 close # Shared cache on a :memory: database. This only works for URI filenames. # do_test shared-$av-16.1 { sqlite3 db1 file::memory: -uri 1 sqlite3 db2 file::memory: -uri 1 db1 eval { CREATE TABLE t1(x); INSERT INTO t1 VALUES(1),(2),(3); |