亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sqliteint.h

?? sqlite 3.3.8 支持加密的版本
?? H
?? 第 1 頁 / 共 5 頁
字號:
/*
** 2001 September 15
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
*************************************************************************
** Internal interface definitions for SQLite.
**
** @(#) $Id: sqliteInt.h,v 1.24 2006/10/12 21:34:22 rmsimpson Exp $
*/
#ifndef _SQLITEINT_H_
#define _SQLITEINT_H_

/*
** Extra interface definitions for those who need them
*/
#ifdef SQLITE_EXTRA
# include "sqliteExtra.h"
#endif

/*
** Many people are failing to set -DNDEBUG=1 when compiling SQLite.
** Setting NDEBUG makes the code smaller and run faster.  So the following
** lines are added to automatically set NDEBUG unless the -DSQLITE_DEBUG=1
** option is set.  Thus NDEBUG becomes an opt-in rather than an opt-out
** feature.
*/
#if !defined(NDEBUG) && !defined(SQLITE_DEBUG) 
# define NDEBUG 1
#endif

/*
** These #defines should enable >2GB file support on Posix if the
** underlying operating system supports it.  If the OS lacks
** large file support, or if the OS is windows, these should be no-ops.
**
** Large file support can be disabled using the -DSQLITE_DISABLE_LFS switch
** on the compiler command line.  This is necessary if you are compiling
** on a recent machine (ex: RedHat 7.2) but you want your code to work
** on an older machine (ex: RedHat 6.0).  If you compile on RedHat 7.2
** without this option, LFS is enable.  But LFS does not exist in the kernel
** in RedHat 6.0, so the code won't work.  Hence, for maximum binary
** portability you should omit LFS.
**
** Similar is true for MacOS.  LFS is only supported on MacOS 9 and later.
*/
#ifndef SQLITE_DISABLE_LFS
# define _LARGE_FILE       1
# ifndef _FILE_OFFSET_BITS
#   define _FILE_OFFSET_BITS 64
# endif
# define _LARGEFILE_SOURCE 1
#endif

#include "sqlite3.h"
#include "hash.h"
#include "parse.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <stddef.h>

/*
** If compiling for a processor that lacks floating point support,
** substitute integer for floating-point
*/
#ifdef SQLITE_OMIT_FLOATING_POINT
# define double sqlite_int64
# define LONGDOUBLE_TYPE sqlite_int64
# ifndef SQLITE_BIG_DBL
#   define SQLITE_BIG_DBL (0x7fffffffffffffff)
# endif
# define SQLITE_OMIT_DATETIME_FUNCS 1
# define SQLITE_OMIT_TRACE 1
#endif
#ifndef SQLITE_BIG_DBL
# define SQLITE_BIG_DBL (1e99)
#endif

/*
** The maximum number of in-memory pages to use for the main database
** table and for temporary tables. Internally, the MAX_PAGES and 
** TEMP_PAGES macros are used. To override the default values at
** compilation time, the SQLITE_DEFAULT_CACHE_SIZE and 
** SQLITE_DEFAULT_TEMP_CACHE_SIZE macros should be set.
*/
#ifdef SQLITE_DEFAULT_CACHE_SIZE
# define MAX_PAGES SQLITE_DEFAULT_CACHE_SIZE
#else
# define MAX_PAGES   2000
#endif
#ifdef SQLITE_DEFAULT_TEMP_CACHE_SIZE
# define TEMP_PAGES SQLITE_DEFAULT_TEMP_CACHE_SIZE
#else
# define TEMP_PAGES   500
#endif

/*
** OMIT_TEMPDB is set to 1 if SQLITE_OMIT_TEMPDB is defined, or 0
** afterward. Having this macro allows us to cause the C compiler 
** to omit code used by TEMP tables without messy #ifndef statements.
*/
#ifdef SQLITE_OMIT_TEMPDB
#define OMIT_TEMPDB 1
#else
#define OMIT_TEMPDB 0
#endif

/*
** If the following macro is set to 1, then NULL values are considered
** distinct when determining whether or not two entries are the same
** in a UNIQUE index.  This is the way PostgreSQL, Oracle, DB2, MySQL,
** OCELOT, and Firebird all work.  The SQL92 spec explicitly says this
** is the way things are suppose to work.
**
** If the following macro is set to 0, the NULLs are indistinct for
** a UNIQUE index.  In this mode, you can only have a single NULL entry
** for a column declared UNIQUE.  This is the way Informix and SQL Server
** work.
*/
#define NULL_DISTINCT_FOR_UNIQUE 1

