Classes | Macros | Typedefs | Functions | Variables
sqlite3.c File Reference
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <stddef.h>
#include <time.h>
#include <pthread.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/time.h>
#include <errno.h>
#include <sys/mman.h>
#include <dlfcn.h>
Include dependency graph for sqlite3.c:

Go to the source code of this file.

Classes

struct  Hash::_ht
 
struct  AggInfo
 
struct  AggInfo::AggInfo_col
 
struct  AggInfo::AggInfo_func
 
struct  analysisInfo
 
struct  AttachKey
 
struct  AuthContext
 
struct  AutoincInfo
 
struct  AuxData
 
struct  BenignMallocHooks
 
struct  Bitvec
 
struct  BtCursor
 
struct  BtLock
 
struct  Btree
 
struct  BtShared
 
struct  BusyHandler
 
struct  CellInfo
 
struct  CollSeq
 
struct  Column
 
struct  compareInfo
 
struct  CountCtx
 
struct  DateTime
 
struct  Db
 
struct  DbFixer
 
struct  DistinctCtx
 
struct  et_info
 
struct  Explain
 
struct  Expr
 
struct  ExprList
 
struct  ExprList::ExprList_item
 
struct  ExprSpan
 
struct  FileChunk
 
struct  FilePoint
 
struct  FileWriter
 
struct  FKey
 
struct  FuncDef
 
struct  FuncDefHash
 
struct  FuncDestructor
 
struct  Hash
 
struct  HashElem
 
struct  IdList
 
struct  IdList::IdList_item
 
struct  Incrblob
 
struct  Index
 
struct  IndexSample
 
struct  InitData
 
struct  IntegrityCk
 
struct  KeyInfo
 
struct  LikeOp
 
struct  LimitVal
 
struct  Lookaside
 
struct  LookasideSlot
 
struct  Mem
 
struct  Mem0Global
 
struct  MemJournal
 
struct  MemPage
 
struct  Module
 
struct  NameContext
 
struct  Pager
 
struct  PagerSavepoint
 
struct  Parse
 
struct  PCache
 
struct  PCache1
 
struct  PCacheGlobal
 
struct  PgFreeslot
 
struct  PgHdr
 
struct  PgHdr1
 
struct  PGroup
 
struct  RowSet
 
struct  RowSetChunk
 
struct  RowSetEntry
 
struct  Savepoint
 
struct  Schema
 
struct  FKey::sColMap
 
struct  ScratchFreeslot
 
struct  Select
 
struct  SelectDest
 
struct  SorterRecord
 
struct  sPragmaNames
 
struct  sqlite3
 
struct  sqlite3_api_routines
 
struct  sqlite3_backup
 
struct  sqlite3_context
 
struct  sqlite3_file
 
struct  sqlite3_index_info::sqlite3_index_constraint
 
struct  sqlite3_index_info::sqlite3_index_constraint_usage
 
struct  sqlite3_index_info
 
struct  sqlite3_index_info::sqlite3_index_orderby
 
struct  sqlite3_io_methods
 
struct  sqlite3_mem_methods
 
struct  sqlite3_module
 
struct  sqlite3_mutex
 
struct  sqlite3_mutex_methods
 
struct  sqlite3_pcache_methods
 
struct  sqlite3_pcache_methods2
 
struct  sqlite3_pcache_page
 
struct  sqlite3_rtree_geometry
 
struct  sqlite3_vfs
 
struct  sqlite3_vtab
 
struct  sqlite3_vtab_cursor
 
struct  sqlite3AutoExtList
 
struct  Sqlite3Config
 
struct  sqlite3::sqlite3InitInfo
 
struct  sqlite3PrngType
 
struct  sqlite3StatType
 
struct  SrcCount
 
struct  SrcList
 
struct  SrcList::SrcList_item
 
struct  Stat4Accum
 
struct  Stat4Sample
 
struct  StrAccum
 
struct  SubProgram
 
struct  SumCtx
 
struct  Table
 
struct  TableLock
 
struct  TabResult
 
struct  Token
 
struct  TrigEvent
 
struct  Trigger
 
struct  TriggerPrg
 
struct  TriggerStep
 
struct  unix_syscall
 
struct  unixFile
 
struct  unixFileId
 
struct  unixInodeInfo
 
struct  unixShm
 
struct  unixShmNode
 
struct  UnixUnusedFd
 
struct  UnpackedRecord
 
struct  ValueList
 
struct  ValueNewStat4Ctx
 
struct  Vdbe
 
struct  VdbeCursor
 
struct  VdbeFrame
 
struct  VdbeOp
 
struct  VdbeOpList
 
struct  VdbeSorter
 
struct  VdbeSorterIter
 
struct  VtabCtx
 
struct  VTable
 
struct  vxworksFileId
 
struct  Wal
 
struct  WalCkptInfo
 
struct  WalIndexHdr
 
struct  WalIterator
 
struct  Walker
 
struct  WalIterator::WalSegment
 
struct  WalWriter
 
struct  WhereAndInfo
 
struct  WhereClause
 
struct  WhereInfo
 
struct  WhereLevel
 
struct  WhereLoop
 
struct  WhereLoopBuilder
 
struct  WhereMaskSet
 
struct  WhereOrCost
 
struct  WhereOrInfo
 
struct  WhereOrSet
 
struct  WherePath
 
struct  WhereScan
 
struct  WhereTerm
 
struct  Parse::yColCache
 
union  YYMINORTYPE
 
struct  yyParser
 
struct  yyStackEntry
 

Macros

#define _BTREE_H_
 
#define _FILE_OFFSET_BITS   64
 
#define _FTSINT_H
 
#define _GNU_SOURCE
 
#define _LARGE_FILE   1
 
#define _LARGE_FILE   1
 
#define _LARGEFILE_SOURCE   1
 
#define _LARGEFILE_SOURCE   1
 
#define _OS_COMMON_H_
 
#define _PAGER_H_
 
#define _SQLITE3_H_
 
#define _SQLITE3EXT_H_
 
#define _SQLITE3RTREE_H_
 
#define _SQLITE_HASH_H_
 
#define _SQLITE_OS_C_   1
 
#define _SQLITE_OS_H_
 
#define _SQLITE_VDBE_H_
 
#define _SQLITEINT_H_
 
#define _VDBEINT_H_
 
#define _WAL_H_
 
#define _XOPEN_SOURCE   600
 
#define ADDR(X)   (-1-(X))
 
#define AGGREGATE(zName, nArg, arg, nc, xStep, xFinal)
 
#define ALWAYS(X)   (X)
 
#define ArraySize(X)   ((int)(sizeof(X)/sizeof(X[0])))
 
#define assertCellInfo(x)
 
#define assertParentIndex(x, y, z)
 
#define assertTruncateConstraint(pPager)
 
#define BITVEC_HASH(X)   (((X)*1)%BITVEC_NINT)
 
#define BITVEC_MXHASH   (BITVEC_NINT/2)
 
#define BITVEC_NBIT   (BITVEC_NELEM*BITVEC_SZELEM)
 
#define BITVEC_NELEM   (BITVEC_USIZE/sizeof(BITVEC_TELEM))
 
#define BITVEC_NINT   (BITVEC_USIZE/sizeof(u32))
 
#define BITVEC_NPTR   (BITVEC_USIZE/sizeof(Bitvec *))
 
#define BITVEC_SZ   512
 
#define BITVEC_SZELEM   8
 
#define BITVEC_TELEM   u8
 
#define BITVEC_USIZE   (((BITVEC_SZ-(3*sizeof(u32)))/sizeof(Bitvec*))*sizeof(Bitvec*))
 
#define BMS   ((int)(sizeof(Bitmask)*8))
 
#define BTALLOC_ANY   0 /* Allocate any page */
 
#define BTALLOC_EXACT   1 /* Allocate exact page if possible */
 
#define BTALLOC_LE   2 /* Allocate any page <= the parameter */
 
#define BTCURSOR_MAX_DEPTH   20
 
#define BTREE_APPLICATION_ID   8
 
#define BTREE_AUTOVACUUM_FULL   1 /* Do full auto-vacuum */
 
#define BTREE_AUTOVACUUM_INCR   2 /* Incremental vacuum */
 
#define BTREE_AUTOVACUUM_NONE   0 /* Do not do auto-vacuum */
 
#define BTREE_BLOBKEY   2 /* Table has keys only - no data */
 
#define BTREE_BULKLOAD   0x00000001
 
#define BTREE_DEFAULT_CACHE_SIZE   3
 
#define BTREE_FILE_FORMAT   2
 
#define BTREE_FREE_PAGE_COUNT   0
 
#define BTREE_INCR_VACUUM   7
 
#define BTREE_INTKEY   1 /* Table has only 64-bit signed integer keys */
 
#define BTREE_LARGEST_ROOT_PAGE   4
 
#define BTREE_MEMORY   2 /* This is an in-memory DB */
 
#define BTREE_OMIT_JOURNAL   1 /* Do not create or use a rollback journal */
 
#define BTREE_SCHEMA_VERSION   1
 
#define BTREE_SINGLE   4 /* The file contains at most 1 b-tree */
 
#define BTREE_TEXT_ENCODING   5
 
#define BTREE_UNORDERED   8 /* Use of a hash implementation is OK */
 
#define BTREE_USER_VERSION   6
 
#define btreeIntegrity(p)
 
#define BTS_EXCLUSIVE   0x0020 /* pWriter has an exclusive lock */
 
#define BTS_INITIALLY_EMPTY   0x0008 /* Database was empty at trans start */
 
#define BTS_NO_WAL   0x0010 /* Do not open write-ahead-log files */
 
#define BTS_PAGESIZE_FIXED   0x0002 /* Page size can no longer be changed */
 
#define BTS_PENDING   0x0040 /* Waiting for read-locks to clear */
 
#define BTS_READ_ONLY   0x0001 /* Underlying file is readonly */
 
#define BTS_SECURE_DELETE   0x0004 /* PRAGMA secure_delete is enabled */
 
#define BYTESWAP32(x)
 
#define CACHE_STALE   0
 
#define charMap(X)   sqlite3UpperToLower[(unsigned char)X]
 
#define CHECK_FOR_INTERRUPT   if( db->u1.isInterrupted ) goto abort_due_to_interrupt;
 
#define CHECK_PAGE(x)
 
#define checkActiveVdbeCnt(x)
 
#define CLEARBIT(V, I)   V[I>>3] &= ~(1<<(I&7))
 
#define CODEC1(P, D, N, X, E)   /* NO-OP */
 
#define CODEC2(P, D, N, X, E, O)   O=(char*)D
 
#define COLFLAG_HIDDEN   0x0002 /* A hidden column in a virtual table */
 
#define COLFLAG_PRIMKEY   0x0001 /* Column is part of the primary key */
 
#define COLNAME_COLUMN   4
 
#define COLNAME_DATABASE   2
 
#define COLNAME_DECLTYPE   1
 
#define COLNAME_N   2 /* Store the name and decltype */
 
#define COLNAME_NAME   0
 
#define COLNAME_TABLE   3
 
#define COLUMN_MASK(x)   (((x)>31) ? 0xffffffff : ((u32)1<<(x)))
 
#define columnType(A, B, C, D, E, F)   columnTypeImpl(A,B,F)
 
#define ConstFactorOk(P)   ((P)->cookieGoto>0 && OptimizationEnabled((P)->db,SQLITE_FactorOutConst))
 
#define CORRUPT_DB   (sqlite3Config.neverCorrupt==0)
 
#define CTIMEOPT_VAL(opt)   CTIMEOPT_VAL_(opt)
 
#define CTIMEOPT_VAL_(opt)   #opt
 
#define CURSOR_FAULT   4
 
#define CURSOR_INVALID   0
 
#define CURSOR_REQUIRESEEK   3
 
#define CURSOR_SKIPNEXT   2
 
#define CURSOR_VALID   1
 
#define DB_Empty   0x0004 /* The file is empty (length 0 bytes) */
 
#define DB_SchemaLoaded   0x0001 /* The schema has been loaded */
 
#define DB_UnresetViews   0x0002 /* Some views have defined column names */
 
#define DbClearProperty(D, I, P)   (D)->aDb[I].pSchema->flags&=~(P)
 
#define DbHasAnyProperty(D, I, P)   (((D)->aDb[I].pSchema->flags&(P))!=0)
 
#define DbHasProperty(D, I, P)   (((D)->aDb[I].pSchema->flags&(P))==(P))
 
#define DbSetProperty(D, I, P)   (D)->aDb[I].pSchema->flags|=(P)
 
#define Deephemeralize(P)
 
#define DIRECT_MODE   0
 
#define disable_simulated_io_errors()
 
#define disable_simulated_io_errors()
 
#define DO_OS_MALLOC_TEST(x)
 
#define DOTLOCK_SUFFIX   ".lock"
 
#define EIGHT_BYTE_ALIGNMENT(X)   ((((char*)(X) - (char*)0)&7)==0)
 
#define enable_simulated_io_errors()
 
#define enable_simulated_io_errors()
 
#define ENC(db)   ((db)->aDb[0].pSchema->enc)
 
#define EP_Agg   0x000002 /* Contains one or more aggregate functions */
 
#define EP_Collate   0x000100 /* Tree contains a TK_COLLATE opeartor */
 
#define EP_Constant   0x080000 /* Node is a constant */
 
#define EP_DblQuoted   0x000040 /* token.z was originally in "..." */
 
#define EP_Distinct   0x000010 /* Aggregate function with DISTINCT keyword */
 
#define EP_Error   0x000008 /* Expression contains one or more errors */
 
#define EP_FromJoin   0x000001 /* Originated in ON or USING clause of a join */
 
#define EP_InfixFunc   0x000080 /* True for an infix function: LIKE, GLOB, etc */
 
#define EP_IntValue   0x000400 /* Integer value contained in u.iValue */
 
#define EP_MemToken   0x010000 /* Need to sqlite3DbFree() Expr.zToken */
 
#define EP_NoReduce   0x020000 /* Cannot EXPRDUP_REDUCE this Expr */
 
#define EP_Reduced   0x002000 /* Expr struct EXPR_REDUCEDSIZE bytes only */
 
#define EP_Resolved   0x000004 /* IDs have been resolved to COLUMNs */
 
#define EP_Skip   0x001000 /* COLLATE, AS, or UNLIKELY */
 
#define EP_Static   0x008000 /* Held in memory not obtained from malloc() */
 
#define EP_TokenOnly   0x004000 /* Expr struct EXPR_TOKENONLYSIZE bytes only */
 
#define EP_Unlikely   0x040000 /* unlikely() or likelihood() function */
 
#define EP_VarSelect   0x000020 /* pSelect is correlated, not constant */
 
#define EP_xIsSelect   0x000800 /* x.pSelect is valid (otherwise x.pList is) */
 
#define etBUFSIZE   SQLITE_PRINT_BUF_SIZE /* Size of the output buffer */
 
#define etCHARX   9 /* Characters. %c */
 
#define etDYNSTRING   7 /* Dynamically allocated strings. %z */
 
#define etEXP   3 /* Exponentional notation. %e and %E */
 
#define etFLOAT   2 /* Floating point. %f */
 
#define etGENERIC   4 /* Floating or exponential, depending on exponent. %g */
 
#define etINVALID   0 /* Any unrecognized conversion type */
 
#define etORDINAL   16 /* %r -> 1st, 2nd, 3rd, 4th, etc. English only */
 
#define etPERCENT   8 /* Percent symbol. %% */
 
#define etPOINTER   14 /* The %p conversion */
 
#define etRADIX   1 /* Integer types. %d, %x, %o, and so forth */
 
#define etSIZE   5 /* Return number of characters processed so far. %n */
 
#define etSQLESCAPE   10 /* Strings with '\'' doubled. %q */
 
#define etSQLESCAPE2
 
#define etSQLESCAPE3   15 /* %w -> Strings with '\"' doubled */
 
#define etSRCLIST   13 /* a pointer to a SrcList */
 
#define etSTRING   6 /* Strings. %s */
 
#define etTOKEN   12 /* a pointer to a Token structure */
 
#define EXCLUSIVE_LOCK   4
 
#define ExpandBlob(P)   (((P)->flags&MEM_Zero)?sqlite3VdbeMemExpandBlob(P):0)
 
#define expensive_assert(X)
 
#define explainSetInteger(a, b)   a = b
 
#define EXPR_FULLSIZE   sizeof(Expr) /* Full size */
 
#define EXPR_REDUCEDSIZE   offsetof(Expr,iTable) /* Common features */
 
#define EXPR_TOKENONLYSIZE   offsetof(Expr,pLeft) /* Fewer features */
 
#define ExprClearProperty(E, P)   (E)->flags&=~(P)
 
#define EXPRDUP_REDUCE   0x0001 /* Used reduced-size Expr nodes */
 
#define ExprHasAllProperty(E, P)   (((E)->flags&(P))==(P))
 
#define ExprHasProperty(E, P)   (((E)->flags&(P))!=0)
 
#define ExprSetProperty(E, P)   (E)->flags|=(P)
 
#define ExprSetVVAProperty(E, P)
 
#define EXTRA_SIZE   sizeof(MemPage)
 
#define fdatasync   fsync
 
#define FILEHANDLEID(fd)   ((int)fd)
 
#define findCell(P, I)   ((P)->aData + ((P)->maskPage & get2byte(&(P)->aCellIdx[2*(I)])))
 
#define findCellv2(D, M, O, I)   (D+(M&get2byte(D+(O+2*(I)))))
 
#define FLAG_INTERN   2 /* True if for internal use only */
 
#define FLAG_SIGNED   1 /* True if the value to convert is signed */
 
#define FLAG_STRING   4 /* Allow infinity precision */
 
#define FUNC_PERFECT_MATCH   6 /* The score for a perfect match */
 
#define FUNCTION(zName, nArg, iArg, bNC, xFunc)
 
#define FUNCTION2(zName, nArg, iArg, bNC, xFunc, extraFlags)
 
#define get2byte(x)   ((x)[0]<<8 | (x)[1])
 
#define get2byteNotZero(X)   (((((int)get2byte(X))-1)&0xffff)+1)
 
#define get4byte   sqlite3Get4byte
 
#define getCellInfo(pCur)
 
#define getVarint   sqlite3GetVarint
 
#define getVarint32(A, B)   (u8)((*(A)<(u8)0x80)?((B)=(u32)*(A)),1:sqlite3GetVarint32((A),(u32 *)&(B)))
 
#define GLOBAL(t, v)   v
 
#define GlobUpperToLower(A)   if( !((A)&~0x7f) ){ A = sqlite3UpperToLower[A]; }
 
#define HASHTABLE_HASH_1   383 /* Should be prime */
 
#define HASHTABLE_NPAGE   4096 /* Must be power of 2 */
 
#define HASHTABLE_NPAGE_ONE   (HASHTABLE_NPAGE - (WALINDEX_HDR_SIZE/sizeof(u32)))
 
#define HASHTABLE_NSLOT   (HASHTABLE_NPAGE*2) /* Must be a power of 2 */
 
#define HasRowid(X)   (((X)->tabFlags & TF_WithoutRowid)==0)
 
#define HAVE_FULLFSYNC   0
 
#define HAVE_MREMAP   0
 
#define IdChar(C)   ((sqlite3CtypeMap[(unsigned char)C]&0x46)!=0)
 
#define IfNotOmitAV(expr)   (expr)
 
#define IgnorableOrderby(X)   ((X->eDest)<=SRT_Discard)
 
#define IN_DECLARE_VTAB   (pParse->declareVtab)
 
#define IN_INDEX_EPH   2
 
#define IN_INDEX_INDEX_ASC   3
 
#define IN_INDEX_INDEX_DESC   4
 
#define IN_INDEX_ROWID   1
 
#define initMaskSet(P)   (P)->n=0
 
#define INT16_TYPE   short int
 
#define INT8_TYPE   signed char
 
#define INTERFACE   1
 
#define IOMETHODS(FINDER, METHOD, VERSION, CLOSE, LOCK, UNLOCK, CKLOCK)
 
#define IOTRACE(A)
 
#define IS_BIG_INT(X)   (((X)&~(i64)0xffffffff)!=0)
 
