Add the "Pragma_list" pragma. Put all three pragmas created on this branch

inside of #ifdef SQLITE_INTROSPECTION_PRAGMAS.

FossilOrigin-Name: 2f3c3781ef3d66ecafef083d7144287ff23eea5a6d93b014dfeb2a8ac71f757e
This commit is contained in:
drh 2017-07-07 17:33:07 +00:00
parent ab53bb635c
commit 8ae11aac93
5 changed files with 57 additions and 31 deletions

View File

@ -1,5 +1,5 @@
C Add\snew\spragmas:\s"function_list"\sand\s"module_list"
D 2017-07-07T15:43:22.754
C Add\sthe\s"Pragma_list"\spragma.\s\sPut\sall\sthree\spragmas\screated\son\sthis\sbranch\ninside\sof\s#ifdef\sSQLITE_INTROSPECTION_PRAGMAS.
D 2017-07-07T17:33:07.198
F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 4ebb1d257cac7fb1bcb4ba59278416d410ff1c4bf59447a9c37a415f3516056a
@ -441,8 +441,8 @@ F src/parse.y 71bf06b02f567232deabe258641b03e833e93c4dee61a120765ad74c13e7faec
F src/pcache.c 62835bed959e2914edd26afadfecce29ece0e870
F src/pcache.h 521bb9610d38ef17a3cc9b5ddafd4546c2ea67fa3d0e464823d73c2a28d50e11
F src/pcache1.c 1195a21fe28e223e024f900b2011e80df53793f0356a24caace4188b098540dc
F src/pragma.c 415a98ec60bd209b69e502f07f1c7b9a84140d7e44332202367b2d60e7c30e60
F src/pragma.h 0d5573ec6c5aa8e65a7d1b33055b868295f16d1ee6aa754754fc1fc75ececd1a
F src/pragma.c 072f2907f63ca779b08a2bb97706cf0b61663fbbebdc891b882cb7d0ed21c4e5
F src/pragma.h bb83728944b42f6d409c77f5838a8edbdb0fe83046c5496ffc9602b40340a324
F src/prepare.c 4b84ae7458febe1df3e04ae62ba56abc851f771340e460d14426e6802c5615f4
F src/printf.c 8757834f1b54dae512fb25eb1acc8e94a0d15dd2290b58f2563f65973265adb2
F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
@ -1566,7 +1566,7 @@ F tool/mkmsvcmin.tcl cbd93f1cfa3a0a9ae56fc958510aa3fc3ac65e29cb111716199e3d0e66e
F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c
F tool/mkopcodeh.tcl a01d2c1d8a6205b03fc635adf3735b4c523befd3
F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
F tool/mkpragmatab.tcl 3707a9586c5f3fccded77ac23b9f1672785f43c9bc0c1f49845bb81dbf8118d5
F tool/mkpragmatab.tcl 2144bc8550a6471a029db262a132d2df4b9e0db61b90398bf64f5b7b3f8d92cd
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
F tool/mksqlite3c-noext.tcl fef88397668ae83166735c41af99d79f56afaabb
F tool/mksqlite3c.tcl f6214285bec900d28441366ca31af327aade18bbc424b0480497966ec05bc43c
@ -1628,10 +1628,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P aacbb9a461fdb34c7f9c8ce348e44c3e96c93334f210d438d92bfac1794dc686
R 0f36dd9733d38244f7ca6a934ae9744a
T *branch * list-pragmas
T *sym-list-pragmas *
T -sym-trunk *
P e5f01d7fde05fdb547f35816ff15c31a92c170b31877f4c640b7bc2be3f580b3
R 17fc399fdbe82a9f3fca67f0dc49bd1b
U drh
Z 4e2b289a760c670e9cafd6cf4ad4b9b9
Z 8b4bd12deebcc9df8b73824fc89e2153

View File

@ -1 +1 @@
e5f01d7fde05fdb547f35816ff15c31a92c170b31877f4c640b7bc2be3f580b3
2f3c3781ef3d66ecafef083d7144287ff23eea5a6d93b014dfeb2a8ac71f757e

View File