/*
** The maximum number of attached databases.  This must be at least 2
** in order to support the main database file (0) and the file used to
** hold temporary tables (1).  And it must be less than 32 because
** we use a bitmask of databases with a u32 in places (for example
** the Parse.cookieMask field).
*/
#define MAX_ATTACHED 10

/*
** The maximum value of a ?nnn wildcard that the parser will accept.
*/
#define SQLITE_MAX_VARIABLE_NUMBER 999

/*
** The "file format" number is an integer that is incremented whenever
** the VDBE-level file format changes.  The following macros define the
** the default file format for new databases and the maximum file format
** that the library can read.
*/
#define SQLITE_MAX_FILE_FORMAT 4
#ifndef SQLITE_DEFAULT_FILE_FORMAT
# define SQLITE_DEFAULT_FILE_FORMAT 1
#endif

/*
** Provide a default value for TEMP_STORE in case it is not specified
** on the command-line
*/
#ifndef TEMP_STORE
# define TEMP_STORE 1
#endif

/*
** GCC does not define the offsetof() macro so we'll have to do it
** ourselves.
*/
#ifndef offsetof
#define offsetof(STRUCTURE,FIELD) ((int)((char*)&((STRUCTURE*)0)->FIELD))
#endif

/*
** Check to see if this machine uses EBCDIC.  (Yes, believe it or
** not, there are still machines out there that use EBCDIC.)
*/
#if 'A' == '\301'
# define SQLITE_EBCDIC 1
#else
# define SQLITE_ASCII 1
#endif

/*
** Integers of known sizes.  These typedefs might change for architectures
** where the sizes very.  Preprocessor macros are available so that the
** types can be conveniently redefined at compile-type.  Like this:
**
**         cc '-DUINTPTR_TYPE=long long int' ...
*/
#ifndef UINT32_TYPE
# define UINT32_TYPE unsigned int
#endif
#ifndef UINT16_TYPE
# define UINT16_TYPE unsigned short int
#endif
#ifndef INT16_TYPE
# define INT16_TYPE short int
#endif
#ifndef UINT8_TYPE
# define UINT8_TYPE unsigned char
#endif
#ifndef INT8_TYPE
# define INT8_TYPE signed char
#endif
#ifndef LONGDOUBLE_TYPE
# define LONGDOUBLE_TYPE long double
#endif
typedef sqlite_int64 i64;          /* 8-byte signed integer */
typedef sqlite_uint64 u64;         /* 8-byte unsigned integer */
typedef UINT32_TYPE u32;           /* 4-byte unsigned integer */
typedef UINT16_TYPE u16;           /* 2-byte unsigned integer */
typedef INT16_TYPE i16;            /* 2-byte signed integer */
typedef UINT8_TYPE u8;             /* 1-byte unsigned integer */
typedef UINT8_TYPE i8;             /* 1-byte signed integer */

/*
** Macros to determine whether the machine is big or little endian,
** evaluated at runtime.
*/
extern const int sqlite3one;
#define SQLITE_BIGENDIAN    (*(char *)(&sqlite3one)==0)
#define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1)

/*
** An instance of the following structure is used to store the busy-handler
** callback for a given sqlite handle. 
**
** The sqlite.busyHandler member of the sqlite struct contains the busy
** callback for the database handle. Each pager opened via the sqlite
** handle is passed a pointer to sqlite.busyHandler. The busy-handler
** callback is currently invoked only from within pager.c.
*/
typedef struct BusyHandler BusyHandler;
struct BusyHandler {
  int (*xFunc)(void *,int);  /* The busy callback */
  void *pArg;                /* First arg to busy callback */
  int nBusy;                 /* Incremented with each busy call */
};

/*
** Defer sourcing vdbe.h and btree.h until after the "u8" and 
** "BusyHandler typedefs.
*/
#include "vdbe.h"
#include "btree.h"
#include "pager.h"

#ifdef SQLITE_MEMDEBUG
/*
** The following global variables are used for testing and debugging
** only.  They only work if SQLITE_MEMDEBUG is defined.
*/
extern int sqlite3_nMalloc;      /* Number of sqliteMalloc() calls */
extern int sqlite3_nFree;        /* Number of sqliteFree() calls */
extern int sqlite3_iMallocFail;  /* Fail sqliteMalloc() after this many calls */
extern int sqlite3_iMallocReset; /* Set iMallocFail to this when it reaches 0 */