#define IS_LOCK_ERROR(x)   ((x != SQLITE_OK) && (x != SQLITE_BUSY))
 
#define ISAUTOVACUUM   (pBt->autoVacuum)
 
#define IsHiddenColumn(X)   (((X)->colFlags & COLFLAG_HIDDEN)!=0)
 
#define isOpen(pFd)   ((pFd)->pMethods)
 
#define IsPowerOfTwo(X)   (((X)&((X)-1))==0)
 
#define isSorter(x)   ((x)->pSorter!=0)
 
#define IsStat3   0
 
#define IsStat34   (IsStat3+IsStat4) /* 1 for STAT3 or STAT4. 0 otherwise */
 
#define IsStat4   0
 
#define IsVirtual(X)   (((X)->tabFlags & TF_Virtual)!=0)
 
#define JOURNAL_CHUNKSIZE   ((int)(1024-sizeof(FileChunk*)))
 
#define JOURNAL_HDR_SZ(pPager)   (pPager->sectorSize)
 
#define JOURNAL_PG_SZ(pPager)   ((pPager->pageSize) + 8)
 
#define JT_CROSS   0x0002 /* Explicit use of the CROSS keyword */
 
#define JT_ERROR   0x0040 /* unknown or unsupported join type */
 
#define JT_INNER   0x0001 /* Any kind of inner or cross join */
 
#define JT_LEFT   0x0008 /* Left outer join */
 
#define JT_NATURAL   0x0004 /* True for a "natural" join */
 
#define JT_OUTER   0x0020 /* The "OUTER" keyword is present */
 
#define JT_RIGHT   0x0010 /* Right outer join */
 
#define LARGEST_INT64   (0xffffffff|(((i64)0x7fffffff)<<32))
 
#define LIKEFUNC(zName, nArg, arg, flags)
 
#define likely(X)   (X)
 
#define LONGDOUBLE_TYPE   long double
 
#define MASKBIT(n)   (((Bitmask)1)<<(n))
 
#define MASTER_NAME   "sqlite_master"
 
#define MASTER_ROOT   1
 
#define MAX(A, B)   ((A)>(B)?(A):(B))
 
#define MAX_6BYTE   ((((i64)0x00008000)<<32)-1)
 
#define MAX_PATHNAME   512
 
#define MAX_ROWID   (i64)( (((u64)0x7fffffff)<<32) | (u64)0xffffffff )
 
#define MAX_SECTOR_SIZE   0x10000
 
#define mem0   GLOBAL(struct Mem0Global, mem0)
 
#define MEM_Agg   0x2000 /* Mem.z points to an agg function context */
 
#define MEM_Blob   0x0010 /* Value is a BLOB */
 
#define MEM_Cleared   0x0100 /* NULL set by OP_Null, not from data */
 
#define MEM_Dyn   0x0400 /* Need to call sqliteFree() on Mem.z */
 
#define MEM_Ephem   0x1000 /* Mem.z points to an ephemeral string */
 
#define MEM_Frame   0x0040 /* Value is a VdbeFrame object */
 
#define MEM_Int   0x0004 /* Value is an integer */
 
#define MEM_Invalid   0x0080 /* Value is undefined */
 
#define MEM_Null   0x0001 /* Value is NULL */
 
#define MEM_Real   0x0008 /* Value is a real number */
 
#define MEM_RowSet   0x0020 /* Value is a RowSet object */
 
#define MEM_Static   0x0800 /* Mem.z points to a static string */
 
#define MEM_Str   0x0002 /* Value is a string */
 
#define MEM_Term   0x0200 /* String rep is nul terminated */
 
#define MEM_TypeMask   0x01ff /* Mask of type bits */
 
#define MEM_Zero   0x4000 /* Mem.i contains count of 0s appended to blob */
 
#define memAboutToChange(P, M)
 
#define MEMCELLSIZE   (size_t)(&(((Mem *)0)->zMalloc))
 
#define MEMDB   pPager->memDb
 
#define MemSetTypeFlag(p, f)   ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f)
 
#define MEMTYPE_DB   0x10 /* Uses sqlite3DbMalloc, not sqlite_malloc */
 
#define MEMTYPE_HEAP   0x01 /* General heap allocations */
 
#define MEMTYPE_LOOKASIDE   0x02 /* Might have been lookaside memory */
 
#define MEMTYPE_PCACHE   0x08 /* Page cache allocations */
 
#define MEMTYPE_SCRATCH   0x04 /* Scratch allocations */
 
#define MIN(A, B)   ((A)<(B)?(A):(B))
 
#define MUTEX_LOGIC(X)   X
 
#define MX_CELL(pBt)   ((pBt->pageSize-8)/6)
 
#define MX_CELL_SIZE(pBt)   ((int)(pBt->pageSize-8))
 
#define N_OR_COST   3
 
#define N_SORT_BUCKET   32
 
#define NB   (NN*2+1) /* Total pages involved in the balance */
 
#define NC_AllowAgg   0x01 /* Aggregate functions are allowed here */
 
#define NC_HasAgg   0x02 /* One or more aggregate functions seen */
 
#define NC_InAggFunc   0x08 /* True if analyzing arguments to an agg func */
 
#define NC_IsCheck   0x04 /* True if resolving names in a CHECK constraint */
 
#define NC_PartIdx   0x10 /* True if resolving a partial index WHERE */
 
#define NDEBUG   1
 
#define NEVER(X)   (X)
 
#define NN   1 /* Number of neighbors on either side of pPage */
 
#define NO_LOCK   0
 
#define noopFunc   versionFunc /* Substitute function - never called */
 
#define O_BINARY   0
 
#define O_LARGEFILE   0
 
#define O_NOFOLLOW   0
 
#define OE_Abort   2 /* Back out changes but do no rollback transaction */
 
#define OE_Cascade   9 /* Cascade the changes */
 
#define OE_Default   10 /* Do whatever the default action is */
 
#define OE_Fail   3 /* Stop the operation but leave all prior changes */
 
#define OE_Ignore   4 /* Ignore the error. Do not do the INSERT or UPDATE */
 
#define OE_None   0 /* There is no constraint to check */
 
#define OE_Replace   5 /* Delete existing record, then do INSERT or UPDATE */
 
#define OE_Restrict   6 /* OE_Abort for IMMEDIATE, OE_Rollback for DEFERRED */
 
#define OE_Rollback   1 /* Fail the operation and rollback the transaction */
 
#define OE_SetDflt   8 /* Set the foreign key value to its default */
 
#define OE_SetNull   7 /* Set the foreign key value to NULL */
 
#define offsetof(STRUCTURE, FIELD)   ((int)((char*)&((STRUCTURE*)0)->FIELD))
 
#define OMIT_TEMPDB   0
 
#define OP_Add   87 /* same as TK_PLUS, synopsis: r[P3]=r[P1]+r[P2] */
 
#define OP_AddImm   34 /* synopsis: r[P1]=r[P1]+P2 */
 
#define OP_Affinity   44 /* synopsis: affinity(r[P1@P2]) */
 
#define OP_AggFinal   132 /* synopsis: accum=r[P1] N=P2 */
 
#define OP_AggStep   10 /* synopsis: accum=r[P3] step(r[P2@P5]) */
 
#define OP_And   70 /* same as TK_AND, synopsis: r[P3]=(r[P1] && r[P2]) */
 
#define OP_AutoCommit   3
 
#define OP_BitAnd   83 /* same as TK_BITAND, synopsis: r[P3]=r[P1]&r[P2] */
 
#define OP_BitNot   94 /* same as TK_BITNOT, synopsis: r[P1]= ~r[P1] */
 
#define OP_BitOr   84 /* same as TK_BITOR, synopsis: r[P3]=r[P1]|r[P2] */
 
#define OP_Blob   27 /* synopsis: r[P2]=P4 (len=P1) */
 
#define OP_Checkpoint   11
 
#define OP_Clear   111
 
#define OP_Close   56
 
#define OP_CollSeq   33
 
#define OP_Column   43 /* synopsis: r[P3]=PX */
 
#define OP_Compare   38
 
#define OP_Concat   92 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */
 
#define OP_Copy   30 /* synopsis: r[P2@P3]=r[P1@P3] */
 
#define OP_Count   46 /* synopsis: r[P2]=count() */
 
#define OP_CreateIndex   112 /* synopsis: r[P2]=root iDb=P1 */
 
#define OP_CreateTable   113 /* synopsis: r[P2]=root iDb=P1 */
 
#define OP_Delete   72
 
#define OP_Destroy   110
 
#define OP_Divide   90 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */
 
#define OP_DropIndex   117
 
#define OP_DropTable   116
 
#define OP_DropTrigger   118
 
#define OP_Eq   77 /* same as TK_EQ, synopsis: if r[P1]==r[P3] goto P2 */
 
#define OP_Expire   134
 
#define OP_Explain   152
 
#define OP_FkCounter   125 /* synopsis: fkctr[P1]+=P2 */
 
#define OP_FkIfZero   126 /* synopsis: if fkctr[P1]==0 goto P2 */
 
#define OP_Found   64 /* synopsis: key=r[P3@P4] */
 
#define OP_Function   1 /* synopsis: r[P3]=func(r[P2@P5]) */
 
#define OP_Ge   81 /* same as TK_GE, synopsis: if r[P1]>=r[P3] goto P2 */
 
#define OP_Gosub   17
 
#define OP_Goto   16
 
#define OP_Gt   78 /* same as TK_GT, synopsis: if r[P1]>r[P3] goto P2 */
 
#define OP_Halt   22
 
#define OP_HaltIfNull   21 /* synopsis: if r[P3] null then halt */
 
#define OP_IdxDelete   106 /* synopsis: key=r[P2@P3] */
 
#define OP_IdxGE   109 /* synopsis: key=r[P3@P4] */
 
#define OP_IdxInsert   105 /* synopsis: key=r[P2] */
 
#define OP_IdxLT   108 /* synopsis: key=r[P3@P4] */
 
#define OP_IdxRowid   107 /* synopsis: r[P2]=rowid */
 
#define OP_If   41
 
#define OP_IfNeg   129 /* synopsis: if r[P1]<0 goto P2 */
 
#define OP_IfNot   42
 
#define OP_IfPos   128 /* synopsis: if r[P1]>0 goto P2 */
 
#define OP_IfZero   130 /* synopsis: r[P1]+=P3, if r[P1]==0 goto P2 */
 
#define OP_IncrVacuum   133
 
#define OP_Insert   68 /* synopsis: intkey=r[P3] data=r[P2] */
 
#define OP_InsertInt   71 /* synopsis: intkey=P3 data=r[P2] */
 
#define OP_Int64   24 /* synopsis: r[P2]=P4 */
 
#define OP_Integer   23 /* synopsis: r[P2]=P1 */
 
#define OP_IntegrityCk   119
 
#define OP_IsNull   74 /* same as TK_ISNULL, synopsis: if r[P1]==NULL goto P2 */
 
#define OP_JournalMode   12
 
#define OP_Jump   39
 
#define OP_Last   100
 
#define OP_Le   79 /* same as TK_LE, synopsis: if r[P1]<=r[P3] goto P2 */
 
#define OP_LoadAnalysis   115
 
#define OP_Lt   80 /* same as TK_LT, synopsis: if r[P1]<r[P3] goto P2 */
 
#define OP_MakeRecord   45 /* synopsis: r[P3]=mkrec(r[P1@P2]) */
 
#define OP_MaxPgcnt   149
 
#define OP_MemMax   127 /* synopsis: r[P1]=max(r[P1],r[P2]) */
 
#define OP_Move   29 /* synopsis: r[P2@P3]=r[P1@P3] */
 
#define OP_Multiply   89 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */
 
#define OP_MustBeInt   35
 
#define OP_Ne   76 /* same as TK_NE, synopsis: if r[P1]!=r[P3] goto P2 */
 
#define OP_NewRowid   67 /* synopsis: r[P2]=rowid */
 
#define OP_Next   9
 
#define OP_NextIfOpen   7
 
#define OP_NoConflict   62 /* synopsis: key=r[P3@P4] */
 
#define OP_Noop   151
 
#define OP_Not   19 /* same as TK_NOT, synopsis: r[P2]= !r[P1] */
 
#define OP_NotExists   65 /* synopsis: intkey=r[P3] */
 
#define OP_NotFound   63 /* synopsis: key=r[P3@P4] */
 
#define OP_NotNull   75 /* same as TK_NOTNULL, synopsis: if r[P1]!=NULL goto P2 */
 
#define OP_Null   26 /* synopsis: r[P2..P3]=NULL */
 
#define OP_NullRow   99
 
#define OP_Once   40
 
#define OP_OpenAutoindex   52 /* synopsis: nColumn=P2 */
 
#define OP_OpenEphemeral   53 /* synopsis: nColumn=P2 */
 
#define OP_OpenPseudo   55 /* synopsis: content in r[P2@P3] */
 
#define OP_OpenRead   50 /* synopsis: root=P2 iDb=P3 */
 
#define OP_OpenWrite   51 /* synopsis: root=P2 iDb=P3 */
 
#define OP_Or   69 /* same as TK_OR, synopsis: r[P3]=(r[P1] || r[P2]) */
 
#define OP_Pagecount   148
 
#define OP_Param   124
 
#define OP_ParseSchema   114
 
#define OP_Permutation   37
 
#define OP_Prev   8
 
#define OP_PrevIfOpen   6
 
#define OP_Program   123
 
#define OP_ReadCookie   47
 
#define OP_Real   131 /* same as TK_FLOAT, synopsis: r[P2]=P4 */
 
#define OP_RealAffinity   36
 
#define OP_Remainder   91 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */
 
#define OP_ResetCount   73
 
#define OP_ResultRow   32 /* synopsis: output=r[P1@P2] */
 
#define OP_Return   18
 
#define OP_Rewind   103
 
#define OP_RowData   97 /* synopsis: r[P2]=data */
 
#define OP_Rowid   98 /* synopsis: r[P2]=rowid */
 
#define OP_RowKey   96 /* synopsis: r[P2]=key */
 
#define OP_RowSetAdd   120 /* synopsis: rowset(P1)=r[P2] */
 
#define OP_RowSetRead   121 /* synopsis: r[P3]=rowset(P1) */
 
#define OP_RowSetTest   122 /* synopsis: if r[P3] in rowset(P1) goto P2 */
 
#define OP_Savepoint   2
 
#define OP_SCopy   31 /* synopsis: r[P2]=r[P1] */
 
#define OP_Seek   61 /* synopsis: intkey=r[P2] */
 
#define OP_SeekGe   59 /* synopsis: key=r[P3@P4] */
 
#define OP_SeekGt   60 /* synopsis: key=r[P3@P4] */
 
#define OP_SeekLe   58 /* synopsis: key=r[P3@P4] */
 
#define OP_SeekLt   57 /* synopsis: key=r[P3@P4] */
 
#define OP_Sequence   66 /* synopsis: r[P2]=rowid */
 
#define OP_SetCookie   48
 
#define OP_ShiftLeft   85 /* same as TK_LSHIFT, synopsis: r[P3]=r[P2]<<r[P1] */
 
#define OP_ShiftRight   86 /* same as TK_RSHIFT, synopsis: r[P3]=r[P2]>>r[P1] */
 
#define OP_Sort   102
 
#define OP_SorterCompare   82 /* synopsis: if key(P1)!=rtrim(r[P3],P4) goto P2 */
 
#define OP_SorterData   93 /* synopsis: r[P2]=data */
 
#define OP_SorterInsert   104
 
#define OP_SorterNext   5
 
#define OP_SorterOpen   54
 
#define OP_SorterSort   101
 
#define OP_String   25 /* synopsis: r[P2]='P4' (len=P1) */
 
#define OP_String8   95 /* same as TK_STRING, synopsis: r[P2]='P4' */
 
#define OP_Subtract   88 /* same as TK_MINUS, synopsis: r[P3]=r[P2]-r[P1] */
 
#define OP_TableLock   135 /* synopsis: iDb=P1 root=P2 write=P3 */
 
#define OP_ToBlob   143 /* same as TK_TO_BLOB */
 
#define OP_ToInt   145 /* same as TK_TO_INT */
 
#define OP_ToNumeric   144 /* same as TK_TO_NUMERIC */
 
#define OP_ToReal   146 /* same as TK_TO_REAL */
 
#define OP_ToText   142 /* same as TK_TO_TEXT */
 
#define OP_Trace   150
 
#define OP_Transaction   4
 
#define OP_Vacuum   13
 
#define OP_Variable   28 /* synopsis: r[P2]=parameter(P1,P4) */
 
#define OP_VBegin   136
 
#define OP_VColumn   140 /* synopsis: r[P3]=vcolumn(P2) */
 
#define OP_VCreate   137
 
#define OP_VDestroy   138
 
#define OP_VerifyCookie   49
 
#define OP_VFilter   14 /* synopsis: iPlan=r[P3] zPlan='P4' */
 
#define OP_VNext   141
 
#define OP_VOpen   139
 
#define OP_VRename   147
 
#define OP_VUpdate   15 /* synopsis: data=r[P3@P2] */
 
#define OP_Yield   20
 
#define OpenCounter(X)
 
#define OPFLAG_APPEND   0x08 /* This is likely to be an append */
 
#define OPFLAG_BULKCSR   0x01 /* OP_Open** used to open bulk cursor */
 
#define OPFLAG_CLEARCACHE   0x20 /* Clear pseudo-table cache in OP_Column */
 
#define OPFLAG_ISUPDATE   0x04 /* This OP_Insert is an sql UPDATE */
 
#define OPFLAG_LASTROWID   0x02 /* Set to update db->lastRowid */
 
#define OPFLAG_LENGTHARG   0x40 /* OP_Column only used for length() */
 
#define OPFLAG_NCHANGE   0x01 /* Set to update db->nChange */
 
#define OPFLAG_P2ISREG   0x02 /* P2 to OP_Open** is a register number */
 
#define OPFLAG_PERMUTE   0x01 /* OP_Compare: use the permutation */
 
#define OPFLAG_TYPEOFARG   0x80 /* OP_Column only used for typeof() */
 
#define OPFLAG_USESEEKRESULT   0x10 /* Try to avoid a seek in BtreeInsert() */
 
#define OPFLG_IN1   0x0004 /* in1: P1 is an input */
 
#define OPFLG_IN2   0x0008 /* in2: P2 is an input */
 
#define OPFLG_IN3   0x0010 /* in3: P3 is an input */
 
#define OPFLG_INITIALIZER
 
#define OPFLG_JUMP   0x0001 /* jump: P2 holds jmp target */
 
#define OPFLG_OUT2   0x0020 /* out2: P2 is an output */
 
#define OPFLG_OUT2_PRERELEASE   0x0002 /* out2-prerelease: */
 
#define OPFLG_OUT3   0x0040 /* out3: P3 is an output */
 
#define OpHelp(X)
 
#define OptimizationDisabled(db, mask)   (((db)->dbOptFlags&(mask))!=0)
 
#define OptimizationEnabled(db, mask)   (((db)->dbOptFlags&(mask))==0)
 
#define OS_VXWORKS   0
 
#define osAccess   ((int(*)(const char*,int))aSyscall[2].pCurrent)
 
#define osClose   ((int(*)(int))aSyscall[1].pCurrent)
 
#define osFallocate   ((int(*)(int,off_t,off_t))aSyscall[15].pCurrent)
 
#define osFchmod   ((int(*)(int,mode_t))aSyscall[14].pCurrent)
 
#define osFchown   ((int(*)(int,uid_t,gid_t))aSyscall[20].pCurrent)
 
#define osFcntl   ((int(*)(int,int,...))aSyscall[7].pCurrent)
 
#define osFstat   ((int(*)(int,struct stat*))aSyscall[5].pCurrent)
 
#define osFtruncate   ((int(*)(int,off_t))aSyscall[6].pCurrent)
 
#define osGetcwd   ((char*(*)(char*,size_t))aSyscall[3].pCurrent)
 
#define osMkdir   ((int(*)(const char*,mode_t))aSyscall[18].pCurrent)
 
#define osMmap   ((void*(*)(void*,size_t,int,int,int,off_t))aSyscall[21].pCurrent)
 
