Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a problem preventing a shared in-memory database from being attached to a read-only connection. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
7caca1939ce70d5b14ae8ca8ff6afb62 |
User & Date: | dan 2012-06-07 17:16:04.548 |
Context
2012-06-07
| ||
17:57 | Documentation and evidence mark updates. Remove a redundant assert(). (check-in: cfcbf9375f user: drh tags: trunk) | |
17:16 | Fix a problem preventing a shared in-memory database from being attached to a read-only connection. (check-in: 7caca1939c user: dan tags: trunk) | |
15:53 | Add the "tokenchars=" and "separators=" options, for customizing the set of characters considered to be token separators, to the unicode61 tokenizer. (check-in: e56fb462aa user: dan tags: trunk) | |
Changes
Changes to src/main.c.
︙ | ︙ | |||
2061 2062 2063 2064 2065 2066 2067 | zModeType = "cache"; } if( nOpt==4 && memcmp("mode", zOpt, 4)==0 ){ static struct OpenMode aOpenMode[] = { { "ro", SQLITE_OPEN_READONLY }, { "rw", SQLITE_OPEN_READWRITE }, { "rwc", SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE }, | < < | | 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 | zModeType = "cache"; } if( nOpt==4 && memcmp("mode", zOpt, 4)==0 ){ static struct OpenMode aOpenMode[] = { { "ro", SQLITE_OPEN_READONLY }, { "rw", SQLITE_OPEN_READWRITE }, { "rwc", SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE }, { "memory", SQLITE_OPEN_MEMORY }, { 0, 0 } }; mask = SQLITE_OPEN_READONLY | SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_MEMORY; aMode = aOpenMode; limit = mask & flags; |
︙ | ︙ |
Changes to test/shared.test.
︙ | ︙ | |||
1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 | SELECT x FROM t1 ORDER BY x; } db2 } {1 {no such table: t1}} do_test shared-$av-16.8 { file exists test1.db } {0} ;# Verify that the database is in-memory db1 close db2 close } ;# end of autovacuum on/off loop sqlite3_enable_shared_cache $::enable_shared_cache | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 | SELECT x FROM t1 ORDER BY x; } db2 } {1 {no such table: t1}} do_test shared-$av-16.8 { file exists test1.db } {0} ;# Verify that the database is in-memory # Shared cache on named memory databases attached to readonly connections. # do_test shared-$av-16.8.1 { db1 close db2 close sqlite3 db test1.db db eval { CREATE TABLE yy(a, b); INSERT INTO yy VALUES(77, 88); } db close sqlite3 db1 test1.db -uri 1 -readonly 1 sqlite3 db2 test2.db -uri 1 db1 eval { ATTACH 'file:mem?mode=memory&cache=shared' AS shared; CREATE TABLE shared.xx(a, b); INSERT INTO xx VALUES(55, 66); } db2 eval { ATTACH 'file:mem?mode=memory&cache=shared' AS shared; SELECT * FROM xx; } } {55 66} do_test shared-$av-16.8.2 { db1 eval { SELECT * FROM yy } } {77 88} do_test shared-$av-16.8.3 { list [catch {db1 eval { INSERT INTO yy VALUES(1, 2) }} msg] $msg } {1 {attempt to write a readonly database}} db1 close db2 close } ;# end of autovacuum on/off loop sqlite3_enable_shared_cache $::enable_shared_cache |
︙ | ︙ |