/ Check-in [3af19f84]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Merge all recent trunk changes, including the movement of the pragma table into the separate pragma.h header file.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | index_xinfo
Files: files | file ages | folders
SHA1: 3af19f84446ba5fc1ed754d0d73f6a6d7fb2f365
User & Date: drh 2015-02-04 23:13:48
Context
2015-02-06
01:07
Add the index_xinfo pragma which gives information about the fields that reference the table PRIMARY KEY in addition to the index key fields. Add extra columns "desc", "coll", and "key" to the index_info and index_xinfo pragmas. Add the "origin" and "partial" columns to the index_list pragma. check-in: 2743846c user: drh tags: trunk
2015-02-04
23:51
Merge all changes from index_xinfo, including the move of the pragma table into the separate pragma.h file. check-in: 21e95d28 user: drh tags: ota-update
23:13
Merge all recent trunk changes, including the movement of the pragma table into the separate pragma.h header file. Closed-Leaf check-in: 3af19f84 user: drh tags: index_xinfo
20:56
Fix a missing mutex in SQLITE_TESTCTRL_IMPOSTER. check-in: 71691c4b user: drh tags: trunk
2015-01-31
02:00
Add the "index_xinfo" pragma. Add new columns to the "index_info" and "index_list" pragmas. check-in: 30f51d7b user: drh tags: index_xinfo
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to Makefile.in.

   251    251     $(TOP)/src/pager.c \
   252    252     $(TOP)/src/pager.h \
   253    253     $(TOP)/src/parse.y \
   254    254     $(TOP)/src/pcache.c \
   255    255     $(TOP)/src/pcache.h \
   256    256     $(TOP)/src/pcache1.c \
   257    257     $(TOP)/src/pragma.c \
          258  +  $(TOP)/src/pragma.h \
   258    259     $(TOP)/src/prepare.c \
   259    260     $(TOP)/src/printf.c \
   260    261     $(TOP)/src/random.c \
   261    262     $(TOP)/src/resolve.c \
   262    263     $(TOP)/src/rowset.c \
   263    264     $(TOP)/src/select.c \
   264    265     $(TOP)/src/status.c \
................................................................................
   470    471      $(TOP)/src/os.h \
   471    472      $(TOP)/src/os_common.h \
   472    473      $(TOP)/src/os_setup.h \
   473    474      $(TOP)/src/os_win.h \
   474    475      $(TOP)/src/pager.h \
   475    476      $(TOP)/src/pcache.h \
   476    477      parse.h  \
          478  +   $(TOP)/src/pragma.h \
   477    479      sqlite3.h  \
   478    480      $(TOP)/src/sqlite3ext.h \
   479    481      $(TOP)/src/sqliteInt.h  \
   480    482      $(TOP)/src/sqliteLimit.h \
   481    483      $(TOP)/src/vdbe.h \
   482    484      $(TOP)/src/vdbeInt.h \
   483    485      $(TOP)/src/whereInt.h \
................................................................................
   991    993   
   992    994   LogEst$(TEXE):	$(TOP)/tool/logest.c sqlite3.h
   993    995   	$(LTLINK) -I. -o $@ $(TOP)/tool/logest.c
   994    996   
   995    997   wordcount$(TEXE):	$(TOP)/test/wordcount.c sqlite3.c
   996    998   	$(LTLINK) -o $@ $(TOP)/test/wordcount.c sqlite3.c $(TLIBS)
   997    999   
   998         -speedtest1$(TEXE):	$(TOP)/test/wordcount.c sqlite3.lo
         1000  +speedtest1$(TEXE):	$(TOP)/test/speedtest1.c sqlite3.lo
   999   1001   	$(LTLINK) -o $@ $(TOP)/test/speedtest1.c sqlite3.lo $(TLIBS)
  1000   1002   
  1001   1003   # This target will fail if the SQLite amalgamation contains any exported
  1002   1004   # symbols that do not begin with "sqlite3_". It is run as part of the
  1003   1005   # releasetest.tcl script.
  1004   1006   #
  1005   1007   checksymbols: sqlite3.lo

Changes to Makefile.msc.

   769    769     $(TOP)\src\pager.c \
   770    770     $(TOP)\src\pager.h \
   771    771     $(TOP)\src\parse.y \
   772    772     $(TOP)\src\pcache.c \
   773    773     $(TOP)\src\pcache.h \
   774    774     $(TOP)\src\pcache1.c \
   775    775     $(TOP)\src\pragma.c \
          776  +  $(TOP)\src\pragma.h \
   776    777     $(TOP)\src\prepare.c \
   777    778     $(TOP)\src\printf.c \
   778    779     $(TOP)\src\random.c \
   779    780     $(TOP)\src\resolve.c \
   780    781     $(TOP)\src\rowset.c \
   781    782     $(TOP)\src\select.c \
   782    783     $(TOP)\src\status.c \
................................................................................
   992    993      $(TOP)\src\os.h \
   993    994      $(TOP)\src\os_common.h \
   994    995      $(TOP)\src\os_setup.h \
   995    996      $(TOP)\src\os_win.h \
   996    997      $(TOP)\src\pager.h \
   997    998      $(TOP)\src\pcache.h \
   998    999      parse.h \
         1000  +   $(TOP)\src\pragma.h \
   999   1001      sqlite3.h \
  1000   1002      $(TOP)\src\sqlite3ext.h \
  1001   1003      $(TOP)\src\sqliteInt.h \
  1002   1004      $(TOP)\src\sqliteLimit.h \
  1003   1005      $(TOP)\src\vdbe.h \
  1004   1006      $(TOP)\src\vdbeInt.h \
  1005   1007      $(TOP)\src\whereInt.h

Changes to main.mk.

   129    129     $(TOP)/src/pager.c \
   130    130     $(TOP)/src/pager.h \
   131    131     $(TOP)/src/parse.y \
   132    132     $(TOP)/src/pcache.c \
   133    133     $(TOP)/src/pcache.h \
   134    134     $(TOP)/src/pcache1.c \
   135    135     $(TOP)/src/pragma.c \
          136  +  $(TOP)/src/pragma.h \
   136    137     $(TOP)/src/prepare.c \
   137    138     $(TOP)/src/printf.c \
   138    139     $(TOP)/src/random.c \
   139    140     $(TOP)/src/resolve.c \
   140    141     $(TOP)/src/rowset.c \
   141    142     $(TOP)/src/select.c \
   142    143     $(TOP)/src/status.c \
................................................................................
   352    353      $(TOP)/src/os.h \
   353    354      $(TOP)/src/os_common.h \
   354    355      $(TOP)/src/os_setup.h \
   355    356      $(TOP)/src/os_win.h \
   356    357      $(TOP)/src/pager.h \
   357    358      $(TOP)/src/pcache.h \
   358    359      parse.h  \
          360  +   $(TOP)/src/pragma.h \
   359    361      sqlite3.h  \
   360    362      $(TOP)/src/sqlite3ext.h \
   361    363      $(TOP)/src/sqliteInt.h  \
   362    364      $(TOP)/src/sqliteLimit.h \
   363    365      $(TOP)/src/vdbe.h \
   364    366      $(TOP)/src/vdbeInt.h \
   365    367      $(TOP)/src/whereInt.h

Changes to src/main.c.

  3613   3613       **
  3614   3614       ** If onOff==0 and tnum>0 then reset the schema for all databases, causing
  3615   3615       ** the schema to be reparsed the next time it is needed.  This has the
  3616   3616       ** effect of erasing all imposter tables.
  3617   3617       */
  3618   3618       case SQLITE_TESTCTRL_IMPOSTER: {
  3619   3619         sqlite3 *db = va_arg(ap, sqlite3*);
         3620  +      sqlite3_mutex_enter(db->mutex);
  3620   3621         db->init.iDb = sqlite3FindDbName(db, va_arg(ap,const char*));
  3621   3622         db->init.busy = db->init.imposterTable = va_arg(ap,int);
  3622   3623         db->init.newTnum = va_arg(ap,int);
  3623   3624         if( db->init.busy==0 && db->init.newTnum>0 ){
  3624   3625           sqlite3ResetAllSchemasOfConnection(db);
  3625   3626         }
         3627  +      sqlite3_mutex_leave(db->mutex);
  3626   3628         break;
  3627   3629       }
  3628   3630     }
  3629   3631     va_end(ap);
  3630   3632   #endif /* SQLITE_OMIT_BUILTIN_TEST */
  3631   3633     return rc;
  3632   3634   }