@ -1226,6 +1226,7 @@ void sqlite3Pragma(
}
break;
#ifdef SQLITE_INTROSPECTION_PRAGMAS
case PragTyp_FUNCTION_LIST: {
int i;
HashElem *j;
@ -1258,6 +1259,15 @@ void sqlite3Pragma(
break;
#endif /* SQLITE_OMIT_VIRTUALTABLE */
case PragTyp_PRAGMA_LIST: {
int i;
for(i=0; i<ArraySize(aPragmaName); i++){
sqlite3VdbeMultiLoad(v, 1, "s", aPragmaName[i].zName);
sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1);
}
}
break;
#endif /* SQLITE_INTROSPECTION_PRAGMAS */
#endif /* SQLITE_OMIT_SCHEMA_PRAGMAS */

View File

@ -34,23 +34,24 @@
#define PragTyp_MODULE_LIST 26
#define PragTyp_OPTIMIZE 27
#define PragTyp_PAGE_SIZE 28
#define PragTyp_SECURE_DELETE 29
#define PragTyp_SHRINK_MEMORY 30
#define PragTyp_SOFT_HEAP_LIMIT 31
#define PragTyp_SYNCHRONOUS 32
#define PragTyp_TABLE_INFO 33
#define PragTyp_TEMP_STORE 34
#define PragTyp_TEMP_STORE_DIRECTORY 35
#define PragTyp_THREADS 36
#define PragTyp_WAL_AUTOCHECKPOINT 37
#define PragTyp_WAL_CHECKPOINT 38
#define PragTyp_ACTIVATE_EXTENSIONS 39
#define PragTyp_HEXKEY 40
#define PragTyp_KEY 41
#define PragTyp_REKEY 42
#define PragTyp_LOCK_STATUS 43
#define PragTyp_PARSER_TRACE 44
#define PragTyp_STATS 45
#define PragTyp_PRAGMA_LIST 29
#define PragTyp_SECURE_DELETE 30
#define PragTyp_SHRINK_MEMORY 31
#define PragTyp_SOFT_HEAP_LIMIT 32
#define PragTyp_SYNCHRONOUS 33
#define PragTyp_TABLE_INFO 34
#define PragTyp_TEMP_STORE 35
#define PragTyp_TEMP_STORE_DIRECTORY 36
#define PragTyp_THREADS 37
#define PragTyp_WAL_AUTOCHECKPOINT 38
#define PragTyp_WAL_CHECKPOINT 39
#define PragTyp_ACTIVATE_EXTENSIONS 40
#define PragTyp_HEXKEY 41
#define PragTyp_KEY 42
#define PragTyp_REKEY 43
#define PragTyp_LOCK_STATUS 44
#define PragTyp_PARSER_TRACE 45
#define PragTyp_STATS 46
/* Property flags associated with various pragma. */
#define PragFlg_NeedSchema 0x01 /* Force schema load before running */
@ -98,7 +99,7 @@ static const char *const pragCName[] = {
/* 28 */ "file",
/* 29 */ "name", /* Used by: function_list */
/* 30 */ "builtin",
/* 31 */ "name", /* Used by: module_list */
/* 31 */ "name", /* Used by: module_list pragma_list */
/* 32 */ "seq", /* Used by: collation_list */
/* 33 */ "name",
/* 34 */ "id", /* Used by: foreign_key_list */
@ -312,12 +313,14 @@ static const PragmaName aPragmaName[] = {
/* iArg: */ SQLITE_FullFSync },
#endif
#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
#if defined(SQLITE_INTROSPECTION_PRAGMAS)
{/* zName: */ "function_list",
/* ePragTyp: */ PragTyp_FUNCTION_LIST,
/* ePragFlg: */ PragFlg_Result0,
/* ColNames: */ 29, 2,
/* iArg: */ 0 },
#endif
#endif
#if defined(SQLITE_HAS_CODEC)
{/* zName: */ "hexkey",
/* ePragTyp: */ PragTyp_HEXKEY,
@ -429,12 +432,14 @@ static const PragmaName aPragmaName[] = {
#endif
#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
#if !defined(SQLITE_OMIT_VIRTUALTABLE)
#if defined(SQLITE_INTROSPECTION_PRAGMAS)
{/* zName: */ "module_list",
/* ePragTyp: */ PragTyp_MODULE_LIST,
/* ePragFlg: */ PragFlg_Result0,
/* ColNames: */ 31, 1,
/* iArg: */ 0 },
#endif
#endif
#endif
{/* zName: */ "optimize",
/* ePragTyp: */ PragTyp_OPTIMIZE,
@ -460,6 +465,13 @@ static const PragmaName aPragmaName[] = {
/* ColNames: */ 0, 0,
/* iArg: */ 0 },
#endif
#if defined(SQLITE_INTROSPECTION_PRAGMAS)
{/* zName: */ "pragma_list",
/* ePragTyp: */ PragTyp_PRAGMA_LIST,
/* ePragFlg: */ PragFlg_Result0,
/* ColNames: */ 31, 1,
/* iArg: */ 0 },
#endif
#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
{/* zName: */ "query_only",
/* ePragTyp: */ PragTyp_FLAG,
@ -634,4 +646,4 @@ static const PragmaName aPragmaName[] = {
/* iArg: */ SQLITE_WriteSchema },
#endif
};
/* Number of pragmas: 62 on by default, 76 total. */
/* Number of pragmas: 60 on by default, 77 total. */

View File

@ -256,12 +256,19 @@ set pragma_def {
FLAG: Result0
COLS: name builtin
IF: !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
IF: defined(SQLITE_INTROSPECTION_PRAGMAS)
NAME: module_list
FLAG: Result0
COLS: name
IF: !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
IF: !defined(SQLITE_OMIT_VIRTUALTABLE)
IF: defined(SQLITE_INTROSPECTION_PRAGMAS)
NAME: pragma_list
FLAG: Result0
COLS: name
IF: defined(SQLITE_INTROSPECTION_PRAGMAS)
NAME: collation_list
FLAG: Result0