#define osMremap   ((void*(*)(void*,size_t,size_t,int,...))aSyscall[23].pCurrent)
 
#define osMunmap   ((void*(*)(void*,size_t))aSyscall[22].pCurrent)
 
#define osOpen   ((int(*)(const char*,int,int))aSyscall[0].pCurrent)
 
#define osOpenDirectory   ((int(*)(const char*,int*))aSyscall[17].pCurrent)
 
#define osPread   ((ssize_t(*)(int,void*,size_t,off_t))aSyscall[9].pCurrent)
 
#define osPread64   ((ssize_t(*)(int,void*,size_t,off_t))aSyscall[10].pCurrent)
 
#define osPwrite
 
#define osPwrite64
 
#define osRead   ((ssize_t(*)(int,void*,size_t))aSyscall[8].pCurrent)
 
#define osRmdir   ((int(*)(const char*))aSyscall[19].pCurrent)
 
#define osStat   ((int(*)(const char*,struct stat*))aSyscall[4].pCurrent)
 
#define OSTRACE(X)
 
#define osUnlink   ((int(*)(const char*))aSyscall[16].pCurrent)
 
#define osWrite   ((ssize_t(*)(int,const void*,size_t))aSyscall[11].pCurrent)
 
#define P4_ADVANCE   (-19) /* P4 is a pointer to BtreeNext() or BtreePrev() */
 
#define P4_COLLSEQ   (-4) /* P4 is a pointer to a CollSeq structure */
 
#define P4_DYNAMIC   (-1) /* Pointer to a string obtained from sqliteMalloc() */
 
#define P4_FUNCDEF   (-5) /* P4 is a pointer to a FuncDef structure */
 
#define P4_INT32   (-14) /* P4 is a 32-bit signed integer */
 
#define P4_INT64   (-13) /* P4 is a 64-bit signed integer */
 
#define P4_INTARRAY   (-15) /* P4 is a vector of 32-bit integers */
 
#define P4_KEYINFO   (-6) /* P4 is a pointer to a KeyInfo structure */
 
#define P4_MEM   (-8) /* P4 is a pointer to a Mem* structure */
 
#define P4_MPRINTF   (-11) /* P4 is a string obtained from sqlite3_mprintf() */
 
#define P4_NOTUSED   0 /* The P4 parameter is not used */
 
#define P4_REAL   (-12) /* P4 is a 64-bit floating point value */
 
#define P4_STATIC   (-2) /* Pointer to a static string */
 
#define P4_SUBPROGRAM   (-18) /* P4 is a pointer to a SubProgram structure */
 
#define P4_TRANSIENT   0 /* P4 is a pointer to a transient string */
 
#define P4_VTAB   (-10) /* P4 is a pointer to an sqlite3_vtab structure */
 
#define P5_ConstraintCheck   3
 
#define P5_ConstraintFK   4
 
#define P5_ConstraintNotNull   1
 
#define P5_ConstraintUnique   2
 
#define PAGER_CACHESPILL   0x10 /* PRAGMA cache_spill=ON */
 
#define PAGER_CKPT_FULLFSYNC   0x08 /* PRAGMA checkpoint_fullfsync=ON */
 
#define pager_datahash(X, Y)   0
 
#define PAGER_ERROR   6
 
#define PAGER_FLAGS_MASK   0x1c /* All above except SYNCHRONOUS */
 
#define PAGER_FULLFSYNC   0x04 /* PRAGMA fullfsync=ON */
 
#define PAGER_GET_NOCONTENT   0x01 /* Do not load data from disk */
 
#define PAGER_GET_READONLY   0x02 /* Read-only page is acceptable */
 
#define PAGER_INCR(v)
 
#define PAGER_JOURNALMODE_DELETE   0 /* Commit by deleting journal file */
 
#define PAGER_JOURNALMODE_MEMORY   4 /* In-memory journal file */
 
#define PAGER_JOURNALMODE_OFF   2 /* Journal omitted. */
 
#define PAGER_JOURNALMODE_PERSIST   1 /* Commit by zeroing journal header */
 
#define PAGER_JOURNALMODE_QUERY   (-1) /* Query the value of journalmode */
 
#define PAGER_JOURNALMODE_TRUNCATE   3 /* Commit by truncating journal */
 
#define PAGER_JOURNALMODE_WAL   5 /* Use write-ahead logging */
 
#define PAGER_LOCKINGMODE_EXCLUSIVE   1
 
#define PAGER_LOCKINGMODE_NORMAL   0
 
#define PAGER_LOCKINGMODE_QUERY   -1
 
#define PAGER_MAX_PGNO   2147483647
 
#define PAGER_MEMORY   0x0002 /* In-memory database */
 
#define PAGER_MJ_PGNO(x)   ((Pgno)((PENDING_BYTE/((x)->pageSize))+1))
 
#define PAGER_OMIT_JOURNAL   0x0001 /* Do not use a rollback journal */
 
#define PAGER_OPEN   0
 
#define pager_pagehash(X)   0
 
#define PAGER_READER   1
 
#define pager_set_pagehash(X)
 
#define PAGER_STAT_HIT   0
 
#define PAGER_STAT_MISS   1
 
#define PAGER_STAT_WRITE   2
 
#define PAGER_SYNCHRONOUS_FULL   0x03 /* PRAGMA synchronous=FULL */
 
#define PAGER_SYNCHRONOUS_MASK   0x03 /* Mask for three values above */
 
#define PAGER_SYNCHRONOUS_NORMAL   0x02 /* PRAGMA synchronous=NORMAL */
 
#define PAGER_SYNCHRONOUS_OFF   0x01 /* PRAGMA synchronous=OFF */
 
#define PAGER_WRITER_CACHEMOD   3
 
#define PAGER_WRITER_DBMOD   4
 
#define PAGER_WRITER_FINISHED   5
 
#define PAGER_WRITER_LOCKED   2
 
#define PAGERID(p)   ((int)(p->fd))
 
#define pagerReportSize(X)   /* No-op if we do not support a codec */
 
#define PAGERTRACE(X)
 
#define parseCell(pPage, iCell, pInfo)   btreeParseCellPtr((pPage), findCell((pPage), (iCell)), (pInfo))
 
#define pcache1   (GLOBAL(struct PCacheGlobal, pcache1_g))
 
#define pcache1EnterMutex(X)   sqlite3_mutex_enter((X)->mutex)
 
#define pcache1LeaveMutex(X)   sqlite3_mutex_leave((X)->mutex)
 
#define PENDING_BYTE   sqlite3PendingByte
 
#define PENDING_BYTE_PAGE(pBt)   PAGER_MJ_PGNO(pBt)
 
#define PENDING_LOCK   3
 
#define PGHDR_DIRTY   0x002 /* Page has changed */
 
#define PGHDR_DONT_WRITE   0x020 /* Do not write content to disk */
 
#define PGHDR_MMAP   0x040 /* This is an mmap page object */
 
#define PGHDR_NEED_READ   0x008 /* Content is unread */
 
#define PGHDR_NEED_SYNC
 
#define PGHDR_REUSE_UNLIKELY   0x010 /* A hint that reuse is unlikely */
 
#define PragFlag_NeedSchema   0x01
 
#define PragTyp_ACTIVATE_EXTENSIONS   35
 
#define PragTyp_AUTO_VACUUM   1
 
#define PragTyp_BUSY_TIMEOUT   3
 
#define PragTyp_CACHE_SIZE   4
 
#define PragTyp_CASE_SENSITIVE_LIKE   5
 
#define PragTyp_COLLATION_LIST   6
 
#define PragTyp_COMPILE_OPTIONS   7
 
#define PragTyp_DATA_STORE_DIRECTORY   8
 
#define PragTyp_DATABASE_LIST   9
 
#define PragTyp_DEFAULT_CACHE_SIZE   10
 
#define PragTyp_ENCODING   11
 
#define PragTyp_FLAG   2
 
#define PragTyp_FOREIGN_KEY_CHECK   12
 
#define PragTyp_FOREIGN_KEY_LIST   13
 
#define PragTyp_HEADER_VALUE   0
 
#define PragTyp_HEXKEY   36
 
#define PragTyp_INCREMENTAL_VACUUM   14
 
#define PragTyp_INDEX_INFO   15
 
#define PragTyp_INDEX_LIST   16
 
#define PragTyp_INTEGRITY_CHECK   17
 
#define PragTyp_JOURNAL_MODE   18
 
#define PragTyp_JOURNAL_SIZE_LIMIT   19
 
#define PragTyp_KEY   37
 
#define PragTyp_LOCK_PROXY_FILE   20
 
#define PragTyp_LOCK_STATUS   39
 
#define PragTyp_LOCKING_MODE   21
 
#define PragTyp_MMAP_SIZE   23
 
#define PragTyp_PAGE_COUNT   22
 
#define PragTyp_PAGE_SIZE   24
 
#define PragTyp_PARSER_TRACE   40
 
#define PragTyp_REKEY   38
 
#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_WAL_AUTOCHECKPOINT   33
 
#define PragTyp_WAL_CHECKPOINT   34
 
#define PTF_INTKEY   0x01
 
#define PTF_LEAF   0x08
 
#define PTF_LEAFDATA   0x04
 
#define PTF_ZERODATA   0x02
 
#define PTRMAP_BTREE   5
 
#define PTRMAP_FREEPAGE   2
 
#define PTRMAP_ISPAGE(pBt, pgno)   (PTRMAP_PAGENO((pBt),(pgno))==(pgno))
 
#define PTRMAP_OVERFLOW1   3
 
#define PTRMAP_OVERFLOW2   4
 
#define PTRMAP_PAGENO(pBt, pgno)   ptrmapPageno(pBt, pgno)
 
#define PTRMAP_PTROFFSET(pgptrmap, pgno)   (5*(pgno-pgptrmap-1))
 
#define PTRMAP_ROOTPAGE   1
 
#define put2byte(p, v)   ((p)[0] = (u8)((v)>>8), (p)[1] = (u8)(v))
 
#define put32bits(A, B)   sqlite3Put4byte((u8*)A,B)
 
#define put4byte   sqlite3Put4byte
 
#define putVarint   sqlite3PutVarint
 
#define putVarint32(A, B)
 
#define READ_LOCK   1
 
#define READ_UTF16BE(zIn, TERM, c)
 
#define READ_UTF16LE(zIn, TERM, c)
 
#define READ_UTF8(zIn, zTerm, c)
 
#define READMARK_NOT_USED   0xffffffff
 
#define REGISTER_TRACE(R, M)
 
#define RESERVED_BYTE   (PENDING_BYTE+1)
 
#define RESERVED_LOCK   2
 
#define restoreCursorPosition(p)
 
#define ROUND8(x)   (((x)+7)&~7)
 
#define ROUNDDOWN8(x)   ((x)&~7)
 
#define ROWSET_ALLOCATION_SIZE   1024
 
#define ROWSET_ENTRY_PER_CHUNK   ((ROWSET_ALLOCATION_SIZE-8)/sizeof(struct RowSetEntry))
 
#define ROWSET_NEXT   0x02 /* True if sqlite3RowSetNext() has been called */
 
#define ROWSET_SORTED   0x01 /* True if RowSet.pEntry is sorted */
 
#define SAVE_SZ   (sizeof(Parse) - offsetof(Parse,nVar))
 
#define SAVEPOINT_BEGIN   0
 
#define SAVEPOINT_RELEASE   1
 
#define SAVEPOINT_ROLLBACK   2
 
#define SCHEMA_TABLE(x)   ((!OMIT_TEMPDB)&&(x==1)?TEMP_MASTER_NAME:MASTER_NAME)
 
#define SET_FULLSYNC(x, y)
 
#define SETBIT(V, I)   V[I>>3] |= (1<<(I&7))
 
#define SF_Aggregate   0x0004 /* Contains aggregate functions */
 
#define SF_Distinct   0x0001 /* Output should be DISTINCT */
 
#define SF_Expanded   0x0010 /* sqlite3SelectExpand() called on this */
 
#define SF_HasTypeInfo   0x0020 /* FROM subqueries have Table metadata */
 
#define SF_Materialize   0x0100 /* Force materialization of views */
 
#define SF_MaybeConvert   0x0400 /* Need convertCompoundSelectToSubquery() */
 
#define SF_NestedFrom   0x0200 /* Part of a parenthesized FROM clause */
 
#define SF_Resolved   0x0002 /* Identifiers have been resolved */
 
#define SF_UsesEphemeral   0x0008 /* Uses the OpenEphemeral opcode */
 
#define SF_UseSorter   0x0040 /* Sort using a sorter */
 
#define SF_Values   0x0080 /* Synthesized from VALUES clause */
 
#define SHARED_FIRST   (PENDING_BYTE+2)
 
#define SHARED_LOCK   1
 
#define SHARED_SIZE   510
 
#define SimulateDiskfullError(A)
 
#define SimulateIOError(A)
 
#define SimulateIOErrorBenign(X)
 
#define SLOT_2_0   0x001fc07f
 
#define SLOT_4_2_0   0xf01fc07f
 
#define SMALLEST_INT64   (((i64)-1) - LARGEST_INT64)
 
#define SORTER_MAX_MERGE_COUNT   16
 
#define SORTER_MIN_WORKING   10
 
#define SPILLFLAG_NOSYNC   0x04 /* Spill is ok, but do not sync */
 
#define SPILLFLAG_OFF   0x01 /* Never spill cache. Set via pragma */
 
#define SPILLFLAG_ROLLBACK   0x02 /* Current rolling back, so do not spill */
 
#define sqlite3_column_database_name   0
 
#define sqlite3_column_database_name16   0
 
#define sqlite3_column_origin_name   0
 
#define sqlite3_column_origin_name16   0
 
#define sqlite3_column_table_name   0
 
#define sqlite3_column_table_name16   0
 
#define SQLITE3_MUTEX_INITIALIZER   { PTHREAD_MUTEX_INITIALIZER }
 
#define sqlite3_table_column_metadata   0
 
#define SQLITE3_TEXT   3
 
#define sqlite3ConnectionBlocked(x, y)
 
#define sqlite3ConnectionClosed(x)
 
#define sqlite3ConnectionUnlocked(x)
 
#define sqlite3ExplainBegin(X)
 
#define sqlite3ExplainExpr(A, B)
 
#define sqlite3ExplainExprList(A, B)
 
#define sqlite3ExplainFinish(X)
 
#define sqlite3ExplainSelect(A, B)
 
#define sqlite3FileSuffix3(X, Y)
 
#define sqlite3GlobalConfig   sqlite3Config
 
#define sqlite3Isalnum(x)   (sqlite3CtypeMap[(unsigned char)(x)]&0x06)
 
#define sqlite3Isalpha(x)   (sqlite3CtypeMap[(unsigned char)(x)]&0x02)
 
#define sqlite3Isdigit(x)   (sqlite3CtypeMap[(unsigned char)(x)]&0x04)
 
#define sqlite3IsNumericAffinity(X)   ((X)>=SQLITE_AFF_NUMERIC)
 
#define sqlite3Isspace(x)   (sqlite3CtypeMap[(unsigned char)(x)]&0x01)
 
#define sqlite3Isxdigit(x)   (sqlite3CtypeMap[(unsigned char)(x)]&0x08)
 
#define sqlite3JournalExists(p)   1
 
#define sqlite3JournalSize(pVfs)   ((pVfs)->szOsFile)
 
#define sqlite3MemdebugHasType(X, Y)   1
 
#define sqlite3MemdebugNoType(X, Y)   1
 
#define sqlite3MemdebugSetType(X, Y)   /* no-op */
 
#define sqlite3PagerGet(A, B, C)   sqlite3PagerAcquire(A,B,C,0)
 
#define sqlite3ParserARG_FETCH   Parse *pParse = yypParser->pParse
 
#define sqlite3ParserARG_PDECL   ,Parse *pParse
 
#define sqlite3ParserARG_SDECL   Parse *pParse;
 
#define sqlite3ParserARG_STORE   yypParser->pParse = pParse
 
#define sqlite3ParserTOKENTYPE   Token
 
#define sqlite3ParseToplevel(p)   ((p)->pToplevel ? (p)->pToplevel : (p))
 
#define sqlite3StackAllocRaw(D, N)   sqlite3DbMallocRaw(D,N)
 
#define sqlite3StackAllocZero(D, N)   sqlite3DbMallocZero(D,N)
 
#define sqlite3StackFree(D, P)   sqlite3DbFree(D,P)
 
#define sqlite3StrICmp   sqlite3_stricmp
 
#define sqlite3StrNICmp   sqlite3_strnicmp
 
#define sqlite3Tolower(x)   (sqlite3UpperToLower[(unsigned char)(x)])
 
#define sqlite3Toupper(x)   ((x)&~(sqlite3CtypeMap[(unsigned char)(x)]&0x20))
 
#define sqlite3VdbeExplanation(X)   0
 
#define sqlite3VdbeIOTraceSql(X)
 
#define sqlite3VtabInSync(db)   ((db)->nVTrans>0 && (db)->aVTrans==0)
 
#define SQLITE_ABORT   4 /* Callback routine requested an abort */
 
#define SQLITE_ABORT_ROLLBACK   (SQLITE_ABORT | (2<<8))
 
#define SQLITE_ACCESS_EXISTS   0
 
#define SQLITE_ACCESS_READ   2 /* Unused */
 
#define SQLITE_ACCESS_READWRITE   1 /* Used by PRAGMA temp_store_directory */
 
#define SQLITE_AdjustOutEst   0x1000 /* Adjust output estimates using WHERE */
 
#define SQLITE_AFF_INTEGER   'd'
 
#define SQLITE_AFF_MASK   0x67
 
#define SQLITE_AFF_NONE   'b'
 
#define SQLITE_AFF_NUMERIC   'c'
 
#define SQLITE_AFF_REAL   'e'
 
#define SQLITE_AFF_TEXT   'a'
 
#define SQLITE_AllOpts   0xffff /* All optimizations */
 
#define SQLITE_ALLOW_COVERING_INDEX_SCAN   1
 
#define SQLITE_ALTER_TABLE   26 /* Database Name Table Name */
 
#define SQLITE_AMALGAMATION   1
 
#define SQLITE_ANALYZE   28 /* Table Name NULL */
 
#define SQLITE_ANY   5 /* sqlite3_create_function only */
 
#define SQLITE_API
 
#define SQLITE_ASCII   1
 
#define SQLITE_ATTACH   24 /* Filename NULL */
 
#define SQLITE_AUTH   23 /* Authorization denied */
 
#define SQLITE_AutoIndex   0x00100000 /* Enable automatic indexes */
 
#define SQLITE_BIG_DBL   (1e99)
 
#define SQLITE_BIGENDIAN   (*(char *)(&sqlite3one)==0)
 
#define SQLITE_BLOB   4
 
#define SQLITE_BUSY   5 /* The database file is locked */
 
#define SQLITE_BUSY_RECOVERY   (SQLITE_BUSY | (1<<8))
 
#define SQLITE_BUSY_SNAPSHOT   (SQLITE_BUSY | (2<<8))
 
#define SQLITE_CacheSpill   0x00000010 /* OK to spill pager cache */
 
#define SQLITE_CANTOPEN   14 /* Unable to open the database file */
 
#define SQLITE_CANTOPEN_BKPT   sqlite3CantopenError(__LINE__)
 
#define SQLITE_CANTOPEN_CONVPATH   (SQLITE_CANTOPEN | (4<<8))
 
#define SQLITE_CANTOPEN_FULLPATH   (SQLITE_CANTOPEN | (3<<8))
 
#define SQLITE_CANTOPEN_ISDIR   (SQLITE_CANTOPEN | (2<<8))
 
#define SQLITE_CANTOPEN_NOTEMPDIR   (SQLITE_CANTOPEN | (1<<8))
 
#define SQLITE_CHECKPOINT_FULL   1
 
#define SQLITE_CHECKPOINT_PASSIVE   0
 
#define SQLITE_CHECKPOINT_RESTART   2
 
#define SQLITE_CkptFullFSync   0x00000008 /* Use full fsync for checkpoint */
 
#define SQLITE_ColumnCache   0x0002 /* Column cache */
 
#define SQLITE_CONFIG_COVERING_INDEX_SCAN   20 /* int */
 