extern void *sqlite3_pFirst;         /* Pointer to linked list of allocations */
extern int sqlite3_nMaxAlloc;        /* High water mark of ThreadData.nAlloc */
extern int sqlite3_mallocDisallowed; /* assert() in sqlite3Malloc() if set */
extern int sqlite3_isFail;           /* True if all malloc calls should fail */
extern const char *sqlite3_zFile;    /* Filename to associate debug info with */
extern int sqlite3_iLine;            /* Line number for debug info */

#define ENTER_MALLOC (sqlite3_zFile = __FILE__, sqlite3_iLine = __LINE__)
#define sqliteMalloc(x)          (ENTER_MALLOC, sqlite3Malloc(x,1))
#define sqliteMallocRaw(x)       (ENTER_MALLOC, sqlite3MallocRaw(x,1))
#define sqliteRealloc(x,y)       (ENTER_MALLOC, sqlite3Realloc(x,y))
#define sqliteStrDup(x)          (ENTER_MALLOC, sqlite3StrDup(x))
#define sqliteStrNDup(x,y)       (ENTER_MALLOC, sqlite3StrNDup(x,y))
#define sqliteReallocOrFree(x,y) (ENTER_MALLOC, sqlite3ReallocOrFree(x,y))

#else

#define ENTER_MALLOC 0
#define sqliteMalloc(x)          sqlite3Malloc(x,1)
#define sqliteMallocRaw(x)       sqlite3MallocRaw(x,1)
#define sqliteRealloc(x,y)       sqlite3Realloc(x,y)
#define sqliteStrDup(x)          sqlite3StrDup(x)
#define sqliteStrNDup(x,y)       sqlite3StrNDup(x,y)
#define sqliteReallocOrFree(x,y) sqlite3ReallocOrFree(x,y)

#endif

#define sqliteFree(x)          sqlite3FreeX(x)
#define sqliteAllocSize(x)     sqlite3AllocSize(x)


