Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix issue with several memory allocation tests due to KeyInfo allocations now being shared. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
569fedd6bb07bdd3430da8dc65de4a9f |
User & Date: | mistachkin 2013-11-11 03:37:04.887 |
Context
2013-11-11
| ||
16:55 | Remove unreachable code, replacing it in most cases with assert() or NEVER() macros. (check-in: 924d63b283 user: drh tags: trunk) | |
03:37 | Fix issue with several memory allocation tests due to KeyInfo allocations now being shared. (check-in: 569fedd6bb user: mistachkin tags: trunk) | |
03:24 | Convert several ALWAYS() macros in vdbe.c into assert() statements. (check-in: acc40ff6b4 user: drh tags: trunk) | |
Changes
Changes to test/dbstatus.test.
︙ | ︙ | |||
130 131 132 133 134 135 136 | END; } 5 { CREATE TABLE t1(a, b); CREATE TABLE t2(c, d); CREATE VIEW v1 AS SELECT * FROM t1 UNION SELECT * FROM t2; } | | | 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | END; } 5 { CREATE TABLE t1(a, b); CREATE TABLE t2(c, d); CREATE VIEW v1 AS SELECT * FROM t1 UNION SELECT * FROM t2; } 6k { CREATE TABLE t1(a, b); CREATE INDEX i1 ON t1(a); CREATE INDEX i2 ON t1(a,b); CREATE INDEX i3 ON t1(b,b); INSERT INTO t1 VALUES(randomblob(20), randomblob(25)); INSERT INTO t1 SELECT randomblob(20), randomblob(25) FROM t1; INSERT INTO t1 SELECT randomblob(20), randomblob(25) FROM t1; |
︙ | ︙ | |||
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 | # Step 5. drop_all_tables set nAlloc4 [lindex [sqlite3_status SQLITE_STATUS_MEMORY_USED 0] 1] incr nAlloc4 [lookaside db] set nSchema4 [lindex [sqlite3_db_status db SQLITE_DBSTATUS_SCHEMA_USED 0] 1] set nFree [expr {$nAlloc1-$nAlloc2}] # Tests for which the test name ends in an "x" report slightly less # memory than is actually freed when all schema items are finalized. # This is because memory allocated by virtual table implementations # for any reason is not counted as "schema memory". # # Additionally, in auto-vacuum mode, dropping tables and indexes causes # the page-cache to shrink. So the amount of memory freed is always # much greater than just that reported by DBSTATUS_SCHEMA_USED in this # case. # # Some of the memory used for sqlite_stat4 is unaccounted for by # dbstatus. # # Finally, on osx the estimate of memory used by the schema may be # slightly low. # | > > > > > > | | 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 | # Step 5. drop_all_tables set nAlloc4 [lindex [sqlite3_status SQLITE_STATUS_MEMORY_USED 0] 1] incr nAlloc4 [lookaside db] set nSchema4 [lindex [sqlite3_db_status db SQLITE_DBSTATUS_SCHEMA_USED 0] 1] set nFree [expr {$nAlloc1-$nAlloc2}] # Tests for which the test name ends in an "k" report slightly less # memory than is actually freed when all schema items are finalized. # This is because memory allocated by KeyInfo objects is no longer # counted as "schema memory". # # Tests for which the test name ends in an "x" report slightly less # memory than is actually freed when all schema items are finalized. # This is because memory allocated by virtual table implementations # for any reason is not counted as "schema memory". # # Additionally, in auto-vacuum mode, dropping tables and indexes causes # the page-cache to shrink. So the amount of memory freed is always # much greater than just that reported by DBSTATUS_SCHEMA_USED in this # case. # # Some of the memory used for sqlite_stat4 is unaccounted for by # dbstatus. # # Finally, on osx the estimate of memory used by the schema may be # slightly low. # if {[string match *k $tn] || [string match *x $tn] || $AUTOVACUUM || ([string match *y $tn] && $STAT3) || ($::tcl_platform(os) == "Darwin") } { do_test dbstatus-2.$tn.ax { expr {($nSchema1-$nSchema2)<=$nFree} } 1 } else { do_test dbstatus-2.$tn.a { expr {$nSchema1-$nSchema2} } $nFree } |
︙ | ︙ | |||
242 243 244 245 246 247 248 | # 1. Open a connection to an empty database. Initialized the database # schema. # # 2. Prepare a bunch of SQL statements. Measure the total heap and # lookaside memory allocated by SQLite, and the memory allocated # for the prepared statements according to sqlite3_db_status(). # | | | 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 | # 1. Open a connection to an empty database. Initialized the database # schema. # # 2. Prepare a bunch of SQL statements. Measure the total heap and # lookaside memory allocated by SQLite, and the memory allocated # for the prepared statements according to sqlite3_db_status(). # # 3. Finalize all prepared statements. Measure the total memory # and the prepared statement memory again. # # 4. Repeat step 2. # # 5. Repeat step 3. # # Then test that: |
︙ | ︙ |