#define SQLITE_CONFIG_GETMALLOC   5 /* sqlite3_mem_methods* */
 
#define SQLITE_CONFIG_GETMUTEX   11 /* sqlite3_mutex_methods* */
 
#define SQLITE_CONFIG_GETPCACHE   15 /* no-op */
 
#define SQLITE_CONFIG_GETPCACHE2   19 /* sqlite3_pcache_methods2* */
 
#define SQLITE_CONFIG_HEAP   8 /* void*, int nByte, int min */
 
#define SQLITE_CONFIG_LOG   16 /* xFunc, void* */
 
#define SQLITE_CONFIG_LOOKASIDE   13 /* int int */
 
#define SQLITE_CONFIG_MALLOC   4 /* sqlite3_mem_methods* */
 
#define SQLITE_CONFIG_MEMSTATUS   9 /* boolean */
 
#define SQLITE_CONFIG_MMAP_SIZE   22 /* sqlite3_int64, sqlite3_int64 */
 
#define SQLITE_CONFIG_MULTITHREAD   2 /* nil */
 
#define SQLITE_CONFIG_MUTEX   10 /* sqlite3_mutex_methods* */
 
#define SQLITE_CONFIG_PAGECACHE   7 /* void*, int sz, int N */
 
#define SQLITE_CONFIG_PCACHE   14 /* no-op */
 
#define SQLITE_CONFIG_PCACHE2   18 /* sqlite3_pcache_methods2* */
 
#define SQLITE_CONFIG_SCRATCH   6 /* void*, int sz, int N */
 
#define SQLITE_CONFIG_SERIALIZED   3 /* nil */
 
#define SQLITE_CONFIG_SINGLETHREAD   1 /* nil */
 
#define SQLITE_CONFIG_SQLLOG   21 /* xSqllog, void* */
 
#define SQLITE_CONFIG_URI   17 /* int */
 
#define SQLITE_CONFIG_WIN32_HEAPSIZE   23 /* int nByte */
 
#define SQLITE_CONSTRAINT   19 /* Abort due to constraint violation */
 
#define SQLITE_CONSTRAINT_CHECK   (SQLITE_CONSTRAINT | (1<<8))
 
#define SQLITE_CONSTRAINT_COMMITHOOK   (SQLITE_CONSTRAINT | (2<<8))
 
#define SQLITE_CONSTRAINT_FOREIGNKEY   (SQLITE_CONSTRAINT | (3<<8))
 
#define SQLITE_CONSTRAINT_FUNCTION   (SQLITE_CONSTRAINT | (4<<8))
 
#define SQLITE_CONSTRAINT_NOTNULL   (SQLITE_CONSTRAINT | (5<<8))
 
#define SQLITE_CONSTRAINT_PRIMARYKEY   (SQLITE_CONSTRAINT | (6<<8))
 
#define SQLITE_CONSTRAINT_ROWID   (SQLITE_CONSTRAINT |(10<<8))
 
#define SQLITE_CONSTRAINT_TRIGGER   (SQLITE_CONSTRAINT | (7<<8))
 
#define SQLITE_CONSTRAINT_UNIQUE   (SQLITE_CONSTRAINT | (8<<8))
 
#define SQLITE_CONSTRAINT_VTAB   (SQLITE_CONSTRAINT | (9<<8))
 
#define SQLITE_COPY   0 /* No longer used */
 
#define SQLITE_CORE   1
 
#define SQLITE_CORRUPT   11 /* The database disk image is malformed */
 
#define SQLITE_CORRUPT_BKPT   sqlite3CorruptError(__LINE__)
 
#define SQLITE_CORRUPT_VTAB   (SQLITE_CORRUPT | (1<<8))
 
#define SQLITE_CountRows   0x00000080 /* Count rows changed by INSERT, */
 
#define SQLITE_CoverIdxScan   0x0040 /* Covering index scans */
 
#define SQLITE_CREATE_INDEX   1 /* Index Name Table Name */
 
#define SQLITE_CREATE_TABLE   2 /* Table Name NULL */
 
#define SQLITE_CREATE_TEMP_INDEX   3 /* Index Name Table Name */
 
#define SQLITE_CREATE_TEMP_TABLE   4 /* Table Name NULL */
 
#define SQLITE_CREATE_TEMP_TRIGGER   5 /* Trigger Name Table Name */
 
#define SQLITE_CREATE_TEMP_VIEW   6 /* View Name NULL */
 
#define SQLITE_CREATE_TRIGGER   7 /* Trigger Name Table Name */
 
#define SQLITE_CREATE_VIEW   8 /* View Name NULL */
 
#define SQLITE_CREATE_VTABLE   29 /* Table Name Module Name */
 
#define SQLITE_DBCONFIG_ENABLE_FKEY   1002 /* int int* */
 
#define SQLITE_DBCONFIG_ENABLE_TRIGGER   1003 /* int int* */
 
#define SQLITE_DBCONFIG_LOOKASIDE   1001 /* void* int int */
 
#define SQLITE_DBSTATUS_CACHE_HIT   7
 
#define SQLITE_DBSTATUS_CACHE_MISS   8
 
#define SQLITE_DBSTATUS_CACHE_USED   1
 
#define SQLITE_DBSTATUS_CACHE_WRITE   9
 
#define SQLITE_DBSTATUS_DEFERRED_FKS   10
 
#define SQLITE_DBSTATUS_LOOKASIDE_HIT   4
 
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL   6
 
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE   5
 
#define SQLITE_DBSTATUS_LOOKASIDE_USED   0
 
#define SQLITE_DBSTATUS_MAX   10 /* Largest defined DBSTATUS */
 
#define SQLITE_DBSTATUS_SCHEMA_USED   2
 
#define SQLITE_DBSTATUS_STMT_USED   3
 
#define SQLITE_DEFAULT_AUTOVACUUM   0
 
#define SQLITE_DEFAULT_CACHE_SIZE   2000
 
#define SQLITE_DEFAULT_FILE_FORMAT   4
 
#define SQLITE_DEFAULT_FILE_PERMISSIONS   0644
 
#define SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT   -1
 
#define SQLITE_DEFAULT_MEMSTATUS   1
 
#define SQLITE_DEFAULT_MMAP_SIZE   0
 
#define SQLITE_DEFAULT_MMAP_SIZE_xc   1 /* Exclude from ctime.c */
 
#define SQLITE_DEFAULT_PAGE_SIZE   1024
 
#define SQLITE_DEFAULT_PROXYDIR_PERMISSIONS   0755
 
#define SQLITE_DEFAULT_RECURSIVE_TRIGGERS   0
 
#define SQLITE_DEFAULT_SECTOR_SIZE   4096
 
#define SQLITE_DEFAULT_TEMP_CACHE_SIZE   500
 
#define SQLITE_DEFAULT_WAL_AUTOCHECKPOINT   1000
 
#define SQLITE_DeferFKs   0x01000000 /* Defer all FK constraints */
 
#define SQLITE_DELETE   9 /* Table Name NULL */
 
#define SQLITE_DENY   1 /* Abort the SQL statement with an error */
 
#define SQLITE_DEPRECATED
 
#define SQLITE_DETACH   25 /* Database Name NULL */
 
#define SQLITE_DistinctOpt   0x0020 /* DISTINCT using indexes */
 
#define SQLITE_DONE   101 /* sqlite3_step() has finished executing */
 
#define SQLITE_DROP_INDEX   10 /* Index Name Table Name */
 
#define SQLITE_DROP_TABLE   11 /* Table Name NULL */
 
#define SQLITE_DROP_TEMP_INDEX   12 /* Index Name Table Name */
 
#define SQLITE_DROP_TEMP_TABLE   13 /* Table Name NULL */
 
#define SQLITE_DROP_TEMP_TRIGGER   14 /* Trigger Name Table Name */
 
#define SQLITE_DROP_TEMP_VIEW   15 /* View Name NULL */
 
#define SQLITE_DROP_TRIGGER   16 /* Trigger Name Table Name */
 
#define SQLITE_DROP_VIEW   17 /* View Name NULL */
 
#define SQLITE_DROP_VTABLE   30 /* Table Name Module Name */
 
#define SQLITE_DYNAMIC   ((sqlite3_destructor_type)sqlite3MallocSize)
 
#define SQLITE_ECEL_DUP   0x01 /* Deep, not shallow copies */
 
#define SQLITE_ECEL_FACTOR   0x02 /* Factor out constant terms */
 
#define SQLITE_EMPTY   16 /* Database is empty */
 
#define SQLITE_ENABLE_LOCKING_STYLE   0
 
#define SQLITE_EnableTrigger   0x00800000 /* True to enable triggers */
 
#define SQLITE_ERROR   1 /* SQL error or missing database */
 
#define SQLITE_EXPERIMENTAL
 
#define SQLITE_EXTENSION_INIT1   /*no-op*/
 
#define SQLITE_EXTENSION_INIT2(v)   (void)v; /* unused parameter */
 
#define SQLITE_EXTENSION_INIT3   /*no-op*/
 
#define SQLITE_EXTERN   extern
 
#define SQLITE_FactorOutConst   0x0008 /* Constant factoring */
 
#define SQLITE_FAIL   3
 
#define SQLITE_FAULTINJECTOR_COUNT   1
 
#define SQLITE_FAULTINJECTOR_MALLOC   0
 
#define SQLITE_FCNTL_BUSYHANDLER   15
 
#define SQLITE_FCNTL_CHUNK_SIZE   6
 
#define SQLITE_FCNTL_DB_UNCHANGED   0xca093fa0
 
#define SQLITE_FCNTL_FILE_POINTER   7
 
#define SQLITE_FCNTL_LOCKSTATE   1
 
#define SQLITE_FCNTL_MMAP_SIZE   18
 
#define SQLITE_FCNTL_OVERWRITE   11
 
#define SQLITE_FCNTL_PERSIST_WAL   10
 
#define SQLITE_FCNTL_POWERSAFE_OVERWRITE   13
 
#define SQLITE_FCNTL_PRAGMA   14
 
#define SQLITE_FCNTL_SIZE_HINT   5
 
#define SQLITE_FCNTL_SYNC_OMITTED   8
 
#define SQLITE_FCNTL_TEMPFILENAME   16
 
#define SQLITE_FCNTL_TRACE   19
 
#define SQLITE_FCNTL_VFSNAME   12
 
#define SQLITE_FCNTL_WIN32_AV_RETRY   9
 
#define SQLITE_FILE_HEADER   "SQLite format 3"
 
#define SQLITE_FLOAT   2
 
#define SQLITE_ForeignKeys   0x00080000 /* Enforce foreign key constraints */
 
#define SQLITE_FORMAT   24 /* Auxiliary database format error */
 
#define SQLITE_FREE(x)   free(x)
 
#define SQLITE_FSFLAGS_IS_MSDOS   0x1
 
#define SQLITE_FULL   13 /* Insertion failed because database is full */
 
#define SQLITE_FullColNames   0x00000020 /* Show full column names on SELECT */
 
#define SQLITE_FullFSync   0x00000004 /* Use full fsync on the backend */
 
#define SQLITE_FUNC_CASE   0x008 /* Case-sensitive LIKE-type function */
 
#define SQLITE_FUNC_COALESCE   0x200 /* Built-in coalesce() or ifnull() */
 
#define SQLITE_FUNC_CONSTANT   0x800 /* Constant inputs give a constant output */
 
#define SQLITE_FUNC_COUNT   0x100 /* Built-in count(*) aggregate */
 
#define SQLITE_FUNC_ENCMASK   0x003 /* SQLITE_UTF8, SQLITE_UTF16BE or UTF16LE */
 
#define SQLITE_FUNC_EPHEM   0x010 /* Ephemeral. Delete with VDBE */
 
#define SQLITE_FUNC_LENGTH   0x040 /* Built-in length() function */
 
#define SQLITE_FUNC_LIKE   0x004 /* Candidate for the LIKE optimization */
 
#define SQLITE_FUNC_NEEDCOLL   0x020 /* sqlite3GetFuncCollSeq() might be called */
 
#define SQLITE_FUNC_TYPEOF   0x080 /* Built-in typeof() function */
 
#define SQLITE_FUNC_UNLIKELY   0x400 /* Built-in unlikely() function */
 
#define SQLITE_FUNCTION   31 /* NULL Function Name */
 
#define SQLITE_GET_LOCKPROXYFILE   2
 
#define SQLITE_GroupByOrder   0x0004 /* GROUPBY cover of ORDERBY */
 
#define SQLITE_IdxRealAsInt   0x0010 /* Store REAL as INT in indices */
 
#define SQLITE_IGNORE   2 /* Don't allow access, but don't generate an error */
 
#define SQLITE_IgnoreChecks   0x00002000 /* Do not enforce check constraints */
 
#define SQLITE_INDEX_CONSTRAINT_EQ   2
 
#define SQLITE_INDEX_CONSTRAINT_GE   32
 
#define SQLITE_INDEX_CONSTRAINT_GT   4
 
#define SQLITE_INDEX_CONSTRAINT_LE   8
 
#define SQLITE_INDEX_CONSTRAINT_LT   16
 
#define SQLITE_INDEX_CONSTRAINT_MATCH   64
 
#define SQLITE_INSERT   18 /* Table Name NULL */
 
#define SQLITE_INT_TO_PTR(X)   ((void*)&((char*)0)[X])
 
#define SQLITE_INTEGER   1
 
#define SQLITE_INTEGRITY_CHECK_ERROR_MAX   100
 
#define SQLITE_INTERNAL   2 /* Internal logic error in SQLite */
 
#define SQLITE_InternChanges   0x00000002 /* Uncommitted Hash table changes */
 
#define SQLITE_INTERRUPT   9 /* Operation terminated by sqlite3_interrupt()*/
 
#define SQLITE_IOCAP_ATOMIC   0x00000001
 
#define SQLITE_IOCAP_ATOMIC16K   0x00000040
 
#define SQLITE_IOCAP_ATOMIC1K   0x00000004
 
#define SQLITE_IOCAP_ATOMIC2K   0x00000008
 
#define SQLITE_IOCAP_ATOMIC32K   0x00000080
 
#define SQLITE_IOCAP_ATOMIC4K   0x00000010
 
#define SQLITE_IOCAP_ATOMIC512   0x00000002
 
#define SQLITE_IOCAP_ATOMIC64K   0x00000100
 
#define SQLITE_IOCAP_ATOMIC8K   0x00000020
 
#define SQLITE_IOCAP_POWERSAFE_OVERWRITE   0x00001000
 
#define SQLITE_IOCAP_SAFE_APPEND   0x00000200
 
#define SQLITE_IOCAP_SEQUENTIAL   0x00000400
 
#define SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN   0x00000800
 
#define SQLITE_IOERR   10 /* Some kind of disk I/O error occurred */
 
#define SQLITE_IOERR_ACCESS   (SQLITE_IOERR | (13<<8))
 
#define SQLITE_IOERR_BLOCKED   (SQLITE_IOERR | (11<<8))
 
#define SQLITE_IOERR_CHECKRESERVEDLOCK   (SQLITE_IOERR | (14<<8))
 
#define SQLITE_IOERR_CLOSE   (SQLITE_IOERR | (16<<8))
 
#define SQLITE_IOERR_CONVPATH   (SQLITE_IOERR | (26<<8))
 
#define SQLITE_IOERR_DELETE   (SQLITE_IOERR | (10<<8))
 
#define SQLITE_IOERR_DELETE_NOENT   (SQLITE_IOERR | (23<<8))
 
#define SQLITE_IOERR_DIR_CLOSE   (SQLITE_IOERR | (17<<8))
 
#define SQLITE_IOERR_DIR_FSYNC   (SQLITE_IOERR | (5<<8))
 
#define SQLITE_IOERR_FSTAT   (SQLITE_IOERR | (7<<8))
 
#define SQLITE_IOERR_FSYNC   (SQLITE_IOERR | (4<<8))
 
#define SQLITE_IOERR_GETTEMPPATH   (SQLITE_IOERR | (25<<8))
 
#define SQLITE_IOERR_LOCK   (SQLITE_IOERR | (15<<8))
 
#define SQLITE_IOERR_MMAP   (SQLITE_IOERR | (24<<8))
 
#define SQLITE_IOERR_NOMEM   (SQLITE_IOERR | (12<<8))
 
#define SQLITE_IOERR_RDLOCK   (SQLITE_IOERR | (9<<8))
 
#define SQLITE_IOERR_READ   (SQLITE_IOERR | (1<<8))
 
#define SQLITE_IOERR_SEEK   (SQLITE_IOERR | (22<<8))
 
#define SQLITE_IOERR_SHMLOCK   (SQLITE_IOERR | (20<<8))
 
#define SQLITE_IOERR_SHMMAP   (SQLITE_IOERR | (21<<8))
 
#define SQLITE_IOERR_SHMOPEN   (SQLITE_IOERR | (18<<8))
 
#define SQLITE_IOERR_SHMSIZE   (SQLITE_IOERR | (19<<8))
 
#define SQLITE_IOERR_SHORT_READ   (SQLITE_IOERR | (2<<8))
 
#define SQLITE_IOERR_TRUNCATE   (SQLITE_IOERR | (6<<8))
 
#define SQLITE_IOERR_UNLOCK   (SQLITE_IOERR | (8<<8))
 
#define SQLITE_IOERR_WRITE   (SQLITE_IOERR | (3<<8))
 
#define SQLITE_JUMPIFNULL   0x08 /* jumps if either operand is NULL */
 
#define SQLITE_LAST_ERRNO   4
 
#define SQLITE_LegacyFileFmt   0x00008000 /* Create new databases in format 1 */
 
#define SQLITE_LIMIT_ATTACHED   7
 
#define SQLITE_LIMIT_COLUMN   2
 
#define SQLITE_LIMIT_COMPOUND_SELECT   4
 
#define SQLITE_LIMIT_EXPR_DEPTH   3
 
#define SQLITE_LIMIT_FUNCTION_ARG   6
 
#define SQLITE_LIMIT_LENGTH   0
 
#define SQLITE_LIMIT_LIKE_PATTERN_LENGTH   8
 
#define SQLITE_LIMIT_SQL_LENGTH   1
 
#define SQLITE_LIMIT_TRIGGER_DEPTH   10
 
#define SQLITE_LIMIT_VARIABLE_NUMBER   9
 
#define SQLITE_LIMIT_VDBE_OP   5
 
#define SQLITE_LITTLEENDIAN   (*(char *)(&sqlite3one)==1)
 
#define SQLITE_LoadExtension   0x00400000 /* Enable load_extension */
 
#define SQLITE_LOCK_EXCLUSIVE   4
 
#define SQLITE_LOCK_NONE   0
 
#define SQLITE_LOCK_PENDING   3
 
#define SQLITE_LOCK_RESERVED   2
 
#define SQLITE_LOCK_SHARED   1
 
#define SQLITE_LOCKED   6 /* A table in the database is locked */
 
#define SQLITE_LOCKED_SHAREDCACHE   (SQLITE_LOCKED | (1<<8))
 
#define SQLITE_MAGIC_BUSY   0xf03b7906 /* Database currently in use */
 
#define SQLITE_MAGIC_CLOSED   0x9f3c2d33 /* Database is closed */
 
#define SQLITE_MAGIC_ERROR   0xb5357930 /* An SQLITE_MISUSE error occurred */
 
#define SQLITE_MAGIC_OPEN   0xa029a697 /* Database is open */
 
#define SQLITE_MAGIC_SICK   0x4b771290 /* Error and awaiting close */
 
#define SQLITE_MAGIC_ZOMBIE   0x64cffc7f /* Close with last statement close */
 
#define SQLITE_MALLOC(x)   malloc(x)
 
#define SQLITE_MALLOC_SOFT_LIMIT   1024
 
#define SQLITE_MAX_ATTACHED   10
 
#define SQLITE_MAX_COLUMN   2000
 
#define SQLITE_MAX_COMPOUND_SELECT   500
 
#define SQLITE_MAX_DEFAULT_PAGE_SIZE   8192
 
#define SQLITE_MAX_EXPR_DEPTH   1000
 
#define SQLITE_MAX_FILE_FORMAT   4
 