Changes to src/pragma.c.

    18     18   #    define SQLITE_ENABLE_LOCKING_STYLE 1
    19     19   #  else
    20     20   #    define SQLITE_ENABLE_LOCKING_STYLE 0
    21     21   #  endif
    22     22   #endif
    23     23   
    24     24   /***************************************************************************
    25         -** The next block of code, including the PragTyp_XXXX macro definitions and
    26         -** the aPragmaName[] object is composed of generated code. DO NOT EDIT.
    27         -**
    28         -** To add new pragmas, edit the code in ../tool/mkpragmatab.tcl and rerun
    29         -** that script.  Then copy/paste the output in place of the following:
    30         -*/
    31         -#define PragTyp_HEADER_VALUE                   0
    32         -#define PragTyp_AUTO_VACUUM                    1
    33         -#define PragTyp_FLAG                           2
    34         -#define PragTyp_BUSY_TIMEOUT                   3
    35         -#define PragTyp_CACHE_SIZE                     4
    36         -#define PragTyp_CASE_SENSITIVE_LIKE            5
    37         -#define PragTyp_COLLATION_LIST                 6
    38         -#define PragTyp_COMPILE_OPTIONS                7
    39         -#define PragTyp_DATA_STORE_DIRECTORY           8
    40         -#define PragTyp_DATABASE_LIST                  9
    41         -#define PragTyp_DEFAULT_CACHE_SIZE            10
    42         -#define PragTyp_ENCODING                      11
    43         -#define PragTyp_FOREIGN_KEY_CHECK             12
    44         -#define PragTyp_FOREIGN_KEY_LIST              13
    45         -#define PragTyp_INCREMENTAL_VACUUM            14
    46         -#define PragTyp_INDEX_INFO                    15
    47         -#define PragTyp_INDEX_LIST                    16
    48         -#define PragTyp_INTEGRITY_CHECK               17
    49         -#define PragTyp_JOURNAL_MODE                  18
    50         -#define PragTyp_JOURNAL_SIZE_LIMIT            19
    51         -#define PragTyp_LOCK_PROXY_FILE               20
    52         -#define PragTyp_LOCKING_MODE                  21
    53         -#define PragTyp_PAGE_COUNT                    22
    54         -#define PragTyp_MMAP_SIZE                     23
    55         -#define PragTyp_PAGE_SIZE                     24
    56         -#define PragTyp_SECURE_DELETE                 25
    57         -#define PragTyp_SHRINK_MEMORY                 26
    58         -#define PragTyp_SOFT_HEAP_LIMIT               27
    59         -#define PragTyp_STATS                         28
    60         -#define PragTyp_SYNCHRONOUS                   29
    61         -#define PragTyp_TABLE_INFO                    30
    62         -#define PragTyp_TEMP_STORE                    31
    63         -#define PragTyp_TEMP_STORE_DIRECTORY          32
    64         -#define PragTyp_THREADS                       33
    65         -#define PragTyp_WAL_AUTOCHECKPOINT            34
    66         -#define PragTyp_WAL_CHECKPOINT                35
    67         -#define PragTyp_ACTIVATE_EXTENSIONS           36
    68         -#define PragTyp_HEXKEY                        37
    69         -#define PragTyp_KEY                           38
    70         -#define PragTyp_REKEY                         39
    71         -#define PragTyp_LOCK_STATUS                   40
    72         -#define PragTyp_PARSER_TRACE                  41
    73         -#define PragFlag_NeedSchema           0x01
    74         -#define PragFlag_ReadOnly             0x02
    75         -static const struct sPragmaNames {
    76         -  const char *const zName;  /* Name of pragma */
    77         -  u8 ePragTyp;              /* PragTyp_XXX value */
    78         -  u8 mPragFlag;             /* Zero or more PragFlag_XXX values */
    79         -  u32 iArg;                 /* Extra argument */
    80         -} aPragmaNames[] = {
    81         -#if defined(SQLITE_HAS_CODEC) || defined(SQLITE_ENABLE_CEROD)
    82         -  { /* zName:     */ "activate_extensions",
    83         -    /* ePragTyp:  */ PragTyp_ACTIVATE_EXTENSIONS,
    84         -    /* ePragFlag: */ 0,
    85         -    /* iArg:      */ 0 },
    86         -#endif
    87         -#if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
    88         -  { /* zName:     */ "application_id",
    89         -    /* ePragTyp:  */ PragTyp_HEADER_VALUE,
    90         -    /* ePragFlag: */ 0,
    91         -    /* iArg:      */ BTREE_APPLICATION_ID },
    92         -#endif
    93         -#if !defined(SQLITE_OMIT_AUTOVACUUM)
    94         -  { /* zName:     */ "auto_vacuum",
    95         -    /* ePragTyp:  */ PragTyp_AUTO_VACUUM,
    96         -    /* ePragFlag: */ PragFlag_NeedSchema,
    97         -    /* iArg:      */ 0 },
    98         -#endif
    99         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   100         -#if !defined(SQLITE_OMIT_AUTOMATIC_INDEX)
   101         -  { /* zName:     */ "automatic_index",
   102         -    /* ePragTyp:  */ PragTyp_FLAG,
   103         -    /* ePragFlag: */ 0,
   104         -    /* iArg:      */ SQLITE_AutoIndex },
   105         -#endif
   106         -#endif
   107         -  { /* zName:     */ "busy_timeout",
   108         -    /* ePragTyp:  */ PragTyp_BUSY_TIMEOUT,
   109         -    /* ePragFlag: */ 0,
   110         -    /* iArg:      */ 0 },
   111         -#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
   112         -  { /* zName:     */ "cache_size",
   113         -    /* ePragTyp:  */ PragTyp_CACHE_SIZE,
   114         -    /* ePragFlag: */ PragFlag_NeedSchema,
   115         -    /* iArg:      */ 0 },
   116         -#endif
   117         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   118         -  { /* zName:     */ "cache_spill",
   119         -    /* ePragTyp:  */ PragTyp_FLAG,
   120         -    /* ePragFlag: */ 0,
   121         -    /* iArg:      */ SQLITE_CacheSpill },
   122         -#endif
   123         -  { /* zName:     */ "case_sensitive_like",
   124         -    /* ePragTyp:  */ PragTyp_CASE_SENSITIVE_LIKE,
   125         -    /* ePragFlag: */ 0,
   126         -    /* iArg:      */ 0 },
   127         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   128         -  { /* zName:     */ "checkpoint_fullfsync",
   129         -    /* ePragTyp:  */ PragTyp_FLAG,
   130         -    /* ePragFlag: */ 0,
   131         -    /* iArg:      */ SQLITE_CkptFullFSync },
   132         -#endif
   133         -#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
   134         -  { /* zName:     */ "collation_list",
   135         -    /* ePragTyp:  */ PragTyp_COLLATION_LIST,
   136         -    /* ePragFlag: */ 0,
   137         -    /* iArg:      */ 0 },
   138         -#endif
   139         -#if !defined(SQLITE_OMIT_COMPILEOPTION_DIAGS)
   140         -  { /* zName:     */ "compile_options",
   141         -    /* ePragTyp:  */ PragTyp_COMPILE_OPTIONS,
   142         -    /* ePragFlag: */ 0,
   143         -    /* iArg:      */ 0 },
   144         -#endif
   145         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   146         -  { /* zName:     */ "count_changes",
   147         -    /* ePragTyp:  */ PragTyp_FLAG,
   148         -    /* ePragFlag: */ 0,
   149         -    /* iArg:      */ SQLITE_CountRows },
   150         -#endif
   151         -#if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && SQLITE_OS_WIN
   152         -  { /* zName:     */ "data_store_directory",
   153         -    /* ePragTyp:  */ PragTyp_DATA_STORE_DIRECTORY,
   154         -    /* ePragFlag: */ 0,
   155         -    /* iArg:      */ 0 },
   156         -#endif
   157         -#if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
   158         -  { /* zName:     */ "data_version",
   159         -    /* ePragTyp:  */ PragTyp_HEADER_VALUE,
   160         -    /* ePragFlag: */ PragFlag_ReadOnly,
   161         -    /* iArg:      */ BTREE_DATA_VERSION },
   162         -#endif
   163         -#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
   164         -  { /* zName:     */ "database_list",
   165         -    /* ePragTyp:  */ PragTyp_DATABASE_LIST,
   166         -    /* ePragFlag: */ PragFlag_NeedSchema,
   167         -    /* iArg:      */ 0 },
   168         -#endif
   169         -#if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && !defined(SQLITE_OMIT_DEPRECATED)
   170         -  { /* zName:     */ "default_cache_size",
   171         -    /* ePragTyp:  */ PragTyp_DEFAULT_CACHE_SIZE,
   172         -    /* ePragFlag: */ PragFlag_NeedSchema,
   173         -    /* iArg:      */ 0 },
   174         -#endif
   175         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   176         -#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
   177         -  { /* zName:     */ "defer_foreign_keys",
   178         -    /* ePragTyp:  */ PragTyp_FLAG,
   179         -    /* ePragFlag: */ 0,
   180         -    /* iArg:      */ SQLITE_DeferFKs },
   181         -#endif
   182         -#endif
   183         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   184         -  { /* zName:     */ "empty_result_callbacks",
   185         -    /* ePragTyp:  */ PragTyp_FLAG,
   186         -    /* ePragFlag: */ 0,
   187         -    /* iArg:      */ SQLITE_NullCallback },
   188         -#endif
   189         -#if !defined(SQLITE_OMIT_UTF16)
   190         -  { /* zName:     */ "encoding",
   191         -    /* ePragTyp:  */ PragTyp_ENCODING,
   192         -    /* ePragFlag: */ 0,
   193         -    /* iArg:      */ 0 },
   194         -#endif
   195         -#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
   196         -  { /* zName:     */ "foreign_key_check",
   197         -    /* ePragTyp:  */ PragTyp_FOREIGN_KEY_CHECK,
   198         -    /* ePragFlag: */ PragFlag_NeedSchema,
   199         -    /* iArg:      */ 0 },
   200         -#endif
   201         -#if !defined(SQLITE_OMIT_FOREIGN_KEY)
   202         -  { /* zName:     */ "foreign_key_list",
   203         -    /* ePragTyp:  */ PragTyp_FOREIGN_KEY_LIST,
   204         -    /* ePragFlag: */ PragFlag_NeedSchema,
   205         -    /* iArg:      */ 0 },
   206         -#endif
   207         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   208         -#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
   209         -  { /* zName:     */ "foreign_keys",
   210         -    /* ePragTyp:  */ PragTyp_FLAG,
   211         -    /* ePragFlag: */ 0,
   212         -    /* iArg:      */ SQLITE_ForeignKeys },
   213         -#endif
   214         -#endif
   215         -#if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
   216         -  { /* zName:     */ "freelist_count",
   217         -    /* ePragTyp:  */ PragTyp_HEADER_VALUE,
   218         -    /* ePragFlag: */ PragFlag_ReadOnly,
   219         -    /* iArg:      */ BTREE_FREE_PAGE_COUNT },
   220         -#endif
   221         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   222         -  { /* zName:     */ "full_column_names",
   223         -    /* ePragTyp:  */ PragTyp_FLAG,
   224         -    /* ePragFlag: */ 0,
   225         -    /* iArg:      */ SQLITE_FullColNames },
   226         -  { /* zName:     */ "fullfsync",
   227         -    /* ePragTyp:  */ PragTyp_FLAG,
   228         -    /* ePragFlag: */ 0,
   229         -    /* iArg:      */ SQLITE_FullFSync },
   230         -#endif
   231         -#if defined(SQLITE_HAS_CODEC)
   232         -  { /* zName:     */ "hexkey",
   233         -    /* ePragTyp:  */ PragTyp_HEXKEY,
   234         -    /* ePragFlag: */ 0,
   235         -    /* iArg:      */ 0 },
   236         -  { /* zName:     */ "hexrekey",
   237         -    /* ePragTyp:  */ PragTyp_HEXKEY,
   238         -    /* ePragFlag: */ 0,
   239         -    /* iArg:      */ 0 },
   240         -#endif
   241         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   242         -#if !defined(SQLITE_OMIT_CHECK)
   243         -  { /* zName:     */ "ignore_check_constraints",
   244         -    /* ePragTyp:  */ PragTyp_FLAG,
   245         -    /* ePragFlag: */ 0,
   246         -    /* iArg:      */ SQLITE_IgnoreChecks },
   247         -#endif
   248         -#endif
   249         -#if !defined(SQLITE_OMIT_AUTOVACUUM)
   250         -  { /* zName:     */ "incremental_vacuum",
   251         -    /* ePragTyp:  */ PragTyp_INCREMENTAL_VACUUM,
   252         -    /* ePragFlag: */ PragFlag_NeedSchema,
   253         -    /* iArg:      */ 0 },
   254         -#endif
   255         -#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
   256         -  { /* zName:     */ "index_info",
   257         -    /* ePragTyp:  */ PragTyp_INDEX_INFO,
   258         -    /* ePragFlag: */ PragFlag_NeedSchema,
   259         -    /* iArg:      */ 0 },
   260         -  { /* zName:     */ "index_list",
   261         -    /* ePragTyp:  */ PragTyp_INDEX_LIST,
   262         -    /* ePragFlag: */ PragFlag_NeedSchema,
   263         -    /* iArg:      */ 0 },
   264         -  { /* zName:     */ "index_xinfo",
   265         -    /* ePragTyp:  */ PragTyp_INDEX_INFO,
   266         -    /* ePragFlag: */ PragFlag_NeedSchema,
   267         -    /* iArg:      */ 1 },
   268         -#endif
   269         -#if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
   270         -  { /* zName:     */ "integrity_check",
   271         -    /* ePragTyp:  */ PragTyp_INTEGRITY_CHECK,
   272         -    /* ePragFlag: */ PragFlag_NeedSchema,
   273         -    /* iArg:      */ 0 },
   274         -#endif
   275         -#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
   276         -  { /* zName:     */ "journal_mode",
   277         -    /* ePragTyp:  */ PragTyp_JOURNAL_MODE,
   278         -    /* ePragFlag: */ PragFlag_NeedSchema,
   279         -    /* iArg:      */ 0 },
   280         -  { /* zName:     */ "journal_size_limit",
   281         -    /* ePragTyp:  */ PragTyp_JOURNAL_SIZE_LIMIT,
   282         -    /* ePragFlag: */ 0,
   283         -    /* iArg:      */ 0 },
   284         -#endif
   285         -#if defined(SQLITE_HAS_CODEC)
   286         -  { /* zName:     */ "key",
   287         -    /* ePragTyp:  */ PragTyp_KEY,
   288         -    /* ePragFlag: */ 0,
   289         -    /* iArg:      */ 0 },
   290         -#endif
   291         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   292         -  { /* zName:     */ "legacy_file_format",
   293         -    /* ePragTyp:  */ PragTyp_FLAG,
   294         -    /* ePragFlag: */ 0,
   295         -    /* iArg:      */ SQLITE_LegacyFileFmt },
   296         -#endif
   297         -#if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && SQLITE_ENABLE_LOCKING_STYLE
   298         -  { /* zName:     */ "lock_proxy_file",
   299         -    /* ePragTyp:  */ PragTyp_LOCK_PROXY_FILE,
   300         -    /* ePragFlag: */ 0,
   301         -    /* iArg:      */ 0 },
   302         -#endif
   303         -#if defined(SQLITE_DEBUG) || defined(SQLITE_TEST)
   304         -  { /* zName:     */ "lock_status",
   305         -    /* ePragTyp:  */ PragTyp_LOCK_STATUS,
   306         -    /* ePragFlag: */ 0,
   307         -    /* iArg:      */ 0 },
   308         -#endif
   309         -#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
   310         -  { /* zName:     */ "locking_mode",
   311         -    /* ePragTyp:  */ PragTyp_LOCKING_MODE,
   312         -    /* ePragFlag: */ 0,
   313         -    /* iArg:      */ 0 },
   314         -  { /* zName:     */ "max_page_count",
   315         -    /* ePragTyp:  */ PragTyp_PAGE_COUNT,
   316         -    /* ePragFlag: */ PragFlag_NeedSchema,
   317         -    /* iArg:      */ 0 },
   318         -  { /* zName:     */ "mmap_size",
   319         -    /* ePragTyp:  */ PragTyp_MMAP_SIZE,
   320         -    /* ePragFlag: */ 0,
   321         -    /* iArg:      */ 0 },
   322         -  { /* zName:     */ "page_count",
   323         -    /* ePragTyp:  */ PragTyp_PAGE_COUNT,
   324         -    /* ePragFlag: */ PragFlag_NeedSchema,
   325         -    /* iArg:      */ 0 },
   326         -  { /* zName:     */ "page_size",
   327         -    /* ePragTyp:  */ PragTyp_PAGE_SIZE,
   328         -    /* ePragFlag: */ 0,
   329         -    /* iArg:      */ 0 },
   330         -#endif
   331         -#if defined(SQLITE_DEBUG)
   332         -  { /* zName:     */ "parser_trace",
   333         -    /* ePragTyp:  */ PragTyp_PARSER_TRACE,
   334         -    /* ePragFlag: */ 0,
   335         -    /* iArg:      */ 0 },
   336         -#endif
   337         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   338         -  { /* zName:     */ "query_only",
   339         -    /* ePragTyp:  */ PragTyp_FLAG,
   340         -    /* ePragFlag: */ 0,
   341         -    /* iArg:      */ SQLITE_QueryOnly },
   342         -#endif
   343         -#if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
   344         -  { /* zName:     */ "quick_check",
   345         -    /* ePragTyp:  */ PragTyp_INTEGRITY_CHECK,
   346         -    /* ePragFlag: */ PragFlag_NeedSchema,
   347         -    /* iArg:      */ 0 },
   348         -#endif
   349         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   350         -  { /* zName:     */ "read_uncommitted",
   351         -    /* ePragTyp:  */ PragTyp_FLAG,
   352         -    /* ePragFlag: */ 0,
   353         -    /* iArg:      */ SQLITE_ReadUncommitted },
   354         -  { /* zName:     */ "recursive_triggers",
   355         -    /* ePragTyp:  */ PragTyp_FLAG,
   356         -    /* ePragFlag: */ 0,
   357         -    /* iArg:      */ SQLITE_RecTriggers },
   358         -#endif
   359         -#if defined(SQLITE_HAS_CODEC)
   360         -  { /* zName:     */ "rekey",
   361         -    /* ePragTyp:  */ PragTyp_REKEY,
   362         -    /* ePragFlag: */ 0,
   363         -    /* iArg:      */ 0 },
   364         -#endif
   365         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   366         -  { /* zName:     */ "reverse_unordered_selects",
   367         -    /* ePragTyp:  */ PragTyp_FLAG,
   368         -    /* ePragFlag: */ 0,
   369         -    /* iArg:      */ SQLITE_ReverseOrder },
   370         -#endif
   371         -#if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
   372         -  { /* zName:     */ "schema_version",
   373         -    /* ePragTyp:  */ PragTyp_HEADER_VALUE,
   374         -    /* ePragFlag: */ 0,
   375         -    /* iArg:      */ BTREE_SCHEMA_VERSION },
   376         -#endif
   377         -#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
   378         -  { /* zName:     */ "secure_delete",
   379         -    /* ePragTyp:  */ PragTyp_SECURE_DELETE,
   380         -    /* ePragFlag: */ 0,
   381         -    /* iArg:      */ 0 },
   382         -#endif
   383         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   384         -  { /* zName:     */ "short_column_names",
   385         -    /* ePragTyp:  */ PragTyp_FLAG,
   386         -    /* ePragFlag: */ 0,
   387         -    /* iArg:      */ SQLITE_ShortColNames },
   388         -#endif
   389         -  { /* zName:     */ "shrink_memory",
   390         -    /* ePragTyp:  */ PragTyp_SHRINK_MEMORY,
   391         -    /* ePragFlag: */ 0,
   392         -    /* iArg:      */ 0 },
   393         -  { /* zName:     */ "soft_heap_limit",
   394         -    /* ePragTyp:  */ PragTyp_SOFT_HEAP_LIMIT,
   395         -    /* ePragFlag: */ 0,
   396         -    /* iArg:      */ 0 },
   397         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   398         -#if defined(SQLITE_DEBUG)
   399         -  { /* zName:     */ "sql_trace",
   400         -    /* ePragTyp:  */ PragTyp_FLAG,
   401         -    /* ePragFlag: */ 0,
   402         -    /* iArg:      */ SQLITE_SqlTrace },
   403         -#endif
   404         -#endif
   405         -#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
   406         -  { /* zName:     */ "stats",
   407         -    /* ePragTyp:  */ PragTyp_STATS,
   408         -    /* ePragFlag: */ PragFlag_NeedSchema,
   409         -    /* iArg:      */ 0 },
   410         -#endif
   411         -#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
   412         -  { /* zName:     */ "synchronous",
   413         -    /* ePragTyp:  */ PragTyp_SYNCHRONOUS,
   414         -    /* ePragFlag: */ PragFlag_NeedSchema,
   415         -    /* iArg:      */ 0 },
   416         -#endif
   417         -#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
   418         -  { /* zName:     */ "table_info",
   419         -    /* ePragTyp:  */ PragTyp_TABLE_INFO,
   420         -    /* ePragFlag: */ PragFlag_NeedSchema,
   421         -    /* iArg:      */ 0 },
   422         -#endif
   423         -#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
   424         -  { /* zName:     */ "temp_store",
   425         -    /* ePragTyp:  */ PragTyp_TEMP_STORE,
   426         -    /* ePragFlag: */ 0,
   427         -    /* iArg:      */ 0 },
   428         -  { /* zName:     */ "temp_store_directory",
   429         -    /* ePragTyp:  */ PragTyp_TEMP_STORE_DIRECTORY,
   430         -    /* ePragFlag: */ 0,
   431         -    /* iArg:      */ 0 },
   432         -#endif
   433         -  { /* zName:     */ "threads",
   434         -    /* ePragTyp:  */ PragTyp_THREADS,
   435         -    /* ePragFlag: */ 0,
   436         -    /* iArg:      */ 0 },
   437         -#if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
   438         -  { /* zName:     */ "user_version",
   439         -    /* ePragTyp:  */ PragTyp_HEADER_VALUE,
   440         -    /* ePragFlag: */ 0,
   441         -    /* iArg:      */ BTREE_USER_VERSION },
   442         -#endif
   443         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   444         -#if defined(SQLITE_DEBUG)
   445         -  { /* zName:     */ "vdbe_addoptrace",
   446         -    /* ePragTyp:  */ PragTyp_FLAG,
   447         -    /* ePragFlag: */ 0,
   448         -    /* iArg:      */ SQLITE_VdbeAddopTrace },
   449         -  { /* zName:     */ "vdbe_debug",
   450         -    /* ePragTyp:  */ PragTyp_FLAG,
   451         -    /* ePragFlag: */ 0,
   452         -    /* iArg:      */ SQLITE_SqlTrace|SQLITE_VdbeListing|SQLITE_VdbeTrace },
   453         -  { /* zName:     */ "vdbe_eqp",
   454         -    /* ePragTyp:  */ PragTyp_FLAG,
   455         -    /* ePragFlag: */ 0,
   456         -    /* iArg:      */ SQLITE_VdbeEQP },
   457         -  { /* zName:     */ "vdbe_listing",
   458         -    /* ePragTyp:  */ PragTyp_FLAG,
   459         -    /* ePragFlag: */ 0,
   460         -    /* iArg:      */ SQLITE_VdbeListing },
   461         -  { /* zName:     */ "vdbe_trace",
   462         -    /* ePragTyp:  */ PragTyp_FLAG,
   463         -    /* ePragFlag: */ 0,
   464         -    /* iArg:      */ SQLITE_VdbeTrace },
   465         -#endif
   466         -#endif
   467         -#if !defined(SQLITE_OMIT_WAL)
   468         -  { /* zName:     */ "wal_autocheckpoint",
   469         -    /* ePragTyp:  */ PragTyp_WAL_AUTOCHECKPOINT,
   470         -    /* ePragFlag: */ 0,
   471         -    /* iArg:      */ 0 },
   472         -  { /* zName:     */ "wal_checkpoint",
   473         -    /* ePragTyp:  */ PragTyp_WAL_CHECKPOINT,
   474         -    /* ePragFlag: */ PragFlag_NeedSchema,
   475         -    /* iArg:      */ 0 },
   476         -#endif
   477         -#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
   478         -  { /* zName:     */ "writable_schema",
   479         -    /* ePragTyp:  */ PragTyp_FLAG,
   480         -    /* ePragFlag: */ 0,
   481         -    /* iArg:      */ SQLITE_WriteSchema|SQLITE_RecoveryMode },
   482         -#endif
   483         -};
   484         -/* Number of pragmas: 59 on by default, 72 total. */
   485         -/* End of the automatically generated pragma table.
   486         -***************************************************************************/
           25  +** The "pragma.h" include file is an automatically generated file that
           26  +** that includes the PragType_XXXX macro definitions and the aPragmaName[]
           27  +** object.  This ensures that the aPragmaName[] table is arranged in
           28  +** lexicographical order to facility a binary search of the pragma name.
           29  +** Do not edit pragma.h directly.  Edit and rerun the script in at 
           30  +** ../tool/mkpragmatab.tcl. */
           31  +#include "pragma.h"
   487     32   
   488     33   /*
   489     34   ** Interpret the given string as a safety level.  Return 0 for OFF,
   490     35   ** 1 for ON or NORMAL and 2 for FULL.  Return 1 for an empty or 
   491     36   ** unrecognized string argument.  The FULL option is disallowed
   492     37   ** if the omitFull parameter it 1.
   493     38   **

Added src/pragma.h.

            1  +/* DO NOT EDIT!
            2  +** This file is automatically generated by the script at
            3  +** ../tool/mkpragmatab.tcl.  To update the set of pragmas, edit
            4  +** that script and rerun it.
            5  +*/
            6  +#define PragTyp_HEADER_VALUE                   0
            7  +#define PragTyp_AUTO_VACUUM                    1
            8  +#define PragTyp_FLAG                           2
            9  +#define PragTyp_BUSY_TIMEOUT                   3
           10  +#define PragTyp_CACHE_SIZE                     4
           11  +#define PragTyp_CASE_SENSITIVE_LIKE            5
           12  +#define PragTyp_COLLATION_LIST                 6
           13  +#define PragTyp_COMPILE_OPTIONS                7
           14  +#define PragTyp_DATA_STORE_DIRECTORY           8
           15  +#define PragTyp_DATABASE_LIST                  9
           16  +#define PragTyp_DEFAULT_CACHE_SIZE            10
           17  +#define PragTyp_ENCODING                      11
           18  +#define PragTyp_FOREIGN_KEY_CHECK             12
           19  +#define PragTyp_FOREIGN_KEY_LIST              13
           20  +#define PragTyp_INCREMENTAL_VACUUM            14
           21  +#define PragTyp_INDEX_INFO                    15
           22  +#define PragTyp_INDEX_LIST                    16
           23  +#define PragTyp_INTEGRITY_CHECK               17
           24  +#define PragTyp_JOURNAL_MODE                  18
           25  +#define PragTyp_JOURNAL_SIZE_LIMIT            19
           26  +#define PragTyp_LOCK_PROXY_FILE               20
           27  +#define PragTyp_LOCKING_MODE                  21
           28  +#define PragTyp_PAGE_COUNT                    22
           29  +#define PragTyp_MMAP_SIZE                     23
           30  +#define PragTyp_PAGE_SIZE                     24
           31  +#define PragTyp_SECURE_DELETE                 25
           32  +#define PragTyp_SHRINK_MEMORY                 26
           33  +#define PragTyp_SOFT_HEAP_LIMIT               27
           34  +#define PragTyp_STATS                         28
           35  +#define PragTyp_SYNCHRONOUS                   29
           36  +#define PragTyp_TABLE_INFO                    30
           37  +#define PragTyp_TEMP_STORE                    31
           38  +#define PragTyp_TEMP_STORE_DIRECTORY          32
           39  +#define PragTyp_THREADS                       33
           40  +#define PragTyp_WAL_AUTOCHECKPOINT            34
           41  +#define PragTyp_WAL_CHECKPOINT                35
           42  +#define PragTyp_ACTIVATE_EXTENSIONS           36
           43  +#define PragTyp_HEXKEY                        37
           44  +#define PragTyp_KEY                           38
           45  +#define PragTyp_REKEY                         39
           46  +#define PragTyp_LOCK_STATUS                   40
           47  +#define PragTyp_PARSER_TRACE                  41
           48  +#define PragFlag_NeedSchema           0x01
           49  +#define PragFlag_ReadOnly             0x02
           50  +static const struct sPragmaNames {
           51  +  const char *const zName;  /* Name of pragma */
           52  +  u8 ePragTyp;              /* PragTyp_XXX value */
           53  +  u8 mPragFlag;             /* Zero or more PragFlag_XXX values */
           54  +  u32 iArg;                 /* Extra argument */
           55  +} aPragmaNames[] = {
           56  +#if defined(SQLITE_HAS_CODEC) || defined(SQLITE_ENABLE_CEROD)
           57  +  { /* zName:     */ "activate_extensions",
           58  +    /* ePragTyp:  */ PragTyp_ACTIVATE_EXTENSIONS,
           59  +    /* ePragFlag: */ 0,
           60  +    /* iArg:      */ 0 },
           61  +#endif
           62  +#if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
           63  +  { /* zName:     */ "application_id",
           64  +    /* ePragTyp:  */ PragTyp_HEADER_VALUE,
           65  +    /* ePragFlag: */ 0,
           66  +    /* iArg:      */ BTREE_APPLICATION_ID },
           67  +#endif
           68  +#if !defined(SQLITE_OMIT_AUTOVACUUM)
           69  +  { /* zName:     */ "auto_vacuum",
           70  +    /* ePragTyp:  */ PragTyp_AUTO_VACUUM,
           71  +    /* ePragFlag: */ PragFlag_NeedSchema,
           72  +    /* iArg:      */ 0 },
           73  +#endif
           74  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
           75  +#if !defined(SQLITE_OMIT_AUTOMATIC_INDEX)
           76  +  { /* zName:     */ "automatic_index",
           77  +    /* ePragTyp:  */ PragTyp_FLAG,
           78  +    /* ePragFlag: */ 0,
           79  +    /* iArg:      */ SQLITE_AutoIndex },
           80  +#endif
           81  +#endif
           82  +  { /* zName:     */ "busy_timeout",
           83  +    /* ePragTyp:  */ PragTyp_BUSY_TIMEOUT,
           84  +    /* ePragFlag: */ 0,
           85  +    /* iArg:      */ 0 },
           86  +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
           87  +  { /* zName:     */ "cache_size",
           88  +    /* ePragTyp:  */ PragTyp_CACHE_SIZE,
           89  +    /* ePragFlag: */ PragFlag_NeedSchema,
           90  +    /* iArg:      */ 0 },
           91  +#endif
           92  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
           93  +  { /* zName:     */ "cache_spill",
           94  +    /* ePragTyp:  */ PragTyp_FLAG,
           95  +    /* ePragFlag: */ 0,
           96  +    /* iArg:      */ SQLITE_CacheSpill },
           97  +#endif
           98  +  { /* zName:     */ "case_sensitive_like",
           99  +    /* ePragTyp:  */ PragTyp_CASE_SENSITIVE_LIKE,
          100  +    /* ePragFlag: */ 0,
          101  +    /* iArg:      */ 0 },
          102  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          103  +  { /* zName:     */ "checkpoint_fullfsync",
          104  +    /* ePragTyp:  */ PragTyp_FLAG,
          105  +    /* ePragFlag: */ 0,
          106  +    /* iArg:      */ SQLITE_CkptFullFSync },
          107  +#endif
          108  +#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
          109  +  { /* zName:     */ "collation_list",
          110  +    /* ePragTyp:  */ PragTyp_COLLATION_LIST,
          111  +    /* ePragFlag: */ 0,
          112  +    /* iArg:      */ 0 },
          113  +#endif
          114  +#if !defined(SQLITE_OMIT_COMPILEOPTION_DIAGS)
          115  +  { /* zName:     */ "compile_options",
          116  +    /* ePragTyp:  */ PragTyp_COMPILE_OPTIONS,
          117  +    /* ePragFlag: */ 0,
          118  +    /* iArg:      */ 0 },
          119  +#endif
          120  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          121  +  { /* zName:     */ "count_changes",
          122  +    /* ePragTyp:  */ PragTyp_FLAG,
          123  +    /* ePragFlag: */ 0,
          124  +    /* iArg:      */ SQLITE_CountRows },
          125  +#endif
          126  +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && SQLITE_OS_WIN
          127  +  { /* zName:     */ "data_store_directory",
          128  +    /* ePragTyp:  */ PragTyp_DATA_STORE_DIRECTORY,
          129  +    /* ePragFlag: */ 0,
          130  +    /* iArg:      */ 0 },
          131  +#endif
          132  +#if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
          133  +  { /* zName:     */ "data_version",
          134  +    /* ePragTyp:  */ PragTyp_HEADER_VALUE,
          135  +    /* ePragFlag: */ PragFlag_ReadOnly,
          136  +    /* iArg:      */ BTREE_DATA_VERSION },
          137  +#endif
          138  +#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
          139  +  { /* zName:     */ "database_list",
          140  +    /* ePragTyp:  */ PragTyp_DATABASE_LIST,
          141  +    /* ePragFlag: */ PragFlag_NeedSchema,
          142  +    /* iArg:      */ 0 },
          143  +#endif
          144  +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && !defined(SQLITE_OMIT_DEPRECATED)
          145  +  { /* zName:     */ "default_cache_size",
          146  +    /* ePragTyp:  */ PragTyp_DEFAULT_CACHE_SIZE,
          147  +    /* ePragFlag: */ PragFlag_NeedSchema,
          148  +    /* iArg:      */ 0 },
          149  +#endif
          150  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          151  +#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
          152  +  { /* zName:     */ "defer_foreign_keys",
          153  +    /* ePragTyp:  */ PragTyp_FLAG,
          154  +    /* ePragFlag: */ 0,
          155  +    /* iArg:      */ SQLITE_DeferFKs },
          156  +#endif
          157  +#endif
          158  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          159  +  { /* zName:     */ "empty_result_callbacks",
          160  +    /* ePragTyp:  */ PragTyp_FLAG,
          161  +    /* ePragFlag: */ 0,
          162  +    /* iArg:      */ SQLITE_NullCallback },
          163  +#endif
          164  +#if !defined(SQLITE_OMIT_UTF16)
          165  +  { /* zName:     */ "encoding",
          166  +    /* ePragTyp:  */ PragTyp_ENCODING,
          167  +    /* ePragFlag: */ 0,
          168  +    /* iArg:      */ 0 },
          169  +#endif
          170  +#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
          171  +  { /* zName:     */ "foreign_key_check",
          172  +    /* ePragTyp:  */ PragTyp_FOREIGN_KEY_CHECK,
          173  +    /* ePragFlag: */ PragFlag_NeedSchema,
          174  +    /* iArg:      */ 0 },
          175  +#endif
          176  +#if !defined(SQLITE_OMIT_FOREIGN_KEY)
          177  +  { /* zName:     */ "foreign_key_list",
          178  +    /* ePragTyp:  */ PragTyp_FOREIGN_KEY_LIST,
          179  +    /* ePragFlag: */ PragFlag_NeedSchema,
          180  +    /* iArg:      */ 0 },
          181  +#endif
          182  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          183  +#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
          184  +  { /* zName:     */ "foreign_keys",
          185  +    /* ePragTyp:  */ PragTyp_FLAG,
          186  +    /* ePragFlag: */ 0,
          187  +    /* iArg:      */ SQLITE_ForeignKeys },
          188  +#endif
          189  +#endif
          190  +#if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
          191  +  { /* zName:     */ "freelist_count",
          192  +    /* ePragTyp:  */ PragTyp_HEADER_VALUE,
          193  +    /* ePragFlag: */ PragFlag_ReadOnly,
          194  +    /* iArg:      */ BTREE_FREE_PAGE_COUNT },
          195  +#endif
          196  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          197  +  { /* zName:     */ "full_column_names",
          198  +    /* ePragTyp:  */ PragTyp_FLAG,
          199  +    /* ePragFlag: */ 0,
          200  +    /* iArg:      */ SQLITE_FullColNames },
          201  +  { /* zName:     */ "fullfsync",
          202  +    /* ePragTyp:  */ PragTyp_FLAG,
          203  +    /* ePragFlag: */ 0,
          204  +    /* iArg:      */ SQLITE_FullFSync },
          205  +#endif
          206  +#if defined(SQLITE_HAS_CODEC)
          207  +  { /* zName:     */ "hexkey",
          208  +    /* ePragTyp:  */ PragTyp_HEXKEY,
          209  +    /* ePragFlag: */ 0,
          210  +    /* iArg:      */ 0 },
          211  +  { /* zName:     */ "hexrekey",
          212  +    /* ePragTyp:  */ PragTyp_HEXKEY,
          213  +    /* ePragFlag: */ 0,
          214  +    /* iArg:      */ 0 },
          215  +#endif
          216  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          217  +#if !defined(SQLITE_OMIT_CHECK)
          218  +  { /* zName:     */ "ignore_check_constraints",
          219  +    /* ePragTyp:  */ PragTyp_FLAG,
          220  +    /* ePragFlag: */ 0,
          221  +    /* iArg:      */ SQLITE_IgnoreChecks },
          222  +#endif
          223  +#endif
          224  +#if !defined(SQLITE_OMIT_AUTOVACUUM)
          225  +  { /* zName:     */ "incremental_vacuum",
          226  +    /* ePragTyp:  */ PragTyp_INCREMENTAL_VACUUM,
          227  +    /* ePragFlag: */ PragFlag_NeedSchema,
          228  +    /* iArg:      */ 0 },
          229  +#endif
          230  +#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
          231  +  { /* zName:     */ "index_info",
          232  +    /* ePragTyp:  */ PragTyp_INDEX_INFO,
          233  +    /* ePragFlag: */ PragFlag_NeedSchema,
          234  +    /* iArg:      */ 0 },
          235  +  { /* zName:     */ "index_list",
          236  +    /* ePragTyp:  */ PragTyp_INDEX_LIST,
          237  +    /* ePragFlag: */ PragFlag_NeedSchema,
          238  +    /* iArg:      */ 0 },
          239  +  { /* zName:     */ "index_xinfo",
          240  +    /* ePragTyp:  */ PragTyp_INDEX_INFO,
          241  +    /* ePragFlag: */ PragFlag_NeedSchema,
          242  +    /* iArg:      */ 1 },
          243  +#endif
          244  +#if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
          245  +  { /* zName:     */ "integrity_check",
          246  +    /* ePragTyp:  */ PragTyp_INTEGRITY_CHECK,
          247  +    /* ePragFlag: */ PragFlag_NeedSchema,
          248  +    /* iArg:      */ 0 },
          249  +#endif
          250  +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
          251  +  { /* zName:     */ "journal_mode",
          252  +    /* ePragTyp:  */ PragTyp_JOURNAL_MODE,
          253  +    /* ePragFlag: */ PragFlag_NeedSchema,
          254  +    /* iArg:      */ 0 },
          255  +  { /* zName:     */ "journal_size_limit",
          256  +    /* ePragTyp:  */ PragTyp_JOURNAL_SIZE_LIMIT,
          257  +    /* ePragFlag: */ 0,
          258  +    /* iArg:      */ 0 },
          259  +#endif
          260  +#if defined(SQLITE_HAS_CODEC)
          261  +  { /* zName:     */ "key",
          262  +    /* ePragTyp:  */ PragTyp_KEY,
          263  +    /* ePragFlag: */ 0,
          264  +    /* iArg:      */ 0 },
          265  +#endif
          266  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          267  +  { /* zName:     */ "legacy_file_format",
          268  +    /* ePragTyp:  */ PragTyp_FLAG,
          269  +    /* ePragFlag: */ 0,
          270  +    /* iArg:      */ SQLITE_LegacyFileFmt },
          271  +#endif
          272  +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && SQLITE_ENABLE_LOCKING_STYLE
          273  +  { /* zName:     */ "lock_proxy_file",
          274  +    /* ePragTyp:  */ PragTyp_LOCK_PROXY_FILE,
          275  +    /* ePragFlag: */ 0,
          276  +    /* iArg:      */ 0 },
          277  +#endif
          278  +#if defined(SQLITE_DEBUG) || defined(SQLITE_TEST)
          279  +  { /* zName:     */ "lock_status",
          280  +    /* ePragTyp:  */ PragTyp_LOCK_STATUS,
          281  +    /* ePragFlag: */ 0,
          282  +    /* iArg:      */ 0 },
          283  +#endif
          284  +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
          285  +  { /* zName:     */ "locking_mode",
          286  +    /* ePragTyp:  */ PragTyp_LOCKING_MODE,
          287  +    /* ePragFlag: */ 0,
          288  +    /* iArg:      */ 0 },
          289  +  { /* zName:     */ "max_page_count",
          290  +    /* ePragTyp:  */ PragTyp_PAGE_COUNT,
          291  +    /* ePragFlag: */ PragFlag_NeedSchema,
          292  +    /* iArg:      */ 0 },
          293  +  { /* zName:     */ "mmap_size",
          294  +    /* ePragTyp:  */ PragTyp_MMAP_SIZE,
          295  +    /* ePragFlag: */ 0,
          296  +    /* iArg:      */ 0 },
          297  +  { /* zName:     */ "page_count",
          298  +    /* ePragTyp:  */ PragTyp_PAGE_COUNT,
          299  +    /* ePragFlag: */ PragFlag_NeedSchema,
          300  +    /* iArg:      */ 0 },
          301  +  { /* zName:     */ "page_size",
          302  +    /* ePragTyp:  */ PragTyp_PAGE_SIZE,
          303  +    /* ePragFlag: */ 0,
          304  +    /* iArg:      */ 0 },
          305  +#endif
          306  +#if defined(SQLITE_DEBUG)
          307  +  { /* zName:     */ "parser_trace",
          308  +    /* ePragTyp:  */ PragTyp_PARSER_TRACE,
          309  +    /* ePragFlag: */ 0,
          310  +    /* iArg:      */ 0 },
          311  +#endif
          312  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          313  +  { /* zName:     */ "query_only",
          314  +    /* ePragTyp:  */ PragTyp_FLAG,
          315  +    /* ePragFlag: */ 0,
          316  +    /* iArg:      */ SQLITE_QueryOnly },
          317  +#endif
          318  +#if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
          319  +  { /* zName:     */ "quick_check",
          320  +    /* ePragTyp:  */ PragTyp_INTEGRITY_CHECK,
          321  +    /* ePragFlag: */ PragFlag_NeedSchema,
          322  +    /* iArg:      */ 0 },
          323  +#endif
          324  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          325  +  { /* zName:     */ "read_uncommitted",
          326  +    /* ePragTyp:  */ PragTyp_FLAG,
          327  +    /* ePragFlag: */ 0,
          328  +    /* iArg:      */ SQLITE_ReadUncommitted },
          329  +  { /* zName:     */ "recursive_triggers",
          330  +    /* ePragTyp:  */ PragTyp_FLAG,
          331  +    /* ePragFlag: */ 0,
          332  +    /* iArg:      */ SQLITE_RecTriggers },
          333  +#endif
          334  +#if defined(SQLITE_HAS_CODEC)
          335  +  { /* zName:     */ "rekey",
          336  +    /* ePragTyp:  */ PragTyp_REKEY,
          337  +    /* ePragFlag: */ 0,
          338  +    /* iArg:      */ 0 },
          339  +#endif
          340  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          341  +  { /* zName:     */ "reverse_unordered_selects",
          342  +    /* ePragTyp:  */ PragTyp_FLAG,
          343  +    /* ePragFlag: */ 0,
          344  +    /* iArg:      */ SQLITE_ReverseOrder },
          345  +#endif
          346  +#if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
          347  +  { /* zName:     */ "schema_version",
          348  +    /* ePragTyp:  */ PragTyp_HEADER_VALUE,
          349  +    /* ePragFlag: */ 0,
          350  +    /* iArg:      */ BTREE_SCHEMA_VERSION },
          351  +#endif
          352  +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
          353  +  { /* zName:     */ "secure_delete",
          354  +    /* ePragTyp:  */ PragTyp_SECURE_DELETE,
          355  +    /* ePragFlag: */ 0,
          356  +    /* iArg:      */ 0 },
          357  +#endif
          358  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          359  +  { /* zName:     */ "short_column_names",
          360  +    /* ePragTyp:  */ PragTyp_FLAG,
          361  +    /* ePragFlag: */ 0,
          362  +    /* iArg:      */ SQLITE_ShortColNames },
          363  +#endif
          364  +  { /* zName:     */ "shrink_memory",
          365  +    /* ePragTyp:  */ PragTyp_SHRINK_MEMORY,
          366  +    /* ePragFlag: */ 0,
          367  +    /* iArg:      */ 0 },
          368  +  { /* zName:     */ "soft_heap_limit",
          369  +    /* ePragTyp:  */ PragTyp_SOFT_HEAP_LIMIT,
          370  +    /* ePragFlag: */ 0,
          371  +    /* iArg:      */ 0 },
          372  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          373  +#if defined(SQLITE_DEBUG)
          374  +  { /* zName:     */ "sql_trace",
          375  +    /* ePragTyp:  */ PragTyp_FLAG,
          376  +    /* ePragFlag: */ 0,
          377  +    /* iArg:      */ SQLITE_SqlTrace },
          378  +#endif
          379  +#endif
          380  +#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
          381  +  { /* zName:     */ "stats",
          382  +    /* ePragTyp:  */ PragTyp_STATS,
          383  +    /* ePragFlag: */ PragFlag_NeedSchema,
          384  +    /* iArg:      */ 0 },
          385  +#endif
          386  +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
          387  +  { /* zName:     */ "synchronous",
          388  +    /* ePragTyp:  */ PragTyp_SYNCHRONOUS,
          389  +    /* ePragFlag: */ PragFlag_NeedSchema,
          390  +    /* iArg:      */ 0 },
          391  +#endif
          392  +#if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
          393  +  { /* zName:     */ "table_info",
          394  +    /* ePragTyp:  */ PragTyp_TABLE_INFO,
          395  +    /* ePragFlag: */ PragFlag_NeedSchema,
          396  +    /* iArg:      */ 0 },
          397  +#endif
          398  +#if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
          399  +  { /* zName:     */ "temp_store",
          400  +    /* ePragTyp:  */ PragTyp_TEMP_STORE,
          401  +    /* ePragFlag: */ 0,
          402  +    /* iArg:      */ 0 },
          403  +  { /* zName:     */ "temp_store_directory",
          404  +    /* ePragTyp:  */ PragTyp_TEMP_STORE_DIRECTORY,
          405  +    /* ePragFlag: */ 0,
          406  +    /* iArg:      */ 0 },
          407  +#endif
          408  +  { /* zName:     */ "threads",
          409  +    /* ePragTyp:  */ PragTyp_THREADS,
          410  +    /* ePragFlag: */ 0,
          411  +    /* iArg:      */ 0 },
          412  +#if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
          413  +  { /* zName:     */ "user_version",
          414  +    /* ePragTyp:  */ PragTyp_HEADER_VALUE,
          415  +    /* ePragFlag: */ 0,
          416  +    /* iArg:      */ BTREE_USER_VERSION },
          417  +#endif
          418  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          419  +#if defined(SQLITE_DEBUG)
          420  +  { /* zName:     */ "vdbe_addoptrace",
          421  +    /* ePragTyp:  */ PragTyp_FLAG,
          422  +    /* ePragFlag: */ 0,
          423  +    /* iArg:      */ SQLITE_VdbeAddopTrace },
          424  +  { /* zName:     */ "vdbe_debug",
          425  +    /* ePragTyp:  */ PragTyp_FLAG,
          426  +    /* ePragFlag: */ 0,
          427  +    /* iArg:      */ SQLITE_SqlTrace|SQLITE_VdbeListing|SQLITE_VdbeTrace },
          428  +  { /* zName:     */ "vdbe_eqp",
          429  +    /* ePragTyp:  */ PragTyp_FLAG,
          430  +    /* ePragFlag: */ 0,
          431  +    /* iArg:      */ SQLITE_VdbeEQP },
          432  +  { /* zName:     */ "vdbe_listing",
          433  +    /* ePragTyp:  */ PragTyp_FLAG,
          434  +    /* ePragFlag: */ 0,
          435  +    /* iArg:      */ SQLITE_VdbeListing },
          436  +  { /* zName:     */ "vdbe_trace",
          437  +    /* ePragTyp:  */ PragTyp_FLAG,
          438  +    /* ePragFlag: */ 0,
          439  +    /* iArg:      */ SQLITE_VdbeTrace },
          440  +#endif
          441  +#endif
          442  +#if !defined(SQLITE_OMIT_WAL)
          443  +  { /* zName:     */ "wal_autocheckpoint",
          444  +    /* ePragTyp:  */ PragTyp_WAL_AUTOCHECKPOINT,
          445  +    /* ePragFlag: */ 0,
          446  +    /* iArg:      */ 0 },
          447  +  { /* zName:     */ "wal_checkpoint",
          448  +    /* ePragTyp:  */ PragTyp_WAL_CHECKPOINT,
          449  +    /* ePragFlag: */ PragFlag_NeedSchema,
          450  +    /* iArg:      */ 0 },
          451  +#endif
          452  +#if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
          453  +  { /* zName:     */ "writable_schema",
          454  +    /* ePragTyp:  */ PragTyp_FLAG,
          455  +    /* ePragFlag: */ 0,
          456  +    /* iArg:      */ SQLITE_WriteSchema|SQLITE_RecoveryMode },
          457  +#endif
          458  +};
          459  +/* Number of pragmas: 59 on by default, 72 total. */

