]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add the "Pragma_list" pragma. Put all three pragmas created on this branch list-pragmas
authordrh <drh@noemail.net>
Fri, 7 Jul 2017 17:33:07 +0000 (17:33 +0000)
committerdrh <drh@noemail.net>
Fri, 7 Jul 2017 17:33:07 +0000 (17:33 +0000)
inside of #ifdef SQLITE_INTROSPECTION_PRAGMAS.

FossilOrigin-Name: 2f3c3781ef3d66ecafef083d7144287ff23eea5a6d93b014dfeb2a8ac71f757e

manifest
manifest.uuid
src/pragma.c
src/pragma.h
tool/mkpragmatab.tcl

index 0faff6d8bf3985939c636ba161274e2576331074..c3cb032b8a0424a15968f569c18b7f7f2c30a264 100644 (file)
--- a/manifest
+++ b/manifest
@@ -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
index f1a5df0c434b95f745b9dfe2972e3f3a61f7e79d..b276224cc21104e3a2b1503fd34dce6995c39687 100644 (file)
@@ -1 +1 @@
-e5f01d7fde05fdb547f35816ff15c31a92c170b31877f4c640b7bc2be3f580b3
\ No newline at end of file
+2f3c3781ef3d66ecafef083d7144287ff23eea5a6d93b014dfeb2a8ac71f757e
\ No newline at end of file
index 0c81252146fb20b431d7e8edab95a94f88d5e7b5..a7eb8c0cc855f6fbbaec417486e5b70848a8a30d 100644 (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 */
 
index 42ad7df3c5cc7c28c532efcb823ad112dfde85af..c9ece2dc875f8232c6c30a8b788c1dbc0507f7dd 100644 (file)
 #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. */
index 34d7b0a82a163ec986c2fae6fb50e499ec8a7976..1bfbeb7c58befc4e916a48e60f2e18b55d594bf2 100644 (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