#define SQLITE_MAX_FUNCTION_ARG   127
 
#define SQLITE_MAX_LENGTH   1000000000
 
#define SQLITE_MAX_LIKE_PATTERN_LENGTH   50000
 
#define SQLITE_MAX_MMAP_SIZE   0
 
#define SQLITE_MAX_MMAP_SIZE_xc   1 /* exclude from ctime.c */
 
#define SQLITE_MAX_PAGE_COUNT   1073741823
 
#define SQLITE_MAX_PAGE_SIZE   65536
 
#define SQLITE_MAX_SCHEMA_RETRY   50
 
#define SQLITE_MAX_SQL_LENGTH   1000000000
 
#define SQLITE_MAX_TRIGGER_DEPTH   1000
 
#define SQLITE_MAX_U32   ((((u64)1)<<32)-1)
 
#define SQLITE_MAX_VARIABLE_NUMBER   999
 
#define SQLITE_MAX_VDBE_OP   25000
 
#define SQLITE_MINIMUM_FILE_DESCRIPTOR   3
 
#define SQLITE_MISMATCH   20 /* Data type mismatch */
 
#define SQLITE_MISUSE   21 /* Library used incorrectly */
 
#define SQLITE_MISUSE_BKPT   sqlite3MisuseError(__LINE__)
 
#define SQLITE_MUTEX_FAST   0
 
#define SQLITE_MUTEX_NREF   0
 
#define SQLITE_MUTEX_PTHREADS
 
#define SQLITE_MUTEX_RECURSIVE   1
 
#define SQLITE_MUTEX_STATIC_LRU   6 /* lru page list */
 
#define SQLITE_MUTEX_STATIC_LRU2   7 /* NOT USED */
 
#define SQLITE_MUTEX_STATIC_MASTER   2
 
#define SQLITE_MUTEX_STATIC_MEM   3 /* sqlite3_malloc() */
 
#define SQLITE_MUTEX_STATIC_MEM2   4 /* NOT USED */
 
#define SQLITE_MUTEX_STATIC_OPEN   4 /* sqlite3BtreeOpen() */
 
#define SQLITE_MUTEX_STATIC_PMEM   7 /* sqlite3PageMalloc() */
 
#define SQLITE_MUTEX_STATIC_PRNG   5 /* sqlite3_random() */
 
#define SQLITE_N_BTREE_META   10
 
#define SQLITE_N_COLCACHE   10
 
#define SQLITE_N_KEYWORD   122
 
#define SQLITE_N_LIMIT   (SQLITE_LIMIT_TRIGGER_DEPTH+1)
 
#define SQLITE_NOLFS   22 /* Uses OS features not supported on host */
 
#define SQLITE_NOMEM   7 /* A malloc() failed */
 
#define SQLITE_NOTADB   26 /* File opened that is not a database file */
 
#define SQLITE_NOTFOUND   12 /* Unknown opcode in sqlite3_file_control() */
 
#define SQLITE_NOTICE   27 /* Notifications from sqlite3_log() */
 
#define SQLITE_NOTICE_RECOVER_ROLLBACK   (SQLITE_NOTICE | (2<<8))
 
#define SQLITE_NOTICE_RECOVER_WAL   (SQLITE_NOTICE | (1<<8))
 
#define SQLITE_NULL   5
 
#define SQLITE_NullCallback   0x00000100 /* Invoke the callback once if the */
 
#define SQLITE_NULLEQ   0x80 /* NULL=NULL */
 
#define SQLITE_OK   0 /* Successful result */
 
#define SQLITE_OmitNoopJoin   0x0400 /* Omit unused tables in joins */
 
#define SQLITE_OPEN_AUTOPROXY   0x00000020 /* VFS only */
 
#define SQLITE_OPEN_CREATE   0x00000004 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_DELETEONCLOSE   0x00000008 /* VFS only */
 
#define SQLITE_OPEN_EXCLUSIVE   0x00000010 /* VFS only */
 
#define SQLITE_OPEN_FULLMUTEX   0x00010000 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_MAIN_DB   0x00000100 /* VFS only */
 
#define SQLITE_OPEN_MAIN_JOURNAL   0x00000800 /* VFS only */
 
#define SQLITE_OPEN_MASTER_JOURNAL   0x00004000 /* VFS only */
 
#define SQLITE_OPEN_MEMORY   0x00000080 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_NOMUTEX   0x00008000 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_PRIVATECACHE   0x00040000 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_READONLY   0x00000001 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_READWRITE   0x00000002 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_SHAREDCACHE   0x00020000 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_SUBJOURNAL   0x00002000 /* VFS only */
 
#define SQLITE_OPEN_TEMP_DB   0x00000200 /* VFS only */
 
#define SQLITE_OPEN_TEMP_JOURNAL   0x00001000 /* VFS only */
 
#define SQLITE_OPEN_TRANSIENT_DB   0x00000400 /* VFS only */
 
#define SQLITE_OPEN_URI   0x00000040 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_WAL   0x00080000 /* VFS only */
 
#define SQLITE_OrderByIdxJoin   0x0080 /* ORDER BY of joins via index */
 
#define SQLITE_OS_OTHER   0
 
#define SQLITE_OS_UNIX   1
 
#define SQLITE_OS_WIN   0
 
#define SQLITE_OS_WINCE   0
 
#define SQLITE_OS_WINRT   0
 
#define SQLITE_PERM   3 /* Access permission denied */
 
#define SQLITE_POWERSAFE_OVERWRITE   1
 
#define SQLITE_PRAGMA   19 /* Pragma Name 1st arg or NULL */
 
#define SQLITE_PreferBuiltin   0x00200000 /* Preference to built-in funcs */
 
#define SQLITE_PRINT_BUF_SIZE   70
 
#define SQLITE_PRIVATE   static
 
#define SQLITE_PROTOCOL   15 /* Database lock protocol error */
 
#define SQLITE_PTR_TO_INT(X)   ((int)(((char*)X)-(char*)0))
 
#define SQLITE_QueryFlattener   0x0001 /* Query flattening */
 
#define SQLITE_QueryOnly   0x02000000 /* Disable database changes */
 
#define SQLITE_RANGE   25 /* 2nd parameter to sqlite3_bind out of range */
 
#define SQLITE_READ   20 /* Table Name Column Name */
 
#define SQLITE_READONLY   8 /* Attempt to write a readonly database */
 
#define SQLITE_READONLY_CANTLOCK   (SQLITE_READONLY | (2<<8))
 
#define SQLITE_READONLY_RECOVERY   (SQLITE_READONLY | (1<<8))
 
#define SQLITE_READONLY_ROLLBACK   (SQLITE_READONLY | (3<<8))
 
#define SQLITE_ReadUncommitted   0x0004000 /* For shared-cache mode */
 
#define SQLITE_REALLOC(x, y)   realloc((x),(y))
 
#define SQLITE_RecoveryMode   0x00010000 /* Ignore schema errors */
 
#define SQLITE_RecTriggers   0x00040000 /* Enable recursive triggers */
 
#define SQLITE_REINDEX   27 /* Index Name NULL */
 
#define SQLITE_REPLACE   5
 
#define SQLITE_ReverseOrder   0x00020000 /* Reverse unordered SELECTs */
 
#define SQLITE_ROLLBACK   1
 
#define SQLITE_ROW   100 /* sqlite3_step() has another row ready */
 
#define SQLITE_SAVEPOINT   32 /* Operation Savepoint Name */
 
#define SQLITE_SCHEMA   17 /* The database schema changed */
 
#define SQLITE_SELECT   21 /* NULL NULL */
 
#define SQLITE_SET_LOCKPROXYFILE   3
 
#define SQLITE_SHM_EXCLUSIVE   8
 
#define SQLITE_SHM_LOCK   2
 
#define SQLITE_SHM_NLOCK   8
 
#define SQLITE_SHM_SHARED   4
 
#define SQLITE_SHM_UNLOCK   1
 
#define SQLITE_ShortColNames   0x00000040 /* Show short columns names */
 
#define SQLITE_SKIP_UTF8(zIn)
 
#define SQLITE_SO_ASC   0 /* Sort in ascending order */
 
#define SQLITE_SO_DESC   1 /* Sort in ascending order */
 
#define SQLITE_SOURCE_ID   "2013-12-06 14:53:30 27392118af4c38c5203a04b8013e1afdb1cebd0d"
 
#define SQLITE_SqlTrace   0x00000200 /* Debug print SQL as it executes */
 
#define SQLITE_Stat3   0x0800 /* Use the SQLITE_STAT3 table */
 
#define SQLITE_STAT4_SAMPLES   1
 
#define SQLITE_STATIC   ((sqlite3_destructor_type)0)
 
#define SQLITE_STATUS_MALLOC_COUNT   9
 
#define SQLITE_STATUS_MALLOC_SIZE   5
 
#define SQLITE_STATUS_MEMORY_USED   0
 
#define SQLITE_STATUS_PAGECACHE_OVERFLOW   2
 
#define SQLITE_STATUS_PAGECACHE_SIZE   7
 
#define SQLITE_STATUS_PAGECACHE_USED   1
 
#define SQLITE_STATUS_PARSER_STACK   6
 
#define SQLITE_STATUS_SCRATCH_OVERFLOW   4
 
#define SQLITE_STATUS_SCRATCH_SIZE   8
 
#define SQLITE_STATUS_SCRATCH_USED   3
 
#define SQLITE_STMTSTATUS_AUTOINDEX   3
 
#define SQLITE_STMTSTATUS_FULLSCAN_STEP   1
 
#define SQLITE_STMTSTATUS_SORT   2
 
#define SQLITE_STMTSTATUS_VM_STEP   4
 
#define SQLITE_STOREP2   0x10 /* Store result in reg[P2] rather than jump */
 
#define SQLITE_SubqCoroutine   0x0100 /* Evaluate subqueries as coroutines */
 
#define SQLITE_SYNC_DATAONLY   0x00010
 
#define SQLITE_SYNC_FULL   0x00003
 
#define SQLITE_SYNC_MASK   0x13 /* Mask off the SQLITE_SYNC_* values */
 
#define SQLITE_SYNC_NORMAL   0x00002
 
#define SQLITE_SYSTEM_MALLOC   1
 
#define SQLITE_TEMP_FILE_PREFIX   "etilqs_"
 
#define SQLITE_TEMP_STORE   1
 
#define SQLITE_TEMP_STORE_xc   1 /* Exclude from ctime.c */
 
#define SQLITE_TESTCTRL_ALWAYS   13
 
#define SQLITE_TESTCTRL_ASSERT   12
 
#define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS   10
 
#define SQLITE_TESTCTRL_BITVEC_TEST   8
 
#define SQLITE_TESTCTRL_EXPLAIN_STMT   19
 
#define SQLITE_TESTCTRL_FAULT_INSTALL   9
 
#define SQLITE_TESTCTRL_FIRST   5
 
#define SQLITE_TESTCTRL_ISKEYWORD   16
 
#define SQLITE_TESTCTRL_LAST   20
 
#define SQLITE_TESTCTRL_LOCALTIME_FAULT   18
 
#define SQLITE_TESTCTRL_NEVER_CORRUPT   20
 
#define SQLITE_TESTCTRL_OPTIMIZATIONS   15
 
#define SQLITE_TESTCTRL_PENDING_BYTE   11
 
#define SQLITE_TESTCTRL_PRNG_RESET   7
 
#define SQLITE_TESTCTRL_PRNG_RESTORE   6
 
#define SQLITE_TESTCTRL_PRNG_SAVE   5
 
#define SQLITE_TESTCTRL_RESERVE   14
 
#define SQLITE_TESTCTRL_SCRATCHMALLOC   17
 
#define SQLITE_TEXT   3
 
#define SQLITE_THREADSAFE   1 /* IMP: R-07272-22309 */
 
#define SQLITE_TOOBIG   18 /* String or BLOB exceeds size limit */
 
#define SQLITE_TRANSACTION   22 /* Operation NULL */
 
#define SQLITE_TRANSIENT   ((sqlite3_destructor_type)-1)
 
#define SQLITE_Transitive   0x0200 /* Transitive constraints */
 
#define SQLITE_UNIX_THREADS   1
 
#define SQLITE_UPDATE   23 /* Table Name Column Name */
 
#define SQLITE_USE_URI   0
 
#define SQLITE_UTF16   4 /* Use native byte order */
 
#define SQLITE_UTF16_ALIGNED   8 /* sqlite3_create_collation only */
 
#define SQLITE_UTF16BE   3
 
#define SQLITE_UTF16LE   2
 
#define SQLITE_UTF16NATIVE   (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE)
 
#define SQLITE_UTF8   1
 
#define SQLITE_VdbeAddopTrace   0x00001000 /* Trace sqlite3VdbeAddOp() calls */
 
#define SQLITE_VdbeEQP   0x04000000 /* Debug EXPLAIN QUERY PLAN */
 
#define SQLITE_VdbeListing   0x00000400 /* Debug listings of VDBE programs */
 
#define SQLITE_VdbeTrace   0x00000001 /* True to trace VDBE execution */
 
#define SQLITE_VERSION   "3.8.2"
 
#define SQLITE_VERSION_NUMBER   3008002
 
#define SQLITE_VTAB_CONSTRAINT_SUPPORT   1
 
#define SQLITE_WARNING   28 /* Warnings from sqlite3_log() */
 
#define SQLITE_WARNING_AUTOINDEX   (SQLITE_WARNING | (1<<8))
 
#define SQLITE_WriteSchema   0x00000800 /* OK to update SQLITE_MASTER */
 
#define SQLITE_WSD
 
#define sqliteHashData(E)   ((E)->data)
 
#define sqliteHashFirst(H)   ((H)->first)
 
#define sqliteHashNext(E)   ((E)->next)
 
#define SRT_Coroutine   10 /* Generate a single row of result */
 
#define SRT_Discard   4 /* Do not save the results anywhere */
 
#define SRT_EphemTab   9 /* Create transient tab and store like SRT_Table */
 
#define SRT_Except   2 /* Remove result from a UNION index */
 
#define SRT_Exists   3 /* Store 1 if the result is not empty */
 
#define SRT_Mem   6 /* Store result in a memory cell */
 
#define SRT_Output   5 /* Output each row of result */
 
#define SRT_Set   7 /* Store results as keys in an index */
 
#define SRT_Table   8 /* Store result as data with an automatic rowid */
 
#define SRT_Union   1 /* Store result as keys in an index */
 
#define STAT_GET_NDLT   4 /* "ndlt" column of stat[34] entry */
 
#define STAT_GET_NEQ   2 /* "neq" column of stat[34] entry */
 
#define STAT_GET_NLT   3 /* "nlt" column of stat[34] entry */
 
#define STAT_GET_ROWID   1 /* "rowid" column of stat[34] entry */
 
#define STAT_GET_STAT1   0 /* "stat" column of stat1 table */
 
#define STR_FUNCTION(zName, nArg, pArg, bNC, xFunc)
 
#define STRACCUM_NOMEM   1
 
#define STRACCUM_TOOBIG   2
 
#define STRICMP(x, y)
 
#define Stringify(P, enc)
 
#define SWAP(TYPE, A, B)   {TYPE t=A; A=B; B=t;}
 
#define swapMixedEndianFloat(X)
 
#define TEMP_MASTER_NAME   "sqlite_temp_master"
 
#define TERM_ANDINFO   0x20 /* Need to free the WhereTerm.u.pAndInfo obj */
 
#define TERM_CODED   0x04 /* This term is already coded */
 
#define TERM_COPIED   0x08 /* Has a child */
 
#define TERM_DYNAMIC   0x01 /* Need to call sqlite3ExprDelete(db, pExpr) */
 
#define TERM_OR_OK   0x40 /* Used during OR-clause processing */
 
#define TERM_ORINFO   0x10 /* Need to free the WhereTerm.u.pOrInfo object */
 
#define TERM_VIRTUAL   0x02 /* Added by the optimizer. Do not code */
 
#define TERM_VNULL   0x00 /* Disabled if not using stat3 */
 
#define TESTBIT(V, I)   (V[I>>3]&(1<<(I&7)))!=0
 
#define testcase(X)
 
#define TESTONLY(X)
 
#define TF_Autoincrement   0x08 /* Integer primary key is autoincrement */
 
#define TF_Ephemeral   0x02 /* An ephemeral table */
 
#define TF_HasPrimaryKey   0x04 /* Table has a primary key */
 
#define TF_Readonly   0x01 /* Read-only system table */
 
#define TF_Virtual   0x10 /* Is a virtual table */
 
#define TF_WithoutRowid   0x20 /* No rowid used. PRIMARY KEY is the key */
 
#define threadid   pthread_self()
 
#define TIMER_ELAPSED   ((sqlite_uint64)0)
 
#define TIMER_END
 
#define TIMER_START
 
#define TK_ABORT   29
 
#define TK_ACTION   30
 
#define TK_ADD   141
 
#define TK_AFTER   31
 
#define TK_AGG_COLUMN   155
 
#define TK_AGG_FUNCTION   154
 
#define TK_ALL   114
 
#define TK_ALTER   140
 
#define TK_ANALYZE   32
 
#define TK_AND   70
 
#define TK_ANY   68
 
#define TK_AS   24
 
#define TK_ASC   33
 
#define TK_ATTACH   34
 
#define TK_AUTOINCR   104
 
#define TK_BEFORE   35
 
#define TK_BEGIN   5
 
#define TK_BETWEEN   72
 
#define TK_BITAND   83
 
#define TK_BITNOT   94
 
#define TK_BITOR   84
 
#define TK_BLOB   132
 
#define TK_BY   36
 
#define TK_CASCADE   37
 
#define TK_CASE   135
 
#define TK_CAST   38
 
#define TK_CHECK   102
 
#define TK_COLLATE   93
 
#define TK_COLUMN   153
 
#define TK_COLUMNKW   39
 
#define TK_COMMA   26
 
#define TK_COMMIT   10
 
#define TK_CONCAT   92
 
#define TK_CONFLICT   40
 
#define TK_CONSTRAINT   97
 
#define TK_CREATE   17
 
#define TK_CTIME_KW   67
 
#define TK_DATABASE   41
 
#define TK_DEFAULT   98
 
#define TK_DEFERRABLE   110
 
#define TK_DEFERRED   7
 
#define TK_DELETE   107
 
#define TK_DESC   42
 
#define TK_DETACH   43
 
#define TK_DISTINCT   118
 
#define TK_DOT   119
 
#define TK_DROP   112
 
#define TK_EACH   44
 
#define TK_ELSE   138
 
#define TK_END   11
 
#define TK_END_OF_FILE   148
 
#define TK_EQ   77
 
#define TK_ESCAPE   82
 
#define TK_EXCEPT   115
 
#define TK_EXCLUSIVE   9
 
#define TK_EXISTS   20
 
#define TK_EXPLAIN   2
 
#define TK_FAIL   45
 
#define TK_FLOAT   131
 
#define TK_FOR   46
 
#define TK_FOREIGN   111
 
#define TK_FROM   120
 
#define TK_FUNCTION   152
 
#define TK_GE   81
 
#define TK_GROUP   124
 
#define TK_GT   78
 
#define TK_HAVING   125
 
#define TK_ID   27
 
#define TK_IF   18
 
#define TK_IGNORE   47
 
#define TK_ILLEGAL   149
 
#define TK_IMMEDIATE   8
 
#define TK_IN   73
 
#define TK_INDEX   139
 
#define TK_INDEXED   28
 
#define TK_INITIALLY   48
 
#define TK_INSERT   106
 
#define TK_INSTEAD   49
 
#define TK_INTEGER   130
 
#define TK_INTERSECT   116
 
#define TK_INTO   128
 
#define TK_IS   71
 
#define TK_ISNOT   147
 
#define TK_ISNULL   74
 
#define TK_JOIN   121
 
#define TK_JOIN_KW   96
 
#define TK_KEY   53
 
#define TK_LE   79
 
#define TK_LIKE_KW   50
 
#define TK_LIMIT   126
 
#define TK_LP   22
 
#define TK_LSHIFT   85
 
#define TK_LT   80
 
#define TK_MATCH   51
 
#define TK_MINUS   88
 
#define TK_NE   76
 
