/ Hex Artifact Content
Login

Artifact 8648034aa702469afb553231677306cc6492a1ae:


0000: 2f 2a 0a 2a 2a 20 32 30 30 36 20 4a 75 6e 65 20  /*.** 2006 June 
0010: 37 0a 2a 2a 0a 2a 2a 20 54 68 65 20 61 75 74 68  7.**.** The auth
0020: 6f 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70  or disclaims cop
0030: 79 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73  yright to this s
0040: 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20  ource code.  In 
0050: 70 6c 61 63 65 20 6f 66 0a 2a 2a 20 61 20 6c 65  place of.** a le
0060: 67 61 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65  gal notice, here
0070: 20 69 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a   is a blessing:.
0080: 2a 2a 0a 2a 2a 20 20 20 20 4d 61 79 20 79 6f 75  **.**    May you
0090: 20 64 6f 20 67 6f 6f 64 20 61 6e 64 20 6e 6f 74   do good and not
00a0: 20 65 76 69 6c 2e 0a 2a 2a 20 20 20 20 4d 61 79   evil..**    May
00b0: 20 79 6f 75 20 66 69 6e 64 20 66 6f 72 67 69 76   you find forgiv
00c0: 65 6e 65 73 73 20 66 6f 72 20 79 6f 75 72 73 65  eness for yourse
00d0: 6c 66 20 61 6e 64 20 66 6f 72 67 69 76 65 20 6f  lf and forgive o
00e0: 74 68 65 72 73 2e 0a 2a 2a 20 20 20 20 4d 61 79  thers..**    May
00f0: 20 79 6f 75 20 73 68 61 72 65 20 66 72 65 65 6c   you share freel
0100: 79 2c 20 6e 65 76 65 72 20 74 61 6b 69 6e 67 20  y, never taking 
0110: 6d 6f 72 65 20 74 68 61 6e 20 79 6f 75 20 67 69  more than you gi
0120: 76 65 2e 0a 2a 2a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ve..**.*********
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0170: 0a 2a 2a 20 54 68 69 73 20 68 65 61 64 65 72 20  .** This header 
0180: 66 69 6c 65 20 64 65 66 69 6e 65 73 20 74 68 65  file defines the
0190: 20 53 51 4c 69 74 65 20 69 6e 74 65 72 66 61 63   SQLite interfac
01a0: 65 20 66 6f 72 20 75 73 65 20 62 79 0a 2a 2a 20  e for use by.** 
01b0: 73 68 61 72 65 64 20 6c 69 62 72 61 72 69 65 73  shared libraries
01c0: 20 74 68 61 74 20 77 61 6e 74 20 74 6f 20 62 65   that want to be
01d0: 20 69 6d 70 6f 72 74 65 64 20 61 73 20 65 78 74   imported as ext
01e0: 65 6e 73 69 6f 6e 73 20 69 6e 74 6f 0a 2a 2a 20  ensions into.** 
01f0: 61 6e 20 53 51 4c 69 74 65 20 69 6e 73 74 61 6e  an SQLite instan
0200: 63 65 2e 20 20 53 68 61 72 65 64 20 6c 69 62 72  ce.  Shared libr
0210: 61 72 69 65 73 20 74 68 61 74 20 69 6e 74 65 6e  aries that inten
0220: 64 20 74 6f 20 62 65 20 6c 6f 61 64 65 64 0a 2a  d to be loaded.*
0230: 2a 20 61 73 20 65 78 74 65 6e 73 69 6f 6e 73 20  * as extensions 
0240: 62 79 20 53 51 4c 69 74 65 20 73 68 6f 75 6c 64  by SQLite should
0250: 20 23 69 6e 63 6c 75 64 65 20 74 68 69 73 20 66   #include this f
0260: 69 6c 65 20 69 6e 73 74 65 61 64 20 6f 66 20 0a  ile instead of .
0270: 2a 2a 20 73 71 6c 69 74 65 33 2e 68 2e 0a 2a 2f  ** sqlite3.h..*/
0280: 0a 23 69 66 6e 64 65 66 20 53 51 4c 49 54 45 33  .#ifndef SQLITE3
0290: 45 58 54 5f 48 0a 23 64 65 66 69 6e 65 20 53 51  EXT_H.#define SQ
02a0: 4c 49 54 45 33 45 58 54 5f 48 0a 23 69 6e 63 6c  LITE3EXT_H.#incl
02b0: 75 64 65 20 22 73 71 6c 69 74 65 33 2e 68 22 0a  ude "sqlite3.h".
02c0: 0a 2f 2a 0a 2a 2a 20 54 68 65 20 66 6f 6c 6c 6f  ./*.** The follo
02d0: 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 20 68  wing structure h
02e0: 6f 6c 64 73 20 70 6f 69 6e 74 65 72 73 20 74 6f  olds pointers to
02f0: 20 61 6c 6c 20 6f 66 20 74 68 65 20 53 51 4c 69   all of the SQLi
0300: 74 65 20 41 50 49 0a 2a 2a 20 72 6f 75 74 69 6e  te API.** routin
0310: 65 73 2e 0a 2a 2a 0a 2a 2a 20 57 41 52 4e 49 4e  es..**.** WARNIN
0320: 47 3a 20 20 49 6e 20 6f 72 64 65 72 20 74 6f 20  G:  In order to 
0330: 6d 61 69 6e 74 61 69 6e 20 62 61 63 6b 77 61 72  maintain backwar
0340: 64 73 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79  ds compatibility
0350: 2c 20 61 64 64 20 6e 65 77 0a 2a 2a 20 69 6e 74  , add new.** int
0360: 65 72 66 61 63 65 73 20 74 6f 20 74 68 65 20 65  erfaces to the e
0370: 6e 64 20 6f 66 20 74 68 69 73 20 73 74 72 75 63  nd of this struc
0380: 74 75 72 65 20 6f 6e 6c 79 2e 20 20 49 66 20 79  ture only.  If y
0390: 6f 75 20 69 6e 73 65 72 74 20 6e 65 77 0a 2a 2a  ou insert new.**
03a0: 20 69 6e 74 65 72 66 61 63 65 73 20 69 6e 20 74   interfaces in t
03b0: 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 74 68 69  he middle of thi
03c0: 73 20 73 74 72 75 63 74 75 72 65 2c 20 74 68 65  s structure, the
03d0: 6e 20 6f 6c 64 65 72 20 64 69 66 66 65 72 65 6e  n older differen
03e0: 74 0a 2a 2a 20 76 65 72 73 69 6f 6e 73 20 6f 66  t.** versions of
03f0: 20 53 51 4c 69 74 65 20 77 69 6c 6c 20 6e 6f 74   SQLite will not
0400: 20 62 65 20 61 62 6c 65 20 74 6f 20 6c 6f 61 64   be able to load
0410: 20 65 61 63 68 20 6f 74 68 65 72 27 73 20 73 68   each other's sh
0420: 61 72 65 64 0a 2a 2a 20 6c 69 62 72 61 72 69 65  ared.** librarie
0430: 73 21 0a 2a 2f 0a 73 74 72 75 63 74 20 73 71 6c  s!.*/.struct sql
0440: 69 74 65 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65  ite3_api_routine
0450: 73 20 7b 0a 20 20 76 6f 69 64 20 2a 20 28 2a 61  s {.  void * (*a
0460: 67 67 72 65 67 61 74 65 5f 63 6f 6e 74 65 78 74  ggregate_context
0470: 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78  )(sqlite3_contex
0480: 74 2a 2c 69 6e 74 20 6e 42 79 74 65 73 29 3b 0a  t*,int nBytes);.
0490: 20 20 69 6e 74 20 20 28 2a 61 67 67 72 65 67 61    int  (*aggrega
04a0: 74 65 5f 63 6f 75 6e 74 29 28 73 71 6c 69 74 65  te_count)(sqlite
04b0: 33 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a 20 20 69  3_context*);.  i
04c0: 6e 74 20 20 28 2a 62 69 6e 64 5f 62 6c 6f 62 29  nt  (*bind_blob)
04d0: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69  (sqlite3_stmt*,i
04e0: 6e 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69  nt,const void*,i
04f0: 6e 74 20 6e 2c 76 6f 69 64 28 2a 29 28 76 6f 69  nt n,void(*)(voi
0500: 64 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62  d*));.  int  (*b
0510: 69 6e 64 5f 64 6f 75 62 6c 65 29 28 73 71 6c 69  ind_double)(sqli
0520: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 64 6f  te3_stmt*,int,do
0530: 75 62 6c 65 29 3b 0a 20 20 69 6e 74 20 20 28 2a  uble);.  int  (*
0540: 62 69 6e 64 5f 69 6e 74 29 28 73 71 6c 69 74 65  bind_int)(sqlite
0550: 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 69 6e 74 29  3_stmt*,int,int)
0560: 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f  ;.  int  (*bind_
0570: 69 6e 74 36 34 29 28 73 71 6c 69 74 65 33 5f 73  int64)(sqlite3_s
0580: 74 6d 74 2a 2c 69 6e 74 2c 73 71 6c 69 74 65 5f  tmt*,int,sqlite_
0590: 69 6e 74 36 34 29 3b 0a 20 20 69 6e 74 20 20 28  int64);.  int  (
05a0: 2a 62 69 6e 64 5f 6e 75 6c 6c 29 28 73 71 6c 69  *bind_null)(sqli
05b0: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a  te3_stmt*,int);.
05c0: 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f 70 61    int  (*bind_pa
05d0: 72 61 6d 65 74 65 72 5f 63 6f 75 6e 74 29 28 73  rameter_count)(s
05e0: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20  qlite3_stmt*);. 
05f0: 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f 70 61 72   int  (*bind_par
0600: 61 6d 65 74 65 72 5f 69 6e 64 65 78 29 28 73 71  ameter_index)(sq
0610: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 63 6f 6e 73  lite3_stmt*,cons
0620: 74 20 63 68 61 72 2a 7a 4e 61 6d 65 29 3b 0a 20  t char*zName);. 
0630: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28 2a   const char * (*
0640: 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 6e  bind_parameter_n
0650: 61 6d 65 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  ame)(sqlite3_stm
0660: 74 2a 2c 69 6e 74 29 3b 0a 20 20 69 6e 74 20 20  t*,int);.  int  
0670: 28 2a 62 69 6e 64 5f 74 65 78 74 29 28 73 71 6c  (*bind_text)(sql
0680: 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 63  ite3_stmt*,int,c
0690: 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74 20 6e  onst char*,int n
06a0: 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 29  ,void(*)(void*))
06b0: 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f  ;.  int  (*bind_
06c0: 74 65 78 74 31 36 29 28 73 71 6c 69 74 65 33 5f  text16)(sqlite3_
06d0: 73 74 6d 74 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20  stmt*,int,const 
06e0: 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a  void*,int,void(*
06f0: 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 69 6e 74  )(void*));.  int
0700: 20 20 28 2a 62 69 6e 64 5f 76 61 6c 75 65 29 28    (*bind_value)(
0710: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0720: 74 2c 63 6f 6e 73 74 20 73 71 6c 69 74 65 33 5f  t,const sqlite3_
0730: 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e 74 20 20  value*);.  int  
0740: 28 2a 62 75 73 79 5f 68 61 6e 64 6c 65 72 29 28  (*busy_handler)(
0750: 73 71 6c 69 74 65 33 2a 2c 69 6e 74 28 2a 29 28  sqlite3*,int(*)(
0760: 76 6f 69 64 2a 2c 69 6e 74 29 2c 76 6f 69 64 2a  void*,int),void*
0770: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62 75 73 79  );.  int  (*busy
0780: 5f 74 69 6d 65 6f 75 74 29 28 73 71 6c 69 74 65  _timeout)(sqlite
0790: 33 2a 2c 69 6e 74 20 6d 73 29 3b 0a 20 20 69 6e  3*,int ms);.  in
07a0: 74 20 20 28 2a 63 68 61 6e 67 65 73 29 28 73 71  t  (*changes)(sq
07b0: 6c 69 74 65 33 2a 29 3b 0a 20 20 69 6e 74 20 20  lite3*);.  int  
07c0: 28 2a 63 6c 6f 73 65 29 28 73 71 6c 69 74 65 33  (*close)(sqlite3
07d0: 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c  *);.  int  (*col
07e0: 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64 29 28 73  lation_needed)(s
07f0: 71 6c 69 74 65 33 2a 2c 76 6f 69 64 2a 2c 76 6f  qlite3*,void*,vo
0800: 69 64 28 2a 29 28 76 6f 69 64 2a 2c 73 71 6c 69  id(*)(void*,sqli
0810: 74 65 33 2a 2c 0a 20 20 20 20 20 20 20 20 20 20  te3*,.          
0820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0830: 20 69 6e 74 20 65 54 65 78 74 52 65 70 2c 63 6f   int eTextRep,co
0840: 6e 73 74 20 63 68 61 72 2a 29 29 3b 0a 20 20 69  nst char*));.  i
0850: 6e 74 20 20 28 2a 63 6f 6c 6c 61 74 69 6f 6e 5f  nt  (*collation_
0860: 6e 65 65 64 65 64 31 36 29 28 73 71 6c 69 74 65  needed16)(sqlite
0870: 33 2a 2c 76 6f 69 64 2a 2c 76 6f 69 64 28 2a 29  3*,void*,void(*)
0880: 28 76 6f 69 64 2a 2c 73 71 6c 69 74 65 33 2a 2c  (void*,sqlite3*,
0890: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
08a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e                in
08b0: 74 20 65 54 65 78 74 52 65 70 2c 63 6f 6e 73 74  t eTextRep,const
08c0: 20 76 6f 69 64 2a 29 29 3b 0a 20 20 63 6f 6e 73   void*));.  cons
08d0: 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d  t void * (*colum
08e0: 6e 5f 62 6c 6f 62 29 28 73 71 6c 69 74 65 33 5f  n_blob)(sqlite3_
08f0: 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b  stmt*,int iCol);
0900: 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c 75 6d 6e  .  int  (*column
0910: 5f 62 79 74 65 73 29 28 73 71 6c 69 74 65 33 5f  _bytes)(sqlite3_
0920: 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b  stmt*,int iCol);
0930: 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c 75 6d 6e  .  int  (*column
0940: 5f 62 79 74 65 73 31 36 29 28 73 71 6c 69 74 65  _bytes16)(sqlite
0950: 33 5f 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c  3_stmt*,int iCol
0960: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c 75  );.  int  (*colu
0970: 6d 6e 5f 63 6f 75 6e 74 29 28 73 71 6c 69 74 65  mn_count)(sqlite
0980: 33 5f 73 74 6d 74 2a 70 53 74 6d 74 29 3b 0a 20  3_stmt*pStmt);. 
0990: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28 2a   const char * (*
09a0: 63 6f 6c 75 6d 6e 5f 64 61 74 61 62 61 73 65 5f  column_database_
09b0: 6e 61 6d 65 29 28 73 71 6c 69 74 65 33 5f 73 74  name)(sqlite3_st
09c0: 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73  mt*,int);.  cons
09d0: 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d  t void * (*colum
09e0: 6e 5f 64 61 74 61 62 61 73 65 5f 6e 61 6d 65 31  n_database_name1
09f0: 36 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  6)(sqlite3_stmt*
0a00: 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73 74 20 63  ,int);.  const c
0a10: 68 61 72 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 64  har * (*column_d
0a20: 65 63 6c 74 79 70 65 29 28 73 71 6c 69 74 65 33  ecltype)(sqlite3
0a30: 5f 73 74 6d 74 2a 2c 69 6e 74 20 69 29 3b 0a 20  _stmt*,int i);. 
0a40: 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a   const void * (*
0a50: 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65 31  column_decltype1
0a60: 36 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  6)(sqlite3_stmt*
0a70: 2c 69 6e 74 29 3b 0a 20 20 64 6f 75 62 6c 65 20  ,int);.  double 
0a80: 20 28 2a 63 6f 6c 75 6d 6e 5f 64 6f 75 62 6c 65   (*column_double
0a90: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c  )(sqlite3_stmt*,
0aa0: 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 69 6e 74  int iCol);.  int
0ab0: 20 20 28 2a 63 6f 6c 75 6d 6e 5f 69 6e 74 29 28    (*column_int)(
0ac0: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0ad0: 74 20 69 43 6f 6c 29 3b 0a 20 20 73 71 6c 69 74  t iCol);.  sqlit
0ae0: 65 5f 69 6e 74 36 34 20 20 28 2a 63 6f 6c 75 6d  e_int64  (*colum
0af0: 6e 5f 69 6e 74 36 34 29 28 73 71 6c 69 74 65 33  n_int64)(sqlite3
0b00: 5f 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29  _stmt*,int iCol)
0b10: 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a  ;.  const char *
0b20: 20 28 2a 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 29 28   (*column_name)(
0b30: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0b40: 74 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64  t);.  const void
0b50: 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 6e 61 6d 65   * (*column_name
0b60: 31 36 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74  16)(sqlite3_stmt
0b70: 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73 74 20  *,int);.  const 
0b80: 63 68 61 72 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f  char * (*column_
0b90: 6f 72 69 67 69 6e 5f 6e 61 6d 65 29 28 73 71 6c  origin_name)(sql
0ba0: 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b  ite3_stmt*,int);
0bb0: 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20  .  const void * 
0bc0: 28 2a 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f  (*column_origin_
0bd0: 6e 61 6d 65 31 36 29 28 73 71 6c 69 74 65 33 5f  name16)(sqlite3_
0be0: 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f  stmt*,int);.  co
0bf0: 6e 73 74 20 63 68 61 72 20 2a 20 28 2a 63 6f 6c  nst char * (*col
0c00: 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 29 28  umn_table_name)(
0c10: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0c20: 74 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64  t);.  const void
0c30: 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 74 61 62 6c   * (*column_tabl
0c40: 65 5f 6e 61 6d 65 31 36 29 28 73 71 6c 69 74 65  e_name16)(sqlite
0c50: 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20  3_stmt*,int);.  
0c60: 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64 20 63  const unsigned c
0c70: 68 61 72 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 74  har * (*column_t
0c80: 65 78 74 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  ext)(sqlite3_stm
0c90: 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20  t*,int iCol);.  
0ca0: 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a 63  const void * (*c
0cb0: 6f 6c 75 6d 6e 5f 74 65 78 74 31 36 29 28 73 71  olumn_text16)(sq
0cc0: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20  lite3_stmt*,int 
0cd0: 69 43 6f 6c 29 3b 0a 20 20 69 6e 74 20 20 28 2a  iCol);.  int  (*
0ce0: 63 6f 6c 75 6d 6e 5f 74 79 70 65 29 28 73 71 6c  column_type)(sql
0cf0: 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20 69  ite3_stmt*,int i
0d00: 43 6f 6c 29 3b 0a 20 20 73 71 6c 69 74 65 33 5f  Col);.  sqlite3_
0d10: 76 61 6c 75 65 2a 20 28 2a 63 6f 6c 75 6d 6e 5f  value* (*column_
0d20: 76 61 6c 75 65 29 28 73 71 6c 69 74 65 33 5f 73  value)(sqlite3_s
0d30: 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a  tmt*,int iCol);.
0d40: 20 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6d 6d 69    void * (*commi
0d50: 74 5f 68 6f 6f 6b 29 28 73 71 6c 69 74 65 33 2a  t_hook)(sqlite3*
0d60: 2c 69 6e 74 28 2a 29 28 76 6f 69 64 2a 29 2c 76  ,int(*)(void*),v
0d70: 6f 69 64 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a  oid*);.  int  (*
0d80: 63 6f 6d 70 6c 65 74 65 29 28 63 6f 6e 73 74 20  complete)(const 
0d90: 63 68 61 72 2a 73 71 6c 29 3b 0a 20 20 69 6e 74  char*sql);.  int
0da0: 20 20 28 2a 63 6f 6d 70 6c 65 74 65 31 36 29 28    (*complete16)(
0db0: 63 6f 6e 73 74 20 76 6f 69 64 2a 73 71 6c 29 3b  const void*sql);
0dc0: 0a 20 20 69 6e 74 20 20 28 2a 63 72 65 61 74 65  .  int  (*create
0dd0: 5f 63 6f 6c 6c 61 74 69 6f 6e 29 28 73 71 6c 69  _collation)(sqli
0de0: 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a  te3*,const char*
0df0: 2c 69 6e 74 2c 76 6f 69 64 2a 2c 0a 20 20 20 20  ,int,void*,.    
0e00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0e10: 20 20 20 20 20 20 20 69 6e 74 28 2a 29 28 76 6f         int(*)(vo
0e20: 69 64 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 76 6f  id*,int,const vo
0e30: 69 64 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 76 6f  id*,int,const vo
0e40: 69 64 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a  id*));.  int  (*
0e50: 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e  create_collation
0e60: 31 36 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e  16)(sqlite3*,con
0e70: 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69  st void*,int,voi
0e80: 64 2a 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20  d*,.            
0e90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ea0: 20 69 6e 74 28 2a 29 28 76 6f 69 64 2a 2c 69 6e   int(*)(void*,in
0eb0: 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e  t,const void*,in
0ec0: 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 29 29 3b  t,const void*));
0ed0: 0a 20 20 69 6e 74 20 20 28 2a 63 72 65 61 74 65  .  int  (*create
0ee0: 5f 66 75 6e 63 74 69 6f 6e 29 28 73 71 6c 69 74  _function)(sqlit
0ef0: 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c  e3*,const char*,
0f00: 69 6e 74 2c 69 6e 74 2c 76 6f 69 64 2a 2c 0a 20  int,int,void*,. 
0f10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0f20: 20 20 20 20 20 20 20 20 20 76 6f 69 64 20 28 2a           void (*
0f30: 78 46 75 6e 63 29 28 73 71 6c 69 74 65 33 5f 63  xFunc)(sqlite3_c
0f40: 6f 6e 74 65 78 74 2a 2c 69 6e 74 2c 73 71 6c 69  ontext*,int,sqli
0f50: 74 65 33 5f 76 61 6c 75 65 2a 2a 29 2c 0a 20 20  te3_value**),.  
0f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0f70: 20 20 20 20 20 20 20 20 76 6f 69 64 20 28 2a 78          void (*x
0f80: 53 74 65 70 29 28 73 71 6c 69 74 65 33 5f 63 6f  Step)(sqlite3_co
0f90: 6e 74 65 78 74 2a 2c 69 6e 74 2c 73 71 6c 69 74  ntext*,int,sqlit
0fa0: 65 33 5f 76 61 6c 75 65 2a 2a 29 2c 0a 20 20 20  e3_value**),.   
0fb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0fc0: 20 20 20 20 20 20 20 76 6f 69 64 20 28 2a 78 46         void (*xF
0fd0: 69 6e 61 6c 29 28 73 71 6c 69 74 65 33 5f 63 6f  inal)(sqlite3_co
0fe0: 6e 74 65 78 74 2a 29 29 3b 0a 20 20 69 6e 74 20  ntext*));.  int 
0ff0: 20 28 2a 63 72 65 61 74 65 5f 66 75 6e 63 74 69   (*create_functi
1000: 6f 6e 31 36 29 28 73 71 6c 69 74 65 33 2a 2c 63  on16)(sqlite3*,c
1010: 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 69  onst void*,int,i
1020: 6e 74 2c 76 6f 69 64 2a 2c 0a 20 20 20 20 20 20  nt,void*,.      
1030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1040: 20 20 20 20 20 20 76 6f 69 64 20 28 2a 78 46 75        void (*xFu
1050: 6e 63 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74  nc)(sqlite3_cont
1060: 65 78 74 2a 2c 69 6e 74 2c 73 71 6c 69 74 65 33  ext*,int,sqlite3
1070: 5f 76 61 6c 75 65 2a 2a 29 2c 0a 20 20 20 20 20  _value**),.     
1080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1090: 20 20 20 20 20 20 20 76 6f 69 64 20 28 2a 78 53         void (*xS
10a0: 74 65 70 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e  tep)(sqlite3_con
10b0: 74 65 78 74 2a 2c 69 6e 74 2c 73 71 6c 69 74 65  text*,int,sqlite
10c0: 33 5f 76 61 6c 75 65 2a 2a 29 2c 0a 20 20 20 20  3_value**),.    
10d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10e0: 20 20 20 20 20 20 20 20 76 6f 69 64 20 28 2a 78          void (*x
10f0: 46 69 6e 61 6c 29 28 73 71 6c 69 74 65 33 5f 63  Final)(sqlite3_c
1100: 6f 6e 74 65 78 74 2a 29 29 3b 0a 20 20 69 6e 74  ontext*));.  int
1110: 20 28 2a 63 72 65 61 74 65 5f 6d 6f 64 75 6c 65   (*create_module
1120: 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74  )(sqlite3*,const
1130: 20 63 68 61 72 2a 2c 63 6f 6e 73 74 20 73 71 6c   char*,const sql
1140: 69 74 65 33 5f 6d 6f 64 75 6c 65 2a 2c 76 6f 69  ite3_module*,voi
1150: 64 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 64 61  d*);.  int  (*da
1160: 74 61 5f 63 6f 75 6e 74 29 28 73 71 6c 69 74 65  ta_count)(sqlite
1170: 33 5f 73 74 6d 74 2a 70 53 74 6d 74 29 3b 0a 20  3_stmt*pStmt);. 
1180: 20 73 71 6c 69 74 65 33 20 2a 20 28 2a 64 62 5f   sqlite3 * (*db_
1190: 68 61 6e 64 6c 65 29 28 73 71 6c 69 74 65 33 5f  handle)(sqlite3_
11a0: 73 74 6d 74 2a 29 3b 0a 20 20 69 6e 74 20 28 2a  stmt*);.  int (*
11b0: 64 65 63 6c 61 72 65 5f 76 74 61 62 29 28 73 71  declare_vtab)(sq
11c0: 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61  lite3*,const cha
11d0: 72 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 65 6e  r*);.  int  (*en
11e0: 61 62 6c 65 5f 73 68 61 72 65 64 5f 63 61 63 68  able_shared_cach
11f0: 65 29 28 69 6e 74 29 3b 0a 20 20 69 6e 74 20 20  e)(int);.  int  
1200: 28 2a 65 72 72 63 6f 64 65 29 28 73 71 6c 69 74  (*errcode)(sqlit
1210: 65 33 2a 64 62 29 3b 0a 20 20 63 6f 6e 73 74 20  e3*db);.  const 
1220: 63 68 61 72 20 2a 20 28 2a 65 72 72 6d 73 67 29  char * (*errmsg)
1230: 28 73 71 6c 69 74 65 33 2a 29 3b 0a 20 20 63 6f  (sqlite3*);.  co
1240: 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a 65 72 72  nst void * (*err
1250: 6d 73 67 31 36 29 28 73 71 6c 69 74 65 33 2a 29  msg16)(sqlite3*)
1260: 3b 0a 20 20 69 6e 74 20 20 28 2a 65 78 65 63 29  ;.  int  (*exec)
1270: 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20  (sqlite3*,const 
1280: 63 68 61 72 2a 2c 73 71 6c 69 74 65 33 5f 63 61  char*,sqlite3_ca
1290: 6c 6c 62 61 63 6b 2c 76 6f 69 64 2a 2c 63 68 61  llback,void*,cha
12a0: 72 2a 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 65  r**);.  int  (*e
12b0: 78 70 69 72 65 64 29 28 73 71 6c 69 74 65 33 5f  xpired)(sqlite3_
12c0: 73 74 6d 74 2a 29 3b 0a 20 20 69 6e 74 20 20 28  stmt*);.  int  (
12d0: 2a 66 69 6e 61 6c 69 7a 65 29 28 73 71 6c 69 74  *finalize)(sqlit
12e0: 65 33 5f 73 74 6d 74 2a 70 53 74 6d 74 29 3b 0a  e3_stmt*pStmt);.
12f0: 20 20 76 6f 69 64 20 20 28 2a 66 72 65 65 29 28    void  (*free)(
1300: 76 6f 69 64 2a 29 3b 0a 20 20 76 6f 69 64 20 20  void*);.  void  
1310: 28 2a 66 72 65 65 5f 74 61 62 6c 65 29 28 63 68  (*free_table)(ch
1320: 61 72 2a 2a 72 65 73 75 6c 74 29 3b 0a 20 20 69  ar**result);.  i
1330: 6e 74 20 20 28 2a 67 65 74 5f 61 75 74 6f 63 6f  nt  (*get_autoco
1340: 6d 6d 69 74 29 28 73 71 6c 69 74 65 33 2a 29 3b  mmit)(sqlite3*);
1350: 0a 20 20 76 6f 69 64 20 2a 20 28 2a 67 65 74 5f  .  void * (*get_
1360: 61 75 78 64 61 74 61 29 28 73 71 6c 69 74 65 33  auxdata)(sqlite3
1370: 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 29 3b 0a  _context*,int);.
1380: 20 20 69 6e 74 20 20 28 2a 67 65 74 5f 74 61 62    int  (*get_tab
1390: 6c 65 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e  le)(sqlite3*,con
13a0: 73 74 20 63 68 61 72 2a 2c 63 68 61 72 2a 2a 2a  st char*,char***
13b0: 2c 69 6e 74 2a 2c 69 6e 74 2a 2c 63 68 61 72 2a  ,int*,int*,char*
13c0: 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 67 6c 6f  *);.  int  (*glo
13d0: 62 61 6c 5f 72 65 63 6f 76 65 72 29 28 76 6f 69  bal_recover)(voi
13e0: 64 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 69 6e  d);.  void  (*in
13f0: 74 65 72 72 75 70 74 78 29 28 73 71 6c 69 74 65  terruptx)(sqlite
1400: 33 2a 29 3b 0a 20 20 73 71 6c 69 74 65 5f 69 6e  3*);.  sqlite_in
1410: 74 36 34 20 20 28 2a 6c 61 73 74 5f 69 6e 73 65  t64  (*last_inse
1420: 72 74 5f 72 6f 77 69 64 29 28 73 71 6c 69 74 65  rt_rowid)(sqlite
1430: 33 2a 29 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61  3*);.  const cha
1440: 72 20 2a 20 28 2a 6c 69 62 76 65 72 73 69 6f 6e  r * (*libversion
1450: 29 28 76 6f 69 64 29 3b 0a 20 20 69 6e 74 20 20  )(void);.  int  
1460: 28 2a 6c 69 62 76 65 72 73 69 6f 6e 5f 6e 75 6d  (*libversion_num
1470: 62 65 72 29 28 76 6f 69 64 29 3b 0a 20 20 76 6f  ber)(void);.  vo
1480: 69 64 20 2a 28 2a 6d 61 6c 6c 6f 63 29 28 69 6e  id *(*malloc)(in
1490: 74 29 3b 0a 20 20 63 68 61 72 20 2a 20 28 2a 6d  t);.  char * (*m
14a0: 70 72 69 6e 74 66 29 28 63 6f 6e 73 74 20 63 68  printf)(const ch
14b0: 61 72 2a 2c 2e 2e 2e 29 3b 0a 20 20 69 6e 74 20  ar*,...);.  int 
14c0: 20 28 2a 6f 70 65 6e 29 28 63 6f 6e 73 74 20 63   (*open)(const c
14d0: 68 61 72 2a 2c 73 71 6c 69 74 65 33 2a 2a 29 3b  har*,sqlite3**);
14e0: 0a 20 20 69 6e 74 20 20 28 2a 6f 70 65 6e 31 36  .  int  (*open16
14f0: 29 28 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 73 71  )(const void*,sq
1500: 6c 69 74 65 33 2a 2a 29 3b 0a 20 20 69 6e 74 20  lite3**);.  int 
1510: 20 28 2a 70 72 65 70 61 72 65 29 28 73 71 6c 69   (*prepare)(sqli
1520: 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a  te3*,const char*
1530: 2c 69 6e 74 2c 73 71 6c 69 74 65 33 5f 73 74 6d  ,int,sqlite3_stm
1540: 74 2a 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2a  t**,const char**
1550: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 70 72 65 70  );.  int  (*prep
1560: 61 72 65 31 36 29 28 73 71 6c 69 74 65 33 2a 2c  are16)(sqlite3*,
1570: 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c  const void*,int,
1580: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2a 2c 63  sqlite3_stmt**,c
1590: 6f 6e 73 74 20 76 6f 69 64 2a 2a 29 3b 0a 20 20  onst void**);.  
15a0: 76 6f 69 64 20 2a 20 28 2a 70 72 6f 66 69 6c 65  void * (*profile
15b0: 29 28 73 71 6c 69 74 65 33 2a 2c 76 6f 69 64 28  )(sqlite3*,void(
15c0: 2a 29 28 76 6f 69 64 2a 2c 63 6f 6e 73 74 20 63  *)(void*,const c
15d0: 68 61 72 2a 2c 73 71 6c 69 74 65 5f 75 69 6e 74  har*,sqlite_uint
15e0: 36 34 29 2c 76 6f 69 64 2a 29 3b 0a 20 20 76 6f  64),void*);.  vo
15f0: 69 64 20 20 28 2a 70 72 6f 67 72 65 73 73 5f 68  id  (*progress_h
1600: 61 6e 64 6c 65 72 29 28 73 71 6c 69 74 65 33 2a  andler)(sqlite3*
1610: 2c 69 6e 74 2c 69 6e 74 28 2a 29 28 76 6f 69 64  ,int,int(*)(void
1620: 2a 29 2c 76 6f 69 64 2a 29 3b 0a 20 20 76 6f 69  *),void*);.  voi
1630: 64 20 2a 28 2a 72 65 61 6c 6c 6f 63 29 28 76 6f  d *(*realloc)(vo
1640: 69 64 2a 2c 69 6e 74 29 3b 0a 20 20 69 6e 74 20  id*,int);.  int 
1650: 20 28 2a 72 65 73 65 74 29 28 73 71 6c 69 74 65   (*reset)(sqlite
1660: 33 5f 73 74 6d 74 2a 70 53 74 6d 74 29 3b 0a 20  3_stmt*pStmt);. 
1670: 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f   void  (*result_
1680: 62 6c 6f 62 29 28 73 71 6c 69 74 65 33 5f 63 6f  blob)(sqlite3_co
1690: 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20 76 6f 69  ntext*,const voi
16a0: 64 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a 29 28 76  d*,int,void(*)(v
16b0: 6f 69 64 2a 29 29 3b 0a 20 20 76 6f 69 64 20 20  oid*));.  void  
16c0: 28 2a 72 65 73 75 6c 74 5f 64 6f 75 62 6c 65 29  (*result_double)
16d0: 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74  (sqlite3_context
16e0: 2a 2c 64 6f 75 62 6c 65 29 3b 0a 20 20 76 6f 69  *,double);.  voi
16f0: 64 20 20 28 2a 72 65 73 75 6c 74 5f 65 72 72 6f  d  (*result_erro
1700: 72 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65  r)(sqlite3_conte
1710: 78 74 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c  xt*,const char*,
1720: 69 6e 74 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a  int);.  void  (*
1730: 72 65 73 75 6c 74 5f 65 72 72 6f 72 31 36 29 28  result_error16)(
1740: 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a  sqlite3_context*
1750: 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74  ,const void*,int
1760: 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65 73  );.  void  (*res
1770: 75 6c 74 5f 69 6e 74 29 28 73 71 6c 69 74 65 33  ult_int)(sqlite3
1780: 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 29 3b 0a  _context*,int);.
1790: 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74    void  (*result
17a0: 5f 69 6e 74 36 34 29 28 73 71 6c 69 74 65 33 5f  _int64)(sqlite3_
17b0: 63 6f 6e 74 65 78 74 2a 2c 73 71 6c 69 74 65 5f  context*,sqlite_
17c0: 69 6e 74 36 34 29 3b 0a 20 20 76 6f 69 64 20 20  int64);.  void  
17d0: 28 2a 72 65 73 75 6c 74 5f 6e 75 6c 6c 29 28 73  (*result_null)(s
17e0: 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 29  qlite3_context*)
17f0: 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75  ;.  void  (*resu
1800: 6c 74 5f 74 65 78 74 29 28 73 71 6c 69 74 65 33  lt_text)(sqlite3
1810: 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20  _context*,const 
1820: 63 68 61 72 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a  char*,int,void(*
1830: 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 76 6f 69  )(void*));.  voi
1840: 64 20 20 28 2a 72 65 73 75 6c 74 5f 74 65 78 74  d  (*result_text
1850: 31 36 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74  16)(sqlite3_cont
1860: 65 78 74 2a 2c 63 6f 6e 73 74 20 76 6f 69 64 2a  ext*,const void*
1870: 2c 69 6e 74 2c 76 6f 69 64 28 2a 29 28 76 6f 69  ,int,void(*)(voi
1880: 64 2a 29 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a  d*));.  void  (*
1890: 72 65 73 75 6c 74 5f 74 65 78 74 31 36 62 65 29  result_text16be)
18a0: 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74  (sqlite3_context
18b0: 2a 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e  *,const void*,in
18c0: 74 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29  t,void(*)(void*)
18d0: 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65 73  );.  void  (*res
18e0: 75 6c 74 5f 74 65 78 74 31 36 6c 65 29 28 73 71  ult_text16le)(sq
18f0: 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 63  lite3_context*,c
1900: 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 76  onst void*,int,v
1910: 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a  oid(*)(void*));.
1920: 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74    void  (*result
1930: 5f 76 61 6c 75 65 29 28 73 71 6c 69 74 65 33 5f  _value)(sqlite3_
1940: 63 6f 6e 74 65 78 74 2a 2c 73 71 6c 69 74 65 33  context*,sqlite3
1950: 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 76 6f 69 64  _value*);.  void
1960: 20 2a 20 28 2a 72 6f 6c 6c 62 61 63 6b 5f 68 6f   * (*rollback_ho
1970: 6f 6b 29 28 73 71 6c 69 74 65 33 2a 2c 76 6f 69  ok)(sqlite3*,voi
1980: 64 28 2a 29 28 76 6f 69 64 2a 29 2c 76 6f 69 64  d(*)(void*),void
1990: 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 73 65 74  *);.  int  (*set
19a0: 5f 61 75 74 68 6f 72 69 7a 65 72 29 28 73 71 6c  _authorizer)(sql
19b0: 69 74 65 33 2a 2c 69 6e 74 28 2a 29 28 76 6f 69  ite3*,int(*)(voi
19c0: 64 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 63 68 61  d*,int,const cha
19d0: 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 0a  r*,const char*,.
19e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f0: 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63           const c
1a00: 68 61 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a  har*,const char*
1a10: 29 2c 76 6f 69 64 2a 29 3b 0a 20 20 76 6f 69 64  ),void*);.  void
1a20: 20 20 28 2a 73 65 74 5f 61 75 78 64 61 74 61 29    (*set_auxdata)
1a30: 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74  (sqlite3_context
1a40: 2a 2c 69 6e 74 2c 76 6f 69 64 2a 2c 76 6f 69 64  *,int,void*,void
1a50: 20 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20   (*)(void*));.  
1a60: 63 68 61 72 20 2a 20 28 2a 73 6e 70 72 69 6e 74  char * (*snprint
1a70: 66 29 28 69 6e 74 2c 63 68 61 72 2a 2c 63 6f 6e  f)(int,char*,con
1a80: 73 74 20 63 68 61 72 2a 2c 2e 2e 2e 29 3b 0a 20  st char*,...);. 
1a90: 20 69 6e 74 20 20 28 2a 73 74 65 70 29 28 73 71   int  (*step)(sq
1aa0: 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20 20  lite3_stmt*);.  
1ab0: 69 6e 74 20 20 28 2a 74 61 62 6c 65 5f 63 6f 6c  int  (*table_col
1ac0: 75 6d 6e 5f 6d 65 74 61 64 61 74 61 29 28 73 71  umn_metadata)(sq
1ad0: 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61  lite3*,const cha
1ae0: 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63  r*,const char*,c
1af0: 6f 6e 73 74 20 63 68 61 72 2a 2c 0a 20 20 20 20  onst char*,.    
1b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b10: 20 20 20 20 20 20 20 20 20 20 20 20 63 68 61 72              char
1b20: 20 63 6f 6e 73 74 2a 2a 2c 63 68 61 72 20 63 6f   const**,char co
1b30: 6e 73 74 2a 2a 2c 69 6e 74 2a 2c 69 6e 74 2a 2c  nst**,int*,int*,
1b40: 69 6e 74 2a 29 3b 0a 20 20 76 6f 69 64 20 20 28  int*);.  void  (
1b50: 2a 74 68 72 65 61 64 5f 63 6c 65 61 6e 75 70 29  *thread_cleanup)
1b60: 28 76 6f 69 64 29 3b 0a 20 20 69 6e 74 20 20 28  (void);.  int  (
1b70: 2a 74 6f 74 61 6c 5f 63 68 61 6e 67 65 73 29 28  *total_changes)(
1b80: 73 71 6c 69 74 65 33 2a 29 3b 0a 20 20 76 6f 69  sqlite3*);.  voi
1b90: 64 20 2a 20 28 2a 74 72 61 63 65 29 28 73 71 6c  d * (*trace)(sql
1ba0: 69 74 65 33 2a 2c 76 6f 69 64 28 2a 78 54 72 61  ite3*,void(*xTra
1bb0: 63 65 29 28 76 6f 69 64 2a 2c 63 6f 6e 73 74 20  ce)(void*,const 
1bc0: 63 68 61 72 2a 29 2c 76 6f 69 64 2a 29 3b 0a 20  char*),void*);. 
1bd0: 20 69 6e 74 20 20 28 2a 74 72 61 6e 73 66 65 72   int  (*transfer
1be0: 5f 62 69 6e 64 69 6e 67 73 29 28 73 71 6c 69 74  _bindings)(sqlit
1bf0: 65 33 5f 73 74 6d 74 2a 2c 73 71 6c 69 74 65 33  e3_stmt*,sqlite3
1c00: 5f 73 74 6d 74 2a 29 3b 0a 20 20 76 6f 69 64 20  _stmt*);.  void 
1c10: 2a 20 28 2a 75 70 64 61 74 65 5f 68 6f 6f 6b 29  * (*update_hook)
1c20: 28 73 71 6c 69 74 65 33 2a 2c 76 6f 69 64 28 2a  (sqlite3*,void(*
1c30: 29 28 76 6f 69 64 2a 2c 69 6e 74 20 2c 63 68 61  )(void*,int ,cha
1c40: 72 20 63 6f 6e 73 74 2a 2c 63 68 61 72 20 63 6f  r const*,char co
1c50: 6e 73 74 2a 2c 0a 20 20 20 20 20 20 20 20 20 20  nst*,.          
1c60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73                 s
1c80: 71 6c 69 74 65 5f 69 6e 74 36 34 29 2c 76 6f 69  qlite_int64),voi
1c90: 64 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a  d*);.  void * (*
1ca0: 75 73 65 72 5f 64 61 74 61 29 28 73 71 6c 69 74  user_data)(sqlit
1cb0: 65 33 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a 20 20  e3_context*);.  
1cc0: 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a 76  const void * (*v
1cd0: 61 6c 75 65 5f 62 6c 6f 62 29 28 73 71 6c 69 74  alue_blob)(sqlit
1ce0: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e  e3_value*);.  in
1cf0: 74 20 20 28 2a 76 61 6c 75 65 5f 62 79 74 65 73  t  (*value_bytes
1d00: 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a  )(sqlite3_value*
1d10: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 76 61 6c 75  );.  int  (*valu
1d20: 65 5f 62 79 74 65 73 31 36 29 28 73 71 6c 69 74  e_bytes16)(sqlit
1d30: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 64 6f  e3_value*);.  do
1d40: 75 62 6c 65 20 20 28 2a 76 61 6c 75 65 5f 64 6f  uble  (*value_do
1d50: 75 62 6c 65 29 28 73 71 6c 69 74 65 33 5f 76 61  uble)(sqlite3_va
1d60: 6c 75 65 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a  lue*);.  int  (*
1d70: 76 61 6c 75 65 5f 69 6e 74 29 28 73 71 6c 69 74  value_int)(sqlit
1d80: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 73 71  e3_value*);.  sq
1d90: 6c 69 74 65 5f 69 6e 74 36 34 20 20 28 2a 76 61  lite_int64  (*va
1da0: 6c 75 65 5f 69 6e 74 36 34 29 28 73 71 6c 69 74  lue_int64)(sqlit
1db0: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e  e3_value*);.  in
1dc0: 74 20 20 28 2a 76 61 6c 75 65 5f 6e 75 6d 65 72  t  (*value_numer
1dd0: 69 63 5f 74 79 70 65 29 28 73 71 6c 69 74 65 33  ic_type)(sqlite3
1de0: 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 63 6f 6e 73  _value*);.  cons
1df0: 74 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  t unsigned char 
1e00: 2a 20 28 2a 76 61 6c 75 65 5f 74 65 78 74 29 28  * (*value_text)(
1e10: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b  sqlite3_value*);
1e20: 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20  .  const void * 
1e30: 28 2a 76 61 6c 75 65 5f 74 65 78 74 31 36 29 28  (*value_text16)(
1e40: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b  sqlite3_value*);
1e50: 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20  .  const void * 
1e60: 28 2a 76 61 6c 75 65 5f 74 65 78 74 31 36 62 65  (*value_text16be
1e70: 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a  )(sqlite3_value*
1e80: 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20  );.  const void 
1e90: 2a 20 28 2a 76 61 6c 75 65 5f 74 65 78 74 31 36  * (*value_text16
1ea0: 6c 65 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75  le)(sqlite3_valu
1eb0: 65 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 76 61  e*);.  int  (*va
1ec0: 6c 75 65 5f 74 79 70 65 29 28 73 71 6c 69 74 65  lue_type)(sqlite
1ed0: 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 63 68 61  3_value*);.  cha
1ee0: 72 20 2a 28 2a 76 6d 70 72 69 6e 74 66 29 28 63  r *(*vmprintf)(c
1ef0: 6f 6e 73 74 20 63 68 61 72 2a 2c 76 61 5f 6c 69  onst char*,va_li
1f00: 73 74 29 3b 0a 20 20 2f 2a 20 41 64 64 65 64 20  st);.  /* Added 
1f10: 3f 3f 3f 20 2a 2f 0a 20 20 69 6e 74 20 28 2a 6f  ??? */.  int (*o
1f20: 76 65 72 6c 6f 61 64 5f 66 75 6e 63 74 69 6f 6e  verload_function
1f30: 29 28 73 71 6c 69 74 65 33 2a 2c 20 63 6f 6e 73  )(sqlite3*, cons
1f40: 74 20 63 68 61 72 20 2a 7a 46 75 6e 63 4e 61 6d  t char *zFuncNam
1f50: 65 2c 20 69 6e 74 20 6e 41 72 67 29 3b 0a 20 20  e, int nArg);.  
1f60: 2f 2a 20 41 64 64 65 64 20 62 79 20 33 2e 33 2e  /* Added by 3.3.
1f70: 31 33 20 2a 2f 0a 20 20 69 6e 74 20 28 2a 70 72  13 */.  int (*pr
1f80: 65 70 61 72 65 5f 76 32 29 28 73 71 6c 69 74 65  epare_v2)(sqlite
1f90: 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69  3*,const char*,i
1fa0: 6e 74 2c 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  nt,sqlite3_stmt*
1fb0: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2a 29 3b  *,const char**);
1fc0: 0a 20 20 69 6e 74 20 28 2a 70 72 65 70 61 72 65  .  int (*prepare
1fd0: 31 36 5f 76 32 29 28 73 71 6c 69 74 65 33 2a 2c  16_v2)(sqlite3*,
1fe0: 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c  const void*,int,
1ff0: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2a 2c 63  sqlite3_stmt**,c
2000: 6f 6e 73 74 20 76 6f 69 64 2a 2a 29 3b 0a 20 20  onst void**);.  
2010: 69 6e 74 20 28 2a 63 6c 65 61 72 5f 62 69 6e 64  int (*clear_bind
2020: 69 6e 67 73 29 28 73 71 6c 69 74 65 33 5f 73 74  ings)(sqlite3_st
2030: 6d 74 2a 29 3b 0a 20 20 2f 2a 20 41 64 64 65 64  mt*);.  /* Added
2040: 20 62 79 20 33 2e 34 2e 31 20 2a 2f 0a 20 20 69   by 3.4.1 */.  i
2050: 6e 74 20 28 2a 63 72 65 61 74 65 5f 6d 6f 64 75  nt (*create_modu
2060: 6c 65 5f 76 32 29 28 73 71 6c 69 74 65 33 2a 2c  le_v2)(sqlite3*,
2070: 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73  const char*,cons
2080: 74 20 73 71 6c 69 74 65 33 5f 6d 6f 64 75 6c 65  t sqlite3_module
2090: 2a 2c 76 6f 69 64 2a 2c 0a 20 20 20 20 20 20 20  *,void*,.       
20a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
20b0: 20 20 20 76 6f 69 64 20 28 2a 78 44 65 73 74 72     void (*xDestr
20c0: 6f 79 29 28 76 6f 69 64 20 2a 29 29 3b 0a 20 20  oy)(void *));.  
20d0: 2f 2a 20 41 64 64 65 64 20 62 79 20 33 2e 35 2e  /* Added by 3.5.
20e0: 30 20 2a 2f 0a 20 20 69 6e 74 20 28 2a 62 69 6e  0 */.  int (*bin
20f0: 64 5f 7a 65 72 6f 62 6c 6f 62 29 28 73 71 6c 69  d_zeroblob)(sqli
2100: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 69 6e  te3_stmt*,int,in
2110: 74 29 3b 0a 20 20 69 6e 74 20 28 2a 62 6c 6f 62  t);.  int (*blob
2120: 5f 62 79 74 65 73 29 28 73 71 6c 69 74 65 33 5f  _bytes)(sqlite3_
2130: 62 6c 6f 62 2a 29 3b 0a 20 20 69 6e 74 20 28 2a  blob*);.  int (*
2140: 62 6c 6f 62 5f 63 6c 6f 73 65 29 28 73 71 6c 69  blob_close)(sqli
2150: 74 65 33 5f 62 6c 6f 62 2a 29 3b 0a 20 20 69 6e  te3_blob*);.  in
2160: 74 20 28 2a 62 6c 6f 62 5f 6f 70 65 6e 29 28 73  t (*blob_open)(s
2170: 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68  qlite3*,const ch
2180: 61 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c  ar*,const char*,
2190: 63 6f 6e 73 74 20 63 68 61 72 2a 2c 73 71 6c 69  const char*,sqli
21a0: 74 65 33 5f 69 6e 74 36 34 2c 0a 20 20 20 20 20  te3_int64,.     
21b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e                in
21c0: 74 2c 73 71 6c 69 74 65 33 5f 62 6c 6f 62 2a 2a  t,sqlite3_blob**
21d0: 29 3b 0a 20 20 69 6e 74 20 28 2a 62 6c 6f 62 5f  );.  int (*blob_
21e0: 72 65 61 64 29 28 73 71 6c 69 74 65 33 5f 62 6c  read)(sqlite3_bl
21f0: 6f 62 2a 2c 76 6f 69 64 2a 2c 69 6e 74 2c 69 6e  ob*,void*,int,in
2200: 74 29 3b 0a 20 20 69 6e 74 20 28 2a 62 6c 6f 62  t);.  int (*blob
2210: 5f 77 72 69 74 65 29 28 73 71 6c 69 74 65 33 5f  _write)(sqlite3_
2220: 62 6c 6f 62 2a 2c 63 6f 6e 73 74 20 76 6f 69 64  blob*,const void
2230: 2a 2c 69 6e 74 2c 69 6e 74 29 3b 0a 20 20 69 6e  *,int,int);.  in
2240: 74 20 28 2a 63 72 65 61 74 65 5f 63 6f 6c 6c 61  t (*create_colla
2250: 74 69 6f 6e 5f 76 32 29 28 73 71 6c 69 74 65 33  tion_v2)(sqlite3
2260: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e  *,const char*,in
2270: 74 2c 76 6f 69 64 2a 2c 0a 20 20 20 20 20 20 20  t,void*,.       
2280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2290: 20 20 20 20 20 20 69 6e 74 28 2a 29 28 76 6f 69        int(*)(voi
22a0: 64 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 76 6f 69  d*,int,const voi
22b0: 64 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 76 6f 69  d*,int,const voi
22c0: 64 2a 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20  d*),.           
22d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
22e0: 20 20 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29    void(*)(void*)
22f0: 29 3b 0a 20 20 69 6e 74 20 28 2a 66 69 6c 65 5f  );.  int (*file_
2300: 63 6f 6e 74 72 6f 6c 29 28 73 71 6c 69 74 65 33  control)(sqlite3
2310: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e  *,const char*,in
2320: 74 2c 76 6f 69 64 2a 29 3b 0a 20 20 73 71 6c 69  t,void*);.  sqli
2330: 74 65 33 5f 69 6e 74 36 34 20 28 2a 6d 65 6d 6f  te3_int64 (*memo
2340: 72 79 5f 68 69 67 68 77 61 74 65 72 29 28 69 6e  ry_highwater)(in
2350: 74 29 3b 0a 20 20 73 71 6c 69 74 65 33 5f 69 6e  t);.  sqlite3_in
2360: 74 36 34 20 28 2a 6d 65 6d 6f 72 79 5f 75 73 65  t64 (*memory_use
2370: 64 29 28 76 6f 69 64 29 3b 0a 20 20 73 71 6c 69  d)(void);.  sqli
2380: 74 65 33 5f 6d 75 74 65 78 20 2a 28 2a 6d 75 74  te3_mutex *(*mut
2390: 65 78 5f 61 6c 6c 6f 63 29 28 69 6e 74 29 3b 0a  ex_alloc)(int);.
23a0: 20 20 76 6f 69 64 20 28 2a 6d 75 74 65 78 5f 65    void (*mutex_e
23b0: 6e 74 65 72 29 28 73 71 6c 69 74 65 33 5f 6d 75  nter)(sqlite3_mu
23c0: 74 65 78 2a 29 3b 0a 20 20 76 6f 69 64 20 28 2a  tex*);.  void (*
23d0: 6d 75 74 65 78 5f 66 72 65 65 29 28 73 71 6c 69  mutex_free)(sqli
23e0: 74 65 33 5f 6d 75 74 65 78 2a 29 3b 0a 20 20 76  te3_mutex*);.  v
23f0: 6f 69 64 20 28 2a 6d 75 74 65 78 5f 6c 65 61 76  oid (*mutex_leav
2400: 65 29 28 73 71 6c 69 74 65 33 5f 6d 75 74 65 78  e)(sqlite3_mutex
2410: 2a 29 3b 0a 20 20 69 6e 74 20 28 2a 6d 75 74 65  *);.  int (*mute
2420: 78 5f 74 72 79 29 28 73 71 6c 69 74 65 33 5f 6d  x_try)(sqlite3_m
2430: 75 74 65 78 2a 29 3b 0a 20 20 69 6e 74 20 28 2a  utex*);.  int (*
2440: 6f 70 65 6e 5f 76 32 29 28 63 6f 6e 73 74 20 63  open_v2)(const c
2450: 68 61 72 2a 2c 73 71 6c 69 74 65 33 2a 2a 2c 69  har*,sqlite3**,i
2460: 6e 74 2c 63 6f 6e 73 74 20 63 68 61 72 2a 29 3b  nt,const char*);
2470: 0a 20 20 69 6e 74 20 28 2a 72 65 6c 65 61 73 65  .  int (*release
2480: 5f 6d 65 6d 6f 72 79 29 28 69 6e 74 29 3b 0a 20  _memory)(int);. 
2490: 20 76 6f 69 64 20 28 2a 72 65 73 75 6c 74 5f 65   void (*result_e
24a0: 72 72 6f 72 5f 6e 6f 6d 65 6d 29 28 73 71 6c 69  rror_nomem)(sqli
24b0: 74 65 33 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a 20  te3_context*);. 
24c0: 20 76 6f 69 64 20 28 2a 72 65 73 75 6c 74 5f 65   void (*result_e
24d0: 72 72 6f 72 5f 74 6f 6f 62 69 67 29 28 73 71 6c  rror_toobig)(sql
24e0: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a  ite3_context*);.
24f0: 20 20 69 6e 74 20 28 2a 73 6c 65 65 70 29 28 69    int (*sleep)(i
2500: 6e 74 29 3b 0a 20 20 76 6f 69 64 20 28 2a 73 6f  nt);.  void (*so
2510: 66 74 5f 68 65 61 70 5f 6c 69 6d 69 74 29 28 69  ft_heap_limit)(i
2520: 6e 74 29 3b 0a 20 20 73 71 6c 69 74 65 33 5f 76  nt);.  sqlite3_v
2530: 66 73 20 2a 28 2a 76 66 73 5f 66 69 6e 64 29 28  fs *(*vfs_find)(
2540: 63 6f 6e 73 74 20 63 68 61 72 2a 29 3b 0a 20 20  const char*);.  
2550: 69 6e 74 20 28 2a 76 66 73 5f 72 65 67 69 73 74  int (*vfs_regist
2560: 65 72 29 28 73 71 6c 69 74 65 33 5f 76 66 73 2a  er)(sqlite3_vfs*
2570: 2c 69 6e 74 29 3b 0a 20 20 69 6e 74 20 28 2a 76  ,int);.  int (*v
2580: 66 73 5f 75 6e 72 65 67 69 73 74 65 72 29 28 73  fs_unregister)(s
2590: 71 6c 69 74 65 33 5f 76 66 73 2a 29 3b 0a 20 20  qlite3_vfs*);.  
25a0: 69 6e 74 20 28 2a 78 74 68 72 65 61 64 73 61 66  int (*xthreadsaf
25b0: 65 29 28 76 6f 69 64 29 3b 0a 20 20 76 6f 69 64  e)(void);.  void
25c0: 20 28 2a 72 65 73 75 6c 74 5f 7a 65 72 6f 62 6c   (*result_zerobl
25d0: 6f 62 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74  ob)(sqlite3_cont
25e0: 65 78 74 2a 2c 69 6e 74 29 3b 0a 20 20 76 6f 69  ext*,int);.  voi
25f0: 64 20 28 2a 72 65 73 75 6c 74 5f 65 72 72 6f 72  d (*result_error
2600: 5f 63 6f 64 65 29 28 73 71 6c 69 74 65 33 5f 63  _code)(sqlite3_c
2610: 6f 6e 74 65 78 74 2a 2c 69 6e 74 29 3b 0a 20 20  ontext*,int);.  
2620: 69 6e 74 20 28 2a 74 65 73 74 5f 63 6f 6e 74 72  int (*test_contr
2630: 6f 6c 29 28 69 6e 74 2c 20 2e 2e 2e 29 3b 0a 20  ol)(int, ...);. 
2640: 20 76 6f 69 64 20 28 2a 72 61 6e 64 6f 6d 6e 65   void (*randomne
2650: 73 73 29 28 69 6e 74 2c 76 6f 69 64 2a 29 3b 0a  ss)(int,void*);.
2660: 20 20 73 71 6c 69 74 65 33 20 2a 28 2a 63 6f 6e    sqlite3 *(*con
2670: 74 65 78 74 5f 64 62 5f 68 61 6e 64 6c 65 29 28  text_db_handle)(
2680: 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a  sqlite3_context*
2690: 29 3b 0a 20 20 69 6e 74 20 28 2a 65 78 74 65 6e  );.  int (*exten
26a0: 64 65 64 5f 72 65 73 75 6c 74 5f 63 6f 64 65 73  ded_result_codes
26b0: 29 28 73 71 6c 69 74 65 33 2a 2c 69 6e 74 29 3b  )(sqlite3*,int);
26c0: 0a 20 20 69 6e 74 20 28 2a 6c 69 6d 69 74 29 28  .  int (*limit)(
26d0: 73 71 6c 69 74 65 33 2a 2c 69 6e 74 2c 69 6e 74  sqlite3*,int,int
26e0: 29 3b 0a 20 20 73 71 6c 69 74 65 33 5f 73 74 6d  );.  sqlite3_stm
26f0: 74 20 2a 28 2a 6e 65 78 74 5f 73 74 6d 74 29 28  t *(*next_stmt)(
2700: 73 71 6c 69 74 65 33 2a 2c 73 71 6c 69 74 65 33  sqlite3*,sqlite3
2710: 5f 73 74 6d 74 2a 29 3b 0a 20 20 63 6f 6e 73 74  _stmt*);.  const
2720: 20 63 68 61 72 20 2a 28 2a 73 71 6c 29 28 73 71   char *(*sql)(sq
2730: 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20 20  lite3_stmt*);.  
2740: 69 6e 74 20 28 2a 73 74 61 74 75 73 29 28 69 6e  int (*status)(in
2750: 74 2c 69 6e 74 2a 2c 69 6e 74 2a 2c 69 6e 74 29  t,int*,int*,int)
2760: 3b 0a 20 20 69 6e 74 20 28 2a 62 61 63 6b 75 70  ;.  int (*backup
2770: 5f 66 69 6e 69 73 68 29 28 73 71 6c 69 74 65 33  _finish)(sqlite3
2780: 5f 62 61 63 6b 75 70 2a 29 3b 0a 20 20 73 71 6c  _backup*);.  sql
2790: 69 74 65 33 5f 62 61 63 6b 75 70 20 2a 28 2a 62  ite3_backup *(*b
27a0: 61 63 6b 75 70 5f 69 6e 69 74 29 28 73 71 6c 69  ackup_init)(sqli
27b0: 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a  te3*,const char*
27c0: 2c 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20  ,sqlite3*,const 
27d0: 63 68 61 72 2a 29 3b 0a 20 20 69 6e 74 20 28 2a  char*);.  int (*
27e0: 62 61 63 6b 75 70 5f 70 61 67 65 63 6f 75 6e 74  backup_pagecount
27f0: 29 28 73 71 6c 69 74 65 33 5f 62 61 63 6b 75 70  )(sqlite3_backup
2800: 2a 29 3b 0a 20 20 69 6e 74 20 28 2a 62 61 63 6b  *);.  int (*back
2810: 75 70 5f 72 65 6d 61 69 6e 69 6e 67 29 28 73 71  up_remaining)(sq
2820: 6c 69 74 65 33 5f 62 61 63 6b 75 70 2a 29 3b 0a  lite3_backup*);.
2830: 20 20 69 6e 74 20 28 2a 62 61 63 6b 75 70 5f 73    int (*backup_s
2840: 74 65 70 29 28 73 71 6c 69 74 65 33 5f 62 61 63  tep)(sqlite3_bac
2850: 6b 75 70 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e  kup*,int);.  con
2860: 73 74 20 63 68 61 72 20 2a 28 2a 63 6f 6d 70 69  st char *(*compi
2870: 6c 65 6f 70 74 69 6f 6e 5f 67 65 74 29 28 69 6e  leoption_get)(in
2880: 74 29 3b 0a 20 20 69 6e 74 20 28 2a 63 6f 6d 70  t);.  int (*comp
2890: 69 6c 65 6f 70 74 69 6f 6e 5f 75 73 65 64 29 28  ileoption_used)(
28a0: 63 6f 6e 73 74 20 63 68 61 72 2a 29 3b 0a 20 20  const char*);.  
28b0: 69 6e 74 20 28 2a 63 72 65 61 74 65 5f 66 75 6e  int (*create_fun
28c0: 63 74 69 6f 6e 5f 76 32 29 28 73 71 6c 69 74 65  ction_v2)(sqlite
28d0: 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69  3*,const char*,i
28e0: 6e 74 2c 69 6e 74 2c 76 6f 69 64 2a 2c 0a 20 20  nt,int,void*,.  
28f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2900: 20 20 20 20 20 20 20 20 20 20 76 6f 69 64 20 28            void (
2910: 2a 78 46 75 6e 63 29 28 73 71 6c 69 74 65 33 5f  *xFunc)(sqlite3_
2920: 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 2c 73 71 6c  context*,int,sql
2930: 69 74 65 33 5f 76 61 6c 75 65 2a 2a 29 2c 0a 20  ite3_value**),. 
2940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2950: 20 20 20 20 20 20 20 20 20 20 20 76 6f 69 64 20             void 
2960: 28 2a 78 53 74 65 70 29 28 73 71 6c 69 74 65 33  (*xStep)(sqlite3
2970: 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 2c 73 71  _context*,int,sq
2980: 6c 69 74 65 33 5f 76 61 6c 75 65 2a 2a 29 2c 0a  lite3_value**),.
2990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
29a0: 20 20 20 20 20 20 20 20 20 20 20 20 76 6f 69 64              void
29b0: 20 28 2a 78 46 69 6e 61 6c 29 28 73 71 6c 69 74   (*xFinal)(sqlit
29c0: 65 33 5f 63 6f 6e 74 65 78 74 2a 29 2c 0a 20 20  e3_context*),.  
29d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
29e0: 20 20 20 20 20 20 20 20 20 20 76 6f 69 64 28 2a            void(*
29f0: 78 44 65 73 74 72 6f 79 29 28 76 6f 69 64 2a 29  xDestroy)(void*)
2a00: 29 3b 0a 20 20 69 6e 74 20 28 2a 64 62 5f 63 6f  );.  int (*db_co
2a10: 6e 66 69 67 29 28 73 71 6c 69 74 65 33 2a 2c 69  nfig)(sqlite3*,i
2a20: 6e 74 2c 2e 2e 2e 29 3b 0a 20 20 73 71 6c 69 74  nt,...);.  sqlit
2a30: 65 33 5f 6d 75 74 65 78 20 2a 28 2a 64 62 5f 6d  e3_mutex *(*db_m
2a40: 75 74 65 78 29 28 73 71 6c 69 74 65 33 2a 29 3b  utex)(sqlite3*);
2a50: 0a 20 20 69 6e 74 20 28 2a 64 62 5f 73 74 61 74  .  int (*db_stat
2a60: 75 73 29 28 73 71 6c 69 74 65 33 2a 2c 69 6e 74  us)(sqlite3*,int
2a70: 2c 69 6e 74 2a 2c 69 6e 74 2a 2c 69 6e 74 29 3b  ,int*,int*,int);
2a80: 0a 20 20 69 6e 74 20 28 2a 65 78 74 65 6e 64 65  .  int (*extende
2a90: 64 5f 65 72 72 63 6f 64 65 29 28 73 71 6c 69 74  d_errcode)(sqlit
2aa0: 65 33 2a 29 3b 0a 20 20 76 6f 69 64 20 28 2a 6c  e3*);.  void (*l
2ab0: 6f 67 29 28 69 6e 74 2c 63 6f 6e 73 74 20 63 68  og)(int,const ch
2ac0: 61 72 2a 2c 2e 2e 2e 29 3b 0a 20 20 73 71 6c 69  ar*,...);.  sqli
2ad0: 74 65 33 5f 69 6e 74 36 34 20 28 2a 73 6f 66 74  te3_int64 (*soft
2ae0: 5f 68 65 61 70 5f 6c 69 6d 69 74 36 34 29 28 73  _heap_limit64)(s
2af0: 71 6c 69 74 65 33 5f 69 6e 74 36 34 29 3b 0a 20  qlite3_int64);. 
2b00: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 28 2a 73   const char *(*s
2b10: 6f 75 72 63 65 69 64 29 28 76 6f 69 64 29 3b 0a  ourceid)(void);.
2b20: 20 20 69 6e 74 20 28 2a 73 74 6d 74 5f 73 74 61    int (*stmt_sta
2b30: 74 75 73 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  tus)(sqlite3_stm
2b40: 74 2a 2c 69 6e 74 2c 69 6e 74 29 3b 0a 20 20 69  t*,int,int);.  i
2b50: 6e 74 20 28 2a 73 74 72 6e 69 63 6d 70 29 28 63  nt (*strnicmp)(c
2b60: 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74  onst char*,const
2b70: 20 63 68 61 72 2a 2c 69 6e 74 29 3b 0a 20 20 69   char*,int);.  i
2b80: 6e 74 20 28 2a 75 6e 6c 6f 63 6b 5f 6e 6f 74 69  nt (*unlock_noti
2b90: 66 79 29 28 73 71 6c 69 74 65 33 2a 2c 76 6f 69  fy)(sqlite3*,voi
2ba0: 64 28 2a 29 28 76 6f 69 64 2a 2a 2c 69 6e 74 29  d(*)(void**,int)
2bb0: 2c 76 6f 69 64 2a 29 3b 0a 20 20 69 6e 74 20 28  ,void*);.  int (
2bc0: 2a 77 61 6c 5f 61 75 74 6f 63 68 65 63 6b 70 6f  *wal_autocheckpo
2bd0: 69 6e 74 29 28 73 71 6c 69 74 65 33 2a 2c 69 6e  int)(sqlite3*,in
2be0: 74 29 3b 0a 20 20 69 6e 74 20 28 2a 77 61 6c 5f  t);.  int (*wal_
2bf0: 63 68 65 63 6b 70 6f 69 6e 74 29 28 73 71 6c 69  checkpoint)(sqli
2c00: 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a  te3*,const char*
2c10: 29 3b 0a 20 20 76 6f 69 64 20 2a 28 2a 77 61 6c  );.  void *(*wal
2c20: 5f 68 6f 6f 6b 29 28 73 71 6c 69 74 65 33 2a 2c  _hook)(sqlite3*,
2c30: 69 6e 74 28 2a 29 28 76 6f 69 64 2a 2c 73 71 6c  int(*)(void*,sql
2c40: 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72  ite3*,const char
2c50: 2a 2c 69 6e 74 29 2c 76 6f 69 64 2a 29 3b 0a 20  *,int),void*);. 
2c60: 20 69 6e 74 20 28 2a 62 6c 6f 62 5f 72 65 6f 70   int (*blob_reop
2c70: 65 6e 29 28 73 71 6c 69 74 65 33 5f 62 6c 6f 62  en)(sqlite3_blob
2c80: 2a 2c 73 71 6c 69 74 65 33 5f 69 6e 74 36 34 29  *,sqlite3_int64)
2c90: 3b 0a 20 20 69 6e 74 20 28 2a 76 74 61 62 5f 63  ;.  int (*vtab_c
2ca0: 6f 6e 66 69 67 29 28 73 71 6c 69 74 65 33 2a 2c  onfig)(sqlite3*,
2cb0: 69 6e 74 20 6f 70 2c 2e 2e 2e 29 3b 0a 20 20 69  int op,...);.  i
2cc0: 6e 74 20 28 2a 76 74 61 62 5f 6f 6e 5f 63 6f 6e  nt (*vtab_on_con
2cd0: 66 6c 69 63 74 29 28 73 71 6c 69 74 65 33 2a 29  flict)(sqlite3*)
2ce0: 3b 0a 20 20 2f 2a 20 56 65 72 73 69 6f 6e 20 33  ;.  /* Version 3
2cf0: 2e 37 2e 31 36 20 61 6e 64 20 6c 61 74 65 72 20  .7.16 and later 
2d00: 2a 2f 0a 20 20 69 6e 74 20 28 2a 63 6c 6f 73 65  */.  int (*close
2d10: 5f 76 32 29 28 73 71 6c 69 74 65 33 2a 29 3b 0a  _v2)(sqlite3*);.
2d20: 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 28 2a    const char *(*
2d30: 64 62 5f 66 69 6c 65 6e 61 6d 65 29 28 73 71 6c  db_filename)(sql
2d40: 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72  ite3*,const char
2d50: 2a 29 3b 0a 20 20 69 6e 74 20 28 2a 64 62 5f 72  *);.  int (*db_r
2d60: 65 61 64 6f 6e 6c 79 29 28 73 71 6c 69 74 65 33  eadonly)(sqlite3
2d70: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 29 3b 0a  *,const char*);.
2d80: 20 20 69 6e 74 20 28 2a 64 62 5f 72 65 6c 65 61    int (*db_relea
2d90: 73 65 5f 6d 65 6d 6f 72 79 29 28 73 71 6c 69 74  se_memory)(sqlit
2da0: 65 33 2a 29 3b 0a 20 20 63 6f 6e 73 74 20 63 68  e3*);.  const ch
2db0: 61 72 20 2a 28 2a 65 72 72 73 74 72 29 28 69 6e  ar *(*errstr)(in
2dc0: 74 29 3b 0a 20 20 69 6e 74 20 28 2a 73 74 6d 74  t);.  int (*stmt
2dd0: 5f 62 75 73 79 29 28 73 71 6c 69 74 65 33 5f 73  _busy)(sqlite3_s
2de0: 74 6d 74 2a 29 3b 0a 20 20 69 6e 74 20 28 2a 73  tmt*);.  int (*s
2df0: 74 6d 74 5f 72 65 61 64 6f 6e 6c 79 29 28 73 71  tmt_readonly)(sq
2e00: 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20 20  lite3_stmt*);.  
2e10: 69 6e 74 20 28 2a 73 74 72 69 63 6d 70 29 28 63  int (*stricmp)(c
2e20: 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74  onst char*,const
2e30: 20 63 68 61 72 2a 29 3b 0a 20 20 69 6e 74 20 28   char*);.  int (
2e40: 2a 75 72 69 5f 62 6f 6f 6c 65 61 6e 29 28 63 6f  *uri_boolean)(co
2e50: 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74 20  nst char*,const 
2e60: 63 68 61 72 2a 2c 69 6e 74 29 3b 0a 20 20 73 71  char*,int);.  sq
2e70: 6c 69 74 65 33 5f 69 6e 74 36 34 20 28 2a 75 72  lite3_int64 (*ur
2e80: 69 5f 69 6e 74 36 34 29 28 63 6f 6e 73 74 20 63  i_int64)(const c
2e90: 68 61 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a  har*,const char*
2ea0: 2c 73 71 6c 69 74 65 33 5f 69 6e 74 36 34 29 3b  ,sqlite3_int64);
2eb0: 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 28  .  const char *(
2ec0: 2a 75 72 69 5f 70 61 72 61 6d 65 74 65 72 29 28  *uri_parameter)(
2ed0: 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73  const char*,cons
2ee0: 74 20 63 68 61 72 2a 29 3b 0a 20 20 63 68 61 72  t char*);.  char
2ef0: 20 2a 28 2a 76 73 6e 70 72 69 6e 74 66 29 28 69   *(*vsnprintf)(i
2f00: 6e 74 2c 63 68 61 72 2a 2c 63 6f 6e 73 74 20 63  nt,char*,const c
2f10: 68 61 72 2a 2c 76 61 5f 6c 69 73 74 29 3b 0a 20  har*,va_list);. 
2f20: 20 69 6e 74 20 28 2a 77 61 6c 5f 63 68 65 63 6b   int (*wal_check
2f30: 70 6f 69 6e 74 5f 76 32 29 28 73 71 6c 69 74 65  point_v2)(sqlite
2f40: 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69  3*,const char*,i
2f50: 6e 74 2c 69 6e 74 2a 2c 69 6e 74 2a 29 3b 0a 20  nt,int*,int*);. 
2f60: 20 2f 2a 20 56 65 72 73 69 6f 6e 20 33 2e 38 2e   /* Version 3.8.
2f70: 37 20 61 6e 64 20 6c 61 74 65 72 20 2a 2f 0a 20  7 and later */. 
2f80: 20 69 6e 74 20 28 2a 61 75 74 6f 5f 65 78 74 65   int (*auto_exte
2f90: 6e 73 69 6f 6e 29 28 76 6f 69 64 28 2a 29 28 76  nsion)(void(*)(v
2fa0: 6f 69 64 29 29 3b 0a 20 20 69 6e 74 20 28 2a 62  oid));.  int (*b
2fb0: 69 6e 64 5f 62 6c 6f 62 36 34 29 28 73 71 6c 69  ind_blob64)(sqli
2fc0: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 63 6f  te3_stmt*,int,co
2fd0: 6e 73 74 20 76 6f 69 64 2a 2c 73 71 6c 69 74 65  nst void*,sqlite
2fe0: 33 5f 75 69 6e 74 36 34 2c 0a 20 20 20 20 20 20  3_uint64,.      
2ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76                 v
3000: 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a  oid(*)(void*));.
3010: 20 20 69 6e 74 20 28 2a 62 69 6e 64 5f 74 65 78    int (*bind_tex
3020: 74 36 34 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  t64)(sqlite3_stm
3030: 74 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 63 68 61  t*,int,const cha
3040: 72 2a 2c 73 71 6c 69 74 65 33 5f 75 69 6e 74 36  r*,sqlite3_uint6
3050: 34 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  4,.             
3060: 20 20 20 20 20 20 20 20 20 76 6f 69 64 28 2a 29           void(*)
3070: 28 76 6f 69 64 2a 29 2c 75 6e 73 69 67 6e 65 64  (void*),unsigned
3080: 20 63 68 61 72 29 3b 0a 20 20 69 6e 74 20 28 2a   char);.  int (*
3090: 63 61 6e 63 65 6c 5f 61 75 74 6f 5f 65 78 74 65  cancel_auto_exte
30a0: 6e 73 69 6f 6e 29 28 76 6f 69 64 28 2a 29 28 76  nsion)(void(*)(v
30b0: 6f 69 64 29 29 3b 0a 20 20 69 6e 74 20 28 2a 6c  oid));.  int (*l
30c0: 6f 61 64 5f 65 78 74 65 6e 73 69 6f 6e 29 28 73  oad_extension)(s
30d0: 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68  qlite3*,const ch
30e0: 61 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c  ar*,const char*,
30f0: 63 68 61 72 2a 2a 29 3b 0a 20 20 76 6f 69 64 20  char**);.  void 
3100: 2a 28 2a 6d 61 6c 6c 6f 63 36 34 29 28 73 71 6c  *(*malloc64)(sql
3110: 69 74 65 33 5f 75 69 6e 74 36 34 29 3b 0a 20 20  ite3_uint64);.  
3120: 73 71 6c 69 74 65 33 5f 75 69 6e 74 36 34 20 28  sqlite3_uint64 (
3130: 2a 6d 73 69 7a 65 29 28 76 6f 69 64 2a 29 3b 0a  *msize)(void*);.
3140: 20 20 76 6f 69 64 20 2a 28 2a 72 65 61 6c 6c 6f    void *(*reallo
3150: 63 36 34 29 28 76 6f 69 64 2a 2c 73 71 6c 69 74  c64)(void*,sqlit
3160: 65 33 5f 75 69 6e 74 36 34 29 3b 0a 20 20 76 6f  e3_uint64);.  vo
3170: 69 64 20 28 2a 72 65 73 65 74 5f 61 75 74 6f 5f  id (*reset_auto_
3180: 65 78 74 65 6e 73 69 6f 6e 29 28 76 6f 69 64 29  extension)(void)
3190: 3b 0a 20 20 76 6f 69 64 20 28 2a 72 65 73 75 6c  ;.  void (*resul
31a0: 74 5f 62 6c 6f 62 36 34 29 28 73 71 6c 69 74 65  t_blob64)(sqlite
31b0: 33 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74  3_context*,const
31c0: 20 76 6f 69 64 2a 2c 73 71 6c 69 74 65 33 5f 75   void*,sqlite3_u
31d0: 69 6e 74 36 34 2c 0a 20 20 20 20 20 20 20 20 20  int64,.         
31e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76                 v
31f0: 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a  oid(*)(void*));.
3200: 20 20 76 6f 69 64 20 28 2a 72 65 73 75 6c 74 5f    void (*result_
3210: 74 65 78 74 36 34 29 28 73 71 6c 69 74 65 33 5f  text64)(sqlite3_
3220: 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20 63  context*,const c
3230: 68 61 72 2a 2c 73 71 6c 69 74 65 33 5f 75 69 6e  har*,sqlite3_uin
3240: 74 36 34 2c 0a 20 20 20 20 20 20 20 20 20 20 20  t64,.           
3250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 6f                vo
3260: 69 64 28 2a 29 28 76 6f 69 64 2a 29 2c 20 75 6e  id(*)(void*), un
3270: 73 69 67 6e 65 64 20 63 68 61 72 29 3b 0a 20 20  signed char);.  
3280: 69 6e 74 20 28 2a 73 74 72 67 6c 6f 62 29 28 63  int (*strglob)(c
3290: 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74  onst char*,const
32a0: 20 63 68 61 72 2a 29 3b 0a 20 20 2f 2a 20 56 65   char*);.  /* Ve
32b0: 72 73 69 6f 6e 20 33 2e 38 2e 31 31 20 61 6e 64  rsion 3.8.11 and
32c0: 20 6c 61 74 65 72 20 2a 2f 0a 20 20 73 71 6c 69   later */.  sqli
32d0: 74 65 33 5f 76 61 6c 75 65 20 2a 28 2a 76 61 6c  te3_value *(*val
32e0: 75 65 5f 64 75 70 29 28 63 6f 6e 73 74 20 73 71  ue_dup)(const sq
32f0: 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20  lite3_value*);. 
3300: 20 76 6f 69 64 20 28 2a 76 61 6c 75 65 5f 66 72   void (*value_fr
3310: 65 65 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75  ee)(sqlite3_valu
3320: 65 2a 29 3b 0a 20 20 69 6e 74 20 28 2a 72 65 73  e*);.  int (*res
3330: 75 6c 74 5f 7a 65 72 6f 62 6c 6f 62 36 34 29 28  ult_zeroblob64)(
3340: 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a  sqlite3_context*
3350: 2c 73 71 6c 69 74 65 33 5f 75 69 6e 74 36 34 29  ,sqlite3_uint64)
3360: 3b 0a 20 20 69 6e 74 20 28 2a 62 69 6e 64 5f 7a  ;.  int (*bind_z
3370: 65 72 6f 62 6c 6f 62 36 34 29 28 73 71 6c 69 74  eroblob64)(sqlit
3380: 65 33 5f 73 74 6d 74 2a 2c 20 69 6e 74 2c 20 73  e3_stmt*, int, s
3390: 71 6c 69 74 65 33 5f 75 69 6e 74 36 34 29 3b 0a  qlite3_uint64);.
33a0: 20 20 2f 2a 20 56 65 72 73 69 6f 6e 20 33 2e 39    /* Version 3.9
33b0: 2e 30 20 61 6e 64 20 6c 61 74 65 72 20 2a 2f 0a  .0 and later */.
33c0: 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 28    unsigned int (
33d0: 2a 76 61 6c 75 65 5f 73 75 62 74 79 70 65 29 28  *value_subtype)(
33e0: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b  sqlite3_value*);
33f0: 0a 20 20 76 6f 69 64 20 28 2a 72 65 73 75 6c 74  .  void (*result
3400: 5f 73 75 62 74 79 70 65 29 28 73 71 6c 69 74 65  _subtype)(sqlite
3410: 33 5f 63 6f 6e 74 65 78 74 2a 2c 75 6e 73 69 67  3_context*,unsig
3420: 6e 65 64 20 69 6e 74 29 3b 0a 20 20 2f 2a 20 56  ned int);.  /* V
3430: 65 72 73 69 6f 6e 20 33 2e 31 30 2e 30 20 61 6e  ersion 3.10.0 an
3440: 64 20 6c 61 74 65 72 20 2a 2f 0a 20 20 69 6e 74  d later */.  int
3450: 20 28 2a 73 74 61 74 75 73 36 34 29 28 69 6e 74   (*status64)(int
3460: 2c 73 71 6c 69 74 65 33 5f 69 6e 74 36 34 2a 2c  ,sqlite3_int64*,
3470: 73 71 6c 69 74 65 33 5f 69 6e 74 36 34 2a 2c 69  sqlite3_int64*,i
3480: 6e 74 29 3b 0a 20 20 69 6e 74 20 28 2a 73 74 72  nt);.  int (*str
3490: 6c 69 6b 65 29 28 63 6f 6e 73 74 20 63 68 61 72  like)(const char
34a0: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 75 6e  *,const char*,un
34b0: 73 69 67 6e 65 64 20 69 6e 74 29 3b 0a 20 20 69  signed int);.  i
34c0: 6e 74 20 28 2a 64 62 5f 63 61 63 68 65 66 6c 75  nt (*db_cacheflu
34d0: 73 68 29 28 73 71 6c 69 74 65 33 2a 29 3b 0a 20  sh)(sqlite3*);. 
34e0: 20 2f 2a 20 56 65 72 73 69 6f 6e 20 33 2e 31 32   /* Version 3.12
34f0: 2e 30 20 61 6e 64 20 6c 61 74 65 72 20 2a 2f 0a  .0 and later */.
3500: 20 20 69 6e 74 20 28 2a 73 79 73 74 65 6d 5f 65    int (*system_e
3510: 72 72 6e 6f 29 28 73 71 6c 69 74 65 33 2a 29 3b  rrno)(sqlite3*);
3520: 0a 20 20 2f 2a 20 56 65 72 73 69 6f 6e 20 33 2e  .  /* Version 3.
3530: 31 34 2e 30 20 61 6e 64 20 6c 61 74 65 72 20 2a  14.0 and later *
3540: 2f 0a 20 20 69 6e 74 20 28 2a 74 72 61 63 65 5f  /.  int (*trace_
3550: 76 32 29 28 73 71 6c 69 74 65 33 2a 2c 75 6e 73  v2)(sqlite3*,uns
3560: 69 67 6e 65 64 2c 69 6e 74 28 2a 29 28 75 6e 73  igned,int(*)(uns
3570: 69 67 6e 65 64 2c 76 6f 69 64 2a 2c 76 6f 69 64  igned,void*,void
3580: 2a 2c 76 6f 69 64 2a 29 2c 76 6f 69 64 2a 29 3b  *,void*),void*);
3590: 0a 20 20 63 68 61 72 20 2a 28 2a 65 78 70 61 6e  .  char *(*expan
35a0: 64 65 64 5f 73 71 6c 29 28 73 71 6c 69 74 65 33  ded_sql)(sqlite3
35b0: 5f 73 74 6d 74 2a 29 3b 0a 7d 3b 0a 0a 2f 2a 0a  _stmt*);.};../*.
35c0: 2a 2a 20 54 68 69 73 20 69 73 20 74 68 65 20 66  ** This is the f
35d0: 75 6e 63 74 69 6f 6e 20 73 69 67 6e 61 74 75 72  unction signatur
35e0: 65 20 75 73 65 64 20 66 6f 72 20 61 6c 6c 20 65  e used for all e
35f0: 78 74 65 6e 73 69 6f 6e 20 65 6e 74 72 79 20 70  xtension entry p
3600: 6f 69 6e 74 73 2e 20 20 49 74 0a 2a 2a 20 69 73  oints.  It.** is
3610: 20 61 6c 73 6f 20 64 65 66 69 6e 65 64 20 69 6e   also defined in
3620: 20 74 68 65 20 66 69 6c 65 20 22 6c 6f 61 64 65   the file "loade
3630: 78 74 2e 63 22 2e 0a 2a 2f 0a 74 79 70 65 64 65  xt.c"..*/.typede
3640: 66 20 69 6e 74 20 28 2a 73 71 6c 69 74 65 33 5f  f int (*sqlite3_
3650: 6c 6f 61 64 65 78 74 5f 65 6e 74 72 79 29 28 0a  loadext_entry)(.
3660: 20 20 73 71 6c 69 74 65 33 20 2a 64 62 2c 20 20    sqlite3 *db,  
3670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3680: 20 20 20 20 20 2f 2a 20 48 61 6e 64 6c 65 20 74       /* Handle t
3690: 6f 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 20  o the database. 
36a0: 2a 2f 0a 20 20 63 68 61 72 20 2a 2a 70 7a 45 72  */.  char **pzEr
36b0: 72 4d 73 67 2c 20 20 20 20 20 20 20 20 20 20 20  rMsg,           
36c0: 20 20 20 20 20 20 20 20 2f 2a 20 55 73 65 64 20          /* Used 
36d0: 74 6f 20 73 65 74 20 65 72 72 6f 72 20 73 74 72  to set error str
36e0: 69 6e 67 20 6f 6e 20 66 61 69 6c 75 72 65 2e 20  ing on failure. 
36f0: 2a 2f 0a 20 20 63 6f 6e 73 74 20 73 71 6c 69 74  */.  const sqlit
3700: 65 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65 73 20  e3_api_routines 
3710: 2a 70 54 68 75 6e 6b 20 2f 2a 20 45 78 74 65 6e  *pThunk /* Exten
3720: 73 69 6f 6e 20 41 50 49 20 66 75 6e 63 74 69 6f  sion API functio
3730: 6e 20 70 6f 69 6e 74 65 72 73 2e 20 2a 2f 0a 29  n pointers. */.)
3740: 3b 0a 0a 2f 2a 0a 2a 2a 20 54 68 65 20 66 6f 6c  ;../*.** The fol
3750: 6c 6f 77 69 6e 67 20 6d 61 63 72 6f 73 20 72 65  lowing macros re
3760: 64 65 66 69 6e 65 20 74 68 65 20 41 50 49 20 72  define the API r
3770: 6f 75 74 69 6e 65 73 20 73 6f 20 74 68 61 74 20  outines so that 
3780: 74 68 65 79 20 61 72 65 0a 2a 2a 20 72 65 64 69  they are.** redi
3790: 72 65 63 74 65 64 20 74 68 72 6f 75 67 68 20 74  rected through t
37a0: 68 65 20 67 6c 6f 62 61 6c 20 73 71 6c 69 74 65  he global sqlite
37b0: 33 5f 61 70 69 20 73 74 72 75 63 74 75 72 65 2e  3_api structure.
37c0: 0a 2a 2a 0a 2a 2a 20 54 68 69 73 20 68 65 61 64  .**.** This head
37d0: 65 72 20 66 69 6c 65 20 69 73 20 61 6c 73 6f 20  er file is also 
37e0: 75 73 65 64 20 62 79 20 74 68 65 20 6c 6f 61 64  used by the load
37f0: 65 78 74 2e 63 20 73 6f 75 72 63 65 20 66 69 6c  ext.c source fil
3800: 65 0a 2a 2a 20 28 70 61 72 74 20 6f 66 20 74 68  e.** (part of th
3810: 65 20 6d 61 69 6e 20 53 51 4c 69 74 65 20 6c 69  e main SQLite li
3820: 62 72 61 72 79 20 2d 20 6e 6f 74 20 61 6e 20 65  brary - not an e
3830: 78 74 65 6e 73 69 6f 6e 29 20 73 6f 20 74 68 61  xtension) so tha
3840: 74 0a 2a 2a 20 69 74 20 63 61 6e 20 67 65 74 20  t.** it can get 
3850: 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 73 71  access to the sq
3860: 6c 69 74 65 33 5f 61 70 69 5f 72 6f 75 74 69 6e  lite3_api_routin
3870: 65 73 20 73 74 72 75 63 74 75 72 65 0a 2a 2a 20  es structure.** 
3880: 64 65 66 69 6e 69 74 69 6f 6e 2e 20 20 42 75 74  definition.  But
3890: 20 74 68 65 20 6d 61 69 6e 20 6c 69 62 72 61 72   the main librar
38a0: 79 20 64 6f 65 73 20 6e 6f 74 20 77 61 6e 74 20  y does not want 
38b0: 74 6f 20 72 65 64 65 66 69 6e 65 0a 2a 2a 20 74  to redefine.** t
38c0: 68 65 20 41 50 49 2e 20 20 53 6f 20 74 68 65 20  he API.  So the 
38d0: 72 65 64 65 66 69 6e 69 74 69 6f 6e 20 6d 61 63  redefinition mac
38e0: 72 6f 73 20 61 72 65 20 6f 6e 6c 79 20 76 61 6c  ros are only val
38f0: 69 64 20 69 66 20 74 68 65 0a 2a 2a 20 53 51 4c  id if the.** SQL
3900: 49 54 45 5f 43 4f 52 45 20 6d 61 63 72 6f 73 20  ITE_CORE macros 
3910: 69 73 20 75 6e 64 65 66 69 6e 65 64 2e 0a 2a 2f  is undefined..*/
3920: 0a 23 69 66 20 21 64 65 66 69 6e 65 64 28 53 51  .#if !defined(SQ
3930: 4c 49 54 45 5f 43 4f 52 45 29 20 26 26 20 21 64  LITE_CORE) && !d
3940: 65 66 69 6e 65 64 28 53 51 4c 49 54 45 5f 4f 4d  efined(SQLITE_OM
3950: 49 54 5f 4c 4f 41 44 5f 45 58 54 45 4e 53 49 4f  IT_LOAD_EXTENSIO
3960: 4e 29 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  N).#define sqlit
3970: 65 33 5f 61 67 67 72 65 67 61 74 65 5f 63 6f 6e  e3_aggregate_con
3980: 74 65 78 74 20 20 20 20 20 20 73 71 6c 69 74 65  text      sqlite
3990: 33 5f 61 70 69 2d 3e 61 67 67 72 65 67 61 74 65  3_api->aggregate
39a0: 5f 63 6f 6e 74 65 78 74 0a 23 69 66 6e 64 65 66  _context.#ifndef
39b0: 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 44 45 50   SQLITE_OMIT_DEP
39c0: 52 45 43 41 54 45 44 0a 23 64 65 66 69 6e 65 20  RECATED.#define 
39d0: 73 71 6c 69 74 65 33 5f 61 67 67 72 65 67 61 74  sqlite3_aggregat
39e0: 65 5f 63 6f 75 6e 74 20 20 20 20 20 20 20 20 73  e_count        s
39f0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 61 67 67 72  qlite3_api->aggr
3a00: 65 67 61 74 65 5f 63 6f 75 6e 74 0a 23 65 6e 64  egate_count.#end
3a10: 69 66 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  if.#define sqlit
3a20: 65 33 5f 62 69 6e 64 5f 62 6c 6f 62 20 20 20 20  e3_bind_blob    
3a30: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3a40: 33 5f 61 70 69 2d 3e 62 69 6e 64 5f 62 6c 6f 62  3_api->bind_blob
3a50: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
3a60: 5f 62 69 6e 64 5f 64 6f 75 62 6c 65 20 20 20 20  _bind_double    
3a70: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
3a80: 61 70 69 2d 3e 62 69 6e 64 5f 64 6f 75 62 6c 65  api->bind_double
3a90: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
3aa0: 5f 62 69 6e 64 5f 69 6e 74 20 20 20 20 20 20 20  _bind_int       
3ab0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
3ac0: 61 70 69 2d 3e 62 69 6e 64 5f 69 6e 74 0a 23 64  api->bind_int.#d
3ad0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69  efine sqlite3_bi
3ae0: 6e 64 5f 69 6e 74 36 34 20 20 20 20 20 20 20 20  nd_int64        
3af0: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
3b00: 2d 3e 62 69 6e 64 5f 69 6e 74 36 34 0a 23 64 65  ->bind_int64.#de
3b10: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e  fine sqlite3_bin
3b20: 64 5f 6e 75 6c 6c 20 20 20 20 20 20 20 20 20 20  d_null          
3b30: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
3b40: 3e 62 69 6e 64 5f 6e 75 6c 6c 0a 23 64 65 66 69  >bind_null.#defi
3b50: 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f  ne sqlite3_bind_
3b60: 70 61 72 61 6d 65 74 65 72 5f 63 6f 75 6e 74 20  parameter_count 
3b70: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62    sqlite3_api->b
3b80: 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 63 6f  ind_parameter_co
3b90: 75 6e 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  unt.#define sqli
3ba0: 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74  te3_bind_paramet
3bb0: 65 72 5f 69 6e 64 65 78 20 20 20 73 71 6c 69 74  er_index   sqlit
3bc0: 65 33 5f 61 70 69 2d 3e 62 69 6e 64 5f 70 61 72  e3_api->bind_par
3bd0: 61 6d 65 74 65 72 5f 69 6e 64 65 78 0a 23 64 65  ameter_index.#de
3be0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e  fine sqlite3_bin
3bf0: 64 5f 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d 65  d_parameter_name
3c00: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
3c10: 3e 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f  >bind_parameter_
3c20: 6e 61 6d 65 0a 23 64 65 66 69 6e 65 20 73 71 6c  name.#define sql
3c30: 69 74 65 33 5f 62 69 6e 64 5f 74 65 78 74 20 20  ite3_bind_text  
3c40: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
3c50: 74 65 33 5f 61 70 69 2d 3e 62 69 6e 64 5f 74 65  te3_api->bind_te
3c60: 78 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  xt.#define sqlit
3c70: 65 33 5f 62 69 6e 64 5f 74 65 78 74 31 36 20 20  e3_bind_text16  
3c80: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3c90: 33 5f 61 70 69 2d 3e 62 69 6e 64 5f 74 65 78 74  3_api->bind_text
3ca0: 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  16.#define sqlit
3cb0: 65 33 5f 62 69 6e 64 5f 76 61 6c 75 65 20 20 20  e3_bind_value   
3cc0: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3cd0: 33 5f 61 70 69 2d 3e 62 69 6e 64 5f 76 61 6c 75  3_api->bind_valu
3ce0: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
3cf0: 33 5f 62 75 73 79 5f 68 61 6e 64 6c 65 72 20 20  3_busy_handler  
3d00: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
3d10: 5f 61 70 69 2d 3e 62 75 73 79 5f 68 61 6e 64 6c  _api->busy_handl
3d20: 65 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  er.#define sqlit
3d30: 65 33 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 20  e3_busy_timeout 
3d40: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3d50: 33 5f 61 70 69 2d 3e 62 75 73 79 5f 74 69 6d 65  3_api->busy_time
3d60: 6f 75 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  out.#define sqli
3d70: 74 65 33 5f 63 68 61 6e 67 65 73 20 20 20 20 20  te3_changes     
3d80: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
3d90: 65 33 5f 61 70 69 2d 3e 63 68 61 6e 67 65 73 0a  e3_api->changes.
3da0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
3db0: 63 6c 6f 73 65 20 20 20 20 20 20 20 20 20 20 20  close           
3dc0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
3dd0: 70 69 2d 3e 63 6c 6f 73 65 0a 23 64 65 66 69 6e  pi->close.#defin
3de0: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 6c 61 74  e sqlite3_collat
3df0: 69 6f 6e 5f 6e 65 65 64 65 64 20 20 20 20 20 20  ion_needed      
3e00: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
3e10: 6c 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64 0a 23  llation_needed.#
3e20: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63  define sqlite3_c
3e30: 6f 6c 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64 31  ollation_needed1
3e40: 36 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70  6     sqlite3_ap
3e50: 69 2d 3e 63 6f 6c 6c 61 74 69 6f 6e 5f 6e 65 65  i->collation_nee
3e60: 64 65 64 31 36 0a 23 64 65 66 69 6e 65 20 73 71  ded16.#define sq
3e70: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 62 6c 6f  lite3_column_blo
3e80: 62 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c  b            sql
3e90: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e  ite3_api->column
3ea0: 5f 62 6c 6f 62 0a 23 64 65 66 69 6e 65 20 73 71  _blob.#define sq
3eb0: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 62 79 74  lite3_column_byt
3ec0: 65 73 20 20 20 20 20 20 20 20 20 20 20 73 71 6c  es           sql
3ed0: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e  ite3_api->column
3ee0: 5f 62 79 74 65 73 0a 23 64 65 66 69 6e 65 20 73  _bytes.#define s
3ef0: 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 62 79  qlite3_column_by
3f00: 74 65 73 31 36 20 20 20 20 20 20 20 20 20 73 71  tes16         sq
3f10: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d  lite3_api->colum
3f20: 6e 5f 62 79 74 65 73 31 36 0a 23 64 65 66 69 6e  n_bytes16.#defin
3f30: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
3f40: 5f 63 6f 75 6e 74 20 20 20 20 20 20 20 20 20 20  _count          
3f50: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
3f60: 6c 75 6d 6e 5f 63 6f 75 6e 74 0a 23 64 65 66 69  lumn_count.#defi
3f70: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d  ne sqlite3_colum
3f80: 6e 5f 64 61 74 61 62 61 73 65 5f 6e 61 6d 65 20  n_database_name 
3f90: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
3fa0: 6f 6c 75 6d 6e 5f 64 61 74 61 62 61 73 65 5f 6e  olumn_database_n
3fb0: 61 6d 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ame.#define sqli
3fc0: 74 65 33 5f 63 6f 6c 75 6d 6e 5f 64 61 74 61 62  te3_column_datab
3fd0: 61 73 65 5f 6e 61 6d 65 31 36 20 73 71 6c 69 74  ase_name16 sqlit
3fe0: 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 64  e3_api->column_d
3ff0: 61 74 61 62 61 73 65 5f 6e 61 6d 65 31 36 0a 23  atabase_name16.#
4000: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63  define sqlite3_c
4010: 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65 20 20  olumn_decltype  
4020: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
4030: 69 2d 3e 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79  i->column_declty
4040: 70 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  pe.#define sqlit
4050: 65 33 5f 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79  e3_column_declty
4060: 70 65 31 36 20 20 20 20 20 20 73 71 6c 69 74 65  pe16      sqlite
4070: 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 64 65  3_api->column_de
4080: 63 6c 74 79 70 65 31 36 0a 23 64 65 66 69 6e 65  cltype16.#define
4090: 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f   sqlite3_column_
40a0: 64 6f 75 62 6c 65 20 20 20 20 20 20 20 20 20 20  double          
40b0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c  sqlite3_api->col
40c0: 75 6d 6e 5f 64 6f 75 62 6c 65 0a 23 64 65 66 69  umn_double.#defi
40d0: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d  ne sqlite3_colum
40e0: 6e 5f 69 6e 74 20 20 20 20 20 20 20 20 20 20 20  n_int           
40f0: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
4100: 6f 6c 75 6d 6e 5f 69 6e 74 0a 23 64 65 66 69 6e  olumn_int.#defin
4110: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
4120: 5f 69 6e 74 36 34 20 20 20 20 20 20 20 20 20 20  _int64          
4130: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
4140: 6c 75 6d 6e 5f 69 6e 74 36 34 0a 23 64 65 66 69  lumn_int64.#defi
4150: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d  ne sqlite3_colum
4160: 6e 5f 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20  n_name          
4170: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
4180: 6f 6c 75 6d 6e 5f 6e 61 6d 65 0a 23 64 65 66 69  olumn_name.#defi
4190: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d  ne sqlite3_colum
41a0: 6e 5f 6e 61 6d 65 31 36 20 20 20 20 20 20 20 20  n_name16        
41b0: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
41c0: 6f 6c 75 6d 6e 5f 6e 61 6d 65 31 36 0a 23 64 65  olumn_name16.#de
41d0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c  fine sqlite3_col
41e0: 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65 20  umn_origin_name 
41f0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
4200: 3e 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e  >column_origin_n
4210: 61 6d 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ame.#define sqli
4220: 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69  te3_column_origi
4230: 6e 5f 6e 61 6d 65 31 36 20 20 20 73 71 6c 69 74  n_name16   sqlit
4240: 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 6f  e3_api->column_o
4250: 72 69 67 69 6e 5f 6e 61 6d 65 31 36 0a 23 64 65  rigin_name16.#de
4260: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c  fine sqlite3_col
4270: 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 20 20  umn_table_name  
4280: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
4290: 3e 63 6f 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61  >column_table_na
42a0: 6d 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  me.#define sqlit
42b0: 65 33 5f 63 6f 6c 75 6d 6e 5f 74 61 62 6c 65 5f  e3_column_table_
42c0: 6e 61 6d 65 31 36 20 20 20 20 73 71 6c 69 74 65  name16    sqlite
42d0: 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 74 61  3_api->column_ta
42e0: 62 6c 65 5f 6e 61 6d 65 31 36 0a 23 64 65 66 69  ble_name16.#defi
42f0: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d  ne sqlite3_colum
4300: 6e 5f 74 65 78 74 20 20 20 20 20 20 20 20 20 20  n_text          
4310: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
4320: 6f 6c 75 6d 6e 5f 74 65 78 74 0a 23 64 65 66 69  olumn_text.#defi
4330: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d  ne sqlite3_colum
4340: 6e 5f 74 65 78 74 31 36 20 20 20 20 20 20 20 20  n_text16        
4350: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
4360: 6f 6c 75 6d 6e 5f 74 65 78 74 31 36 0a 23 64 65  olumn_text16.#de
4370: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c  fine sqlite3_col
4380: 75 6d 6e 5f 74 79 70 65 20 20 20 20 20 20 20 20  umn_type        
4390: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
43a0: 3e 63 6f 6c 75 6d 6e 5f 74 79 70 65 0a 23 64 65  >column_type.#de
43b0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c  fine sqlite3_col
43c0: 75 6d 6e 5f 76 61 6c 75 65 20 20 20 20 20 20 20  umn_value       
43d0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
43e0: 3e 63 6f 6c 75 6d 6e 5f 76 61 6c 75 65 0a 23 64  >column_value.#d
43f0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f  efine sqlite3_co
4400: 6d 6d 69 74 5f 68 6f 6f 6b 20 20 20 20 20 20 20  mmit_hook       
4410: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
4420: 2d 3e 63 6f 6d 6d 69 74 5f 68 6f 6f 6b 0a 23 64  ->commit_hook.#d
4430: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f  efine sqlite3_co
4440: 6d 70 6c 65 74 65 20 20 20 20 20 20 20 20 20 20  mplete          
4450: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
4460: 2d 3e 63 6f 6d 70 6c 65 74 65 0a 23 64 65 66 69  ->complete.#defi
4470: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6d 70 6c  ne sqlite3_compl
4480: 65 74 65 31 36 20 20 20 20 20 20 20 20 20 20 20  ete16           
4490: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
44a0: 6f 6d 70 6c 65 74 65 31 36 0a 23 64 65 66 69 6e  omplete16.#defin
44b0: 65 20 73 71 6c 69 74 65 33 5f 63 72 65 61 74 65  e sqlite3_create
44c0: 5f 63 6f 6c 6c 61 74 69 6f 6e 20 20 20 20 20 20  _collation      
44d0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 72   sqlite3_api->cr
44e0: 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 0a 23  eate_collation.#
44f0: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63  define sqlite3_c
4500: 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 31  reate_collation1
4510: 36 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70  6     sqlite3_ap
4520: 69 2d 3e 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74  i->create_collat
4530: 69 6f 6e 31 36 0a 23 64 65 66 69 6e 65 20 73 71  ion16.#define sq
4540: 6c 69 74 65 33 5f 63 72 65 61 74 65 5f 66 75 6e  lite3_create_fun
4550: 63 74 69 6f 6e 20 20 20 20 20 20 20 20 73 71 6c  ction        sql
4560: 69 74 65 33 5f 61 70 69 2d 3e 63 72 65 61 74 65  ite3_api->create
4570: 5f 66 75 6e 63 74 69 6f 6e 0a 23 64 65 66 69 6e  _function.#defin
4580: 65 20 73 71 6c 69 74 65 33 5f 63 72 65 61 74 65  e sqlite3_create
4590: 5f 66 75 6e 63 74 69 6f 6e 31 36 20 20 20 20 20  _function16     
45a0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 72   sqlite3_api->cr
45b0: 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e 31 36 0a  eate_function16.
45c0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
45d0: 63 72 65 61 74 65 5f 6d 6f 64 75 6c 65 20 20 20  create_module   
45e0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
45f0: 70 69 2d 3e 63 72 65 61 74 65 5f 6d 6f 64 75 6c  pi->create_modul
4600: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
4610: 33 5f 63 72 65 61 74 65 5f 6d 6f 64 75 6c 65 5f  3_create_module_
4620: 76 32 20 20 20 20 20 20 20 73 71 6c 69 74 65 33  v2       sqlite3
4630: 5f 61 70 69 2d 3e 63 72 65 61 74 65 5f 6d 6f 64  _api->create_mod
4640: 75 6c 65 5f 76 32 0a 23 64 65 66 69 6e 65 20 73  ule_v2.#define s
4650: 71 6c 69 74 65 33 5f 64 61 74 61 5f 63 6f 75 6e  qlite3_data_coun
4660: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71  t             sq
4670: 6c 69 74 65 33 5f 61 70 69 2d 3e 64 61 74 61 5f  lite3_api->data_
4680: 63 6f 75 6e 74 0a 23 64 65 66 69 6e 65 20 73 71  count.#define sq
4690: 6c 69 74 65 33 5f 64 62 5f 68 61 6e 64 6c 65 20  lite3_db_handle 
46a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
46b0: 69 74 65 33 5f 61 70 69 2d 3e 64 62 5f 68 61 6e  ite3_api->db_han
46c0: 64 6c 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  dle.#define sqli
46d0: 74 65 33 5f 64 65 63 6c 61 72 65 5f 76 74 61 62  te3_declare_vtab
46e0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
46f0: 65 33 5f 61 70 69 2d 3e 64 65 63 6c 61 72 65 5f  e3_api->declare_
4700: 76 74 61 62 0a 23 64 65 66 69 6e 65 20 73 71 6c  vtab.#define sql
4710: 69 74 65 33 5f 65 6e 61 62 6c 65 5f 73 68 61 72  ite3_enable_shar
4720: 65 64 5f 63 61 63 68 65 20 20 20 20 73 71 6c 69  ed_cache    sqli
4730: 74 65 33 5f 61 70 69 2d 3e 65 6e 61 62 6c 65 5f  te3_api->enable_
4740: 73 68 61 72 65 64 5f 63 61 63 68 65 0a 23 64 65  shared_cache.#de
4750: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 65 72 72  fine sqlite3_err
4760: 63 6f 64 65 20 20 20 20 20 20 20 20 20 20 20 20  code            
4770: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
4780: 3e 65 72 72 63 6f 64 65 0a 23 64 65 66 69 6e 65  >errcode.#define
4790: 20 73 71 6c 69 74 65 33 5f 65 72 72 6d 73 67 20   sqlite3_errmsg 
47a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
47b0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 65 72 72  sqlite3_api->err
47c0: 6d 73 67 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  msg.#define sqli
47d0: 74 65 33 5f 65 72 72 6d 73 67 31 36 20 20 20 20  te3_errmsg16    
47e0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
47f0: 65 33 5f 61 70 69 2d 3e 65 72 72 6d 73 67 31 36  e3_api->errmsg16
4800: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
4810: 5f 65 78 65 63 20 20 20 20 20 20 20 20 20 20 20  _exec           
4820: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
4830: 61 70 69 2d 3e 65 78 65 63 0a 23 69 66 6e 64 65  api->exec.#ifnde
4840: 66 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 44 45  f SQLITE_OMIT_DE
4850: 50 52 45 43 41 54 45 44 0a 23 64 65 66 69 6e 65  PRECATED.#define
4860: 20 73 71 6c 69 74 65 33 5f 65 78 70 69 72 65 64   sqlite3_expired
4870: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4880: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 65 78 70  sqlite3_api->exp
4890: 69 72 65 64 0a 23 65 6e 64 69 66 0a 23 64 65 66  ired.#endif.#def
48a0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 66 69 6e 61  ine sqlite3_fina
48b0: 6c 69 7a 65 20 20 20 20 20 20 20 20 20 20 20 20  lize            
48c0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
48d0: 66 69 6e 61 6c 69 7a 65 0a 23 64 65 66 69 6e 65  finalize.#define
48e0: 20 73 71 6c 69 74 65 33 5f 66 72 65 65 20 20 20   sqlite3_free   
48f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4900: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 66 72 65  sqlite3_api->fre
4910: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
4920: 33 5f 66 72 65 65 5f 74 61 62 6c 65 20 20 20 20  3_free_table    
4930: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
4940: 5f 61 70 69 2d 3e 66 72 65 65 5f 74 61 62 6c 65  _api->free_table
4950: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
4960: 5f 67 65 74 5f 61 75 74 6f 63 6f 6d 6d 69 74 20  _get_autocommit 
4970: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
4980: 61 70 69 2d 3e 67 65 74 5f 61 75 74 6f 63 6f 6d  api->get_autocom
4990: 6d 69 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  mit.#define sqli
49a0: 74 65 33 5f 67 65 74 5f 61 75 78 64 61 74 61 20  te3_get_auxdata 
49b0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
49c0: 65 33 5f 61 70 69 2d 3e 67 65 74 5f 61 75 78 64  e3_api->get_auxd
49d0: 61 74 61 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ata.#define sqli
49e0: 74 65 33 5f 67 65 74 5f 74 61 62 6c 65 20 20 20  te3_get_table   
49f0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
4a00: 65 33 5f 61 70 69 2d 3e 67 65 74 5f 74 61 62 6c  e3_api->get_tabl
4a10: 65 0a 23 69 66 6e 64 65 66 20 53 51 4c 49 54 45  e.#ifndef SQLITE
4a20: 5f 4f 4d 49 54 5f 44 45 50 52 45 43 41 54 45 44  _OMIT_DEPRECATED
4a30: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
4a40: 5f 67 6c 6f 62 61 6c 5f 72 65 63 6f 76 65 72 20  _global_recover 
4a50: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
4a60: 61 70 69 2d 3e 67 6c 6f 62 61 6c 5f 72 65 63 6f  api->global_reco
4a70: 76 65 72 0a 23 65 6e 64 69 66 0a 23 64 65 66 69  ver.#endif.#defi
4a80: 6e 65 20 73 71 6c 69 74 65 33 5f 69 6e 74 65 72  ne sqlite3_inter
4a90: 72 75 70 74 20 20 20 20 20 20 20 20 20 20 20 20  rupt            
4aa0: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 69    sqlite3_api->i
4ab0: 6e 74 65 72 72 75 70 74 78 0a 23 64 65 66 69 6e  nterruptx.#defin
4ac0: 65 20 73 71 6c 69 74 65 33 5f 6c 61 73 74 5f 69  e sqlite3_last_i
4ad0: 6e 73 65 72 74 5f 72 6f 77 69 64 20 20 20 20 20  nsert_rowid     
4ae0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6c 61   sqlite3_api->la
4af0: 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 0a  st_insert_rowid.
4b00: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
4b10: 6c 69 62 76 65 72 73 69 6f 6e 20 20 20 20 20 20  libversion      
4b20: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
4b30: 70 69 2d 3e 6c 69 62 76 65 72 73 69 6f 6e 0a 23  pi->libversion.#
4b40: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 6c  define sqlite3_l
4b50: 69 62 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72  ibversion_number
4b60: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
4b70: 69 2d 3e 6c 69 62 76 65 72 73 69 6f 6e 5f 6e 75  i->libversion_nu
4b80: 6d 62 65 72 0a 23 64 65 66 69 6e 65 20 73 71 6c  mber.#define sql
4b90: 69 74 65 33 5f 6d 61 6c 6c 6f 63 20 20 20 20 20  ite3_malloc     
4ba0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
4bb0: 74 65 33 5f 61 70 69 2d 3e 6d 61 6c 6c 6f 63 0a  te3_api->malloc.
4bc0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
4bd0: 6d 70 72 69 6e 74 66 20 20 20 20 20 20 20 20 20  mprintf         
4be0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
4bf0: 70 69 2d 3e 6d 70 72 69 6e 74 66 0a 23 64 65 66  pi->mprintf.#def
4c00: 69 6e 65 20 73 71 6c 69 74 65 33 5f 6f 70 65 6e  ine sqlite3_open
4c10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4c20: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
4c30: 6f 70 65 6e 0a 23 64 65 66 69 6e 65 20 73 71 6c  open.#define sql
4c40: 69 74 65 33 5f 6f 70 65 6e 31 36 20 20 20 20 20  ite3_open16     
4c50: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
4c60: 74 65 33 5f 61 70 69 2d 3e 6f 70 65 6e 31 36 0a  te3_api->open16.
4c70: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
4c80: 70 72 65 70 61 72 65 20 20 20 20 20 20 20 20 20  prepare         
4c90: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
4ca0: 70 69 2d 3e 70 72 65 70 61 72 65 0a 23 64 65 66  pi->prepare.#def
4cb0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 70 72 65 70  ine sqlite3_prep
4cc0: 61 72 65 31 36 20 20 20 20 20 20 20 20 20 20 20  are16           
4cd0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
4ce0: 70 72 65 70 61 72 65 31 36 0a 23 64 65 66 69 6e  prepare16.#defin
4cf0: 65 20 73 71 6c 69 74 65 33 5f 70 72 65 70 61 72  e sqlite3_prepar
4d00: 65 5f 76 32 20 20 20 20 20 20 20 20 20 20 20 20  e_v2            
4d10: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72   sqlite3_api->pr
4d20: 65 70 61 72 65 5f 76 32 0a 23 64 65 66 69 6e 65  epare_v2.#define
4d30: 20 73 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65   sqlite3_prepare
4d40: 31 36 5f 76 32 20 20 20 20 20 20 20 20 20 20 20  16_v2           
4d50: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72 65  sqlite3_api->pre
4d60: 70 61 72 65 31 36 5f 76 32 0a 23 64 65 66 69 6e  pare16_v2.#defin
4d70: 65 20 73 71 6c 69 74 65 33 5f 70 72 6f 66 69 6c  e sqlite3_profil
4d80: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e               
4d90: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72   sqlite3_api->pr
4da0: 6f 66 69 6c 65 0a 23 64 65 66 69 6e 65 20 73 71  ofile.#define sq
4db0: 6c 69 74 65 33 5f 70 72 6f 67 72 65 73 73 5f 68  lite3_progress_h
4dc0: 61 6e 64 6c 65 72 20 20 20 20 20 20 20 73 71 6c  andler       sql
4dd0: 69 74 65 33 5f 61 70 69 2d 3e 70 72 6f 67 72 65  ite3_api->progre
4de0: 73 73 5f 68 61 6e 64 6c 65 72 0a 23 64 65 66 69  ss_handler.#defi
4df0: 6e 65 20 73 71 6c 69 74 65 33 5f 72 65 61 6c 6c  ne sqlite3_reall
4e00: 6f 63 20 20 20 20 20 20 20 20 20 20 20 20 20 20  oc              
4e10: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72    sqlite3_api->r
4e20: 65 61 6c 6c 6f 63 0a 23 64 65 66 69 6e 65 20 73  ealloc.#define s
4e30: 71 6c 69 74 65 33 5f 72 65 73 65 74 20 20 20 20  qlite3_reset    
4e40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71                sq
4e50: 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 65 74  lite3_api->reset
4e60: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
4e70: 5f 72 65 73 75 6c 74 5f 62 6c 6f 62 20 20 20 20  _result_blob    
4e80: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
4e90: 61 70 69 2d 3e 72 65 73 75 6c 74 5f 62 6c 6f 62  api->result_blob
4ea0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
4eb0: 5f 72 65 73 75 6c 74 5f 64 6f 75 62 6c 65 20 20  _result_double  
4ec0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
4ed0: 61 70 69 2d 3e 72 65 73 75 6c 74 5f 64 6f 75 62  api->result_doub
4ee0: 6c 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  le.#define sqlit
4ef0: 65 33 5f 72 65 73 75 6c 74 5f 65 72 72 6f 72 20  e3_result_error 
4f00: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
4f10: 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 65 72  3_api->result_er
4f20: 72 6f 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ror.#define sqli
4f30: 74 65 33 5f 72 65 73 75 6c 74 5f 65 72 72 6f 72  te3_result_error
4f40: 31 36 20 20 20 20 20 20 20 20 20 73 71 6c 69 74  16         sqlit
4f50: 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 65  e3_api->result_e
4f60: 72 72 6f 72 31 36 0a 23 64 65 66 69 6e 65 20 73  rror16.#define s
4f70: 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 69 6e  qlite3_result_in
4f80: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71  t             sq
4f90: 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c  lite3_api->resul
4fa0: 74 5f 69 6e 74 0a 23 64 65 66 69 6e 65 20 73 71  t_int.#define sq
4fb0: 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 69 6e 74  lite3_result_int
4fc0: 36 34 20 20 20 20 20 20 20 20 20 20 20 73 71 6c  64           sql
4fd0: 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74  ite3_api->result
4fe0: 5f 69 6e 74 36 34 0a 23 64 65 66 69 6e 65 20 73  _int64.#define s
4ff0: 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 6e 75  qlite3_result_nu
5000: 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 73 71  ll            sq
5010: 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c  lite3_api->resul
5020: 74 5f 6e 75 6c 6c 0a 23 64 65 66 69 6e 65 20 73  t_null.#define s
5030: 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 74 65  qlite3_result_te
5040: 78 74 20 20 20 20 20 20 20 20 20 20 20 20 73 71  xt            sq
5050: 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c  lite3_api->resul
5060: 74 5f 74 65 78 74 0a 23 64 65 66 69 6e 65 20 73  t_text.#define s
5070: 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 74 65  qlite3_result_te
5080: 78 74 31 36 20 20 20 20 20 20 20 20 20 20 73 71  xt16          sq
5090: 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c  lite3_api->resul
50a0: 74 5f 74 65 78 74 31 36 0a 23 64 65 66 69 6e 65  t_text16.#define
50b0: 20 73 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f   sqlite3_result_
50c0: 74 65 78 74 31 36 62 65 20 20 20 20 20 20 20 20  text16be        
50d0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 73  sqlite3_api->res
50e0: 75 6c 74 5f 74 65 78 74 31 36 62 65 0a 23 64 65  ult_text16be.#de
50f0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 65 73  fine sqlite3_res
5100: 75 6c 74 5f 74 65 78 74 31 36 6c 65 20 20 20 20  ult_text16le    
5110: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
5120: 3e 72 65 73 75 6c 74 5f 74 65 78 74 31 36 6c 65  >result_text16le
5130: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
5140: 5f 72 65 73 75 6c 74 5f 76 61 6c 75 65 20 20 20  _result_value   
5150: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
5160: 61 70 69 2d 3e 72 65 73 75 6c 74 5f 76 61 6c 75  api->result_valu
5170: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
5180: 33 5f 72 6f 6c 6c 62 61 63 6b 5f 68 6f 6f 6b 20  3_rollback_hook 
5190: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
51a0: 5f 61 70 69 2d 3e 72 6f 6c 6c 62 61 63 6b 5f 68  _api->rollback_h
51b0: 6f 6f 6b 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ook.#define sqli
51c0: 74 65 33 5f 73 65 74 5f 61 75 74 68 6f 72 69 7a  te3_set_authoriz
51d0: 65 72 20 20 20 20 20 20 20 20 20 73 71 6c 69 74  er         sqlit
51e0: 65 33 5f 61 70 69 2d 3e 73 65 74 5f 61 75 74 68  e3_api->set_auth
51f0: 6f 72 69 7a 65 72 0a 23 64 65 66 69 6e 65 20 73  orizer.#define s
5200: 71 6c 69 74 65 33 5f 73 65 74 5f 61 75 78 64 61  qlite3_set_auxda
5210: 74 61 20 20 20 20 20 20 20 20 20 20 20 20 73 71  ta            sq
5220: 6c 69 74 65 33 5f 61 70 69 2d 3e 73 65 74 5f 61  lite3_api->set_a
5230: 75 78 64 61 74 61 0a 23 64 65 66 69 6e 65 20 73  uxdata.#define s
5240: 71 6c 69 74 65 33 5f 73 6e 70 72 69 6e 74 66 20  qlite3_snprintf 
5250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71                sq
5260: 6c 69 74 65 33 5f 61 70 69 2d 3e 73 6e 70 72 69  lite3_api->snpri
5270: 6e 74 66 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ntf.#define sqli
5280: 74 65 33 5f 73 74 65 70 20 20 20 20 20 20 20 20  te3_step        
5290: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
52a0: 65 33 5f 61 70 69 2d 3e 73 74 65 70 0a 23 64 65  e3_api->step.#de
52b0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 74 61 62  fine sqlite3_tab
52c0: 6c 65 5f 63 6f 6c 75 6d 6e 5f 6d 65 74 61 64 61  le_column_metada
52d0: 74 61 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d  ta  sqlite3_api-
52e0: 3e 74 61 62 6c 65 5f 63 6f 6c 75 6d 6e 5f 6d 65  >table_column_me
52f0: 74 61 64 61 74 61 0a 23 64 65 66 69 6e 65 20 73  tadata.#define s
5300: 71 6c 69 74 65 33 5f 74 68 72 65 61 64 5f 63 6c  qlite3_thread_cl
5310: 65 61 6e 75 70 20 20 20 20 20 20 20 20 20 73 71  eanup         sq
5320: 6c 69 74 65 33 5f 61 70 69 2d 3e 74 68 72 65 61  lite3_api->threa
5330: 64 5f 63 6c 65 61 6e 75 70 0a 23 64 65 66 69 6e  d_cleanup.#defin
5340: 65 20 73 71 6c 69 74 65 33 5f 74 6f 74 61 6c 5f  e sqlite3_total_
5350: 63 68 61 6e 67 65 73 20 20 20 20 20 20 20 20 20  changes         
5360: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 74 6f   sqlite3_api->to
5370: 74 61 6c 5f 63 68 61 6e 67 65 73 0a 23 64 65 66  tal_changes.#def
5380: 69 6e 65 20 73 71 6c 69 74 65 33 5f 74 72 61 63  ine sqlite3_trac
5390: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e               
53a0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
53b0: 74 72 61 63 65 0a 23 69 66 6e 64 65 66 20 53 51  trace.#ifndef SQ
53c0: 4c 49 54 45 5f 4f 4d 49 54 5f 44 45 50 52 45 43  LITE_OMIT_DEPREC
53d0: 41 54 45 44 0a 23 64 65 66 69 6e 65 20 73 71 6c  ATED.#define sql
53e0: 69 74 65 33 5f 74 72 61 6e 73 66 65 72 5f 62 69  ite3_transfer_bi
53f0: 6e 64 69 6e 67 73 20 20 20 20 20 20 73 71 6c 69  ndings      sqli
5400: 74 65 33 5f 61 70 69 2d 3e 74 72 61 6e 73 66 65  te3_api->transfe
5410: 72 5f 62 69 6e 64 69 6e 67 73 0a 23 65 6e 64 69  r_bindings.#endi
5420: 66 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  f.#define sqlite
5430: 33 5f 75 70 64 61 74 65 5f 68 6f 6f 6b 20 20 20  3_update_hook   
5440: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
5450: 5f 61 70 69 2d 3e 75 70 64 61 74 65 5f 68 6f 6f  _api->update_hoo
5460: 6b 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  k.#define sqlite
5470: 33 5f 75 73 65 72 5f 64 61 74 61 20 20 20 20 20  3_user_data     
5480: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
5490: 5f 61 70 69 2d 3e 75 73 65 72 5f 64 61 74 61 0a  _api->user_data.
54a0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
54b0: 76 61 6c 75 65 5f 62 6c 6f 62 20 20 20 20 20 20  value_blob      
54c0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
54d0: 70 69 2d 3e 76 61 6c 75 65 5f 62 6c 6f 62 0a 23  pi->value_blob.#
54e0: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76  define sqlite3_v
54f0: 61 6c 75 65 5f 62 79 74 65 73 20 20 20 20 20 20  alue_bytes      
5500: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
5510: 69 2d 3e 76 61 6c 75 65 5f 62 79 74 65 73 0a 23  i->value_bytes.#
5520: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76  define sqlite3_v
5530: 61 6c 75 65 5f 62 79 74 65 73 31 36 20 20 20 20  alue_bytes16    
5540: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
5550: 69 2d 3e 76 61 6c 75 65 5f 62 79 74 65 73 31 36  i->value_bytes16
5560: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
5570: 5f 76 61 6c 75 65 5f 64 6f 75 62 6c 65 20 20 20  _value_double   
5580: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
5590: 61 70 69 2d 3e 76 61 6c 75 65 5f 64 6f 75 62 6c  api->value_doubl
55a0: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
55b0: 33 5f 76 61 6c 75 65 5f 69 6e 74 20 20 20 20 20  3_value_int     
55c0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
55d0: 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 69 6e 74 0a  _api->value_int.
55e0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
55f0: 76 61 6c 75 65 5f 69 6e 74 36 34 20 20 20 20 20  value_int64     
5600: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
5610: 70 69 2d 3e 76 61 6c 75 65 5f 69 6e 74 36 34 0a  pi->value_int64.
5620: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
5630: 76 61 6c 75 65 5f 6e 75 6d 65 72 69 63 5f 74 79  value_numeric_ty
5640: 70 65 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61  pe     sqlite3_a
5650: 70 69 2d 3e 76 61 6c 75 65 5f 6e 75 6d 65 72 69  pi->value_numeri
5660: 63 5f 74 79 70 65 0a 23 64 65 66 69 6e 65 20 73  c_type.#define s
5670: 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 74 65 78  qlite3_value_tex
5680: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71  t             sq
5690: 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65  lite3_api->value
56a0: 5f 74 65 78 74 0a 23 64 65 66 69 6e 65 20 73 71  _text.#define sq
56b0: 6c 69 74 65 33 5f 76 61 6c 75 65 5f 74 65 78 74  lite3_value_text
56c0: 31 36 20 20 20 20 20 20 20 20 20 20 20 73 71 6c  16           sql
56d0: 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f  ite3_api->value_
56e0: 74 65 78 74 31 36 0a 23 64 65 66 69 6e 65 20 73  text16.#define s
56f0: 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 74 65 78  qlite3_value_tex
5700: 74 31 36 62 65 20 20 20 20 20 20 20 20 20 73 71  t16be         sq
5710: 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65  lite3_api->value
5720: 5f 74 65 78 74 31 36 62 65 0a 23 64 65 66 69 6e  _text16be.#defin
5730: 65 20 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f  e sqlite3_value_
5740: 74 65 78 74 31 36 6c 65 20 20 20 20 20 20 20 20  text16le        
5750: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61   sqlite3_api->va
5760: 6c 75 65 5f 74 65 78 74 31 36 6c 65 0a 23 64 65  lue_text16le.#de
5770: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 61 6c  fine sqlite3_val
5780: 75 65 5f 74 79 70 65 20 20 20 20 20 20 20 20 20  ue_type         
5790: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
57a0: 3e 76 61 6c 75 65 5f 74 79 70 65 0a 23 64 65 66  >value_type.#def
57b0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 6d 70 72  ine sqlite3_vmpr
57c0: 69 6e 74 66 20 20 20 20 20 20 20 20 20 20 20 20  intf            
57d0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
57e0: 76 6d 70 72 69 6e 74 66 0a 23 64 65 66 69 6e 65  vmprintf.#define
57f0: 20 73 71 6c 69 74 65 33 5f 76 73 6e 70 72 69 6e   sqlite3_vsnprin
5800: 74 66 20 20 20 20 20 20 20 20 20 20 20 20 20 20  tf              
5810: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 73 6e  sqlite3_api->vsn
5820: 70 72 69 6e 74 66 0a 23 64 65 66 69 6e 65 20 73  printf.#define s
5830: 71 6c 69 74 65 33 5f 6f 76 65 72 6c 6f 61 64 5f  qlite3_overload_
5840: 66 75 6e 63 74 69 6f 6e 20 20 20 20 20 20 73 71  function      sq
5850: 6c 69 74 65 33 5f 61 70 69 2d 3e 6f 76 65 72 6c  lite3_api->overl
5860: 6f 61 64 5f 66 75 6e 63 74 69 6f 6e 0a 23 64 65  oad_function.#de
5870: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 70 72 65  fine sqlite3_pre
5880: 70 61 72 65 5f 76 32 20 20 20 20 20 20 20 20 20  pare_v2         
5890: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
58a0: 3e 70 72 65 70 61 72 65 5f 76 32 0a 23 64 65 66  >prepare_v2.#def
58b0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 70 72 65 70  ine sqlite3_prep
58c0: 61 72 65 31 36 5f 76 32 20 20 20 20 20 20 20 20  are16_v2        
58d0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
58e0: 70 72 65 70 61 72 65 31 36 5f 76 32 0a 23 64 65  prepare16_v2.#de
58f0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6c 65  fine sqlite3_cle
5900: 61 72 5f 62 69 6e 64 69 6e 67 73 20 20 20 20 20  ar_bindings     
5910: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
5920: 3e 63 6c 65 61 72 5f 62 69 6e 64 69 6e 67 73 0a  >clear_bindings.
5930: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
5940: 62 69 6e 64 5f 7a 65 72 6f 62 6c 6f 62 20 20 20  bind_zeroblob   
5950: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
5960: 70 69 2d 3e 62 69 6e 64 5f 7a 65 72 6f 62 6c 6f  pi->bind_zeroblo
5970: 62 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  b.#define sqlite
5980: 33 5f 62 6c 6f 62 5f 62 79 74 65 73 20 20 20 20  3_blob_bytes    
5990: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
59a0: 5f 61 70 69 2d 3e 62 6c 6f 62 5f 62 79 74 65 73  _api->blob_bytes
59b0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
59c0: 5f 62 6c 6f 62 5f 63 6c 6f 73 65 20 20 20 20 20  _blob_close     
59d0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
59e0: 61 70 69 2d 3e 62 6c 6f 62 5f 63 6c 6f 73 65 0a  api->blob_close.
59f0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
5a00: 62 6c 6f 62 5f 6f 70 65 6e 20 20 20 20 20 20 20  blob_open       
5a10: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
5a20: 70 69 2d 3e 62 6c 6f 62 5f 6f 70 65 6e 0a 23 64  pi->blob_open.#d
5a30: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 6c  efine sqlite3_bl
5a40: 6f 62 5f 72 65 61 64 20 20 20 20 20 20 20 20 20  ob_read         
5a50: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
5a60: 2d 3e 62 6c 6f 62 5f 72 65 61 64 0a 23 64 65 66  ->blob_read.#def
5a70: 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 6c 6f 62  ine sqlite3_blob
5a80: 5f 77 72 69 74 65 20 20 20 20 20 20 20 20 20 20  _write          
5a90: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
5aa0: 62 6c 6f 62 5f 77 72 69 74 65 0a 23 64 65 66 69  blob_write.#defi
5ab0: 6e 65 20 73 71 6c 69 74 65 33 5f 63 72 65 61 74  ne sqlite3_creat
5ac0: 65 5f 63 6f 6c 6c 61 74 69 6f 6e 5f 76 32 20 20  e_collation_v2  
5ad0: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
5ae0: 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 5f  reate_collation_
5af0: 76 32 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  v2.#define sqlit
5b00: 65 33 5f 66 69 6c 65 5f 63 6f 6e 74 72 6f 6c 20  e3_file_control 
5b10: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
5b20: 33 5f 61 70 69 2d 3e 66 69 6c 65 5f 63 6f 6e 74  3_api->file_cont
5b30: 72 6f 6c 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  rol.#define sqli
5b40: 74 65 33 5f 6d 65 6d 6f 72 79 5f 68 69 67 68 77  te3_memory_highw
5b50: 61 74 65 72 20 20 20 20 20 20 20 73 71 6c 69 74  ater       sqlit
5b60: 65 33 5f 61 70 69 2d 3e 6d 65 6d 6f 72 79 5f 68  e3_api->memory_h
5b70: 69 67 68 77 61 74 65 72 0a 23 64 65 66 69 6e 65  ighwater.#define
5b80: 20 73 71 6c 69 74 65 33 5f 6d 65 6d 6f 72 79 5f   sqlite3_memory_
5b90: 75 73 65 64 20 20 20 20 20 20 20 20 20 20 20 20  used            
5ba0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 65 6d  sqlite3_api->mem
5bb0: 6f 72 79 5f 75 73 65 64 0a 23 64 65 66 69 6e 65  ory_used.#define
5bc0: 20 73 71 6c 69 74 65 33 5f 6d 75 74 65 78 5f 61   sqlite3_mutex_a
5bd0: 6c 6c 6f 63 20 20 20 20 20 20 20 20 20 20 20 20  lloc            
5be0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 75 74  sqlite3_api->mut
5bf0: 65 78 5f 61 6c 6c 6f 63 0a 23 64 65 66 69 6e 65  ex_alloc.#define
5c00: 20 73 71 6c 69 74 65 33 5f 6d 75 74 65 78 5f 65   sqlite3_mutex_e
5c10: 6e 74 65 72 20 20 20 20 20 20 20 20 20 20 20 20  nter            
5c20: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 75 74  sqlite3_api->mut
5c30: 65 78 5f 65 6e 74 65 72 0a 23 64 65 66 69 6e 65  ex_enter.#define
5c40: 20 73 71 6c 69 74 65 33 5f 6d 75 74 65 78 5f 66   sqlite3_mutex_f
5c50: 72 65 65 20 20 20 20 20 20 20 20 20 20 20 20 20  ree             
5c60: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 75 74  sqlite3_api->mut
5c70: 65 78 5f 66 72 65 65 0a 23 64 65 66 69 6e 65 20  ex_free.#define 
5c80: 73 71 6c 69 74 65 33 5f 6d 75 74 65 78 5f 6c 65  sqlite3_mutex_le
5c90: 61 76 65 20 20 20 20 20 20 20 20 20 20 20 20 73  ave            s
5ca0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 75 74 65  qlite3_api->mute
5cb0: 78 5f 6c 65 61 76 65 0a 23 64 65 66 69 6e 65 20  x_leave.#define 
5cc0: 73 71 6c 69 74 65 33 5f 6d 75 74 65 78 5f 74 72  sqlite3_mutex_tr
5cd0: 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73  y              s
5ce0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 75 74 65  qlite3_api->mute
5cf0: 78 5f 74 72 79 0a 23 64 65 66 69 6e 65 20 73 71  x_try.#define sq
5d00: 6c 69 74 65 33 5f 6f 70 65 6e 5f 76 32 20 20 20  lite3_open_v2   
5d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
5d20: 69 74 65 33 5f 61 70 69 2d 3e 6f 70 65 6e 5f 76  ite3_api->open_v
5d30: 32 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  2.#define sqlite
5d40: 33 5f 72 65 6c 65 61 73 65 5f 6d 65 6d 6f 72 79  3_release_memory
5d50: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
5d60: 5f 61 70 69 2d 3e 72 65 6c 65 61 73 65 5f 6d 65  _api->release_me
5d70: 6d 6f 72 79 0a 23 64 65 66 69 6e 65 20 73 71 6c  mory.#define sql
5d80: 69 74 65 33 5f 72 65 73 75 6c 74 5f 65 72 72 6f  ite3_result_erro
5d90: 72 5f 6e 6f 6d 65 6d 20 20 20 20 20 73 71 6c 69  r_nomem     sqli
5da0: 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f  te3_api->result_
5db0: 65 72 72 6f 72 5f 6e 6f 6d 65 6d 0a 23 64 65 66  error_nomem.#def
5dc0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 65 73 75  ine sqlite3_resu
5dd0: 6c 74 5f 65 72 72 6f 72 5f 74 6f 6f 62 69 67 20  lt_error_toobig 
5de0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
5df0: 72 65 73 75 6c 74 5f 65 72 72 6f 72 5f 74 6f 6f  result_error_too
5e00: 62 69 67 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  big.#define sqli
5e10: 74 65 33 5f 73 6c 65 65 70 20 20 20 20 20 20 20  te3_sleep       
5e20: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
5e30: 65 33 5f 61 70 69 2d 3e 73 6c 65 65 70 0a 23 64  e3_api->sleep.#d
5e40: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 73 6f  efine sqlite3_so
5e50: 66 74 5f 68 65 61 70 5f 6c 69 6d 69 74 20 20 20  ft_heap_limit   
5e60: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
5e70: 2d 3e 73 6f 66 74 5f 68 65 61 70 5f 6c 69 6d 69  ->soft_heap_limi
5e80: 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  t.#define sqlite
5e90: 33 5f 76 66 73 5f 66 69 6e 64 20 20 20 20 20 20  3_vfs_find      
5ea0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
5eb0: 5f 61 70 69 2d 3e 76 66 73 5f 66 69 6e 64 0a 23  _api->vfs_find.#
5ec0: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76  define sqlite3_v
5ed0: 66 73 5f 72 65 67 69 73 74 65 72 20 20 20 20 20  fs_register     
5ee0: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
5ef0: 69 2d 3e 76 66 73 5f 72 65 67 69 73 74 65 72 0a  i->vfs_register.
5f00: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
5f10: 76 66 73 5f 75 6e 72 65 67 69 73 74 65 72 20 20  vfs_unregister  
5f20: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
5f30: 70 69 2d 3e 76 66 73 5f 75 6e 72 65 67 69 73 74  pi->vfs_unregist
5f40: 65 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  er.#define sqlit
5f50: 65 33 5f 74 68 72 65 61 64 73 61 66 65 20 20 20  e3_threadsafe   
5f60: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
5f70: 33 5f 61 70 69 2d 3e 78 74 68 72 65 61 64 73 61  3_api->xthreadsa
5f80: 66 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  fe.#define sqlit
5f90: 65 33 5f 72 65 73 75 6c 74 5f 7a 65 72 6f 62 6c  e3_result_zerobl
5fa0: 6f 62 20 20 20 20 20 20 20 20 73 71 6c 69 74 65  ob        sqlite
5fb0: 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 7a 65  3_api->result_ze
5fc0: 72 6f 62 6c 6f 62 0a 23 64 65 66 69 6e 65 20 73  roblob.#define s
5fd0: 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 65 72  qlite3_result_er
5fe0: 72 6f 72 5f 63 6f 64 65 20 20 20 20 20 20 73 71  ror_code      sq
5ff0: 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c  lite3_api->resul
6000: 74 5f 65 72 72 6f 72 5f 63 6f 64 65 0a 23 64 65  t_error_code.#de
6010: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 74 65 73  fine sqlite3_tes
6020: 74 5f 63 6f 6e 74 72 6f 6c 20 20 20 20 20 20 20  t_control       
6030: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
6040: 3e 74 65 73 74 5f 63 6f 6e 74 72 6f 6c 0a 23 64  >test_control.#d
6050: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 61  efine sqlite3_ra
6060: 6e 64 6f 6d 6e 65 73 73 20 20 20 20 20 20 20 20  ndomness        
6070: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
6080: 2d 3e 72 61 6e 64 6f 6d 6e 65 73 73 0a 23 64 65  ->randomness.#de
6090: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6e  fine sqlite3_con
60a0: 74 65 78 74 5f 64 62 5f 68 61 6e 64 6c 65 20 20  text_db_handle  
60b0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
60c0: 3e 63 6f 6e 74 65 78 74 5f 64 62 5f 68 61 6e 64  >context_db_hand
60d0: 6c 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  le.#define sqlit
60e0: 65 33 5f 65 78 74 65 6e 64 65 64 5f 72 65 73 75  e3_extended_resu
60f0: 6c 74 5f 63 6f 64 65 73 20 20 73 71 6c 69 74 65  lt_codes  sqlite
6100: 33 5f 61 70 69 2d 3e 65 78 74 65 6e 64 65 64 5f  3_api->extended_
6110: 72 65 73 75 6c 74 5f 63 6f 64 65 73 0a 23 64 65  result_codes.#de
6120: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 6c 69 6d  fine sqlite3_lim
6130: 69 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20  it              
6140: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
6150: 3e 6c 69 6d 69 74 0a 23 64 65 66 69 6e 65 20 73  >limit.#define s
6160: 71 6c 69 74 65 33 5f 6e 65 78 74 5f 73 74 6d 74  qlite3_next_stmt
6170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71                sq
6180: 6c 69 74 65 33 5f 61 70 69 2d 3e 6e 65 78 74 5f  lite3_api->next_
6190: 73 74 6d 74 0a 23 64 65 66 69 6e 65 20 73 71 6c  stmt.#define sql
61a0: 69 74 65 33 5f 73 71 6c 20 20 20 20 20 20 20 20  ite3_sql        
61b0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
61c0: 74 65 33 5f 61 70 69 2d 3e 73 71 6c 0a 23 64 65  te3_api->sql.#de
61d0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 73 74 61  fine sqlite3_sta
61e0: 74 75 73 20 20 20 20 20 20 20 20 20 20 20 20 20  tus             
61f0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
6200: 3e 73 74 61 74 75 73 0a 23 64 65 66 69 6e 65 20  >status.#define 
6210: 73 71 6c 69 74 65 33 5f 62 61 63 6b 75 70 5f 66  sqlite3_backup_f
6220: 69 6e 69 73 68 20 20 20 20 20 20 20 20 20 20 73  inish          s
6230: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 61 63 6b  qlite3_api->back
6240: 75 70 5f 66 69 6e 69 73 68 0a 23 64 65 66 69 6e  up_finish.#defin
6250: 65 20 73 71 6c 69 74 65 33 5f 62 61 63 6b 75 70  e sqlite3_backup
6260: 5f 69 6e 69 74 20 20 20 20 20 20 20 20 20 20 20  _init           
6270: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 61   sqlite3_api->ba
6280: 63 6b 75 70 5f 69 6e 69 74 0a 23 64 65 66 69 6e  ckup_init.#defin
6290: 65 20 73 71 6c 69 74 65 33 5f 62 61 63 6b 75 70  e sqlite3_backup
62a0: 5f 70 61 67 65 63 6f 75 6e 74 20 20 20 20 20 20  _pagecount      
62b0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 61   sqlite3_api->ba
62c0: 63 6b 75 70 5f 70 61 67 65 63 6f 75 6e 74 0a 23  ckup_pagecount.#
62d0: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62  define sqlite3_b
62e0: 61 63 6b 75 70 5f 72 65 6d 61 69 6e 69 6e 67 20  ackup_remaining 
62f0: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
6300: 69 2d 3e 62 61 63 6b 75 70 5f 72 65 6d 61 69 6e  i->backup_remain
6310: 69 6e 67 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ing.#define sqli
6320: 74 65 33 5f 62 61 63 6b 75 70 5f 73 74 65 70 20  te3_backup_step 
6330: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
6340: 65 33 5f 61 70 69 2d 3e 62 61 63 6b 75 70 5f 73  e3_api->backup_s
6350: 74 65 70 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  tep.#define sqli
6360: 74 65 33 5f 63 6f 6d 70 69 6c 65 6f 70 74 69 6f  te3_compileoptio
6370: 6e 5f 67 65 74 20 20 20 20 20 20 73 71 6c 69 74  n_get      sqlit
6380: 65 33 5f 61 70 69 2d 3e 63 6f 6d 70 69 6c 65 6f  e3_api->compileo
6390: 70 74 69 6f 6e 5f 67 65 74 0a 23 64 65 66 69 6e  ption_get.#defin
63a0: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6d 70 69 6c  e sqlite3_compil
63b0: 65 6f 70 74 69 6f 6e 5f 75 73 65 64 20 20 20 20  eoption_used    
63c0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
63d0: 6d 70 69 6c 65 6f 70 74 69 6f 6e 5f 75 73 65 64  mpileoption_used
63e0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
63f0: 5f 63 72 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e  _create_function
6400: 5f 76 32 20 20 20 20 20 73 71 6c 69 74 65 33 5f  _v2     sqlite3_
6410: 61 70 69 2d 3e 63 72 65 61 74 65 5f 66 75 6e 63  api->create_func
6420: 74 69 6f 6e 5f 76 32 0a 23 64 65 66 69 6e 65 20  tion_v2.#define 
6430: 73 71 6c 69 74 65 33 5f 64 62 5f 63 6f 6e 66 69  sqlite3_db_confi
6440: 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73  g              s
6450: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 64 62 5f 63  qlite3_api->db_c
6460: 6f 6e 66 69 67 0a 23 64 65 66 69 6e 65 20 73 71  onfig.#define sq
6470: 6c 69 74 65 33 5f 64 62 5f 6d 75 74 65 78 20 20  lite3_db_mutex  
6480: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
6490: 69 74 65 33 5f 61 70 69 2d 3e 64 62 5f 6d 75 74  ite3_api->db_mut
64a0: 65 78 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  ex.#define sqlit
64b0: 65 33 5f 64 62 5f 73 74 61 74 75 73 20 20 20 20  e3_db_status    
64c0: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
64d0: 33 5f 61 70 69 2d 3e 64 62 5f 73 74 61 74 75 73  3_api->db_status
64e0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
64f0: 5f 65 78 74 65 6e 64 65 64 5f 65 72 72 63 6f 64  _extended_errcod
6500: 65 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f  e       sqlite3_
6510: 61 70 69 2d 3e 65 78 74 65 6e 64 65 64 5f 65 72  api->extended_er
6520: 72 63 6f 64 65 0a 23 64 65 66 69 6e 65 20 73 71  rcode.#define sq
6530: 6c 69 74 65 33 5f 6c 6f 67 20 20 20 20 20 20 20  lite3_log       
6540: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
6550: 69 74 65 33 5f 61 70 69 2d 3e 6c 6f 67 0a 23 64  ite3_api->log.#d
6560: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 73 6f  efine sqlite3_so
6570: 66 74 5f 68 65 61 70 5f 6c 69 6d 69 74 36 34 20  ft_heap_limit64 
6580: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
6590: 2d 3e 73 6f 66 74 5f 68 65 61 70 5f 6c 69 6d 69  ->soft_heap_limi
65a0: 74 36 34 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  t64.#define sqli
65b0: 74 65 33 5f 73 6f 75 72 63 65 69 64 20 20 20 20  te3_sourceid    
65c0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
65d0: 65 33 5f 61 70 69 2d 3e 73 6f 75 72 63 65 69 64  e3_api->sourceid
65e0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
65f0: 5f 73 74 6d 74 5f 73 74 61 74 75 73 20 20 20 20  _stmt_status    
6600: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
6610: 61 70 69 2d 3e 73 74 6d 74 5f 73 74 61 74 75 73  api->stmt_status
6620: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
6630: 5f 73 74 72 6e 69 63 6d 70 20 20 20 20 20 20 20  _strnicmp       
6640: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
6650: 61 70 69 2d 3e 73 74 72 6e 69 63 6d 70 0a 23 64  api->strnicmp.#d
6660: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 75 6e  efine sqlite3_un
6670: 6c 6f 63 6b 5f 6e 6f 74 69 66 79 20 20 20 20 20  lock_notify     
6680: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
6690: 2d 3e 75 6e 6c 6f 63 6b 5f 6e 6f 74 69 66 79 0a  ->unlock_notify.
66a0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
66b0: 77 61 6c 5f 61 75 74 6f 63 68 65 63 6b 70 6f 69  wal_autocheckpoi
66c0: 6e 74 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61  nt     sqlite3_a
66d0: 70 69 2d 3e 77 61 6c 5f 61 75 74 6f 63 68 65 63  pi->wal_autochec
66e0: 6b 70 6f 69 6e 74 0a 23 64 65 66 69 6e 65 20 73  kpoint.#define s
66f0: 71 6c 69 74 65 33 5f 77 61 6c 5f 63 68 65 63 6b  qlite3_wal_check
6700: 70 6f 69 6e 74 20 20 20 20 20 20 20 20 20 73 71  point         sq
6710: 6c 69 74 65 33 5f 61 70 69 2d 3e 77 61 6c 5f 63  lite3_api->wal_c
6720: 68 65 63 6b 70 6f 69 6e 74 0a 23 64 65 66 69 6e  heckpoint.#defin
6730: 65 20 73 71 6c 69 74 65 33 5f 77 61 6c 5f 68 6f  e sqlite3_wal_ho
6740: 6f 6b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ok              
6750: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 77 61   sqlite3_api->wa
6760: 6c 5f 68 6f 6f 6b 0a 23 64 65 66 69 6e 65 20 73  l_hook.#define s
6770: 71 6c 69 74 65 33 5f 62 6c 6f 62 5f 72 65 6f 70  qlite3_blob_reop
6780: 65 6e 20 20 20 20 20 20 20 20 20 20 20 20 73 71  en            sq
6790: 6c 69 74 65 33 5f 61 70 69 2d 3e 62 6c 6f 62 5f  lite3_api->blob_
67a0: 72 65 6f 70 65 6e 0a 23 64 65 66 69 6e 65 20 73  reopen.#define s
67b0: 71 6c 69 74 65 33 5f 76 74 61 62 5f 63 6f 6e 66  qlite3_vtab_conf
67c0: 69 67 20 20 20 20 20 20 20 20 20 20 20 20 73 71  ig            sq
67d0: 6c 69 74 65 33 5f 61 70 69 2d 3e 76 74 61 62 5f  lite3_api->vtab_
67e0: 63 6f 6e 66 69 67 0a 23 64 65 66 69 6e 65 20 73  config.#define s
67f0: 71 6c 69 74 65 33 5f 76 74 61 62 5f 6f 6e 5f 63  qlite3_vtab_on_c
6800: 6f 6e 66 6c 69 63 74 20 20 20 20 20 20 20 73 71  onflict       sq
6810: 6c 69 74 65 33 5f 61 70 69 2d 3e 76 74 61 62 5f  lite3_api->vtab_
6820: 6f 6e 5f 63 6f 6e 66 6c 69 63 74 0a 2f 2a 20 56  on_conflict./* V
6830: 65 72 73 69 6f 6e 20 33 2e 37 2e 31 36 20 61 6e  ersion 3.7.16 an
6840: 64 20 6c 61 74 65 72 20 2a 2f 0a 23 64 65 66 69  d later */.#defi
6850: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6c 6f 73 65  ne sqlite3_close
6860: 5f 76 32 20 20 20 20 20 20 20 20 20 20 20 20 20  _v2             
6870: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
6880: 6c 6f 73 65 5f 76 32 0a 23 64 65 66 69 6e 65 20  lose_v2.#define 
6890: 73 71 6c 69 74 65 33 5f 64 62 5f 66 69 6c 65 6e  sqlite3_db_filen
68a0: 61 6d 65 20 20 20 20 20 20 20 20 20 20 20 20 73  ame            s
68b0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 64 62 5f 66  qlite3_api->db_f
68c0: 69 6c 65 6e 61 6d 65 0a 23 64 65 66 69 6e 65 20  ilename.#define 
68d0: 73 71 6c 69 74 65 33 5f 64 62 5f 72 65 61 64 6f  sqlite3_db_reado
68e0: 6e 6c 79 20 20 20 20 20 20 20 20 20 20 20 20 73  nly            s
68f0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 64 62 5f 72  qlite3_api->db_r
6900: 65 61 64 6f 6e 6c 79 0a 23 64 65 66 69 6e 65 20  eadonly.#define 
6910: 73 71 6c 69 74 65 33 5f 64 62 5f 72 65 6c 65 61  sqlite3_db_relea
6920: 73 65 5f 6d 65 6d 6f 72 79 20 20 20 20 20 20 73  se_memory      s
6930: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 64 62 5f 72  qlite3_api->db_r
6940: 65 6c 65 61 73 65 5f 6d 65 6d 6f 72 79 0a 23 64  elease_memory.#d
6950: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 65 72  efine sqlite3_er
6960: 72 73 74 72 20 20 20 20 20 20 20 20 20 20 20 20  rstr            
6970: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
6980: 2d 3e 65 72 72 73 74 72 0a 23 64 65 66 69 6e 65  ->errstr.#define
6990: 20 73 71 6c 69 74 65 33 5f 73 74 6d 74 5f 62 75   sqlite3_stmt_bu
69a0: 73 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20  sy              
69b0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 73 74 6d  sqlite3_api->stm
69c0: 74 5f 62 75 73 79 0a 23 64 65 66 69 6e 65 20 73  t_busy.#define s
69d0: 71 6c 69 74 65 33 5f 73 74 6d 74 5f 72 65 61 64  qlite3_stmt_read
69e0: 6f 6e 6c 79 20 20 20 20 20 20 20 20 20 20 73 71  only          sq
69f0: 6c 69 74 65 33 5f 61 70 69 2d 3e 73 74 6d 74 5f  lite3_api->stmt_
6a00: 72 65 61 64 6f 6e 6c 79 0a 23 64 65 66 69 6e 65  readonly.#define
6a10: 20 73 71 6c 69 74 65 33 5f 73 74 72 69 63 6d 70   sqlite3_stricmp
6a20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6a30: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 73 74 72  sqlite3_api->str
6a40: 69 63 6d 70 0a 23 64 65 66 69 6e 65 20 73 71 6c  icmp.#define sql
6a50: 69 74 65 33 5f 75 72 69 5f 62 6f 6f 6c 65 61 6e  ite3_uri_boolean
6a60: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
6a70: 74 65 33 5f 61 70 69 2d 3e 75 72 69 5f 62 6f 6f  te3_api->uri_boo
6a80: 6c 65 61 6e 0a 23 64 65 66 69 6e 65 20 73 71 6c  lean.#define sql
6a90: 69 74 65 33 5f 75 72 69 5f 69 6e 74 36 34 20 20  ite3_uri_int64  
6aa0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
6ab0: 74 65 33 5f 61 70 69 2d 3e 75 72 69 5f 69 6e 74  te3_api->uri_int
6ac0: 36 34 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  64.#define sqlit
6ad0: 65 33 5f 75 72 69 5f 70 61 72 61 6d 65 74 65 72  e3_uri_parameter
6ae0: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
6af0: 33 5f 61 70 69 2d 3e 75 72 69 5f 70 61 72 61 6d  3_api->uri_param
6b00: 65 74 65 72 0a 23 64 65 66 69 6e 65 20 73 71 6c  eter.#define sql
6b10: 69 74 65 33 5f 75 72 69 5f 76 73 6e 70 72 69 6e  ite3_uri_vsnprin
6b20: 74 66 20 20 20 20 20 20 20 20 20 20 73 71 6c 69  tf          sqli
6b30: 74 65 33 5f 61 70 69 2d 3e 76 73 6e 70 72 69 6e  te3_api->vsnprin
6b40: 74 66 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  tf.#define sqlit
6b50: 65 33 5f 77 61 6c 5f 63 68 65 63 6b 70 6f 69 6e  e3_wal_checkpoin
6b60: 74 5f 76 32 20 20 20 20 20 20 73 71 6c 69 74 65  t_v2      sqlite
6b70: 33 5f 61 70 69 2d 3e 77 61 6c 5f 63 68 65 63 6b  3_api->wal_check
6b80: 70 6f 69 6e 74 5f 76 32 0a 2f 2a 20 56 65 72 73  point_v2./* Vers
6b90: 69 6f 6e 20 33 2e 38 2e 37 20 61 6e 64 20 6c 61  ion 3.8.7 and la
6ba0: 74 65 72 20 2a 2f 0a 23 64 65 66 69 6e 65 20 73  ter */.#define s
6bb0: 71 6c 69 74 65 33 5f 61 75 74 6f 5f 65 78 74 65  qlite3_auto_exte
6bc0: 6e 73 69 6f 6e 20 20 20 20 20 20 20 20 20 73 71  nsion         sq
6bd0: 6c 69 74 65 33 5f 61 70 69 2d 3e 61 75 74 6f 5f  lite3_api->auto_
6be0: 65 78 74 65 6e 73 69 6f 6e 0a 23 64 65 66 69 6e  extension.#defin
6bf0: 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 62  e sqlite3_bind_b
6c00: 6c 6f 62 36 34 20 20 20 20 20 20 20 20 20 20 20  lob64           
6c10: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69   sqlite3_api->bi
6c20: 6e 64 5f 62 6c 6f 62 36 34 0a 23 64 65 66 69 6e  nd_blob64.#defin
6c30: 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 74  e sqlite3_bind_t
6c40: 65 78 74 36 34 20 20 20 20 20 20 20 20 20 20 20  ext64           
6c50: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69   sqlite3_api->bi
6c60: 6e 64 5f 74 65 78 74 36 34 0a 23 64 65 66 69 6e  nd_text64.#defin
6c70: 65 20 73 71 6c 69 74 65 33 5f 63 61 6e 63 65 6c  e sqlite3_cancel
6c80: 5f 61 75 74 6f 5f 65 78 74 65 6e 73 69 6f 6e 20  _auto_extension 
6c90: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 61   sqlite3_api->ca
6ca0: 6e 63 65 6c 5f 61 75 74 6f 5f 65 78 74 65 6e 73  ncel_auto_extens
6cb0: 69 6f 6e 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ion.#define sqli
6cc0: 74 65 33 5f 6c 6f 61 64 5f 65 78 74 65 6e 73 69  te3_load_extensi
6cd0: 6f 6e 20 20 20 20 20 20 20 20 20 73 71 6c 69 74  on         sqlit
6ce0: 65 33 5f 61 70 69 2d 3e 6c 6f 61 64 5f 65 78 74  e3_api->load_ext
6cf0: 65 6e 73 69 6f 6e 0a 23 64 65 66 69 6e 65 20 73  ension.#define s
6d00: 71 6c 69 74 65 33 5f 6d 61 6c 6c 6f 63 36 34 20  qlite3_malloc64 
6d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71                sq
6d20: 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 61 6c 6c 6f  lite3_api->mallo
6d30: 63 36 34 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  c64.#define sqli
6d40: 74 65 33 5f 6d 73 69 7a 65 20 20 20 20 20 20 20  te3_msize       
6d50: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
6d60: 65 33 5f 61 70 69 2d 3e 6d 73 69 7a 65 0a 23 64  e3_api->msize.#d
6d70: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 65  efine sqlite3_re
6d80: 61 6c 6c 6f 63 36 34 20 20 20 20 20 20 20 20 20  alloc64         
6d90: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
6da0: 2d 3e 72 65 61 6c 6c 6f 63 36 34 0a 23 64 65 66  ->realloc64.#def
6db0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 65 73 65  ine sqlite3_rese
6dc0: 74 5f 61 75 74 6f 5f 65 78 74 65 6e 73 69 6f 6e  t_auto_extension
6dd0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
6de0: 72 65 73 65 74 5f 61 75 74 6f 5f 65 78 74 65 6e  reset_auto_exten
6df0: 73 69 6f 6e 0a 23 64 65 66 69 6e 65 20 73 71 6c  sion.#define sql
6e00: 69 74 65 33 5f 72 65 73 75 6c 74 5f 62 6c 6f 62  ite3_result_blob
6e10: 36 34 20 20 20 20 20 20 20 20 20 20 73 71 6c 69  64          sqli
6e20: 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f  te3_api->result_
6e30: 62 6c 6f 62 36 34 0a 23 64 65 66 69 6e 65 20 73  blob64.#define s
6e40: 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 74 65  qlite3_result_te
6e50: 78 74 36 34 20 20 20 20 20 20 20 20 20 20 73 71  xt64          sq
6e60: 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c  lite3_api->resul
6e70: 74 5f 74 65 78 74 36 34 0a 23 64 65 66 69 6e 65  t_text64.#define
6e80: 20 73 71 6c 69 74 65 33 5f 73 74 72 67 6c 6f 62   sqlite3_strglob
6e90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6ea0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 73 74 72  sqlite3_api->str
6eb0: 67 6c 6f 62 0a 2f 2a 20 56 65 72 73 69 6f 6e 20  glob./* Version 
6ec0: 33 2e 38 2e 31 31 20 61 6e 64 20 6c 61 74 65 72  3.8.11 and later
6ed0: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 73 71 6c 69   */.#define sqli
6ee0: 74 65 33 5f 76 61 6c 75 65 5f 64 75 70 20 20 20  te3_value_dup   
6ef0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
6f00: 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 64 75  e3_api->value_du
6f10: 70 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  p.#define sqlite
6f20: 33 5f 76 61 6c 75 65 5f 66 72 65 65 20 20 20 20  3_value_free    
6f30: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
6f40: 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 66 72 65 65  _api->value_free
6f50: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
6f60: 5f 72 65 73 75 6c 74 5f 7a 65 72 6f 62 6c 6f 62  _result_zeroblob
6f70: 36 34 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f  64      sqlite3_
6f80: 61 70 69 2d 3e 72 65 73 75 6c 74 5f 7a 65 72 6f  api->result_zero
6f90: 62 6c 6f 62 36 34 0a 23 64 65 66 69 6e 65 20 73  blob64.#define s
6fa0: 71 6c 69 74 65 33 5f 62 69 6e 64 5f 7a 65 72 6f  qlite3_bind_zero
6fb0: 62 6c 6f 62 36 34 20 20 20 20 20 20 20 20 73 71  blob64        sq
6fc0: 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69 6e 64 5f  lite3_api->bind_
6fd0: 7a 65 72 6f 62 6c 6f 62 36 34 0a 2f 2a 20 56 65  zeroblob64./* Ve
6fe0: 72 73 69 6f 6e 20 33 2e 39 2e 30 20 61 6e 64 20  rsion 3.9.0 and 
6ff0: 6c 61 74 65 72 20 2a 2f 0a 23 64 65 66 69 6e 65  later */.#define
7000: 20 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 73   sqlite3_value_s
7010: 75 62 74 79 70 65 20 20 20 20 20 20 20 20 20 20  ubtype          
7020: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c  sqlite3_api->val
7030: 75 65 5f 73 75 62 74 79 70 65 0a 23 64 65 66 69  ue_subtype.#defi
7040: 6e 65 20 73 71 6c 69 74 65 33 5f 72 65 73 75 6c  ne sqlite3_resul
7050: 74 5f 73 75 62 74 79 70 65 20 20 20 20 20 20 20  t_subtype       
7060: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72    sqlite3_api->r
7070: 65 73 75 6c 74 5f 73 75 62 74 79 70 65 0a 2f 2a  esult_subtype./*
7080: 20 56 65 72 73 69 6f 6e 20 33 2e 31 30 2e 30 20   Version 3.10.0 
7090: 61 6e 64 20 6c 61 74 65 72 20 2a 2f 0a 23 64 65  and later */.#de
70a0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 73 74 61  fine sqlite3_sta
70b0: 74 75 73 36 34 20 20 20 20 20 20 20 20 20 20 20  tus64           
70c0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
70d0: 3e 73 74 61 74 75 73 36 34 0a 23 64 65 66 69 6e  >status64.#defin
70e0: 65 20 73 71 6c 69 74 65 33 5f 73 74 72 6c 69 6b  e sqlite3_strlik
70f0: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e               
7100: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 73 74   sqlite3_api->st
7110: 72 6c 69 6b 65 0a 23 64 65 66 69 6e 65 20 73 71  rlike.#define sq
7120: 6c 69 74 65 33 5f 64 62 5f 63 61 63 68 65 66 6c  lite3_db_cachefl
7130: 75 73 68 20 20 20 20 20 20 20 20 20 20 73 71 6c  ush          sql
7140: 69 74 65 33 5f 61 70 69 2d 3e 64 62 5f 63 61 63  ite3_api->db_cac
7150: 68 65 66 6c 75 73 68 0a 2f 2a 20 56 65 72 73 69  heflush./* Versi
7160: 6f 6e 20 33 2e 31 32 2e 30 20 61 6e 64 20 6c 61  on 3.12.0 and la
7170: 74 65 72 20 2a 2f 0a 23 64 65 66 69 6e 65 20 73  ter */.#define s
7180: 71 6c 69 74 65 33 5f 73 79 73 74 65 6d 5f 65 72  qlite3_system_er
7190: 72 6e 6f 20 20 20 20 20 20 20 20 20 20 20 73 71  rno           sq
71a0: 6c 69 74 65 33 5f 61 70 69 2d 3e 73 79 73 74 65  lite3_api->syste
71b0: 6d 5f 65 72 72 6e 6f 0a 2f 2a 20 56 65 72 73 69  m_errno./* Versi
71c0: 6f 6e 20 33 2e 31 34 2e 30 20 61 6e 64 20 6c 61  on 3.14.0 and la
71d0: 74 65 72 20 2a 2f 0a 23 64 65 66 69 6e 65 20 73  ter */.#define s
71e0: 71 6c 69 74 65 33 5f 74 72 61 63 65 5f 76 32 20  qlite3_trace_v2 
71f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71                sq
7200: 6c 69 74 65 33 5f 61 70 69 2d 3e 74 72 61 63 65  lite3_api->trace
7210: 5f 76 32 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  _v2.#define sqli
7220: 74 65 33 5f 65 78 70 61 6e 64 65 64 5f 73 71 6c  te3_expanded_sql
7230: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
7240: 65 33 5f 61 70 69 2d 3e 65 78 70 61 6e 64 65 64  e3_api->expanded
7250: 5f 73 71 6c 0a 23 65 6e 64 69 66 20 2f 2a 20 21  _sql.#endif /* !
7260: 64 65 66 69 6e 65 64 28 53 51 4c 49 54 45 5f 43  defined(SQLITE_C
7270: 4f 52 45 29 20 26 26 20 21 64 65 66 69 6e 65 64  ORE) && !defined
7280: 28 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 4c 4f 41  (SQLITE_OMIT_LOA
7290: 44 5f 45 58 54 45 4e 53 49 4f 4e 29 20 2a 2f 0a  D_EXTENSION) */.
72a0: 0a 23 69 66 20 21 64 65 66 69 6e 65 64 28 53 51  .#if !defined(SQ
72b0: 4c 49 54 45 5f 43 4f 52 45 29 20 26 26 20 21 64  LITE_CORE) && !d
72c0: 65 66 69 6e 65 64 28 53 51 4c 49 54 45 5f 4f 4d  efined(SQLITE_OM
72d0: 49 54 5f 4c 4f 41 44 5f 45 58 54 45 4e 53 49 4f  IT_LOAD_EXTENSIO
72e0: 4e 29 0a 20 20 2f 2a 20 54 68 69 73 20 63 61 73  N).  /* This cas
72f0: 65 20 77 68 65 6e 20 74 68 65 20 66 69 6c 65 20  e when the file 
7300: 72 65 61 6c 6c 79 20 69 73 20 62 65 69 6e 67 20  really is being 
7310: 63 6f 6d 70 69 6c 65 64 20 61 73 20 61 20 6c 6f  compiled as a lo
7320: 61 64 61 62 6c 65 20 0a 20 20 2a 2a 20 65 78 74  adable .  ** ext
7330: 65 6e 73 69 6f 6e 20 2a 2f 0a 23 20 64 65 66 69  ension */.# defi
7340: 6e 65 20 53 51 4c 49 54 45 5f 45 58 54 45 4e 53  ne SQLITE_EXTENS
7350: 49 4f 4e 5f 49 4e 49 54 31 20 20 20 20 20 63 6f  ION_INIT1     co
7360: 6e 73 74 20 73 71 6c 69 74 65 33 5f 61 70 69 5f  nst sqlite3_api_
7370: 72 6f 75 74 69 6e 65 73 20 2a 73 71 6c 69 74 65  routines *sqlite
7380: 33 5f 61 70 69 3d 30 3b 0a 23 20 64 65 66 69 6e  3_api=0;.# defin
7390: 65 20 53 51 4c 49 54 45 5f 45 58 54 45 4e 53 49  e SQLITE_EXTENSI
73a0: 4f 4e 5f 49 4e 49 54 32 28 76 29 20 20 73 71 6c  ON_INIT2(v)  sql
73b0: 69 74 65 33 5f 61 70 69 3d 76 3b 0a 23 20 64 65  ite3_api=v;.# de
73c0: 66 69 6e 65 20 53 51 4c 49 54 45 5f 45 58 54 45  fine SQLITE_EXTE
73d0: 4e 53 49 4f 4e 5f 49 4e 49 54 33 20 20 20 20 20  NSION_INIT3     
73e0: 5c 0a 20 20 20 20 65 78 74 65 72 6e 20 63 6f 6e  \.    extern con
73f0: 73 74 20 73 71 6c 69 74 65 33 5f 61 70 69 5f 72  st sqlite3_api_r
7400: 6f 75 74 69 6e 65 73 20 2a 73 71 6c 69 74 65 33  outines *sqlite3
7410: 5f 61 70 69 3b 0a 23 65 6c 73 65 0a 20 20 2f 2a  _api;.#else.  /*
7420: 20 54 68 69 73 20 63 61 73 65 20 77 68 65 6e 20   This case when 
7430: 74 68 65 20 66 69 6c 65 20 69 73 20 62 65 69 6e  the file is bein
7440: 67 20 73 74 61 74 69 63 61 6c 6c 79 20 6c 69 6e  g statically lin
7450: 6b 65 64 20 69 6e 74 6f 20 74 68 65 20 0a 20 20  ked into the .  
7460: 2a 2a 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 2a  ** application *
7470: 2f 0a 23 20 64 65 66 69 6e 65 20 53 51 4c 49 54  /.# define SQLIT
7480: 45 5f 45 58 54 45 4e 53 49 4f 4e 5f 49 4e 49 54  E_EXTENSION_INIT
7490: 31 20 20 20 20 20 2f 2a 6e 6f 2d 6f 70 2a 2f 0a  1     /*no-op*/.
74a0: 23 20 64 65 66 69 6e 65 20 53 51 4c 49 54 45 5f  # define SQLITE_
74b0: 45 58 54 45 4e 53 49 4f 4e 5f 49 4e 49 54 32 28  EXTENSION_INIT2(
74c0: 76 29 20 20 28 76 6f 69 64 29 76 3b 20 2f 2a 20  v)  (void)v; /* 
74d0: 75 6e 75 73 65 64 20 70 61 72 61 6d 65 74 65 72  unused parameter
74e0: 20 2a 2f 0a 23 20 64 65 66 69 6e 65 20 53 51 4c   */.# define SQL
74f0: 49 54 45 5f 45 58 54 45 4e 53 49 4f 4e 5f 49 4e  ITE_EXTENSION_IN
7500: 49 54 33 20 20 20 20 20 2f 2a 6e 6f 2d 6f 70 2a  IT3     /*no-op*
7510: 2f 0a 23 65 6e 64 69 66 0a 0a 23 65 6e 64 69 66  /.#endif..#endif
7520: 20 2f 2a 20 53 51 4c 49 54 45 33 45 58 54 5f 48   /* SQLITE3EXT_H
7530: 20 2a 2f 0a                                       */.