-C Break\sout\sthe\s(script-generated)\spragma\sparsing\stables\sinto\sa\sseparate\sfile,\npragma.h,\sto\smake\sediting\seasier.
-D 2015-02-02T21:34:54.408
+C Add\san\sexperimental\spragma\s"PRAGMA\spreload;"\sthat\spreloads\sthe\spcache\swith\nthe\sentire\sdatabase\sfile.
+D 2015-02-02T22:19:05.803
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in cbe64ed4d90a19062b804f7fbd319080f851b004
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F src/pcache.c d210cf90d04365a74f85d21374dded65af67b0cb
F src/pcache.h b44658c9c932d203510279439d891a2a83e12ba8
F src/pcache1.c 1e77432b40b7d3288327d9cdf399dcdfd2b6d3bf
-F src/pragma.c 58044728a29a0240d14a850c3870e5ac3da436b2
-F src/pragma.h 28804eae1286aab6f2ffa3682dc0b06b58c51834
+F src/pragma.c a5b397bd62def3b4b1f670b512ca11a1d2805b29
+F src/pragma.h 32eb95f87ccb49e7eec028d6e981b8cc2e0fa65c
F src/prepare.c 173a5a499138451b2561614ecb87d78f9f4644b9
F src/printf.c 05edc41450d0eb2c05ef7db113bf32742ae65325
F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
F tool/mkautoconfamal.sh d1a2da0e15b2ed33d60af35c7e9d483f13a8eb9f
F tool/mkkeywordhash.c dfff09dbbfaf950e89af294f48f902181b144670
F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
-F tool/mkpragmatab.tcl 4b4e91f6b8fc45596686798b918999e923b91fc7
+F tool/mkpragmatab.tcl 848a74446f372451cd4d3a60a3d9aee29c258f1e
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
F tool/mksqlite3c-noext.tcl 9ef48e1748dce7b844f67e2450ff9dfeb0fb4ab5
F tool/mksqlite3c.tcl 6b8e572a90eb4e0086e3ba90d88b76c085919863
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 42d5601739c90434e5adfda8fa99ef7b903877db
-R ad79dcf7ddc97ee53618558cb6690870
+P 32c0325bcb083fe3f0f0cfe999d00f754e15299e
+R ccc9897517b2c20b95a8eb47a0bf1dbc
+T *branch * preload-pragma
+T *sym-preload-pragma *
+T -sym-trunk *
U drh
-Z 0fdc8db6e22e6c93e424fbfcfceed021
+Z 4ac85c2d90b0f57362188f2ac4ef8b13
-32c0325bcb083fe3f0f0cfe999d00f754e15299e
\ No newline at end of file
+6dca23e64e9c8b7343082e2c7d6b7ba2d62fdb5b
\ No newline at end of file
}
break;
+ /* Try to load the entire database file into the pcache.
+ */
+ case PragTyp_PRELOAD: {
+ Pager *pPager = sqlite3BtreePager(pDb->pBt);
+ Pgno i, nPage;
+ int rc = SQLITE_OK;
+ DbPage *pPage, *pPage0 = 0;
+ if( pPager
+ && sqlite3PagerSharedLock(pPager)==SQLITE_OK
+ && sqlite3PagerGet(pPager, 1, &pPage0)==SQLITE_OK
+ ){
+ sqlite3PagerPagecount(pPager, (int*)&nPage);
+ for(i=2; rc==SQLITE_OK && i<=nPage; i++){
+ rc = sqlite3PagerGet(pPager, i, &pPage);
+ sqlite3PagerUnref(pPage);
+ }
+ if( rc ) sqlite3ErrorMsg(pParse, "preload failed");
+ }
+ sqlite3PagerUnref(pPage0);
+ break;
+ }
+
#ifndef SQLITE_INTEGRITY_CHECK_ERROR_MAX
# define SQLITE_INTEGRITY_CHECK_ERROR_MAX 100
#endif
#define PragTyp_PAGE_COUNT 22
#define PragTyp_MMAP_SIZE 23
#define PragTyp_PAGE_SIZE 24
-#define PragTyp_SECURE_DELETE 25
-#define PragTyp_SHRINK_MEMORY 26
-#define PragTyp_SOFT_HEAP_LIMIT 27
-#define PragTyp_STATS 28
-#define PragTyp_SYNCHRONOUS 29
-#define PragTyp_TABLE_INFO 30
-#define PragTyp_TEMP_STORE 31
-#define PragTyp_TEMP_STORE_DIRECTORY 32
-#define PragTyp_THREADS 33
-#define PragTyp_WAL_AUTOCHECKPOINT 34
-#define PragTyp_WAL_CHECKPOINT 35
-#define PragTyp_ACTIVATE_EXTENSIONS 36
-#define PragTyp_HEXKEY 37
-#define PragTyp_KEY 38
-#define PragTyp_REKEY 39
-#define PragTyp_LOCK_STATUS 40
-#define PragTyp_PARSER_TRACE 41
+#define PragTyp_PRELOAD 25
+#define PragTyp_SECURE_DELETE 26
+#define PragTyp_SHRINK_MEMORY 27
+#define PragTyp_SOFT_HEAP_LIMIT 28
+#define PragTyp_STATS 29
+#define PragTyp_SYNCHRONOUS 30
+#define PragTyp_TABLE_INFO 31
+#define PragTyp_TEMP_STORE 32
+#define PragTyp_TEMP_STORE_DIRECTORY 33
+#define PragTyp_THREADS 34
+#define PragTyp_WAL_AUTOCHECKPOINT 35
+#define PragTyp_WAL_CHECKPOINT 36
+#define PragTyp_ACTIVATE_EXTENSIONS 37
+#define PragTyp_HEXKEY 38
+#define PragTyp_KEY 39
+#define PragTyp_REKEY 40
+#define PragTyp_LOCK_STATUS 41
+#define PragTyp_PARSER_TRACE 42
#define PragFlag_NeedSchema 0x01
#define PragFlag_ReadOnly 0x02
static const struct sPragmaNames {
/* ePragFlag: */ 0,
/* iArg: */ 0 },
#endif
+ { /* zName: */ "preload",
+ /* ePragTyp: */ PragTyp_PRELOAD,
+ /* ePragFlag: */ 0,
+ /* iArg: */ 0 },
#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
{ /* zName: */ "query_only",
/* ePragTyp: */ PragTyp_FLAG,
/* iArg: */ SQLITE_WriteSchema|SQLITE_RecoveryMode },
#endif
};
-/* Number of pragmas: 58 on by default, 71 total. */
+/* Number of pragmas: 59 on by default, 72 total. */
NAME: soft_heap_limit
NAME: threads
+
+ NAME: preload
}
# Open the output file