#define TK_NO   52
 
#define TK_NOT   19
 
#define TK_NOTNULL   75
 
#define TK_NULL   99
 
#define TK_OF   54
 
#define TK_OFFSET   55
 
#define TK_ON   105
 
#define TK_OR   69
 
#define TK_ORDER   123
 
#define TK_PLAN   4
 
#define TK_PLUS   87
 
#define TK_PRAGMA   56
 
#define TK_PRIMARY   100
 
#define TK_QUERY   3
 
#define TK_RAISE   57
 
#define TK_REFERENCES   103
 
#define TK_REGISTER   133
 
#define TK_REINDEX   65
 
#define TK_RELEASE   14
 
#define TK_REM   91
 
#define TK_RENAME   66
 
#define TK_REPLACE   58
 
#define TK_RESTRICT   59
 
#define TK_ROLLBACK   12
 
#define TK_ROW   60
 
#define TK_RP   23
 
#define TK_RSHIFT   86
 
#define TK_SAVEPOINT   13
 
#define TK_SELECT   117
 
#define TK_SEMI   1
 
#define TK_SET   109
 
#define TK_SLASH   90
 
#define TK_SPACE   150
 
#define TK_STAR   89
 
#define TK_STRING   95
 
#define TK_TABLE   16
 
#define TK_TEMP   21
 
#define TK_THEN   137
 
#define TK_TO   15
 
#define TK_TO_BLOB   143
 
#define TK_TO_INT   145
 
#define TK_TO_NUMERIC   144
 
#define TK_TO_REAL   146
 
#define TK_TO_TEXT   142
 
#define TK_TRANSACTION   6
 
#define TK_TRIGGER   61
 
#define TK_UMINUS   156
 
#define TK_UNCLOSED_STRING   151
 
#define TK_UNION   113
 
#define TK_UNIQUE   101
 
#define TK_UPDATE   108
 
#define TK_UPLUS   157
 
#define TK_USING   122
 
#define TK_VACUUM   62
 
#define TK_VALUES   129
 
#define TK_VARIABLE   134
 
#define TK_VIEW   63
 
#define TK_VIRTUAL   64
 
#define TK_WHEN   136
 
#define TK_WHERE   127
 
#define TK_WITHOUT   25
 
#define tkCREATE   4
 
#define tkEND   7
 
#define tkEXPLAIN   3
 
#define tkOTHER   2
 
#define tkSEMI   0
 
#define tkTEMP   5
 
#define tkTRIGGER   6
 
#define tkWS   1
 
#define TOKEN   (yyminor.yy0)
 
#define TRACE(X)
 
#define TRACE_IDX_INPUTS(A)
 
#define TRACE_IDX_OUTPUTS(A)
 
#define TRANS_NONE   0
 
#define TRANS_READ   1
 
#define TRANS_WRITE   2
 
#define TRIGGER_AFTER   2
 
#define TRIGGER_BEFORE   1
 
#define TWOPOWER31   (((i64)1)<<31)
 
#define TWOPOWER32   (((i64)1)<<32)
 
#define UINT16_TYPE   unsigned short int
 
#define UINT32_TYPE   unsigned int
 
#define UINT8_TYPE   unsigned char
 
#define UNIX_SHM_BASE   ((22+SQLITE_SHM_NLOCK)*4) /* first lock byte */
 
#define UNIX_SHM_DMS   (UNIX_SHM_BASE+SQLITE_SHM_NLOCK) /* deadman switch */
 
#define UNIXFILE_DELETE   0x20 /* Delete on close */
 
#define UNIXFILE_DIRSYNC   0x08 /* Directory sync needed */
 
#define UNIXFILE_EXCL   0x01 /* Connections from one process only */
 
#define UNIXFILE_NOLOCK   0x80 /* Do no file locking */
 
#define UNIXFILE_PERSIST_WAL   0x04 /* Persistent WAL mode */
 
#define UNIXFILE_PSOW   0x10 /* SQLITE_IOCAP_POWERSAFE_OVERWRITE */
 
#define UNIXFILE_RDONLY   0x02 /* Connection is read only */
 
#define UNIXFILE_URI   0x40 /* Filename might have query parameters */
 
#define UNIXFILE_WARNED   0x0100 /* verifyDbFile() warnings have been issued */
 
#define unixLogError(a, b, c)   unixLogErrorAtLine(a,b,c,__LINE__)
 
#define UNIXVFS(VFSNAME, FINDER)
 
#define UNKNOWN_LOCK   (EXCLUSIVE_LOCK+1)
 
#define unlikely(X)   (X)
 
#define UNPACKED_INCRKEY   0x01 /* Make this key an epsilon larger */
 
#define UNPACKED_PREFIX_MATCH   0x02 /* A prefix match is considered OK */
 
#define UNUSED_PARAMETER(x)   (void)(x)
 
#define UNUSED_PARAMETER2(x, y)   UNUSED_PARAMETER(x),UNUSED_PARAMETER(y)
 
#define UPDATE_MAX_BLOBSIZE(P)
 
#define UpperToLower   sqlite3UpperToLower
 
#define USEFETCH(x)   0
 
#define VDBE_MAGIC_DEAD   0xb606c3c8 /* The VDBE has been deallocated */
 
#define VDBE_MAGIC_HALT   0x519c2973 /* VDBE has completed execution */
 
#define VDBE_MAGIC_INIT   0x26bceaa5 /* Building a VDBE program */
 
#define VDBE_MAGIC_RUN   0xbdf20da3 /* VDBE is ready to execute */
 
#define VdbeComment(X)
 
#define VdbeFrameMem(p)   ((Mem *)&((u8 *)p)[ROUND8(sizeof(VdbeFrame))])
 
#define vdbeInvokeSqllog(x)
 
#define VdbeMemRelease(X)
 
#define VdbeModuleComment(X)
 
#define VdbeNoopComment(X)
 
#define vfsList   GLOBAL(sqlite3_vfs *, vfsList)
 
#define VFUNCTION(zName, nArg, iArg, bNC, xFunc)
 
#define VVA_ONLY(X)
 
#define WAL_ALL_BUT_WRITE   1
 
#define WAL_CKPT_LOCK   1
 
#define WAL_EXCLUSIVE_MODE   1
 
#define WAL_FRAME_HDRSIZE   24
 
#define WAL_HDRSIZE   32
 
#define WAL_HEAPMEMORY_MODE   2
 
#define WAL_MAGIC   0x377f0682
 
#define WAL_MAX_VERSION   3007000
 
#define WAL_NORMAL_MODE   0
 
#define WAL_NREADER   (SQLITE_SHM_NLOCK-3)
 
#define WAL_RDONLY   1 /* The WAL file is readonly */
 
#define WAL_RDWR   0 /* Normal read/write connection */
 
#define WAL_READ_LOCK(I)   (3+(I))
 
#define WAL_RECOVER_LOCK   2
 
#define WAL_RETRY   (-1)
 
#define WAL_SAVEPOINT_NDATA   4
 
#define WAL_SHM_RDONLY   2 /* The SHM file is readonly */
 
#define WAL_SYNC_TRANSACTIONS   0x20 /* Sync at the end of each transaction */
 
#define WAL_WRITE_LOCK   0
 
#define walFrameOffset(iFrame, szPage)
 
#define WALINDEX_HDR_SIZE   (WALINDEX_LOCK_OFFSET+WALINDEX_LOCK_RESERVED)
 
#define WALINDEX_LOCK_OFFSET   (sizeof(WalIndexHdr)*2 + sizeof(WalCkptInfo))
 
#define WALINDEX_LOCK_RESERVED   16
 
#define WALINDEX_MAX_VERSION   3007000
 
#define WALINDEX_PGSZ
 
#define WALTRACE(X)
 
#define WHERE_AND_ONLY   0x0080 /* Don't use indices for OR terms */
 
#define WHERE_AUTO_INDEX   0x00004000 /* Uses an ephemeral index */
 
#define WHERE_BOTH_LIMIT   0x00000030 /* Both x>EXPR and x<EXPR */
 
#define WHERE_BTM_LIMIT   0x00000020 /* x>EXPR or x>=EXPR constraint */
 
#define WHERE_COLUMN_EQ   0x00000001 /* x=EXPR */
 
#define WHERE_COLUMN_IN   0x00000004 /* x IN (...) */
 
#define WHERE_COLUMN_NULL   0x00000008 /* x IS NULL */
 
#define WHERE_COLUMN_RANGE   0x00000002 /* x<EXPR and/or x>EXPR */
 
#define WHERE_CONSTRAINT   0x0000000f /* Any of the WHERE_COLUMN_xxx values */
 
#define WHERE_DISTINCT_NOOP   0 /* DISTINCT keyword not used */
 
#define WHERE_DISTINCT_ORDERED   2 /* All duplicates are adjacent */
 
#define WHERE_DISTINCT_UNIQUE   1 /* No duplicates */
 
#define WHERE_DISTINCT_UNORDERED   3 /* Duplicates are scattered */
 
#define WHERE_DISTINCTBY   0x0200 /* pOrderby is really a DISTINCT clause */
 
#define WHERE_DUPLICATES_OK   0x0008 /* Ok to return a row more than once */
 
#define WHERE_FORCE_TABLE   0x0020 /* Do not use an index-only search */
 
#define WHERE_GROUPBY   0x0100 /* pOrderBy is really a GROUP BY */
 
#define WHERE_IDX_ONLY   0x00000040 /* Use index only - omit table */
 
#define WHERE_IN_ABLE   0x00000800 /* Able to support an IN operator */
 
#define WHERE_INDEXED   0x00000200 /* WhereLoop.u.btree.pIndex is valid */
 
#define WHERE_IPK   0x00000100 /* x is the INTEGER PRIMARY KEY */
 
#define WHERE_LOOP_XFER_SZ   offsetof(WhereLoop,nLSlot)
 
#define WHERE_MULTI_OR   0x00002000 /* OR using multiple indices */
 
#define WHERE_OMIT_OPEN_CLOSE   0x0010 /* Table cursors are already open */
 
#define WHERE_ONEPASS_DESIRED   0x0004 /* Want to do one-pass UPDATE/DELETE */
 
#define WHERE_ONEROW   0x00001000 /* Selects no more than one row */
 
#define WHERE_ONETABLE_ONLY   0x0040 /* Only code the 1st table in pTabList */
 
#define WHERE_ORDERBY_MAX   0x0002 /* ORDER BY processing for max() func */
 
#define WHERE_ORDERBY_MIN   0x0001 /* ORDER BY processing for min() func */
 
#define WHERE_ORDERBY_NORMAL   0x0000 /* No-op */
 
#define WHERE_SKIPSCAN   0x00008000 /* Uses the skip-scan algorithm */
 
#define WHERE_TOP_LIMIT   0x00000010 /* x<EXPR or x<=EXPR constraint */
 
#define WHERE_VIRTUALTABLE   0x00000400 /* WhereLoop.u.vtab is valid */
 
#define WHERE_WANT_DISTINCT   0x0400 /* All output needs to be distinct */
 
#define WHERETRACE(K, X)
 
#define WO_ALL   0xfff /* Mask of all possible WO_* values */
 
#define WO_AND   0x200 /* Two or more AND-connected terms */
 
#define WO_EQ   0x002
 
#define WO_EQUIV   0x400 /* Of the form A==B, both columns */
 
#define WO_GE   (WO_EQ<<(TK_GE-TK_EQ))
 
#define WO_GT   (WO_EQ<<(TK_GT-TK_EQ))
 
#define WO_IN   0x001
 
#define WO_ISNULL   0x080
 
#define WO_LE   (WO_EQ<<(TK_LE-TK_EQ))
 
#define WO_LT   (WO_EQ<<(TK_LT-TK_EQ))
 
#define WO_MATCH   0x040
 
#define WO_NOOP   0x800 /* This term does not restrict search space */
 
#define WO_OR   0x100 /* Two or more OR-connected terms */
 
#define WO_SINGLE   0x0ff /* Mask of all non-compound WO_* values */
 
#define WRC_Abort   2 /* Abandon the tree walk */
 
#define WRC_Continue   0 /* Continue down into children */
 
#define WRC_Prune   1 /* Omit children but continue walking siblings */
 
#define WRITE_LOCK   2
 
#define WRITE_UTF16BE(zOut, c)
 
#define WRITE_UTF16LE(zOut, c)
 
#define WRITE_UTF8(zOut, c)
 
#define wsdAutoext   sqlite3Autoext
 
#define wsdAutoextInit
 
#define wsdHooks   sqlite3Hooks
 
#define wsdHooksInit
 
#define wsdPrng   sqlite3Prng
 
#define wsdStat   sqlite3Stat
 
#define wsdStatInit
 
#define YY_ACCEPT_ACTION   (YYNSTATE+YYNRULE+1)
 
#define YY_ACTTAB_COUNT   (1582)
 
#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)
 
#define YY_NO_ACTION   (YYNSTATE+YYNRULE+2)
 
#define YY_REDUCE_COUNT   (311)
 
#define YY_REDUCE_MAX   (1387)
 
#define YY_REDUCE_MIN   (-142)
 
#define YY_REDUCE_USE_DFLT   (-143)
 
#define YY_SHIFT_COUNT   (419)
 
#define YY_SHIFT_MAX   (1480)
 
#define YY_SHIFT_MIN   (-81)
 
#define YY_SHIFT_USE_DFLT   (-82)
 
#define YYACTIONTYPE   unsigned short int
 
#define YYCODETYPE   unsigned char
 
#define YYFALLBACK   1
 
#define YYNOCODE   253
 
#define YYNOERRORRECOVERY   1
 
#define YYNRULE   329
 
#define YYNSTATE   631
 
#define YYSTACKDEPTH   100
 
#define yytestcase(X)   testcase(X)
 
#define YYWILDCARD   68
 

Typedefs

typedef struct AggInfo AggInfo
 
typedef struct analysisInfo analysisInfo
 
typedef struct AuthContext AuthContext
 
typedef struct AutoincInfo AutoincInfo
 
typedef struct AuxData AuxData
 
typedef struct BenignMallocHooks BenignMallocHooks
 
typedef unsigned bft
 
typedef u64 Bitmask
 
typedef struct Bitvec Bitvec
 
typedef unsigned Bool
 
typedef struct BtCursor BtCursor
 
typedef struct BtLock BtLock
 
typedef struct Btree Btree
 
typedef struct BtShared BtShared
 
typedef struct BusyHandler BusyHandler
 
typedef struct CellInfo CellInfo
 
typedef struct CollSeq CollSeq
 
typedef struct Column Column
 
typedef struct CountCtx CountCtx
 
typedef struct DateTime DateTime
 
typedef struct Db Db
 
typedef struct DbFixer DbFixer
 
typedef struct PgHdr DbPage
 
typedef struct DistinctCtx DistinctCtx
 
typedef struct et_info et_info
 
typedef unsigned char etByte
 
typedef struct Explain Explain
 
typedef struct Expr Expr
 
typedef struct ExprList ExprList
 
typedef struct ExprSpan ExprSpan
 
typedef struct FileChunk FileChunk
 
typedef struct FilePoint FilePoint
 
typedef struct FileWriter FileWriter
 
typedef struct FKey FKey
 
typedef struct FuncDef FuncDef
 
typedef struct FuncDefHash FuncDefHash
 
typedef struct FuncDestructor FuncDestructor
 
typedef struct Hash Hash
 
typedef struct HashElem HashElem
 
typedef u16 ht_slot
 
typedef INT16_TYPE i16
 
typedef sqlite_int64 i64
 
typedef INT8_TYPE i8
 
typedef struct IdList IdList
 
typedef struct Incrblob Incrblob
 
typedef struct Index Index
 
typedef struct IndexSample IndexSample
 
typedef struct IntegrityCk IntegrityCk
 
typedef struct KeyClass KeyClass
 
typedef struct KeyInfo KeyInfo
 
typedef INT16_TYPE LogEst
 
typedef struct Lookaside Lookaside
 
typedef struct LookasideSlot LookasideSlot
 
typedef struct Mem Mem
 
typedef struct MemJournal MemJournal
 
typedef struct MemPage MemPage
 
typedef struct Module Module
 
typedef struct NameContext NameContext
 
typedef struct VdbeOp Op
 
typedef struct Pager Pager
 
typedef struct PagerSavepoint PagerSavepoint
 
typedef struct Parse Parse
 
typedef struct PCache PCache
 
typedef struct PCache1 PCache1
 
typedef struct PgFreeslot PgFreeslot
 
typedef struct PgHdr PgHdr
 
typedef struct PgHdr1 PgHdr1
 
typedef u32 Pgno
 
typedef struct PGroup PGroup
 
typedef struct RowSet RowSet
 
typedef struct Savepoint Savepoint
 
typedef struct Schema Schema
 
typedef struct ScratchFreeslot ScratchFreeslot
 
typedef struct Select Select
 
typedef struct SelectDest SelectDest
 
typedef struct SorterRecord SorterRecord
 
typedef struct sqlite3 sqlite3
 
typedef struct sqlite3_api_routines sqlite3_api_routines
 
typedef struct sqlite3_backup sqlite3_backup
 
typedef struct sqlite3_blob sqlite3_blob
 
typedef int(* sqlite3_callback) (void *, int, char **, char **)
 
typedef struct sqlite3_context sqlite3_context
 
typedef void(* sqlite3_destructor_type) (void *)
 
typedef struct sqlite3_file sqlite3_file
 
typedef struct sqlite3_index_info sqlite3_index_info
 
typedef sqlite_int64 sqlite3_int64
 
typedef struct sqlite3_io_methods sqlite3_io_methods
 
typedef struct sqlite3_mem_methods sqlite3_mem_methods
 
typedef struct sqlite3_module sqlite3_module
 
typedef struct sqlite3_mutex sqlite3_mutex
 
typedef struct sqlite3_mutex_methods sqlite3_mutex_methods
 
typedef struct sqlite3_pcache sqlite3_pcache
 
typedef struct sqlite3_pcache_methods sqlite3_pcache_methods
 
typedef struct sqlite3_pcache_methods2 sqlite3_pcache_methods2
 
typedef struct sqlite3_pcache_page sqlite3_pcache_page
 
typedef struct sqlite3_rtree_geometry sqlite3_rtree_geometry
 
typedef struct sqlite3_stmt sqlite3_stmt
 
typedef void(* sqlite3_syscall_ptr) (void)
 
typedef sqlite_uint64 sqlite3_uint64
 
typedef struct Mem sqlite3_value
 
typedef struct sqlite3_vfs sqlite3_vfs
 
typedef struct sqlite3_vtab sqlite3_vtab
 
typedef struct sqlite3_vtab_cursor sqlite3_vtab_cursor
 
typedef struct sqlite3AutoExtList sqlite3AutoExtList
 
typedef struct sqlite3StatType sqlite3StatType
 
typedef long long int sqlite_int64
 
typedef unsigned long long int sqlite_uint64
 
typedef struct SrcList SrcList
 
typedef struct Stat4Accum Stat4Accum
 
typedef struct Stat4Sample Stat4Sample
 
typedef struct StrAccum StrAccum
 
typedef struct SubProgram SubProgram
 
typedef struct SumCtx SumCtx
 
typedef struct Table Table
 
typedef struct TableLock TableLock
 
typedef struct TabResult TabResult
 
typedef struct Token Token
 
typedef struct Trigger Trigger
 
typedef struct TriggerPrg TriggerPrg
 
typedef struct TriggerStep TriggerStep
 
typedef u32 tRowcnt
 
typedef UINT16_TYPE u16
 
typedef UINT32_TYPE u32
 
typedef sqlite_uint64 u64
 
typedef UINT8_TYPE u8
 
typedef struct unixFile unixFile
 
typedef struct unixInodeInfo unixInodeInfo
 
typedef struct unixShm unixShm
 
typedef struct unixShmNode unixShmNode
 
typedef struct UnixUnusedFd UnixUnusedFd
 
typedef struct UnpackedRecord UnpackedRecord
 
typedef struct Vdbe Vdbe
 
typedef struct VdbeCursor VdbeCursor
 
typedef struct VdbeFrame VdbeFrame
 
typedef struct VdbeOp VdbeOp
 