Changes to test/pragma.test.

  1739   1739       DROP INDEX i2;
  1740   1740       CREATE INDEX i2 ON t1(c,d,b);
  1741   1741     }
  1742   1742     capture_pragma db2 out {PRAGMA index_info(i2)}
  1743   1743     db2 eval {SELECT cid, name, "desc", coll, "key", '|' FROM out ORDER BY seqno}
  1744   1744   } {2 c 0 BINARY 1 | 3 d 0 BINARY 1 | 1 b 0 BINARY 1 |}
  1745   1745   do_test 23.2b {
         1746  +breakpoint;
  1746   1747     capture_pragma db2 out {PRAGMA index_xinfo(i2)}
  1747   1748     db2 eval {SELECT cid, name, "desc", coll, "key", '|' FROM out ORDER BY seqno}
  1748   1749   } {2 c 0 BINARY 1 | 3 d 0 BINARY 1 | 1 b 0 BINARY 1 | -1 {} 0 BINARY 0 |}
  1749   1750   do_test 23.3 {
  1750   1751     db eval {
  1751   1752       CREATE INDEX i3 ON t1(d,b,c);
  1752   1753     }

Changes to test/speedtest1.c.

     8      8     "Options:\n"
     9      9     "  --autovacuum        Enable AUTOVACUUM mode\n"
    10     10     "  --cachesize N       Set the cache size to N\n" 
    11     11     "  --exclusive         Enable locking_mode=EXCLUSIVE\n"
    12     12     "  --explain           Like --sqlonly but with added EXPLAIN keywords\n"
    13     13     "  --heap SZ MIN       Memory allocator uses SZ bytes & min allocation MIN\n"
    14     14     "  --incrvacuum        Enable incremenatal vacuum mode\n"
    15         -  "  --journalmode M     Set the journal_mode to MODE\n"
           15  +  "  --journal M         Set the journal_mode to M\n"
    16     16     "  --key KEY           Set the encryption key to KEY\n"
    17     17     "  --lookaside N SZ    Configure lookaside for N slots of SZ bytes each\n"
    18     18     "  --nosync            Set PRAGMA synchronous=OFF\n"
    19     19     "  --notnull           Add NOT NULL constraints to table columns\n"
    20     20     "  --pagesize N        Set the page size to N\n"
    21     21     "  --pcache N SZ       Configure N pages of pagecache each of size SZ bytes\n"
    22     22     "  --primarykey        Use PRIMARY KEY instead of UNIQUE where appropriate\n"

Changes to tool/mkpragmatab.tcl.

     1      1   #!/usr/bin/tclsh
     2      2   #
     3      3   # Run this script to generate the pragma name lookup table C code.
     4      4   #
     5      5   # To add new pragmas, first add the name and other relevant attributes
     6      6   # of the pragma to the "pragma_def" object below.  Then run this script
     7         -# to generate the C-code for the lookup table and copy/paste the output
     8         -# of this script into the appropriate spot in the pragma.c source file.
            7  +# to generate the ../src/pragma.h header file that contains macros and
            8  +# the lookup table needed for pragma name lookup in the pragma.c module.
     9      9   # Then add the extra "case PragTyp_XXXXX:" and subsequent code for the
    10         -# new pragma.
           10  +# new pragma in ../src/pragma.c.
    11     11   #
    12     12   
    13     13   set pragma_def {
    14     14     NAME: full_column_names
    15     15     TYPE: FLAG
    16     16     ARG:  SQLITE_FullColNames
    17     17     IF:   !defined(SQLITE_OMIT_FLAG_PRAGMAS)
................................................................................
   312    312     NAME: activate_extensions
   313    313     IF:   defined(SQLITE_HAS_CODEC) || defined(SQLITE_ENABLE_CEROD)
   314    314   
   315    315     NAME: soft_heap_limit
   316    316   
   317    317     NAME: threads
   318    318   }
   319         -fconfigure stdout -translation lf
          319  +
          320  +# Open the output file
          321  +#
          322  +set destfile "[file dir [file dir [file normal $argv0]]]/src/pragma.h"
          323  +puts "Overwriting $destfile with new pragma table..."
          324  +set fd [open $destfile wb]
          325  +puts $fd {/* DO NOT EDIT!
          326  +** This file is automatically generated by the script at
          327  +** ../tool/mkpragmatab.tcl.  To update the set of pragmas, edit
          328  +** that script and rerun it.
          329  +*/}
          330  +
          331  +# Parse the PRAGMA table above.
          332  +#
   320    333   set name {}
   321    334   set type {}
   322    335   set if {}
   323    336   set flags {}
   324    337   set arg 0
   325    338   proc record_one {} {
   326    339     global name type if arg allbyname typebyif flags
................................................................................
   366    379   set pnum 0
   367    380   foreach name $allnames {
   368    381     set type [lindex $allbyname($name) 0]
   369    382     if {[info exists seentype($type)]} continue
   370    383     set if [lindex $allbyname($name) 2]
   371    384     if {[regexp SQLITE_DEBUG $if] || [regexp SQLITE_HAS_CODEC $if]} continue
   372    385     set seentype($type) 1
   373         -  puts [format {#define %-35s %4d} PragTyp_$type $pnum]
          386  +  puts $fd [format {#define %-35s %4d} PragTyp_$type $pnum]
   374    387     incr pnum
   375    388   }
   376    389   foreach name $allnames {
   377    390     set type [lindex $allbyname($name) 0]
   378    391     if {[info exists seentype($type)]} continue
   379    392     set if [lindex $allbyname($name) 2]
   380    393     if {[regexp SQLITE_DEBUG $if]} continue
   381    394     set seentype($type) 1
   382         -  puts [format {#define %-35s %4d} PragTyp_$type $pnum]
          395  +  puts $fd [format {#define %-35s %4d} PragTyp_$type $pnum]
   383    396     incr pnum
   384    397   }
   385    398   foreach name $allnames {
   386    399     set type [lindex $allbyname($name) 0]
   387    400     if {[info exists seentype($type)]} continue
   388    401     set seentype($type) 1
   389         -  puts [format {#define %-35s %4d} PragTyp_$type $pnum]
          402  +  puts $fd [format {#define %-35s %4d} PragTyp_$type $pnum]
   390    403     incr pnum
   391    404   }
   392    405   
   393    406   # Generate #defines for flags
   394    407   #
   395    408   set fv 1
   396    409   foreach f [lsort [array names allflags]] {
   397         -  puts [format {#define PragFlag_%-20s 0x%02x} $f $fv]
          410  +  puts $fd [format {#define PragFlag_%-20s 0x%02x} $f $fv]
   398    411     set fv [expr {$fv*2}]
   399    412   }
   400    413   
   401    414   # Generate the lookup table
   402    415   #
   403         -puts "static const struct sPragmaNames \173"
   404         -puts "  const char *const zName;  /* Name of pragma */"
   405         -puts "  u8 ePragTyp;              /* PragTyp_XXX value */"
   406         -puts "  u8 mPragFlag;             /* Zero or more PragFlag_XXX values */"
   407         -puts "  u32 iArg;                 /* Extra argument */"
   408         -puts "\175 aPragmaNames\[\] = \173"
          416  +puts $fd "static const struct sPragmaNames \173"
          417  +puts $fd "  const char *const zName;  /* Name of pragma */"
          418  +puts $fd "  u8 ePragTyp;              /* PragTyp_XXX value */"
          419  +puts $fd "  u8 mPragFlag;             /* Zero or more PragFlag_XXX values */"
          420  +puts $fd "  u32 iArg;                 /* Extra argument */"
          421  +puts $fd "\175 aPragmaNames\[\] = \173"
   409    422   
   410    423   set current_if {}
   411    424   set spacer [format {    %26s } {}]
   412    425   foreach name $allnames {
   413    426     foreach {type arg if flag} $allbyname($name) break
   414    427     if {$if!=$current_if} {
   415    428       if {$current_if!=""} {
   416    429         foreach this_if $current_if {
   417         -        puts "#endif"
          430  +        puts $fd "#endif"
   418    431         }
   419    432       }
   420    433       set current_if $if
   421    434       if {$current_if!=""} {
   422    435         foreach this_if $current_if {
   423         -        puts "#if $this_if"
          436  +        puts $fd "#if $this_if"
   424    437         }
   425    438       }
   426    439     }
   427    440     set typex [format PragTyp_%-23s $type,]
   428    441     if {$flag==""} {
   429    442       set flagx "0"
   430    443     } else {
   431    444       set flagx PragFlag_[join $flag {|PragFlag_}]
   432    445     }
   433         -  puts "  \173 /* zName:     */ \"$name\","
   434         -  puts "    /* ePragTyp:  */ PragTyp_$type,"
   435         -  puts "    /* ePragFlag: */ $flagx,"
   436         -  puts "    /* iArg:      */ $arg \175,"
          446  +  puts $fd "  \173 /* zName:     */ \"$name\","
          447  +  puts $fd "    /* ePragTyp:  */ PragTyp_$type,"
          448  +  puts $fd "    /* ePragFlag: */ $flagx,"
          449  +  puts $fd "    /* iArg:      */ $arg \175,"
   437    450   }
   438    451   if {$current_if!=""} {
   439    452     foreach this_if $current_if {
   440         -    puts "#endif"
          453  +    puts $fd "#endif"
   441    454     }
   442    455   }
   443         -puts "\175;"
          456  +puts $fd "\175;"
   444    457   
   445    458   # count the number of pragmas, for information purposes
   446    459   #
   447    460   set allcnt 0
   448    461   set dfltcnt 0
   449    462   foreach name $allnames {
   450    463     incr allcnt
   451    464     set if [lindex $allbyname($name) 2]
   452    465     if {[regexp {^defined} $if] || [regexp {[^!]defined} $if]} continue
   453    466     incr dfltcnt
   454    467   }
   455         -puts "/* Number of pragmas: $dfltcnt on by default, $allcnt total. */"
          468  +puts $fd "/* Number of pragmas: $dfltcnt on by default, $allcnt total. */"

Changes to tool/mksqlite3c.tcl.

   106    106      os_common.h
   107    107      os_setup.h
   108    108      os_win.h
   109    109      os.h
   110    110      pager.h
   111    111      parse.h
   112    112      pcache.h
          113  +   pragma.h
   113    114      rtree.h
   114    115      sqlite3ext.h
   115    116      sqlite3.h
   116    117      sqliteicu.h
   117    118      sqliteInt.h
   118    119      sqliteLimit.h
   119    120      vdbe.h