/*

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩中文播放| 日本中文字幕一区| 天天射综合影视| 成人福利视频网站| 精品国产电影一区二区| 洋洋av久久久久久久一区| 国产麻豆91精品| 欧美人成免费网站| 亚洲欧洲av在线| 激情综合色播激情啊| 91精品国产综合久久久久久| 亚洲激情综合网| proumb性欧美在线观看| 久久蜜桃av一区二区天堂 | 韩国成人福利片在线播放| 色综合网站在线| 中国av一区二区三区| 久久超级碰视频| 91精品国产一区二区| 一区二区三区四区在线| 成人av网址在线| 欧美国产精品一区| 国产成人丝袜美腿| 久久蜜桃香蕉精品一区二区三区| 看电视剧不卡顿的网站| 日韩精品最新网址| 久久成人免费电影| 精品国产91洋老外米糕| 国内精品视频666| 亚洲精品在线网站| 国产黑丝在线一区二区三区| 日韩精品一区二区三区蜜臀| 老司机精品视频一区二区三区| 91精品国产综合久久久久久漫画| 偷窥少妇高潮呻吟av久久免费| 欧美日韩aaaaaa| 日本亚洲一区二区| 日韩一级二级三级| 精品在线你懂的| 国产欧美日韩在线| 成人91在线观看| 伊人一区二区三区| 欧美日韩一区视频| 久久精品国产精品青草| 欧美精品一区在线观看| 国产美女精品在线| 国产精品久久精品日日| 9久草视频在线视频精品| 亚洲女爱视频在线| 欧美亚一区二区| 舔着乳尖日韩一区| 精品国产不卡一区二区三区| 国产乱人伦精品一区二区在线观看 | 亚洲日本电影在线| 欧美性三三影院| 免费高清在线一区| 日韩精品一区二区三区视频播放 | 麻豆精品一区二区综合av| 欧美一区二区网站| 国产在线视频一区二区三区| 国产精品麻豆一区二区| 欧美日韩一区二区三区不卡| 麻豆精品在线播放| 综合久久综合久久| 日韩一区二区不卡| 91视频国产观看| 蜜桃av一区二区三区电影| 国产欧美一二三区| 欧美男生操女生| 盗摄精品av一区二区三区| 亚洲小说春色综合另类电影| 久久久不卡网国产精品一区| 在线亚洲高清视频| 国产成人精品午夜视频免费| 亚洲影院在线观看| 欧美经典一区二区| 制服丝袜日韩国产| 99视频精品在线| 免费看日韩精品| 亚洲色欲色欲www| 欧美sm美女调教| 欧美视频一区二| av影院午夜一区| 国产尤物一区二区在线| 亚洲成av人片| 亚洲人成网站在线| 久久久久国产成人精品亚洲午夜| 欧美日精品一区视频| 成人精品免费网站| 国产在线播放一区三区四| 午夜av区久久| 亚洲激情六月丁香| 欧美激情在线一区二区| 精品乱人伦小说| 日韩一区二区三区视频在线观看| 在线视频综合导航| 91视频在线观看免费| 成人免费高清在线| 国产美女在线观看一区| 蜜臀va亚洲va欧美va天堂| 亚洲国产wwwccc36天堂| 亚洲女与黑人做爰| 亚洲美腿欧美偷拍| 亚洲视频中文字幕| 国产精品毛片高清在线完整版| 精品国产成人在线影院| 精品国产人成亚洲区| 日韩三级.com| 日韩免费一区二区| 日韩视频在线观看一区二区| 555www色欧美视频| 欧美精品亚洲一区二区在线播放| 欧美三级蜜桃2在线观看| 色哟哟一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃 | 久久先锋影音av鲁色资源网| 精品国产不卡一区二区三区| 久久综合久久综合久久综合| 欧美va亚洲va在线观看蝴蝶网| 欧美成人a∨高清免费观看| 欧美成人video| 久久丝袜美腿综合| 国产精品久久久99| 亚洲六月丁香色婷婷综合久久 | 337p亚洲精品色噜噜噜| 欧美一区二区在线看| 欧美videofree性高清杂交| 精品久久国产老人久久综合| 久久久久久久综合色一本| 欧美高清一级片在线观看| 中文字幕在线不卡一区二区三区| 最新热久久免费视频| 亚洲一二三区视频在线观看| 青青草97国产精品免费观看 | 免费视频最近日韩| 久久一二三国产| 日本高清不卡一区| 欧美精品久久99久久在免费线| 欧美一区二区三区人| 精品国产一二三| 亚洲蜜臀av乱码久久精品蜜桃| 三级在线观看一区二区| 国产乱淫av一区二区三区 | 一区二区三区中文免费| 日韩电影在线看| 春色校园综合激情亚洲| 欧美色老头old∨ideo| 久久综合色之久久综合| 亚洲色图视频网| 美女一区二区三区| 91亚洲精品久久久蜜桃| 日韩一级片网址| 亚洲精品成人悠悠色影视| 美女久久久精品| 91免费观看国产| 精品国产乱码久久久久久夜甘婷婷 | 国产亚洲精品福利| 亚洲妇女屁股眼交7| 国产精品一区二区三区四区| 欧美优质美女网站| 国产视频一区二区在线观看| 亚洲第一成年网| 成人综合婷婷国产精品久久免费| 在线成人免费观看| 日韩一区在线免费观看| 国产精品自在欧美一区| 欧美日韩精品欧美日韩精品| 国产精品色一区二区三区| 六月丁香婷婷久久| 欧美日韩精品久久久| 中文字幕在线一区免费| 久久66热偷产精品| 在线播放91灌醉迷j高跟美女| 国产精品久久毛片av大全日韩| 日韩av一级电影| 欧美午夜不卡视频| 中文字幕中文在线不卡住| 黑人巨大精品欧美一区| 666欧美在线视频| 亚洲va韩国va欧美va精品| 91麻豆swag| 自拍偷拍国产精品| 国产成人av一区二区三区在线| 欧美一级国产精品| 五月激情综合色| 欧美日韩中文精品| 亚洲一区在线视频观看| 一本久久精品一区二区| 国产精品久久久久久妇女6080 | 一区二区三区四区乱视频| gogo大胆日本视频一区| 国产精品五月天| 国产一区二区三区视频在线播放| 欧美一级精品大片| 免费亚洲电影在线| 欧美一区二区三区视频在线| 日韩 欧美一区二区三区| 欧美日韩www| 毛片基地黄久久久久久天堂| 日韩一级片网站|