typedef struct VdbeOpList VdbeOpList
 
typedef struct VdbeSorter VdbeSorter
 
typedef struct VdbeSorterIter VdbeSorterIter
 
typedef struct VtabCtx VtabCtx
 
typedef struct VTable VTable
 
typedef struct Wal Wal
 
typedef struct WalCkptInfo WalCkptInfo
 
typedef struct WalIndexHdr WalIndexHdr
 
typedef struct WalIterator WalIterator
 
typedef struct Walker Walker
 
typedef struct WalWriter WalWriter
 
typedef struct WhereAndInfo WhereAndInfo
 
typedef struct WhereClause WhereClause
 
typedef struct WhereInfo WhereInfo
 
typedef struct WhereLevel WhereLevel
 
typedef struct WhereLoop WhereLoop
 
typedef struct WhereLoopBuilder WhereLoopBuilder
 
typedef struct WhereMaskSet WhereMaskSet
 
typedef struct WhereOrCost WhereOrCost
 
typedef struct WhereOrInfo WhereOrInfo
 
typedef struct WhereOrSet WhereOrSet
 
typedef struct WherePath WherePath
 
typedef struct WhereScan WhereScan
 
typedef struct WhereTerm WhereTerm
 
typedef unsigned int yDbMask
 
typedef i16 ynVar
 
typedef struct yyParser yyParser
 
typedef struct yyStackEntry yyStackEntry
 

Functions

static void absFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static int accessPayload (BtCursor *pCur, u32 offset, u32 amt, unsigned char *pBuf, int eOp)
 
static const char * actionName (u8 action)
 
static int addAggInfoColumn (sqlite3 *db, AggInfo *pInfo)
 
static int addAggInfoFunc (sqlite3 *db, AggInfo *pInfo)
 
static void addArgumentToVtab (Parse *pParse)
 
static void addModuleArgument (sqlite3 *db, Table *pTable, char *zArg)
 
static int addToSavepointBitvecs (Pager *pPager, Pgno pgno)
 
static void addToVTrans (sqlite3 *db, VTable *pVTab)
 
static void addWhereTerm (Parse *pParse, SrcList *pSrc, int iLeft, int iColLeft, int iRight, int iColRight, int isOuterJoin, Expr **ppWhere)
 
static int allocateBtreePage (BtShared *, MemPage **, Pgno *, Pgno, u8)
 
static VdbeCursorallocateCursor (Vdbe *p, int iCur, int nField, int iDb, int isBtreeCursor)
 
static sqlite3_index_infoallocateIndexInfo (Parse *pParse, WhereClause *pWC, struct SrcList_item *pSrc, ExprList *pOrderBy)
 
static int allocateSpace (MemPage *pPage, int nByte, int *pIdx)
 
static void allocateTempSpace (BtShared *pBt)
 
static void * allocSpace (void *pBuf, int nByte, u8 **ppFrom, u8 *pEnd, int *pnByte)
 
static int allowedOp (int op)
 
static int allSpaces (const char *z, int n)
 
static int analysisLoader (void *pData, int argc, char **argv, char **NotUsed)
 
static int analyzeAggregate (Walker *pWalker, Expr *pExpr)
 
static int analyzeAggregatesInSelect (Walker *pWalker, Select *pSelect)
 
static void analyzeDatabase (Parse *pParse, int iDb)
 
static void analyzeOneTable (Parse *pParse, Table *pTab, Index *pOnlyIdx, int iStatCur, int iMem, int iTab)
 
static void analyzeTable (Parse *pParse, Table *pTab, Index *pOnlyIdx)
 
static void applyAffinity (Mem *pRec, char affinity, u8 enc)
 
static void applyNumericAffinity (Mem *pRec)
 
static void assemblePage (MemPage *pPage, int nCell, u8 **apCell, u16 *aSize)
 
static void attachBackupObject (sqlite3_backup *p)
 
static void attachFunc (sqlite3_context *context, int NotUsed, sqlite3_value **argv)
 
static int autoIncBegin (Parse *pParse, int iDb, Table *pTab)
 
static void autoIncStep (Parse *pParse, int memId, int regRowid)
 
static int autoVacuumCommit (BtShared *pBt)
 
static void avgFinalize (sqlite3_context *context)
 
static int backupOnePage (sqlite3_backup *p, Pgno iSrcPg, const u8 *zSrcData, int bUpdate)
 
static int backupTruncateFile (sqlite3_file *pFile, i64 iSize)
 
static int balance (BtCursor *pCur)
 
static int balance_deeper (MemPage *pRoot, MemPage **ppChild)
 
static int balance_nonroot (MemPage *pParent, int iParentIdx, u8 *aOvflSpace, int isRoot, int bBulk)
 
static int balance_quick (MemPage *pParent, MemPage *pPage, u8 *pSpace)
 
static u8 binaryCompareP5 (Expr *pExpr1, Expr *pExpr2, int jumpIfNull)
 
static void binaryToUnaryIfNull (Parse *pParse, Expr *pY, Expr *pA, int op)
 
static int binCollFunc (void *padFlag, int nKey1, const void *pKey1, int nKey2, const void *pKey2)
 
static int bindText (sqlite3_stmt *pStmt, int i, const void *zData, int nData, void(*xDel)(void *), u8 encoding)
 
static int blobReadWrite (sqlite3_blob *pBlob, void *z, int n, int iOffset, int(*xCall)(BtCursor *, u32, u32, void *))
 
static int blobSeekToRow (Incrblob *p, sqlite3_int64 iRow, char **pzErr)
 
static void btreeClearHasContent (BtShared *pBt)
 
static int btreeCreateTable (Btree *p, int *piTable, int createTabFlags)
 
static int btreeCursor (Btree *p, int iTable, int wrFlag, struct KeyInfo *pKeyInfo, BtCursor *pCur)
 
static int btreeDropTable (Btree *p, Pgno iTable, int *piMoved)
 
static void btreeEndTransaction (Btree *p)
 
static int btreeGetHasContent (BtShared *pBt, Pgno pgno)
 
static int btreeGetPage (BtShared *pBt, Pgno pgno, MemPage **ppPage, int flags)
 
static int btreeInitPage (MemPage *pPage)
 
static int btreeInvokeBusyHandler (void *pArg)
 
static int btreeMoveto (BtCursor *pCur, const void *pKey, i64 nKey, int bias, int *pRes)
 
static Pgno btreePagecount (BtShared *pBt)
 
static MemPagebtreePageFromDbPage (DbPage *pDbPage, Pgno pgno, BtShared *pBt)
 
static MemPagebtreePageLookup (BtShared *pBt, Pgno pgno)
 
static void btreeParseCell (MemPage *pPage, int iCell, CellInfo *pInfo)
 
static void btreeParseCellPtr (MemPage *pPage, u8 *pCell, CellInfo *pInfo)
 
static void btreeReleaseAllCursorPages (BtCursor *pCur)
 
static int btreeRestoreCursorPosition (BtCursor *pCur)
 
static int btreeSetHasContent (BtShared *pBt, Pgno pgno)
 
static void cacheEntryClear (Parse *pParse, struct yColCache *p)
 
static void callCollNeeded (sqlite3 *db, int enc, const char *zName)
 
static void callFinaliser (sqlite3 *db, int offset)
 
static void callStatGet (Vdbe *v, int regStat4, int iParam, int regOut)
 
static void cdateFunc (sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
 
static u16 cellSizePtr (MemPage *pPage, u8 *pCell)
 
static void changes (sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
 
static int changeTempStorage (Parse *pParse, const char *zStorageType)
 
static void charFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void checkAppendMsg (IntegrityCk *pCheck, char *zMsg1, const char *zFormat,...)
 
static int checkColumnOverlap (IdList *pIdList, ExprList *pEList)
 
static int checkForMultiColumnSelectError (Parse *pParse, SelectDest *pDest, int nExpr)
 
static void checkList (IntegrityCk *pCheck, int isFreeList, int iPage, int N, char *zContext)
 
static void checkPtrmap (IntegrityCk *pCheck, Pgno iChild, u8 eType, Pgno iParent, char *zContext)
 
static int checkRef (IntegrityCk *pCheck, Pgno iPage, char *zContext)
 
static int checkTreePage (IntegrityCk *pCheck, int iPage, char *zParentContext, i64 *pnParentMinKey, i64 *pnParentMaxKey)
 
static void Cleanup (Vdbe *p)
 
static void clearAllSharedCacheTableLocks (Btree *p)
 
static int clearCell (MemPage *pPage, unsigned char *pCell)
 
static int clearDatabasePage (BtShared *pBt, Pgno pgno, int freePageFlag, int *pnChange)
 
static void clearSelect (sqlite3 *db, Select *p)
 
static void clearYMD_HMS_TZ (DateTime *p)
 
static void closeAllCursors (Vdbe *p)
 
static void closePendingFds (unixFile *pFile)
 
static int closeUnixFile (sqlite3_file *id)
 
static int codeAllEqualityTerms (Parse *pParse, WhereLevel *pLevel, int bRev, int nExtraReg, char **pzAff)
 
static void codeApplyAffinity (Parse *pParse, int base, int n, char *zAff)
 
static void codeAttach (Parse *pParse, int type, FuncDef const *pFunc, Expr *pAuthArg, Expr *pFilename, Expr *pDbname, Expr *pKey)
 
static int codeCompare (Parse *pParse, Expr *pLeft, Expr *pRight, int opcode, int in1, int in2, int dest, int jumpIfNull)
 
static void codeDistinct (Parse *pParse, int iTab, int addrRepeat, int N, int iMem)
 
static int codeEqualityTerm (Parse *pParse, WhereTerm *pTerm, WhereLevel *pLevel, int iEq, int bRev, int iTarget)
 
static void codeInteger (Parse *pParse, Expr *pExpr, int negFlag, int iMem)
 
static void codeOffset (Vdbe *v, Select *p, int iContinue)
 
static Bitmask codeOneLoopStart (WhereInfo *pWInfo, int iLevel, Bitmask notReady)
 
static void codeReal (Vdbe *v, const char *z, int negateFlag, int iMem)
 
static TriggerPrgcodeRowTrigger (Parse *pParse, Trigger *pTrigger, Table *pTab, int orconf)
 
static void codeTableLocks (Parse *pParse)
 
static int codeTriggerProgram (Parse *pParse, TriggerStep *pStepList, int orconf)
 
static int collationMatch (const char *zColl, Index *pIndex)
 
static int columnIndex (Table *pTab, const char *zCol)
 
static void columnMallocFailure (sqlite3_stmt *pStmt)
 
static MemcolumnMem (sqlite3_stmt *pStmt, int i)
 
static const void * columnName (sqlite3_stmt *pStmt, int N, const void *(*xFunc)(Mem *), int useType)
 
static Bitmask columnsInIndex (Index *pIdx)
 
static const char * columnTypeImpl (NameContext *pNC, Expr *pExpr, u8 *pEstWidth)
 
static int compare2pow63 (const char *zNum, int incr)
 
static char comparisonAffinity (Expr *pExpr)
 
static void compileoptiongetFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void compileoptionusedFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void computeHMS (DateTime *p)
 
static void computeJD (DateTime *p)
 
static void computeLimitRegisters (Parse *pParse, Select *p, int iBreak)
 
static void computeYMD (DateTime *p)
 
static void computeYMD_HMS (DateTime *p)
 
static int connectionIsBusy (sqlite3 *db)
 
static void constructAutomaticIndex (Parse *pParse, WhereClause *pWC, struct SrcList_item *pSrc, Bitmask notReady, WhereLevel *pLevel)
 
static void * contextMalloc (sqlite3_context *context, i64 nByte)
 
static int convertCompoundSelectToSubquery (Walker *pWalker, Select *p)
 
static void convertToWithoutRowidTable (Parse *pParse, Table *pTab)
 
static void copyNodeContent (MemPage *pFrom, MemPage *pTo, int *pRC)
 
static int copyPayload (void *pPayload, void *pBuf, int nByte, int eOp, DbPage *pDbPage)
 
static void corruptSchema (InitData *pData, const char *zObj, const char *zExtra)
 
static void countFinalize (sqlite3_context *context)
 
static void countStep (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static int createCollation (sqlite3 *db, const char *zName, u8 enc, void *pCtx, int(*xCompare)(void *, int, const void *, int, const void *), void(*xDel)(void *))
 
static void createMask (WhereMaskSet *pMaskSet, int iCursor)
 
static int createModule (sqlite3 *db, const char *zName, const sqlite3_module *pModule, void *pAux, void(*xDestroy)(void *))
 
static char * createTableStmt (sqlite3 *db, Table *p)
 
static void ctimeFunc (sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
 
static void ctimestampFunc (sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
 
static void dateFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void datetimeFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static int decodeFlags (MemPage *pPage, int flagByte)
 
static void decodeIntArray (char *zIntArray, int nOut, tRowcnt *aOut, Index *pIndex)
 
static int defragmentPage (MemPage *pPage)
 
static void destroyRootPage (Parse *pParse, int iTable, int iDb)
 
static void destroyTable (Parse *pParse, Table *pTab)
 
static void detachFunc (sqlite3_context *context, int NotUsed, sqlite3_value **argv)
 
static void disableTerm (WhereLevel *pLevel, WhereTerm *pTerm)
 
static void disconnectAllVtab (sqlite3 *db)
 
static char * displayP4 (Op *pOp, char *zTemp, int nTemp)
 
static int dotlockCheckReservedLock (sqlite3_file *id, int *pResOut)
 
static int dotlockClose (sqlite3_file *id)
 
static int dotlockLock (sqlite3_file *id, int eFileLock)
 
static int dotlockUnlock (sqlite3_file *id, int eFileLock)
 
static i64 doubleToInt64 (double r)
 
static int doWalCallbacks (sqlite3 *db)
 
static void downgradeAllSharedCacheTableLocks (Btree *p)
 
static void dropCell (MemPage *pPage, int idx, int sz, int *pRC)
 
static char * dup8bytes (Vdbe *v, const char *in)
 
static int dupedExprNodeSize (Expr *p, int flags)
 
static int dupedExprSize (Expr *p, int flags)
 
static int dupedExprStructSize (Expr *p, int flags)
 
static void errlogFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void estimateIndexWidth (Index *pIdx)
 
static void estimateTableWidth (Table *pTab)
 
static LogEst estLog (LogEst N)
 
static char et_getdigit (LONGDOUBLE_TYPE *val, int *cnt)
 
static int execExecSql (sqlite3 *db, char **pzErrMsg, const char *zSql)
 
static int execSql (sqlite3 *db, char **pzErrMsg, const char *zSql)
 
static void explainAppendTerm (StrAccum *pStr, int iTerm, const char *zColumn, const char *zOp)
 
static void explainComposite (Parse *pParse, int op, int iSub1, int iSub2, int bUseTmp)
 
static char * explainIndexRange (sqlite3 *db, WhereLoop *pLoop, Table *pTab)
 
static void explainOneScan (Parse *pParse, SrcList *pTabList, WhereLevel *pLevel, int iLevel, int iFrom, u16 wctrlFlags)
 
static void explainSimpleCount (Parse *pParse, Table *pTab, Index *pIdx)
 
static void explainTempTable (Parse *pParse, const char *zUsage)
 
static int exprAlwaysFalse (Expr *p)
 
static void exprAnalyze (SrcList *, WhereClause *, int)
 
static void exprAnalyzeAll (SrcList *pTabList, WhereClause *pWC)
 
static void exprAnalyzeOrTerm (SrcList *pSrc, WhereClause *pWC, int idxTerm)
 
static void exprCodeBetween (Parse *pParse, Expr *pExpr, int dest, int jumpIfTrue, int jumpIfNull)
 
static void exprCommute (Parse *pParse, Expr *pExpr)
 
static ExprexprDup (sqlite3 *db, Expr *p, int flags, u8 **pzBuffer)
 
static int exprIsConst (Expr *p, int initFlag)
 
static Bitmask exprListTableUsage (WhereMaskSet *, ExprList *)
 
static int exprNodeIsConstant (Walker *pWalker, Expr *pExpr)
 
static int exprProbability (Expr *p)
 
static Bitmask exprSelectTableUsage (WhereMaskSet *, Select *)
 
static void exprSetHeight (Expr *p)
 
static int exprSrcCount (Walker *pWalker, Expr *pExpr)
 
static int exprStructSize (Expr *p)
 
static ExprexprTableColumn (sqlite3 *db, Table *pTab, int iCursor, i16 iCol)
 
static ExprexprTableRegister (Parse *pParse, Table *pTab, int regBase, i16 iCol)
 
static Bitmask exprTableUsage (WhereMaskSet *pMaskSet, Expr *p)
 
static void exprToRegister (Expr *p, int iReg)
 
static int exprWalkNoop (Walker *NotUsed, Expr *NotUsed2)
 
static int fcntlSizeHint (unixFile *pFile, i64 nByte)
 
static const unsigned char * fetchPayload (BtCursor *pCur, u32 *pAmt, int skipKey)
 
static int fileWriterFinish (sqlite3 *db, FileWriter *p, i64 *piEof)
 
static void fileWriterInit (sqlite3 *db, sqlite3_file *pFile, FileWriter *p, i64 iStart)
 
static void fileWriterWrite (FileWriter *p, u8 *pData, int nData)
 
static void fileWriterWriteVarint (FileWriter *p, u64 iVal)
 
static int fillInCell (MemPage *pPage, unsigned char *pCell, const void *pKey, i64 nKey, const void *pData, int nData, int nZero, int *pnSize)
 
static Pgno finalDbSize (BtShared *pBt, Pgno nOrig, Pgno nFree)
 
static void finalizeAggFunctions (Parse *pParse, AggInfo *pAggInfo)
 
static BtreefindBtree (sqlite3 *pErrorDb, sqlite3 *pDb, const char *zDb)
 
static CollSeqfindCollSeqEntry (sqlite3 *db, const char *zName, int create)
 
static int findCreateFileMode (const char *zPath, int flags, mode_t *pMode, uid_t *pUid, gid_t *pGid)
 
static HashElemfindElementGivenHash (const Hash *pH, const char *pKey, int nKey, unsigned int h)
 
static int findIndexCol (Parse *pParse, ExprList *pList, int iBase, Index *pIdx, int iCol)
 
static int findInodeInfo (unixFile *pFile, unixInodeInfo **ppInode)
 
static int findNextHostParameter (const char *zSql, int *pnToken)
 
static u8findOverflowCell (MemPage *pPage, int iCell)
 
static UnixUnusedFdfindReusableFd (const char *zPath, int flags)
 
static WhereTermfindTerm (WhereClause *pWC, int iCur, int iColumn, Bitmask notReady, u32 op, Index *pIdx)
 
static TriggerfkActionTrigger (Parse *pParse, Table *pTab, FKey *pFKey, ExprList *pChanges)
 
static int fkChildIsModified (Table *pTab, FKey *p, int *aChange, int bChngRowid)
 
static void fkLookupParent (Parse *pParse, int iDb, Table *pTab, Index *pIdx, FKey *pFKey, int *aiCol, int regData, int nIncr, int isIgnore)
 
static int fkParentIsModified (Table *pTab, FKey *p, int *aChange, int bChngRowid)
 
static void fkScanChildren (Parse *pParse, SrcList *pSrc, Table *pTab, Index *pIdx, FKey *pFKey, int *aiCol, int regData, int nIncr)
 
static void fkTriggerDelete (sqlite3 *dbMem, Trigger *p)
 
static int flattenSubquery (Parse *pParse, Select *p, int iFrom, int isAgg, int subqueryIsAgg)
 
static void freeEphemeralFunction (sqlite3 *db, FuncDef *pDef)
 
static void freeIndex (sqlite3 *db, Index *p)
 
static void freeP4 (sqlite3 *db, int p4type, void *p4)
 
static void freePage (MemPage *pPage, int *pRC)
 
static int freePage2 (BtShared *pBt, MemPage *pMemPage, Pgno iPage)
 
static int freeSpace (MemPage *pPage, int start, int size)
 
static void freeTempSpace (BtShared *pBt)
 
static int full_fsync (int fd, int fullSync, int dataOnly)
 
static void functionDestroy (sqlite3 *db, FuncDef *p)
 
static FuncDeffunctionSearch (FuncDefHash *pHash, int h, const char *zFunc, int nFunc)
 
static void generateColumnNames (Parse *pParse, SrcList *pTabList, ExprList *pEList)
 
static void generateColumnTypes (Parse *pParse, SrcList *pTabList, ExprList *pEList)
 
static int generateOutputSubroutine (Parse *pParse, Select *p, SelectDest *pIn, SelectDest *pDest, int regReturn, int regPrev, KeyInfo *pKeyInfo, int iBreak)
 
static void generateSortTail (Parse *pParse, Select *p, Vdbe *v, int nColumn, SelectDest *pDest)
 
static int getAndInitPage (BtShared *pBt, Pgno pgno, MemPage **ppPage, int bReadonly)
 
static int getAutoVacuum (const char *z)
 
static int getDigits (const char *zDate,...)
 
static int getLockingMode (const char *z)
 
static Bitmask getMask (WhereMaskSet *pMaskSet, int iCursor)
 
static int getOverflowPage (BtShared *pBt, Pgno ovfl, MemPage **ppPage, Pgno *pPgnoNext)
 
static int getPageReferenced (IntegrityCk *pCheck, Pgno iPg)
 
static TriggerPrggetRowTrigger (Parse *pParse, Trigger *pTrigger, Table *pTab, int orconf)
 
static u8 getSafetyLevel (const char *z, int omitFull, int dflt)
 
static int getTempStore (const char *z)
 
static void groupConcatFinalize (sqlite3_context *context)
 
static void groupConcatStep (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static int growOpArray (Vdbe *p)
 
static int growVTrans (sqlite3 *db)
 
static int hasColumn (const i16 *aiCol, int nCol, int x)
 
static int hasHotJournal (Pager *pPager, int *pExists)
 
static void heightOfExpr (Expr *p, int *pnHeight)
 
static void heightOfExprList (ExprList *p, int *pnHeight)
 
static void heightOfSelect (Select *p, int *pnHeight)
 
static void hexFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static int identLength (const char *z)
 
static void identPut (char *z, int *pIdx, char *zSignedIdent)
 
static int incrAggDepth (Walker *pWalker, Expr *pExpr)
 
static void incrAggFunctionDepth (Expr *pExpr, int N)
 
static int incrVacuumStep (BtShared *pBt, Pgno nFin, Pgno iLastPg, int bCommit)
 
static int indexMightHelpWithOrderBy (WhereLoopBuilder *pBuilder, Index *pIndex, int iCursor)
 
static void insertCell (MemPage *pPage, int i, u8 *pCell, int sz, u8 *pTemp, Pgno iChild, int *pRC)
 
static void insertElement (Hash *pH, struct _ht *pEntry, HashElem *pNew)
 
static void instrFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void invalidateAllOverflowCache (BtShared *pBt)
 
static void invalidateCachedKeyInfo (sqlite3 *db)
 
static void invalidateIncrblobCursors (Btree *pBtree, i64 iRow, int isClearTable)
 
static void invalidateOverflowCache (BtCursor *pCur)
 
static int invalidateTempStorage (Parse *pParse)
 
 IOMETHODS (posixIoFinder, posixIoMethods, 3, unixClose, unixLock, unixUnlock, unixCheckReservedLock)
 
static int isCandidateForInOpt (Select *p)
 
static int isDate (sqlite3_context *context, int argc, sqlite3_value **argv, DateTime *p)
 
static int isDistinctRedundant (Parse *pParse, SrcList *pTabList, WhereClause *pWC, ExprList *pDistinct)
 
static int isFatalError (int rc)
 
static int isLikeOrGlob (Parse *pParse, Expr *pExpr, Expr **ppPrefix, int *pisComplete, int *pnoCase)
 
static int isLookaside (sqlite3 *db, void *p)
 
static int isMatchOfColumn (Expr *pExpr)
 
static TableisSimpleCount (Select *p, AggInfo *pAggInfo)
 
static int isSystemTable (Parse *pParse, const char *zName)
 
static i64 journalHdrOffset (Pager *pPager)
 
static void juliandayFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static KeyInfokeyInfoFromExprList (Parse *pParse, ExprList *pList)
 
static int keywordCode (const char *z, int n)
 
static void last_insert_rowid (sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
 
static void lengthFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void likeFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void loadAnalysis (Parse *pParse, int iDb)
 
static void loadExt (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static sqlite3_int64 localtimeOffset (DateTime *p, sqlite3_context *pCtx, int *pRc)
 
static int lockBtree (BtShared *pBt)
 
static void lockBtreeMutex (Btree *p)
 
static void logBadConnection (const char *zType)
 
static int lookupName (Parse *pParse, const char *zDb, const char *zTab, const char *zCol, NameContext *pNC, Expr *pExpr)
 
static void lowerFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static int mallocWithAlarm (int n, void **pp)
 
static int matchQuality (FuncDef *p, int nArg, u8 enc)
 
static int memjrnlClose (sqlite3_file *pJfd)
 
static int memjrnlFileSize (sqlite3_file *pJfd, sqlite_int64 *pSize)
 
static int memjrnlRead (sqlite3_file *pJfd, void *zBuf, int iAmt, sqlite_int64 iOfst)
 
static int memjrnlSync (sqlite3_file *NotUsed, int NotUsed2)
 
static int memjrnlTruncate (sqlite3_file *pJfd, sqlite_int64 size)
 
static int memjrnlWrite (sqlite3_file *pJfd, const void *zBuf, int iAmt, sqlite_int64 iOfst)
 
static void minMaxFinalize (sqlite3_context *context)
 
static void minmaxFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static u8 minMaxQuery (AggInfo *pAggInfo, ExprList **ppMinMax)
 
static void minmaxStep (sqlite3_context *context, int NotUsed, sqlite3_value **argv)
 
static int modifyPagePointer (MemPage *pPage, Pgno iFrom, Pgno iTo, u8 eType)
 
static int moveToChild (BtCursor *pCur, u32 newPgno)
 
static int moveToLeftmost (BtCursor *pCur)
 
static void moveToParent (BtCursor *pCur)
 
static int moveToRightmost (BtCursor *pCur)
 
static int moveToRoot (BtCursor *pCur)
 
static int multiSelect (Parse *pParse, Select *p, SelectDest *pDest)
 
static CollSeqmultiSelectCollSeq (Parse *pParse, Select *p, int iCol)
 
static int multiSelectOrderBy (Parse *pParse, Select *p, SelectDest *pDest)
 
static int nameInUsingClause (IdList *pUsing, const char *zCol)
 
static int newDatabase (BtShared *pBt)
 
static int nocaseCollatingFunc (void *NotUsed, int nKey1, const void *pKey1, int nKey2, const void *pKey2)
 
static int nolockCheckReservedLock (sqlite3_file *NotUsed, int *pResOut)
 
static int nolockClose (sqlite3_file *id)
 
static int nolockLock (sqlite3_file *NotUsed, int NotUsed2)
 
static int nolockUnlock (sqlite3_file *NotUsed, int NotUsed2)
 
static sqlite3_mutexnoopMutexAlloc (int id)
 
static int noopMutexEnd (void)
 
static void noopMutexEnter (sqlite3_mutex *p)
 
static void noopMutexFree (sqlite3_mutex *p)
 
static int noopMutexInit (void)
 
static void noopMutexLeave (sqlite3_mutex *p)
 
static int noopMutexTry (sqlite3_mutex *p)
 
static void notValidCheckConstraint (Parse *pParse, NameContext *pNC, const char *zMsg)
 
static void notValidPartIdxWhere (Parse *pParse, NameContext *pNC, const char *zMsg)
 
static void nullifFunc (sqlite3_context *context, int NotUsed, sqlite3_value **argv)
 
static int numberOfCachePages (PCache *p)
 
static int openDatabase (const char *zFilename, sqlite3 **ppDb, unsigned int flags, const char *zVfs)
 
static int openDirectory (const char *, int *)
 
static void openStatTable (Parse *pParse, int iDb, int iStatCur, const char *zWhere, const char *zWhereType)
 
static int openSubJournal (Pager *pPager)
 
static u16 operatorMask (int op)
 
static int osLocaltime (time_t *t, struct tm *pTm)
 
static int pageInJournal (PgHdr *pPg)
 
static u32 pager_cksum (Pager *pPager, const u8 *aData)
 
static int pager_delmaster (Pager *pPager, const char *zMaster)
 
static int pager_end_transaction (Pager *pPager, int hasMaster, int bCommit)
 
static int pager_error (Pager *pPager, int rc)
 
static int pager_incr_changecounter (Pager *pPager, int isDirectMode)
 
static PgHdrpager_lookup (Pager *pPager, Pgno pgno)
 
static int pager_open_journal (Pager *pPager)
 
static int pager_playback (Pager *pPager, int isHot)
 
static int pager_playback_one_page (Pager *pPager, i64 *pOffset, Bitvec *pDone, int isMainJrnl, int isSavepnt)
 
static void pager_reset (Pager *pPager)
 
static int pager_truncate (Pager *pPager, Pgno nPage)
 
static void pager_unlock (Pager *pPager)
 
static int pager_wait_on_lock (Pager *pPager, int locktype)
 
static int pager_write (PgHdr *pPg)
 
static void pager_write_changecounter (PgHdr *pPg)
 
static int pager_write_pagelist (Pager *pPager, PgHdr *pList)
 
static int pagerAcquireMapPage (Pager *pPager, Pgno pgno, void *pData, PgHdr **ppPage)
 
static int pagerBeginReadTransaction (Pager *pPager)
 
static void pageReinit (DbPage *pData)
 
static int pagerExclusiveLock (Pager *pPager)
 
static void pagerFixMaplimit (Pager *pPager)
 
static void pagerFreeMapHdrs (Pager *pPager)
 
static int pagerLockDb (Pager *pPager, int eLock)
 
static int pagerOpentemp (Pager *pPager, sqlite3_file *pFile, int vfsFlags)
 
static int pagerOpenWal (Pager *pPager)
 
static int pagerOpenWalIfPresent (Pager *pPager)
 
static int pagerPagecount (Pager *pPager, Pgno *pnPage)
 
static int pagerPlaybackSavepoint (Pager *pPager, PagerSavepoint *pSavepoint)
 
static void pagerReleaseMapPage (PgHdr *pPg)
 
static int pagerRollbackWal (Pager *pPager)
 
static int pagerStress (void *p, PgHdr *pPg)
 
static int pagerSyncHotJournal (Pager *pPager)
 
static int pagerUndoCallback (void *pCtx, Pgno iPg)
 
static void pagerUnlockAndRollback (Pager *pPager)
 
static int pagerUnlockDb (Pager *pPager, int eLock)
 
static void pagerUnlockIfUnused (Pager *pPager)
 
static int pagerUseWal (Pager *pPager)
 
static int pagerWalFrames (Pager *pPager, PgHdr *pList, Pgno nTruncate, int isCommit)
 
static int parseDateOrTime (sqlite3_context *context, const char *zDate, DateTime *p)
 
static int parseHhMmSs (const char *zDate, DateTime *p)
 
static int parseModifier (sqlite3_context *pCtx, const char *zMod, DateTime *p)
 
static int parseTimezone (const char *zDate, DateTime *p)
 
static int parseYyyyMmDd (const char *zDate, DateTime *p)
 
static int patternCompare (const u8 *zPattern, const u8 *zString, const struct compareInfo *pInfo, u32 esc)
 
static void * pcache1Alloc (int nByte)
 
static PgHdr1pcache1AllocPage (PCache1 *pCache)
 
static void pcache1Cachesize (sqlite3_pcache *p, int nMax)
 
static sqlite3_pcachepcache1Create (int szPage, int szExtra, int bPurgeable)
 
static void pcache1Destroy (sqlite3_pcache *p)
 
static void pcache1EnforceMaxPage (PGroup *pGroup)
 
static sqlite3_pcache_pagepcache1Fetch (sqlite3_pcache *p, unsigned int iKey, int createFlag)
 
static int pcache1Free (void *p)
 
static void pcache1FreePage (PgHdr1 *p)
 
static int pcache1Init (void *NotUsed)
 
static int pcache1Pagecount (sqlite3_pcache *p)
 
static void pcache1PinPage (PgHdr1 *pPage)
 
static void pcache1Rekey (sqlite3_pcache *p, sqlite3_pcache_page *pPg, unsigned int iOld, unsigned int iNew)
 
static void pcache1RemoveFromHash (PgHdr1 *pPage)
 
static int pcache1ResizeHash (PCache1 *p)
 
static void pcache1Shrink (sqlite3_pcache *p)
 
static void pcache1Shutdown (void *NotUsed)
 
static void pcache1Truncate (sqlite3_pcache *p, unsigned int iLimit)
 
static void pcache1TruncateUnsafe (PCache1 *pCache, unsigned int iLimit)
 
static int pcache1UnderMemoryPressure (PCache1 *pCache)
 
static void pcache1Unpin (sqlite3_pcache *p, sqlite3_pcache_page *pPg, int reuseUnlikely)
 
static void pcacheAddToDirtyList (PgHdr *pPage)
 
static PgHdrpcacheMergeDirtyList (PgHdr *pA, PgHdr *pB)
 
static void pcacheRemoveFromDirtyList (PgHdr *pPage)
 
static PgHdrpcacheSortDirtyList (PgHdr *pIn)
 
static void pcacheUnpin (PgHdr *p)
 
static int posixFchown (int fd, uid_t uid, gid_t gid)
 
static int posixOpen (const char *zFile, int flags, int mode)
 
static int posixUnlock (sqlite3_file *id, int eFileLock, int handleNFSUnlock)
 
static sqlite3_mutexpthreadMutexAlloc (int iType)
 
static int pthreadMutexEnd (void)
 
static void pthreadMutexEnter (sqlite3_mutex *p)
 
static void pthreadMutexFree (sqlite3_mutex *p)
 
static int pthreadMutexInit (void)
 
static void pthreadMutexLeave (sqlite3_mutex *p)
 
static int pthreadMutexTry (sqlite3_mutex *p)
 
static int ptrmapGet (BtShared *pBt, Pgno key, u8 *pEType, Pgno *pPgno)
 
static Pgno ptrmapPageno (BtShared *pBt, Pgno pgno)
 
static void ptrmapPut (BtShared *pBt, Pgno key, u8 eType, Pgno parent, int *pRC)
 
static void ptrmapPutOvflPtr (MemPage *pPage, u8 *pCell, int *pRC)
 
static void pushOntoSorter (Parse *pParse, ExprList *pOrderBy, Select *pSelect, int regData)
 
static int querySharedCacheTableLock (Btree *p, Pgno iTab, u8 eLock)
 
static void quoteFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void randomBlob (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void randomFunc (sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
 
static int read32bits (sqlite3_file *fd, i64 offset, u32 *pRes)
 
static int readDbPage (PgHdr *pPg, u32 iFrame)
 
static int readJournalHdr (Pager *pPager, int isHot, i64 journalSize, u32 *pNRec, u32 *pDbSize)
 
static int readMasterJournal (sqlite3_file *pJrnl, char *zMaster, u32 nMaster)
 
static int readsTable (Parse *p, int iStartAddr, int iDb, Table *pTab)
 
static int rehash (Hash *pH, unsigned int new_size)
 
static void reindexDatabases (Parse *pParse, char const *zColl)
 
static void reindexTable (Parse *pParse, Table *pTab, char const *zColl)
 
static void releaseAllSavepoints (Pager *pPager)
 
static void releaseInodeInfo (unixFile *pFile)
 
static void releaseMemArray (Mem *p, int N)
 
static void releasePage (MemPage *pPage)
 
static void reloadTableSchema (Parse *pParse, Table *pTab, const char *zName)
 
static int relocatePage (BtShared *pBt, MemPage *pDbPage, u8 eType, Pgno iPtrPage, Pgno iFreePage, int isCommit)
 
static void removeElementGivenHash (Hash *pH, HashElem *elem, unsigned int h)
 
static int removeFromSharingList (BtShared *pBt)
 
static void renameParentFunc (sqlite3_context *context, int NotUsed, sqlite3_value **argv)
 
static void renameTableFunc (sqlite3_context *context, int NotUsed, sqlite3_value **argv)
 
static void renameTriggerFunc (sqlite3_context *context, int NotUsed, sqlite3_value **argv)
 
static void renderLogMsg (int iErrCode, const char *zFormat, va_list ap)
 
static void replaceFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static void resetAccumulator (Parse *pParse, AggInfo *pAggInfo)
 
static int resizeIndexObject (sqlite3 *db, Index *pIdx, int N)
 
static void resolveAlias (Parse *pParse, ExprList *pEList, int iCol, Expr *pExpr, const char *zType, int nSubquery)
 
static int resolveAsName (Parse *pParse, ExprList *pEList, Expr *pE)
 
static int resolveAttachExpr (NameContext *pName, Expr *pExpr)
 
static int resolveCompoundOrderBy (Parse *pParse, Select *pSelect)
 
static int resolveExprStep (Walker *pWalker, Expr *pExpr)
 
static int resolveOrderByTermToExprList (Parse *pParse, Select *pSelect, Expr *pE)
 
static int resolveOrderGroupBy (NameContext *pNC, Select *pSelect, ExprList *pOrderBy, const char *zType)
 
static void resolveOutOfRangeError (Parse *pParse, const char *zType, int i, int mx)
 
static void resolveP2Values (Vdbe *p, int *pMaxFuncArgs)
 
static int resolveSelectStep (Walker *pWalker, Select *p)
 
static void returnSingleInt (Parse *pParse, const char *zLabel, i64 value)
 
static void robust_close (unixFile *pFile, int h, int lineno)
 
static int robust_ftruncate (int h, sqlite3_int64 sz)
 
static int robust_open (const char *z, int f, mode_t m)
 
static void roundFunc (sqlite3_context *context, int argc, sqlite3_value **argv)
 
static struct RowSetEntryrowSetEntryAlloc (RowSet *p)
 
static struct RowSetEntryrowSetEntryMerge (struct RowSetEntry *pA, struct RowSetEntry *pB)
 
static struct RowSetEntryrowSetEntrySort (struct RowSetEntry *pIn)
 
static struct RowSetEntryrowSetListToTree (struct RowSetEntry *pList)
 
static struct RowSetEntryrowSetNDeepTree (struct RowSetEntry **ppList, int iDepth)
 
static void rowSetToList (RowSet *p)
 
static void rowSetTreeToList (struct RowSetEntry *pIn, struct RowSetEntry **ppFirst, struct RowSetEntry **ppLast)
 
static void samplePushPrevious (Stat4Accum *p, int iChng)
 
static int saveAllCursors (BtShared *pBt, Pgno iRoot, BtCursor *pExcept)
 
static int saveCursorPosition (BtCursor *pCur)
 
static void schemaIsValid (Parse *pParse)
 
static int seekAndRead (unixFile *id, sqlite3_int64 offset, void *pBuf, int cnt)
 
static int seekAndWrite (unixFile *id, i64 offset, const void *pBuf, int cnt)
 
static int seekAndWriteFd (int fd, i64 iOff, const void *pBuf, int nBuf, int *piErrno)
 
static void selectAddColumnTypeAndCollation (Parse *pParse, Table *pTab, Select *pSelect)
 
static int selectAddSubqueryTypeInfo (Walker *pWalker, Select *p)
 
static int selectColumnsFromExprList (Parse *pParse, ExprList *pEList, i16 *pnCol, Column **paCol)
 
static int selectExpander (Walker *pWalker, Select *p)
 
static void selectInnerLoop (Parse *pParse, Select *p, ExprList *pEList, int srcTab, int nColumn, ExprList *pOrderBy, DistinctCtx *pDistinct, SelectDest *pDest, int iContinue, int iBreak)
 
static int selectNodeIsConstant (Walker *pWalker, Select *NotUsed)
 
static const char * selectOpName (int id)
 
static void setAllPagerFlags (sqlite3 *db)
 
static int setChildPtrmaps (MemPage *pPage)
 
static int setDateTimeToCurrent (sqlite3_context *context, DateTime *p)
 
static int setDestPgsz (sqlite3_backup *p)
 
static void setJoinExpr (Expr *p, int iTable)