System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 4ba948175a5182daa9d64929224ac7789f3d2926:


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 2a  ** sqlite3.h..**
0280: 0a 2a 2a 20 40 28 23 29 20 24 49 64 3a 20 73 71  .** @(#) $Id: sq
0290: 6c 69 74 65 33 65 78 74 2e 68 2c 76 20 31 2e 31  lite3ext.h,v 1.1
02a0: 20 32 30 30 37 2f 30 34 2f 32 32 20 32 33 3a 32   2007/04/22 23:2
02b0: 36 3a 33 33 20 72 6d 73 69 6d 70 73 6f 6e 20 45  6:33 rmsimpson E
02c0: 78 70 20 24 0a 2a 2f 0a 23 69 66 6e 64 65 66 20  xp $.*/.#ifndef 
02d0: 5f 53 51 4c 49 54 45 33 45 58 54 5f 48 5f 0a 23  _SQLITE3EXT_H_.#
02e0: 64 65 66 69 6e 65 20 5f 53 51 4c 49 54 45 33 45  define _SQLITE3E
02f0: 58 54 5f 48 5f 0a 23 69 6e 63 6c 75 64 65 20 22  XT_H_.#include "
0300: 73 71 6c 69 74 65 33 2e 68 22 0a 0a 74 79 70 65  sqlite3.h"..type
0310: 64 65 66 20 73 74 72 75 63 74 20 73 71 6c 69 74  def struct sqlit
0320: 65 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65 73 20  e3_api_routines 
0330: 73 71 6c 69 74 65 33 5f 61 70 69 5f 72 6f 75 74  sqlite3_api_rout
0340: 69 6e 65 73 3b 0a 0a 2f 2a 0a 2a 2a 20 54 68 65  ines;../*.** The
0350: 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63   following struc
0360: 74 75 72 65 20 68 6f 6c 64 20 70 6f 69 6e 74 65  ture hold pointe
0370: 72 73 20 74 6f 20 61 6c 6c 20 6f 66 20 74 68 65  rs to all of the
0380: 20 53 51 4c 69 74 65 20 41 50 49 0a 2a 2a 20 72   SQLite API.** r
0390: 6f 75 74 69 6e 65 73 2e 0a 2a 2f 0a 73 74 72 75  outines..*/.stru
03a0: 63 74 20 73 71 6c 69 74 65 33 5f 61 70 69 5f 72  ct sqlite3_api_r
03b0: 6f 75 74 69 6e 65 73 20 7b 0a 20 20 76 6f 69 64  outines {.  void
03c0: 20 2a 20 28 2a 61 67 67 72 65 67 61 74 65 5f 63   * (*aggregate_c
03d0: 6f 6e 74 65 78 74 29 28 73 71 6c 69 74 65 33 5f  ontext)(sqlite3_
03e0: 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 20 6e 42 79  context*,int nBy
03f0: 74 65 73 29 3b 0a 20 20 69 6e 74 20 20 28 2a 61  tes);.  int  (*a
0400: 67 67 72 65 67 61 74 65 5f 63 6f 75 6e 74 29 28  ggregate_count)(
0410: 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a  sqlite3_context*
0420: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e 64  );.  int  (*bind
0430: 5f 62 6c 6f 62 29 28 73 71 6c 69 74 65 33 5f 73  _blob)(sqlite3_s
0440: 74 6d 74 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 76  tmt*,int,const v
0450: 6f 69 64 2a 2c 69 6e 74 20 6e 2c 76 6f 69 64 28  oid*,int n,void(
0460: 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 69 6e  *)(void*));.  in
0470: 74 20 20 28 2a 62 69 6e 64 5f 64 6f 75 62 6c 65  t  (*bind_double
0480: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c  )(sqlite3_stmt*,
0490: 69 6e 74 2c 64 6f 75 62 6c 65 29 3b 0a 20 20 69  int,double);.  i
04a0: 6e 74 20 20 28 2a 62 69 6e 64 5f 69 6e 74 29 28  nt  (*bind_int)(
04b0: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
04c0: 74 2c 69 6e 74 29 3b 0a 20 20 69 6e 74 20 20 28  t,int);.  int  (
04d0: 2a 62 69 6e 64 5f 69 6e 74 36 34 29 28 73 71 6c  *bind_int64)(sql
04e0: 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 73  ite3_stmt*,int,s
04f0: 71 6c 69 74 65 5f 69 6e 74 36 34 29 3b 0a 20 20  qlite_int64);.  
0500: 69 6e 74 20 20 28 2a 62 69 6e 64 5f 6e 75 6c 6c  int  (*bind_null
0510: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c  )(sqlite3_stmt*,
0520: 69 6e 74 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62  int);.  int  (*b
0530: 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 63 6f  ind_parameter_co
0540: 75 6e 74 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  unt)(sqlite3_stm
0550: 74 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69  t*);.  int  (*bi
0560: 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 69 6e 64  nd_parameter_ind
0570: 65 78 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74  ex)(sqlite3_stmt
0580: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 7a 4e 61  *,const char*zNa
0590: 6d 65 29 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61  me);.  const cha
05a0: 72 20 2a 20 28 2a 62 69 6e 64 5f 70 61 72 61 6d  r * (*bind_param
05b0: 65 74 65 72 5f 6e 61 6d 65 29 28 73 71 6c 69 74  eter_name)(sqlit
05c0: 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20  e3_stmt*,int);. 
05d0: 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f 74 65 78   int  (*bind_tex
05e0: 74 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  t)(sqlite3_stmt*
05f0: 2c 69 6e 74 2c 63 6f 6e 73 74 20 63 68 61 72 2a  ,int,const char*
0600: 2c 69 6e 74 20 6e 2c 76 6f 69 64 28 2a 29 28 76  ,int n,void(*)(v
0610: 6f 69 64 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28  oid*));.  int  (
0620: 2a 62 69 6e 64 5f 74 65 78 74 31 36 29 28 73 71  *bind_text16)(sq
0630: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c  lite3_stmt*,int,
0640: 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c  const void*,int,
0650: 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 29 3b  void(*)(void*));
0660: 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f 76  .  int  (*bind_v
0670: 61 6c 75 65 29 28 73 71 6c 69 74 65 33 5f 73 74  alue)(sqlite3_st
0680: 6d 74 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 73 71  mt*,int,const sq
0690: 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20  lite3_value*);. 
06a0: 20 69 6e 74 20 20 28 2a 62 75 73 79 5f 68 61 6e   int  (*busy_han
06b0: 64 6c 65 72 29 28 73 71 6c 69 74 65 33 2a 2c 69  dler)(sqlite3*,i
06c0: 6e 74 28 2a 29 28 76 6f 69 64 2a 2c 69 6e 74 29  nt(*)(void*,int)
06d0: 2c 76 6f 69 64 2a 29 3b 0a 20 20 69 6e 74 20 20  ,void*);.  int  
06e0: 28 2a 62 75 73 79 5f 74 69 6d 65 6f 75 74 29 28  (*busy_timeout)(
06f0: 73 71 6c 69 74 65 33 2a 2c 69 6e 74 20 6d 73 29  sqlite3*,int ms)
0700: 3b 0a 20 20 69 6e 74 20 20 28 2a 63 68 61 6e 67  ;.  int  (*chang
0710: 65 73 29 28 73 71 6c 69 74 65 33 2a 29 3b 0a 20  es)(sqlite3*);. 
0720: 20 69 6e 74 20 20 28 2a 63 6c 6f 73 65 29 28 73   int  (*close)(s
0730: 71 6c 69 74 65 33 2a 29 3b 0a 20 20 69 6e 74 20  qlite3*);.  int 
0740: 20 28 2a 63 6f 6c 6c 61 74 69 6f 6e 5f 6e 65 65   (*collation_nee
0750: 64 65 64 29 28 73 71 6c 69 74 65 33 2a 2c 76 6f  ded)(sqlite3*,vo
0760: 69 64 2a 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64  id*,void(*)(void
0770: 2a 2c 73 71 6c 69 74 65 33 2a 2c 69 6e 74 20 65  *,sqlite3*,int e
0780: 54 65 78 74 52 65 70 2c 63 6f 6e 73 74 20 63 68  TextRep,const ch
0790: 61 72 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a  ar*));.  int  (*
07a0: 63 6f 6c 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64  collation_needed
07b0: 31 36 29 28 73 71 6c 69 74 65 33 2a 2c 76 6f 69  16)(sqlite3*,voi
07c0: 64 2a 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a  d*,void(*)(void*
07d0: 2c 73 71 6c 69 74 65 33 2a 2c 69 6e 74 20 65 54  ,sqlite3*,int eT
07e0: 65 78 74 52 65 70 2c 63 6f 6e 73 74 20 76 6f 69  extRep,const voi
07f0: 64 2a 29 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f  d*));.  const vo
0800: 69 64 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 62 6c  id * (*column_bl
0810: 6f 62 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74  ob)(sqlite3_stmt
0820: 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 69  *,int iCol);.  i
0830: 6e 74 20 20 28 2a 63 6f 6c 75 6d 6e 5f 62 79 74  nt  (*column_byt
0840: 65 73 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74  es)(sqlite3_stmt
0850: 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 69  *,int iCol);.  i
0860: 6e 74 20 20 28 2a 63 6f 6c 75 6d 6e 5f 62 79 74  nt  (*column_byt
0870: 65 73 31 36 29 28 73 71 6c 69 74 65 33 5f 73 74  es16)(sqlite3_st
0880: 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20  mt*,int iCol);. 
0890: 20 69 6e 74 20 20 28 2a 63 6f 6c 75 6d 6e 5f 63   int  (*column_c
08a0: 6f 75 6e 74 29 28 73 71 6c 69 74 65 33 5f 73 74  ount)(sqlite3_st
08b0: 6d 74 2a 70 53 74 6d 74 29 3b 0a 20 20 63 6f 6e  mt*pStmt);.  con
08c0: 73 74 20 63 68 61 72 20 2a 20 28 2a 63 6f 6c 75  st char * (*colu
08d0: 6d 6e 5f 64 61 74 61 62 61 73 65 5f 6e 61 6d 65  mn_database_name
08e0: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c  )(sqlite3_stmt*,
08f0: 69 6e 74 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f  int);.  const vo
0900: 69 64 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 64 61  id * (*column_da
0910: 74 61 62 61 73 65 5f 6e 61 6d 65 31 36 29 28 73  tabase_name16)(s
0920: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74  qlite3_stmt*,int
0930: 29 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20  );.  const char 
0940: 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74  * (*column_declt
0950: 79 70 65 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  ype)(sqlite3_stm
0960: 74 2a 2c 69 6e 74 20 69 29 3b 0a 20 20 63 6f 6e  t*,int i);.  con
0970: 73 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6c 75  st void * (*colu
0980: 6d 6e 5f 64 65 63 6c 74 79 70 65 31 36 29 28 73  mn_decltype16)(s
0990: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74  qlite3_stmt*,int
09a0: 29 3b 0a 20 20 64 6f 75 62 6c 65 20 20 28 2a 63  );.  double  (*c
09b0: 6f 6c 75 6d 6e 5f 64 6f 75 62 6c 65 29 28 73 71  olumn_double)(sq
09c0: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20  lite3_stmt*,int 
09d0: 69 43 6f 6c 29 3b 0a 20 20 69 6e 74 20 20 28 2a  iCol);.  int  (*
09e0: 63 6f 6c 75 6d 6e 5f 69 6e 74 29 28 73 71 6c 69  column_int)(sqli
09f0: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20 69 43  te3_stmt*,int iC
0a00: 6f 6c 29 3b 0a 20 20 73 71 6c 69 74 65 5f 69 6e  ol);.  sqlite_in
0a10: 74 36 34 20 20 28 2a 63 6f 6c 75 6d 6e 5f 69 6e  t64  (*column_in
0a20: 74 36 34 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  t64)(sqlite3_stm
0a30: 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20  t*,int iCol);.  
0a40: 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28 2a 63  const char * (*c
0a50: 6f 6c 75 6d 6e 5f 6e 61 6d 65 29 28 73 71 6c 69  olumn_name)(sqli
0a60: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a  te3_stmt*,int);.
0a70: 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28    const void * (
0a80: 2a 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 31 36 29 28  *column_name16)(
0a90: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0aa0: 74 29 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72  t);.  const char
0ab0: 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 6f 72 69 67   * (*column_orig
0ac0: 69 6e 5f 6e 61 6d 65 29 28 73 71 6c 69 74 65 33  in_name)(sqlite3
0ad0: 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63  _stmt*,int);.  c
0ae0: 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f  onst void * (*co
0af0: 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65  lumn_origin_name
0b00: 31 36 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74  16)(sqlite3_stmt
0b10: 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73 74 20  *,int);.  const 
0b20: 63 68 61 72 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f  char * (*column_
0b30: 74 61 62 6c 65 5f 6e 61 6d 65 29 28 73 71 6c 69  table_name)(sqli
0b40: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a  te3_stmt*,int);.
0b50: 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28    const void * (
0b60: 2a 63 6f 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61  *column_table_na
0b70: 6d 65 31 36 29 28 73 71 6c 69 74 65 33 5f 73 74  me16)(sqlite3_st
0b80: 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73  mt*,int);.  cons
0b90: 74 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  t unsigned char 
0ba0: 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 74 65 78 74 29  * (*column_text)
0bb0: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69  (sqlite3_stmt*,i
0bc0: 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 63 6f 6e 73  nt iCol);.  cons
0bd0: 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d  t void * (*colum
0be0: 6e 5f 74 65 78 74 31 36 29 28 73 71 6c 69 74 65  n_text16)(sqlite
0bf0: 33 5f 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c  3_stmt*,int iCol
0c00: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c 75  );.  int  (*colu
0c10: 6d 6e 5f 74 79 70 65 29 28 73 71 6c 69 74 65 33  mn_type)(sqlite3
0c20: 5f 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29  _stmt*,int iCol)
0c30: 3b 0a 20 20 73 71 6c 69 74 65 33 5f 76 61 6c 75  ;.  sqlite3_valu
0c40: 65 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 76 61 6c 75  e* (*column_valu
0c50: 65 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  e)(sqlite3_stmt*
0c60: 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 76 6f  ,int iCol);.  vo
0c70: 69 64 20 2a 20 28 2a 63 6f 6d 6d 69 74 5f 68 6f  id * (*commit_ho
0c80: 6f 6b 29 28 73 71 6c 69 74 65 33 2a 2c 69 6e 74  ok)(sqlite3*,int
0c90: 28 2a 29 28 76 6f 69 64 2a 29 2c 76 6f 69 64 2a  (*)(void*),void*
0ca0: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6d 70  );.  int  (*comp
0cb0: 6c 65 74 65 29 28 63 6f 6e 73 74 20 63 68 61 72  lete)(const char
0cc0: 2a 73 71 6c 29 3b 0a 20 20 69 6e 74 20 20 28 2a  *sql);.  int  (*
0cd0: 63 6f 6d 70 6c 65 74 65 31 36 29 28 63 6f 6e 73  complete16)(cons
0ce0: 74 20 76 6f 69 64 2a 73 71 6c 29 3b 0a 20 20 69  t void*sql);.  i
0cf0: 6e 74 20 20 28 2a 63 72 65 61 74 65 5f 63 6f 6c  nt  (*create_col
0d00: 6c 61 74 69 6f 6e 29 28 73 71 6c 69 74 65 33 2a  lation)(sqlite3*
0d10: 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74  ,const char*,int
0d20: 2c 76 6f 69 64 2a 2c 69 6e 74 28 2a 29 28 76 6f  ,void*,int(*)(vo
0d30: 69 64 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 76 6f  id*,int,const vo
0d40: 69 64 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 76 6f  id*,int,const vo
0d50: 69 64 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a  id*));.  int  (*
0d60: 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e  create_collation
0d70: 31 36 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e  16)(sqlite3*,con
0d80: 73 74 20 63 68 61 72 2a 2c 69 6e 74 2c 76 6f 69  st char*,int,voi
0d90: 64 2a 2c 69 6e 74 28 2a 29 28 76 6f 69 64 2a 2c  d*,int(*)(void*,
0da0: 69 6e 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c  int,const void*,
0db0: 69 6e 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 29  int,const void*)
0dc0: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 72 65 61  );.  int  (*crea
0dd0: 74 65 5f 66 75 6e 63 74 69 6f 6e 29 28 73 71 6c  te_function)(sql
0de0: 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72  ite3*,const char
0df0: 2a 2c 69 6e 74 2c 69 6e 74 2c 76 6f 69 64 2a 2c  *,int,int,void*,
0e00: 76 6f 69 64 20 28 2a 78 46 75 6e 63 29 28 73 71  void (*xFunc)(sq
0e10: 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69  lite3_context*,i
0e20: 6e 74 2c 73 71 6c 69 74 65 33 5f 76 61 6c 75 65  nt,sqlite3_value
0e30: 2a 2a 29 2c 76 6f 69 64 20 28 2a 78 53 74 65 70  **),void (*xStep
0e40: 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78  )(sqlite3_contex
0e50: 74 2a 2c 69 6e 74 2c 73 71 6c 69 74 65 33 5f 76  t*,int,sqlite3_v
0e60: 61 6c 75 65 2a 2a 29 2c 76 6f 69 64 20 28 2a 78  alue**),void (*x
0e70: 46 69 6e 61 6c 29 28 73 71 6c 69 74 65 33 5f 63  Final)(sqlite3_c
0e80: 6f 6e 74 65 78 74 2a 29 29 3b 0a 20 20 69 6e 74  ontext*));.  int
0e90: 20 20 28 2a 63 72 65 61 74 65 5f 66 75 6e 63 74    (*create_funct
0ea0: 69 6f 6e 31 36 29 28 73 71 6c 69 74 65 33 2a 2c  ion16)(sqlite3*,
0eb0: 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c  const void*,int,
0ec0: 69 6e 74 2c 76 6f 69 64 2a 2c 76 6f 69 64 20 28  int,void*,void (
0ed0: 2a 78 46 75 6e 63 29 28 73 71 6c 69 74 65 33 5f  *xFunc)(sqlite3_
0ee0: 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 2c 73 71 6c  context*,int,sql
0ef0: 69 74 65 33 5f 76 61 6c 75 65 2a 2a 29 2c 76 6f  ite3_value**),vo
0f00: 69 64 20 28 2a 78 53 74 65 70 29 28 73 71 6c 69  id (*xStep)(sqli
0f10: 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74  te3_context*,int
0f20: 2c 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 2a  ,sqlite3_value**
0f30: 29 2c 76 6f 69 64 20 28 2a 78 46 69 6e 61 6c 29  ),void (*xFinal)
0f40: 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74  (sqlite3_context
0f50: 2a 29 29 3b 0a 20 20 69 6e 74 20 28 2a 63 72 65  *));.  int (*cre
0f60: 61 74 65 5f 6d 6f 64 75 6c 65 29 28 73 71 6c 69  ate_module)(sqli
0f70: 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a  te3*,const char*
0f80: 2c 63 6f 6e 73 74 20 73 71 6c 69 74 65 33 5f 6d  ,const sqlite3_m
0f90: 6f 64 75 6c 65 2a 2c 76 6f 69 64 2a 29 3b 0a 20  odule*,void*);. 
0fa0: 20 69 6e 74 20 20 28 2a 64 61 74 61 5f 63 6f 75   int  (*data_cou
0fb0: 6e 74 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74  nt)(sqlite3_stmt
0fc0: 2a 70 53 74 6d 74 29 3b 0a 20 20 73 71 6c 69 74  *pStmt);.  sqlit
0fd0: 65 33 20 2a 20 28 2a 64 62 5f 68 61 6e 64 6c 65  e3 * (*db_handle
0fe0: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29  )(sqlite3_stmt*)
0ff0: 3b 0a 20 20 69 6e 74 20 28 2a 64 65 63 6c 61 72  ;.  int (*declar
1000: 65 5f 76 74 61 62 29 28 73 71 6c 69 74 65 33 2a  e_vtab)(sqlite3*
1010: 2c 63 6f 6e 73 74 20 63 68 61 72 2a 29 3b 0a 20  ,const char*);. 
1020: 20 69 6e 74 20 20 28 2a 65 6e 61 62 6c 65 5f 73   int  (*enable_s
1030: 68 61 72 65 64 5f 63 61 63 68 65 29 28 69 6e 74  hared_cache)(int
1040: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 65 72 72 63  );.  int  (*errc
1050: 6f 64 65 29 28 73 71 6c 69 74 65 33 2a 64 62 29  ode)(sqlite3*db)
1060: 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a  ;.  const char *
1070: 20 28 2a 65 72 72 6d 73 67 29 28 73 71 6c 69 74   (*errmsg)(sqlit
1080: 65 33 2a 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f  e3*);.  const vo
1090: 69 64 20 2a 20 28 2a 65 72 72 6d 73 67 31 36 29  id * (*errmsg16)
10a0: 28 73 71 6c 69 74 65 33 2a 29 3b 0a 20 20 69 6e  (sqlite3*);.  in
10b0: 74 20 20 28 2a 65 78 65 63 29 28 73 71 6c 69 74  t  (*exec)(sqlit
10c0: 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c  e3*,const char*,
10d0: 73 71 6c 69 74 65 33 5f 63 61 6c 6c 62 61 63 6b  sqlite3_callback
10e0: 2c 76 6f 69 64 2a 2c 63 68 61 72 2a 2a 29 3b 0a  ,void*,char**);.
10f0: 20 20 69 6e 74 20 20 28 2a 65 78 70 69 72 65 64    int  (*expired
1100: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29  )(sqlite3_stmt*)
1110: 3b 0a 20 20 69 6e 74 20 20 28 2a 66 69 6e 61 6c  ;.  int  (*final
1120: 69 7a 65 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  ize)(sqlite3_stm
1130: 74 2a 70 53 74 6d 74 29 3b 0a 20 20 76 6f 69 64  t*pStmt);.  void
1140: 20 20 28 2a 66 72 65 65 29 28 76 6f 69 64 2a 29    (*free)(void*)
1150: 3b 0a 20 20 76 6f 69 64 20 20 28 2a 66 72 65 65  ;.  void  (*free
1160: 5f 74 61 62 6c 65 29 28 63 68 61 72 2a 2a 72 65  _table)(char**re
1170: 73 75 6c 74 29 3b 0a 20 20 69 6e 74 20 20 28 2a  sult);.  int  (*
1180: 67 65 74 5f 61 75 74 6f 63 6f 6d 6d 69 74 29 28  get_autocommit)(
1190: 73 71 6c 69 74 65 33 2a 29 3b 0a 20 20 76 6f 69  sqlite3*);.  voi
11a0: 64 20 2a 20 28 2a 67 65 74 5f 61 75 78 64 61 74  d * (*get_auxdat
11b0: 61 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65  a)(sqlite3_conte
11c0: 78 74 2a 2c 69 6e 74 29 3b 0a 20 20 69 6e 74 20  xt*,int);.  int 
11d0: 20 28 2a 67 65 74 5f 74 61 62 6c 65 29 28 73 71   (*get_table)(sq
11e0: 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61  lite3*,const cha
11f0: 72 2a 2c 63 68 61 72 2a 2a 2a 2c 69 6e 74 2a 2c  r*,char***,int*,
1200: 69 6e 74 2a 2c 63 68 61 72 2a 2a 29 3b 0a 20 20  int*,char**);.  
1210: 69 6e 74 20 20 28 2a 67 6c 6f 62 61 6c 5f 72 65  int  (*global_re
1220: 63 6f 76 65 72 29 28 76 6f 69 64 29 3b 0a 20 20  cover)(void);.  
1230: 76 6f 69 64 20 20 28 2a 69 6e 74 65 72 72 75 70  void  (*interrup
1240: 74 78 29 28 73 71 6c 69 74 65 33 2a 29 3b 0a 20  tx)(sqlite3*);. 
1250: 20 73 71 6c 69 74 65 5f 69 6e 74 36 34 20 20 28   sqlite_int64  (
1260: 2a 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77  *last_insert_row
1270: 69 64 29 28 73 71 6c 69 74 65 33 2a 29 3b 0a 20  id)(sqlite3*);. 
1280: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28 2a   const char * (*
1290: 6c 69 62 76 65 72 73 69 6f 6e 29 28 76 6f 69 64  libversion)(void
12a0: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 6c 69 62 76  );.  int  (*libv
12b0: 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 29 28 76  ersion_number)(v
12c0: 6f 69 64 29 3b 0a 20 20 76 6f 69 64 20 2a 28 2a  oid);.  void *(*
12d0: 6d 61 6c 6c 6f 63 29 28 69 6e 74 29 3b 0a 20 20  malloc)(int);.  
12e0: 63 68 61 72 20 2a 20 28 2a 6d 70 72 69 6e 74 66  char * (*mprintf
12f0: 29 28 63 6f 6e 73 74 20 63 68 61 72 2a 2c 2e 2e  )(const char*,..
1300: 2e 29 3b 0a 20 20 69 6e 74 20 20 28 2a 6f 70 65  .);.  int  (*ope
1310: 6e 29 28 63 6f 6e 73 74 20 63 68 61 72 2a 2c 73  n)(const char*,s
1320: 71 6c 69 74 65 33 2a 2a 29 3b 0a 20 20 69 6e 74  qlite3**);.  int
1330: 20 20 28 2a 6f 70 65 6e 31 36 29 28 63 6f 6e 73    (*open16)(cons
1340: 74 20 76 6f 69 64 2a 2c 73 71 6c 69 74 65 33 2a  t void*,sqlite3*
1350: 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 70 72 65  *);.  int  (*pre
1360: 70 61 72 65 29 28 73 71 6c 69 74 65 33 2a 2c 63  pare)(sqlite3*,c
1370: 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74 2c 73  onst char*,int,s
1380: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2a 2c 63 6f  qlite3_stmt**,co
1390: 6e 73 74 20 63 68 61 72 2a 2a 29 3b 0a 20 20 69  nst char**);.  i
13a0: 6e 74 20 20 28 2a 70 72 65 70 61 72 65 31 36 29  nt  (*prepare16)
13b0: 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20  (sqlite3*,const 
13c0: 76 6f 69 64 2a 2c 69 6e 74 2c 73 71 6c 69 74 65  void*,int,sqlite
13d0: 33 5f 73 74 6d 74 2a 2a 2c 63 6f 6e 73 74 20 76  3_stmt**,const v
13e0: 6f 69 64 2a 2a 29 3b 0a 20 20 76 6f 69 64 20 2a  oid**);.  void *
13f0: 20 28 2a 70 72 6f 66 69 6c 65 29 28 73 71 6c 69   (*profile)(sqli
1400: 74 65 33 2a 2c 76 6f 69 64 28 2a 29 28 76 6f 69  te3*,void(*)(voi
1410: 64 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 73  d*,const char*,s
1420: 71 6c 69 74 65 5f 75 69 6e 74 36 34 29 2c 76 6f  qlite_uint64),vo
1430: 69 64 2a 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a  id*);.  void  (*
1440: 70 72 6f 67 72 65 73 73 5f 68 61 6e 64 6c 65 72  progress_handler
1450: 29 28 73 71 6c 69 74 65 33 2a 2c 69 6e 74 2c 69  )(sqlite3*,int,i
1460: 6e 74 28 2a 29 28 76 6f 69 64 2a 29 2c 76 6f 69  nt(*)(void*),voi
1470: 64 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 28 2a 72  d*);.  void *(*r
1480: 65 61 6c 6c 6f 63 29 28 76 6f 69 64 2a 2c 69 6e  ealloc)(void*,in
1490: 74 29 3b 0a 20 20 69 6e 74 20 20 28 2a 72 65 73  t);.  int  (*res
14a0: 65 74 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74  et)(sqlite3_stmt
14b0: 2a 70 53 74 6d 74 29 3b 0a 20 20 76 6f 69 64 20  *pStmt);.  void 
14c0: 20 28 2a 72 65 73 75 6c 74 5f 62 6c 6f 62 29 28   (*result_blob)(
14d0: 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a  sqlite3_context*
14e0: 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74  ,const void*,int
14f0: 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 29  ,void(*)(void*))
1500: 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75  ;.  void  (*resu
1510: 6c 74 5f 64 6f 75 62 6c 65 29 28 73 71 6c 69 74  lt_double)(sqlit
1520: 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 64 6f 75 62  e3_context*,doub
1530: 6c 65 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72  le);.  void  (*r
1540: 65 73 75 6c 74 5f 65 72 72 6f 72 29 28 73 71 6c  esult_error)(sql
1550: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f  ite3_context*,co
1560: 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74 29 3b 0a  nst char*,int);.
1570: 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74    void  (*result
1580: 5f 65 72 72 6f 72 31 36 29 28 73 71 6c 69 74 65  _error16)(sqlite
1590: 33 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74  3_context*,const
15a0: 20 76 6f 69 64 2a 2c 69 6e 74 29 3b 0a 20 20 76   void*,int);.  v
15b0: 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f 69 6e  oid  (*result_in
15c0: 74 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65  t)(sqlite3_conte
15d0: 78 74 2a 2c 69 6e 74 29 3b 0a 20 20 76 6f 69 64  xt*,int);.  void
15e0: 20 20 28 2a 72 65 73 75 6c 74 5f 69 6e 74 36 34    (*result_int64
15f0: 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78  )(sqlite3_contex
1600: 74 2a 2c 73 71 6c 69 74 65 5f 69 6e 74 36 34 29  t*,sqlite_int64)
1610: 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75  ;.  void  (*resu
1620: 6c 74 5f 6e 75 6c 6c 29 28 73 71 6c 69 74 65 33  lt_null)(sqlite3
1630: 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a 20 20 76 6f  _context*);.  vo
1640: 69 64 20 20 28 2a 72 65 73 75 6c 74 5f 74 65 78  id  (*result_tex
1650: 74 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65  t)(sqlite3_conte
1660: 78 74 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c  xt*,const char*,
1670: 69 6e 74 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64  int,void(*)(void
1680: 2a 29 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72  *));.  void  (*r
1690: 65 73 75 6c 74 5f 74 65 78 74 31 36 29 28 73 71  esult_text16)(sq
16a0: 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 63  lite3_context*,c
16b0: 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 76  onst void*,int,v
16c0: 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a  oid(*)(void*));.
16d0: 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74    void  (*result
16e0: 5f 74 65 78 74 31 36 62 65 29 28 73 71 6c 69 74  _text16be)(sqlit
16f0: 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73  e3_context*,cons
1700: 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64  t void*,int,void
1710: 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 76  (*)(void*));.  v
1720: 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f 74 65  oid  (*result_te
1730: 78 74 31 36 6c 65 29 28 73 71 6c 69 74 65 33 5f  xt16le)(sqlite3_
1740: 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20 76  context*,const v
1750: 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a 29  oid*,int,void(*)
1760: 28 76 6f 69 64 2a 29 29 3b 0a 20 20 76 6f 69 64  (void*));.  void
1770: 20 20 28 2a 72 65 73 75 6c 74 5f 76 61 6c 75 65    (*result_value
1780: 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78  )(sqlite3_contex
1790: 74 2a 2c 73 71 6c 69 74 65 33 5f 76 61 6c 75 65  t*,sqlite3_value
17a0: 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a 72  *);.  void * (*r
17b0: 6f 6c 6c 62 61 63 6b 5f 68 6f 6f 6b 29 28 73 71  ollback_hook)(sq
17c0: 6c 69 74 65 33 2a 2c 76 6f 69 64 28 2a 29 28 76  lite3*,void(*)(v
17d0: 6f 69 64 2a 29 2c 76 6f 69 64 2a 29 3b 0a 20 20  oid*),void*);.  
17e0: 69 6e 74 20 20 28 2a 73 65 74 5f 61 75 74 68 6f  int  (*set_autho
17f0: 72 69 7a 65 72 29 28 73 71 6c 69 74 65 33 2a 2c  rizer)(sqlite3*,
1800: 69 6e 74 28 2a 29 28 76 6f 69 64 2a 2c 69 6e 74  int(*)(void*,int
1810: 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e  ,const char*,con
1820: 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74 20 63  st char*,const c
1830: 68 61 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a  har*,const char*
1840: 29 2c 76 6f 69 64 2a 29 3b 0a 20 20 76 6f 69 64  ),void*);.  void
1850: 20 20 28 2a 73 65 74 5f 61 75 78 64 61 74 61 29    (*set_auxdata)
1860: 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74  (sqlite3_context
1870: 2a 2c 69 6e 74 2c 76 6f 69 64 2a 2c 76 6f 69 64  *,int,void*,void
1880: 20 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20   (*)(void*));.  
1890: 63 68 61 72 20 2a 20 28 2a 73 6e 70 72 69 6e 74  char * (*snprint
18a0: 66 29 28 69 6e 74 2c 63 68 61 72 2a 2c 63 6f 6e  f)(int,char*,con
18b0: 73 74 20 63 68 61 72 2a 2c 2e 2e 2e 29 3b 0a 20  st char*,...);. 
18c0: 20 69 6e 74 20 20 28 2a 73 74 65 70 29 28 73 71   int  (*step)(sq
18d0: 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20 20  lite3_stmt*);.  
18e0: 69 6e 74 20 20 28 2a 74 61 62 6c 65 5f 63 6f 6c  int  (*table_col
18f0: 75 6d 6e 5f 6d 65 74 61 64 61 74 61 29 28 73 71  umn_metadata)(sq
1900: 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61  lite3*,const cha
1910: 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63  r*,const char*,c
1920: 6f 6e 73 74 20 63 68 61 72 2a 2c 63 68 61 72 20  onst char*,char 
1930: 63 6f 6e 73 74 2a 2a 2c 63 68 61 72 20 63 6f 6e  const**,char con
1940: 73 74 2a 2a 2c 69 6e 74 2a 2c 69 6e 74 2a 2c 69  st**,int*,int*,i
1950: 6e 74 2a 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a  nt*);.  void  (*
1960: 74 68 72 65 61 64 5f 63 6c 65 61 6e 75 70 29 28  thread_cleanup)(
1970: 76 6f 69 64 29 3b 0a 20 20 69 6e 74 20 20 28 2a  void);.  int  (*
1980: 74 6f 74 61 6c 5f 63 68 61 6e 67 65 73 29 28 73  total_changes)(s
1990: 71 6c 69 74 65 33 2a 29 3b 0a 20 20 76 6f 69 64  qlite3*);.  void
19a0: 20 2a 20 28 2a 74 72 61 63 65 29 28 73 71 6c 69   * (*trace)(sqli
19b0: 74 65 33 2a 2c 76 6f 69 64 28 2a 78 54 72 61 63  te3*,void(*xTrac
19c0: 65 29 28 76 6f 69 64 2a 2c 63 6f 6e 73 74 20 63  e)(void*,const c
19d0: 68 61 72 2a 29 2c 76 6f 69 64 2a 29 3b 0a 20 20  har*),void*);.  
19e0: 69 6e 74 20 20 28 2a 74 72 61 6e 73 66 65 72 5f  int  (*transfer_
19f0: 62 69 6e 64 69 6e 67 73 29 28 73 71 6c 69 74 65  bindings)(sqlite
1a00: 33 5f 73 74 6d 74 2a 2c 73 71 6c 69 74 65 33 5f  3_stmt*,sqlite3_
1a10: 73 74 6d 74 2a 29 3b 0a 20 20 76 6f 69 64 20 2a  stmt*);.  void *
1a20: 20 28 2a 75 70 64 61 74 65 5f 68 6f 6f 6b 29 28   (*update_hook)(
1a30: 73 71 6c 69 74 65 33 2a 2c 76 6f 69 64 28 2a 29  sqlite3*,void(*)
1a40: 28 76 6f 69 64 2a 2c 69 6e 74 20 2c 63 68 61 72  (void*,int ,char
1a50: 20 63 6f 6e 73 74 2a 2c 63 68 61 72 20 63 6f 6e   const*,char con
1a60: 73 74 2a 2c 73 71 6c 69 74 65 5f 69 6e 74 36 34  st*,sqlite_int64
1a70: 29 2c 76 6f 69 64 2a 29 3b 0a 20 20 76 6f 69 64  ),void*);.  void
1a80: 20 2a 20 28 2a 75 73 65 72 5f 64 61 74 61 29 28   * (*user_data)(
1a90: 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a  sqlite3_context*
1aa0: 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20  );.  const void 
1ab0: 2a 20 28 2a 76 61 6c 75 65 5f 62 6c 6f 62 29 28  * (*value_blob)(
1ac0: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b  sqlite3_value*);
1ad0: 0a 20 20 69 6e 74 20 20 28 2a 76 61 6c 75 65 5f  .  int  (*value_
1ae0: 62 79 74 65 73 29 28 73 71 6c 69 74 65 33 5f 76  bytes)(sqlite3_v
1af0: 61 6c 75 65 2a 29 3b 0a 20 20 69 6e 74 20 20 28  alue*);.  int  (
1b00: 2a 76 61 6c 75 65 5f 62 79 74 65 73 31 36 29 28  *value_bytes16)(
1b10: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b  sqlite3_value*);
1b20: 0a 20 20 64 6f 75 62 6c 65 20 20 28 2a 76 61 6c  .  double  (*val
1b30: 75 65 5f 64 6f 75 62 6c 65 29 28 73 71 6c 69 74  ue_double)(sqlit
1b40: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e  e3_value*);.  in
1b50: 74 20 20 28 2a 76 61 6c 75 65 5f 69 6e 74 29 28  t  (*value_int)(
1b60: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b  sqlite3_value*);
1b70: 0a 20 20 73 71 6c 69 74 65 5f 69 6e 74 36 34 20  .  sqlite_int64 
1b80: 20 28 2a 76 61 6c 75 65 5f 69 6e 74 36 34 29 28   (*value_int64)(
1b90: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b  sqlite3_value*);
1ba0: 0a 20 20 69 6e 74 20 20 28 2a 76 61 6c 75 65 5f  .  int  (*value_
1bb0: 6e 75 6d 65 72 69 63 5f 74 79 70 65 29 28 73 71  numeric_type)(sq
1bc0: 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20  lite3_value*);. 
1bd0: 20 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64 20   const unsigned 
1be0: 63 68 61 72 20 2a 20 28 2a 76 61 6c 75 65 5f 74  char * (*value_t
1bf0: 65 78 74 29 28 73 71 6c 69 74 65 33 5f 76 61 6c  ext)(sqlite3_val
1c00: 75 65 2a 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f  ue*);.  const vo
1c10: 69 64 20 2a 20 28 2a 76 61 6c 75 65 5f 74 65 78  id * (*value_tex
1c20: 74 31 36 29 28 73 71 6c 69 74 65 33 5f 76 61 6c  t16)(sqlite3_val
1c30: 75 65 2a 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f  ue*);.  const vo
1c40: 69 64 20 2a 20 28 2a 76 61 6c 75 65 5f 74 65 78  id * (*value_tex
1c50: 74 31 36 62 65 29 28 73 71 6c 69 74 65 33 5f 76  t16be)(sqlite3_v
1c60: 61 6c 75 65 2a 29 3b 0a 20 20 63 6f 6e 73 74 20  alue*);.  const 
1c70: 76 6f 69 64 20 2a 20 28 2a 76 61 6c 75 65 5f 74  void * (*value_t
1c80: 65 78 74 31 36 6c 65 29 28 73 71 6c 69 74 65 33  ext16le)(sqlite3
1c90: 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e 74 20  _value*);.  int 
1ca0: 20 28 2a 76 61 6c 75 65 5f 74 79 70 65 29 28 73   (*value_type)(s
1cb0: 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a  qlite3_value*);.
1cc0: 20 20 63 68 61 72 20 2a 28 2a 76 6d 70 72 69 6e    char *(*vmprin
1cd0: 74 66 29 28 63 6f 6e 73 74 20 63 68 61 72 2a 2c  tf)(const char*,
1ce0: 76 61 5f 6c 69 73 74 29 3b 0a 20 20 69 6e 74 20  va_list);.  int 
1cf0: 28 2a 6f 76 65 72 6c 6f 61 64 5f 66 75 6e 63 74  (*overload_funct
1d00: 69 6f 6e 29 28 73 71 6c 69 74 65 33 2a 2c 20 63  ion)(sqlite3*, c
1d10: 6f 6e 73 74 20 63 68 61 72 20 2a 7a 46 75 6e 63  onst char *zFunc
1d20: 4e 61 6d 65 2c 20 69 6e 74 20 6e 41 72 67 29 3b  Name, int nArg);
1d30: 0a 20 20 69 6e 74 20 28 2a 70 72 65 70 61 72 65  .  int (*prepare
1d40: 5f 76 32 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f  _v2)(sqlite3*,co
1d50: 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74 2c 73 71  nst char*,int,sq
1d60: 6c 69 74 65 33 5f 73 74 6d 74 2a 2a 2c 63 6f 6e  lite3_stmt**,con
1d70: 73 74 20 63 68 61 72 2a 2a 29 3b 0a 20 20 69 6e  st char**);.  in
1d80: 74 20 28 2a 70 72 65 70 61 72 65 31 36 5f 76 32  t (*prepare16_v2
1d90: 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74  )(sqlite3*,const
1da0: 20 76 6f 69 64 2a 2c 69 6e 74 2c 73 71 6c 69 74   void*,int,sqlit
1db0: 65 33 5f 73 74 6d 74 2a 2a 2c 63 6f 6e 73 74 20  e3_stmt**,const 
1dc0: 76 6f 69 64 2a 2a 29 3b 0a 20 20 69 6e 74 20 28  void**);.  int (
1dd0: 2a 63 6c 65 61 72 5f 62 69 6e 64 69 6e 67 73 29  *clear_bindings)
1de0: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b  (sqlite3_stmt*);
1df0: 0a 7d 3b 0a 0a 2f 2a 0a 2a 2a 20 54 68 65 20 66  .};../*.** The f
1e00: 6f 6c 6c 6f 77 69 6e 67 20 6d 61 63 72 6f 73 20  ollowing macros 
1e10: 72 65 64 65 66 69 6e 65 20 74 68 65 20 41 50 49  redefine the API
1e20: 20 72 6f 75 74 69 6e 65 73 20 73 6f 20 74 68 61   routines so tha
1e30: 74 20 74 68 65 79 20 61 72 65 0a 2a 2a 20 72 65  t they are.** re
1e40: 64 69 72 65 63 74 65 64 20 74 68 72 6f 75 67 68  directed through
1e50: 74 20 74 68 65 20 67 6c 6f 62 61 6c 20 73 71 6c  t the global sql
1e60: 69 74 65 33 5f 61 70 69 20 73 74 72 75 63 74 75  ite3_api structu
1e70: 72 65 2e 0a 2a 2a 0a 2a 2a 20 54 68 69 73 20 68  re..**.** This h
1e80: 65 61 64 65 72 20 66 69 6c 65 20 69 73 20 61 6c  eader file is al
1e90: 73 6f 20 75 73 65 64 20 62 79 20 74 68 65 20 6c  so used by the l
1ea0: 6f 61 64 65 78 74 2e 63 20 73 6f 75 72 63 65 20  oadext.c source 
1eb0: 66 69 6c 65 0a 2a 2a 20 28 70 61 72 74 20 6f 66  file.** (part of
1ec0: 20 74 68 65 20 6d 61 69 6e 20 53 51 4c 69 74 65   the main SQLite
1ed0: 20 6c 69 62 72 61 72 79 20 2d 20 6e 6f 74 20 61   library - not a
1ee0: 6e 20 65 78 74 65 6e 73 69 6f 6e 29 20 73 6f 20  n extension) so 
1ef0: 74 68 61 74 0a 2a 2a 20 69 74 20 63 61 6e 20 67  that.** it can g
1f00: 65 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65  et access to the
1f10: 20 73 71 6c 69 74 65 33 5f 61 70 69 5f 72 6f 75   sqlite3_api_rou
1f20: 74 69 6e 65 73 20 73 74 72 75 63 74 75 72 65 0a  tines structure.
1f30: 2a 2a 20 64 65 66 69 6e 69 74 69 6f 6e 2e 20 20  ** definition.  
1f40: 42 75 74 20 74 68 65 20 6d 61 69 6e 20 6c 69 62  But the main lib
1f50: 72 61 72 79 20 64 6f 65 73 20 6e 6f 74 20 77 61  rary does not wa
1f60: 6e 74 20 74 6f 20 72 65 64 65 66 69 6e 65 0a 2a  nt to redefine.*
1f70: 2a 20 74 68 65 20 41 50 49 2e 20 20 53 6f 20 74  * the API.  So t
1f80: 68 65 20 72 65 64 65 66 69 6e 69 74 69 6f 6e 20  he redefinition 
1f90: 6d 61 63 72 6f 73 20 61 72 65 20 6f 6e 6c 79 20  macros are only 
1fa0: 76 61 6c 69 64 20 69 66 20 74 68 65 0a 2a 2a 20  valid if the.** 
1fb0: 53 51 4c 49 54 45 5f 43 4f 52 45 20 6d 61 63 72  SQLITE_CORE macr
1fc0: 6f 73 20 69 73 20 75 6e 64 65 66 69 6e 65 64 2e  os is undefined.
1fd0: 0a 2a 2f 0a 23 69 66 6e 64 65 66 20 53 51 4c 49  .*/.#ifndef SQLI
1fe0: 54 45 5f 43 4f 52 45 0a 23 64 65 66 69 6e 65 20  TE_CORE.#define 
1ff0: 73 71 6c 69 74 65 33 5f 61 67 67 72 65 67 61 74  sqlite3_aggregat
2000: 65 5f 63 6f 6e 74 65 78 74 20 20 20 20 20 20 73  e_context      s
2010: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 61 67 67 72  qlite3_api->aggr
2020: 65 67 61 74 65 5f 63 6f 6e 74 65 78 74 0a 23 64  egate_context.#d
2030: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 61 67  efine sqlite3_ag
2040: 67 72 65 67 61 74 65 5f 63 6f 75 6e 74 20 20 20  gregate_count   
2050: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2060: 2d 3e 61 67 67 72 65 67 61 74 65 5f 63 6f 75 6e  ->aggregate_coun
2070: 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  t.#define sqlite
2080: 33 5f 62 69 6e 64 5f 62 6c 6f 62 20 20 20 20 20  3_bind_blob     
2090: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
20a0: 5f 61 70 69 2d 3e 62 69 6e 64 5f 62 6c 6f 62 0a  _api->bind_blob.
20b0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
20c0: 62 69 6e 64 5f 64 6f 75 62 6c 65 20 20 20 20 20  bind_double     
20d0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
20e0: 70 69 2d 3e 62 69 6e 64 5f 64 6f 75 62 6c 65 0a  pi->bind_double.
20f0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2100: 62 69 6e 64 5f 69 6e 74 20 20 20 20 20 20 20 20  bind_int        
2110: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2120: 70 69 2d 3e 62 69 6e 64 5f 69 6e 74 0a 23 64 65  pi->bind_int.#de
2130: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e  fine sqlite3_bin
2140: 64 5f 69 6e 74 36 34 20 20 20 20 20 20 20 20 20  d_int64         
2150: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
2160: 3e 62 69 6e 64 5f 69 6e 74 36 34 0a 23 64 65 66  >bind_int64.#def
2170: 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64  ine sqlite3_bind
2180: 5f 6e 75 6c 6c 20 20 20 20 20 20 20 20 20 20 20  _null           
2190: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
21a0: 62 69 6e 64 5f 6e 75 6c 6c 0a 23 64 65 66 69 6e  bind_null.#defin
21b0: 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 70  e sqlite3_bind_p
21c0: 61 72 61 6d 65 74 65 72 5f 63 6f 75 6e 74 20 20  arameter_count  
21d0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69   sqlite3_api->bi
21e0: 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 63 6f 75  nd_parameter_cou
21f0: 6e 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  nt.#define sqlit
2200: 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74 65  e3_bind_paramete
2210: 72 5f 69 6e 64 65 78 20 20 20 73 71 6c 69 74 65  r_index   sqlite
2220: 33 5f 61 70 69 2d 3e 62 69 6e 64 5f 70 61 72 61  3_api->bind_para
2230: 6d 65 74 65 72 5f 69 6e 64 65 78 0a 23 64 65 66  meter_index.#def
2240: 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64  ine sqlite3_bind
2250: 5f 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d 65 20  _parameter_name 
2260: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2270: 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 6e  bind_parameter_n
2280: 61 6d 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ame.#define sqli
2290: 74 65 33 5f 62 69 6e 64 5f 74 65 78 74 20 20 20  te3_bind_text   
22a0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
22b0: 65 33 5f 61 70 69 2d 3e 62 69 6e 64 5f 74 65 78  e3_api->bind_tex
22c0: 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  t.#define sqlite
22d0: 33 5f 62 69 6e 64 5f 74 65 78 74 31 36 20 20 20  3_bind_text16   
22e0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
22f0: 5f 61 70 69 2d 3e 62 69 6e 64 5f 74 65 78 74 31  _api->bind_text1
2300: 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  6.#define sqlite
2310: 33 5f 62 69 6e 64 5f 76 61 6c 75 65 20 20 20 20  3_bind_value    
2320: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
2330: 5f 61 70 69 2d 3e 62 69 6e 64 5f 76 61 6c 75 65  _api->bind_value
2340: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2350: 5f 62 75 73 79 5f 68 61 6e 64 6c 65 72 20 20 20  _busy_handler   
2360: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
2370: 61 70 69 2d 3e 62 75 73 79 5f 68 61 6e 64 6c 65  api->busy_handle
2380: 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  r.#define sqlite
2390: 33 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 20 20  3_busy_timeout  
23a0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
23b0: 5f 61 70 69 2d 3e 62 75 73 79 5f 74 69 6d 65 6f  _api->busy_timeo
23c0: 75 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  ut.#define sqlit
23d0: 65 33 5f 63 68 61 6e 67 65 73 20 20 20 20 20 20  e3_changes      
23e0: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
23f0: 33 5f 61 70 69 2d 3e 63 68 61 6e 67 65 73 0a 23  3_api->changes.#
2400: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63  define sqlite3_c
2410: 6c 6f 73 65 20 20 20 20 20 20 20 20 20 20 20 20  lose            
2420: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
2430: 69 2d 3e 63 6c 6f 73 65 0a 23 64 65 66 69 6e 65  i->close.#define
2440: 20 73 71 6c 69 74 65 33 5f 63 6f 6c 6c 61 74 69   sqlite3_collati
2450: 6f 6e 5f 6e 65 65 64 65 64 20 20 20 20 20 20 20  on_needed       
2460: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c  sqlite3_api->col
2470: 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64 0a 23 64  lation_needed.#d
2480: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f  efine sqlite3_co
2490: 6c 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64 31 36  llation_needed16
24a0: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
24b0: 2d 3e 63 6f 6c 6c 61 74 69 6f 6e 5f 6e 65 65 64  ->collation_need
24c0: 65 64 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c  ed16.#define sql
24d0: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 62 6c 6f 62  ite3_column_blob
24e0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
24f0: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f  te3_api->column_
2500: 62 6c 6f 62 0a 23 64 65 66 69 6e 65 20 73 71 6c  blob.#define sql
2510: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 62 79 74 65  ite3_column_byte
2520: 73 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69  s           sqli
2530: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f  te3_api->column_
2540: 62 79 74 65 73 0a 23 64 65 66 69 6e 65 20 73 71  bytes.#define sq
2550: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 62 79 74  lite3_column_byt
2560: 65 73 31 36 20 20 20 20 20 20 20 20 20 73 71 6c  es16         sql
2570: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e  ite3_api->column
2580: 5f 62 79 74 65 73 31 36 0a 23 64 65 66 69 6e 65  _bytes16.#define
2590: 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f   sqlite3_column_
25a0: 63 6f 75 6e 74 20 20 20 20 20 20 20 20 20 20 20  count           
25b0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c  sqlite3_api->col
25c0: 75 6d 6e 5f 63 6f 75 6e 74 0a 23 64 65 66 69 6e  umn_count.#defin
25d0: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
25e0: 5f 64 61 74 61 62 61 73 65 5f 6e 61 6d 65 20 20  _database_name  
25f0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
2600: 6c 75 6d 6e 5f 64 61 74 61 62 61 73 65 5f 6e 61  lumn_database_na
2610: 6d 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  me.#define sqlit
2620: 65 33 5f 63 6f 6c 75 6d 6e 5f 64 61 74 61 62 61  e3_column_databa
2630: 73 65 5f 6e 61 6d 65 31 36 20 73 71 6c 69 74 65  se_name16 sqlite
2640: 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 64 61  3_api->column_da
2650: 74 61 62 61 73 65 5f 6e 61 6d 65 31 36 0a 23 64  tabase_name16.#d
2660: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f  efine sqlite3_co
2670: 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65 20 20 20  lumn_decltype   
2680: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2690: 2d 3e 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70  ->column_decltyp
26a0: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
26b0: 33 5f 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70  3_column_decltyp
26c0: 65 31 36 20 20 20 20 20 20 73 71 6c 69 74 65 33  e16      sqlite3
26d0: 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 64 65 63  _api->column_dec
26e0: 6c 74 79 70 65 31 36 0a 23 64 65 66 69 6e 65 20  ltype16.#define 
26f0: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 64  sqlite3_column_d
2700: 6f 75 62 6c 65 20 20 20 20 20 20 20 20 20 20 73  ouble          s
2710: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
2720: 6d 6e 5f 64 6f 75 62 6c 65 0a 23 64 65 66 69 6e  mn_double.#defin
2730: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
2740: 5f 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20  _int            
2750: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
2760: 6c 75 6d 6e 5f 69 6e 74 0a 23 64 65 66 69 6e 65  lumn_int.#define
2770: 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f   sqlite3_column_
2780: 69 6e 74 36 34 20 20 20 20 20 20 20 20 20 20 20  int64           
2790: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c  sqlite3_api->col
27a0: 75 6d 6e 5f 69 6e 74 36 34 0a 23 64 65 66 69 6e  umn_int64.#defin
27b0: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
27c0: 5f 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 20  _name           
27d0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
27e0: 6c 75 6d 6e 5f 6e 61 6d 65 0a 23 64 65 66 69 6e  lumn_name.#defin
27f0: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
2800: 5f 6e 61 6d 65 31 36 20 20 20 20 20 20 20 20 20  _name16         
2810: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
2820: 6c 75 6d 6e 5f 6e 61 6d 65 31 36 0a 23 64 65 66  lumn_name16.#def
2830: 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75  ine sqlite3_colu
2840: 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65 20 20  mn_origin_name  
2850: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2860: 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61  column_origin_na
2870: 6d 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  me.#define sqlit
2880: 65 33 5f 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e  e3_column_origin
2890: 5f 6e 61 6d 65 31 36 20 20 20 73 71 6c 69 74 65  _name16   sqlite
28a0: 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 6f 72  3_api->column_or
28b0: 69 67 69 6e 5f 6e 61 6d 65 31 36 0a 23 64 65 66  igin_name16.#def
28c0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75  ine sqlite3_colu
28d0: 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 20 20 20  mn_table_name   
28e0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
28f0: 63 6f 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d  column_table_nam
2900: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
2910: 33 5f 63 6f 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e  3_column_table_n
2920: 61 6d 65 31 36 20 20 20 20 73 71 6c 69 74 65 33  ame16    sqlite3
2930: 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 74 61 62  _api->column_tab
2940: 6c 65 5f 6e 61 6d 65 31 36 0a 23 64 65 66 69 6e  le_name16.#defin
2950: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
2960: 5f 74 65 78 74 20 20 20 20 20 20 20 20 20 20 20  _text           
2970: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
2980: 6c 75 6d 6e 5f 74 65 78 74 0a 23 64 65 66 69 6e  lumn_text.#defin
2990: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
29a0: 5f 74 65 78 74 31 36 20 20 20 20 20 20 20 20 20  _text16         
29b0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
29c0: 6c 75 6d 6e 5f 74 65 78 74 31 36 0a 23 64 65 66  lumn_text16.#def
29d0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75  ine sqlite3_colu
29e0: 6d 6e 5f 74 79 70 65 20 20 20 20 20 20 20 20 20  mn_type         
29f0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2a00: 63 6f 6c 75 6d 6e 5f 74 79 70 65 0a 23 64 65 66  column_type.#def
2a10: 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75  ine sqlite3_colu
2a20: 6d 6e 5f 76 61 6c 75 65 20 20 20 20 20 20 20 20  mn_value        
2a30: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2a40: 63 6f 6c 75 6d 6e 5f 76 61 6c 75 65 0a 23 64 65  column_value.#de
2a50: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6d  fine sqlite3_com
2a60: 6d 69 74 5f 68 6f 6f 6b 20 20 20 20 20 20 20 20  mit_hook        
2a70: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
2a80: 3e 63 6f 6d 6d 69 74 5f 68 6f 6f 6b 0a 23 64 65  >commit_hook.#de
2a90: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6d  fine sqlite3_com
2aa0: 70 6c 65 74 65 20 20 20 20 20 20 20 20 20 20 20  plete           
2ab0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
2ac0: 3e 63 6f 6d 70 6c 65 74 65 0a 23 64 65 66 69 6e  >complete.#defin
2ad0: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6d 70 6c 65  e sqlite3_comple
2ae0: 74 65 31 36 20 20 20 20 20 20 20 20 20 20 20 20  te16            
2af0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
2b00: 6d 70 6c 65 74 65 31 36 0a 23 64 65 66 69 6e 65  mplete16.#define
2b10: 20 73 71 6c 69 74 65 33 5f 63 72 65 61 74 65 5f   sqlite3_create_
2b20: 63 6f 6c 6c 61 74 69 6f 6e 20 20 20 20 20 20 20  collation       
2b30: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 72 65  sqlite3_api->cre
2b40: 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 0a 23 64  ate_collation.#d
2b50: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 72  efine sqlite3_cr
2b60: 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 31 36  eate_collation16
2b70: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2b80: 2d 3e 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69  ->create_collati
2b90: 6f 6e 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c  on16.#define sql
2ba0: 69 74 65 33 5f 63 72 65 61 74 65 5f 66 75 6e 63  ite3_create_func
2bb0: 74 69 6f 6e 20 20 20 20 20 20 20 20 73 71 6c 69  tion        sqli
2bc0: 74 65 33 5f 61 70 69 2d 3e 63 72 65 61 74 65 5f  te3_api->create_
2bd0: 66 75 6e 63 74 69 6f 6e 0a 23 64 65 66 69 6e 65  function.#define
2be0: 20 73 71 6c 69 74 65 33 5f 63 72 65 61 74 65 5f   sqlite3_create_
2bf0: 66 75 6e 63 74 69 6f 6e 31 36 20 20 20 20 20 20  function16      
2c00: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 72 65  sqlite3_api->cre
2c10: 61 74 65 5f 66 75 6e 63 74 69 6f 6e 31 36 0a 23  ate_function16.#
2c20: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63  define sqlite3_c
2c30: 72 65 61 74 65 5f 6d 6f 64 75 6c 65 20 20 20 20  reate_module    
2c40: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
2c50: 69 2d 3e 63 72 65 61 74 65 5f 6d 6f 64 75 6c 65  i->create_module
2c60: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2c70: 5f 64 61 74 61 5f 63 6f 75 6e 74 20 20 20 20 20  _data_count     
2c80: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
2c90: 61 70 69 2d 3e 64 61 74 61 5f 63 6f 75 6e 74 0a  api->data_count.
2ca0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2cb0: 64 62 5f 68 61 6e 64 6c 65 20 20 20 20 20 20 20  db_handle       
2cc0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2cd0: 70 69 2d 3e 64 62 5f 68 61 6e 64 6c 65 0a 23 64  pi->db_handle.#d
2ce0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 64 65  efine sqlite3_de
2cf0: 63 6c 61 72 65 5f 76 74 61 62 20 20 20 20 20 20  clare_vtab      
2d00: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2d10: 2d 3e 64 65 63 6c 61 72 65 5f 76 74 61 62 0a 23  ->declare_vtab.#
2d20: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 65  define sqlite3_e
2d30: 6e 61 62 6c 65 5f 73 68 61 72 65 64 5f 63 61 63  nable_shared_cac
2d40: 68 65 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70  he    sqlite3_ap
2d50: 69 2d 3e 65 6e 61 62 6c 65 5f 73 68 61 72 65 64  i->enable_shared
2d60: 5f 63 61 63 68 65 0a 23 64 65 66 69 6e 65 20 73  _cache.#define s
2d70: 71 6c 69 74 65 33 5f 65 72 72 63 6f 64 65 20 20  qlite3_errcode  
2d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71                sq
2d90: 6c 69 74 65 33 5f 61 70 69 2d 3e 65 72 72 63 6f  lite3_api->errco
2da0: 64 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  de.#define sqlit
2db0: 65 33 5f 65 72 72 6d 73 67 20 20 20 20 20 20 20  e3_errmsg       
2dc0: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
2dd0: 33 5f 61 70 69 2d 3e 65 72 72 6d 73 67 0a 23 64  3_api->errmsg.#d
2de0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 65 72  efine sqlite3_er
2df0: 72 6d 73 67 31 36 20 20 20 20 20 20 20 20 20 20  rmsg16          
2e00: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2e10: 2d 3e 65 72 72 6d 73 67 31 36 0a 23 64 65 66 69  ->errmsg16.#defi
2e20: 6e 65 20 73 71 6c 69 74 65 33 5f 65 78 65 63 20  ne sqlite3_exec 
2e30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e40: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 65    sqlite3_api->e
2e50: 78 65 63 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  xec.#define sqli
2e60: 74 65 33 5f 65 78 70 69 72 65 64 20 20 20 20 20  te3_expired     
2e70: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
2e80: 65 33 5f 61 70 69 2d 3e 65 78 70 69 72 65 64 0a  e3_api->expired.
2e90: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2ea0: 66 69 6e 61 6c 69 7a 65 20 20 20 20 20 20 20 20  finalize        
2eb0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2ec0: 70 69 2d 3e 66 69 6e 61 6c 69 7a 65 0a 23 64 65  pi->finalize.#de
2ed0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 66 72 65  fine sqlite3_fre
2ee0: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e               
2ef0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
2f00: 3e 66 72 65 65 0a 23 64 65 66 69 6e 65 20 73 71  >free.#define sq
2f10: 6c 69 74 65 33 5f 66 72 65 65 5f 74 61 62 6c 65  lite3_free_table
2f20: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
2f30: 69 74 65 33 5f 61 70 69 2d 3e 66 72 65 65 5f 74  ite3_api->free_t
2f40: 61 62 6c 65 0a 23 64 65 66 69 6e 65 20 73 71 6c  able.#define sql
2f50: 69 74 65 33 5f 67 65 74 5f 61 75 74 6f 63 6f 6d  ite3_get_autocom
2f60: 6d 69 74 20 20 20 20 20 20 20 20 20 73 71 6c 69  mit         sqli
2f70: 74 65 33 5f 61 70 69 2d 3e 67 65 74 5f 61 75 74  te3_api->get_aut
2f80: 6f 63 6f 6d 6d 69 74 0a 23 64 65 66 69 6e 65 20  ocommit.#define 
2f90: 73 71 6c 69 74 65 33 5f 67 65 74 5f 61 75 78 64  sqlite3_get_auxd
2fa0: 61 74 61 20 20 20 20 20 20 20 20 20 20 20 20 73  ata            s
2fb0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 67 65 74 5f  qlite3_api->get_
2fc0: 61 75 78 64 61 74 61 0a 23 64 65 66 69 6e 65 20  auxdata.#define 
2fd0: 73 71 6c 69 74 65 33 5f 67 65 74 5f 74 61 62 6c  sqlite3_get_tabl
2fe0: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73  e              s
2ff0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 67 65 74 5f  qlite3_api->get_
3000: 74 61 62 6c 65 0a 23 64 65 66 69 6e 65 20 73 71  table.#define sq
3010: 6c 69 74 65 33 5f 67 6c 6f 62 61 6c 5f 72 65 63  lite3_global_rec
3020: 6f 76 65 72 20 20 20 20 20 20 20 20 20 73 71 6c  over         sql
3030: 69 74 65 33 5f 61 70 69 2d 3e 67 6c 6f 62 61 6c  ite3_api->global
3040: 5f 72 65 63 6f 76 65 72 0a 23 64 65 66 69 6e 65  _recover.#define
3050: 20 73 71 6c 69 74 65 33 5f 69 6e 74 65 72 72 75   sqlite3_interru
3060: 70 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20  pt              
3070: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 69 6e 74  sqlite3_api->int
3080: 65 72 72 75 70 74 78 0a 23 64 65 66 69 6e 65 20  erruptx.#define 
3090: 73 71 6c 69 74 65 33 5f 6c 61 73 74 5f 69 6e 73  sqlite3_last_ins
30a0: 65 72 74 5f 72 6f 77 69 64 20 20 20 20 20 20 73  ert_rowid      s
30b0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6c 61 73 74  qlite3_api->last
30c0: 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 0a 23 64  _insert_rowid.#d
30d0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 6c 69  efine sqlite3_li
30e0: 62 76 65 72 73 69 6f 6e 20 20 20 20 20 20 20 20  bversion        
30f0: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
3100: 2d 3e 6c 69 62 76 65 72 73 69 6f 6e 0a 23 64 65  ->libversion.#de
3110: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 6c 69 62  fine sqlite3_lib
3120: 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 20  version_number  
3130: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
3140: 3e 6c 69 62 76 65 72 73 69 6f 6e 5f 6e 75 6d 62  >libversion_numb
3150: 65 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  er.#define sqlit
3160: 65 33 5f 6d 61 6c 6c 6f 63 20 20 20 20 20 20 20  e3_malloc       
3170: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3180: 33 5f 61 70 69 2d 3e 6d 61 6c 6c 6f 63 0a 23 64  3_api->malloc.#d
3190: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 6d 70  efine sqlite3_mp
31a0: 72 69 6e 74 66 20 20 20 20 20 20 20 20 20 20 20  rintf           
31b0: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
31c0: 2d 3e 6d 70 72 69 6e 74 66 0a 23 64 65 66 69 6e  ->mprintf.#defin
31d0: 65 20 73 71 6c 69 74 65 33 5f 6f 70 65 6e 20 20  e sqlite3_open  
31e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
31f0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6f 70   sqlite3_api->op
3200: 65 6e 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  en.#define sqlit
3210: 65 33 5f 6f 70 65 6e 31 36 20 20 20 20 20 20 20  e3_open16       
3220: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3230: 33 5f 61 70 69 2d 3e 6f 70 65 6e 31 36 0a 23 64  3_api->open16.#d
3240: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 70 72  efine sqlite3_pr
3250: 65 70 61 72 65 20 20 20 20 20 20 20 20 20 20 20  epare           
3260: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
3270: 2d 3e 70 72 65 70 61 72 65 0a 23 64 65 66 69 6e  ->prepare.#defin
3280: 65 20 73 71 6c 69 74 65 33 5f 70 72 65 70 61 72  e sqlite3_prepar
3290: 65 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20  e16             
32a0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72   sqlite3_api->pr
32b0: 65 70 61 72 65 31 36 0a 23 64 65 66 69 6e 65 20  epare16.#define 
32c0: 73 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65 5f  sqlite3_prepare_
32d0: 76 32 20 20 20 20 20 20 20 20 20 20 20 20 20 73  v2             s
32e0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72 65 70  qlite3_api->prep
32f0: 61 72 65 5f 76 32 0a 23 64 65 66 69 6e 65 20 73  are_v2.#define s
3300: 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65 31 36  qlite3_prepare16
3310: 5f 76 32 20 20 20 20 20 20 20 20 20 20 20 73 71  _v2           sq
3320: 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72 65 70 61  lite3_api->prepa
3330: 72 65 31 36 5f 76 32 0a 23 64 65 66 69 6e 65 20  re16_v2.#define 
3340: 73 71 6c 69 74 65 33 5f 70 72 6f 66 69 6c 65 20  sqlite3_profile 
3350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73                 s
3360: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72 6f 66  qlite3_api->prof
3370: 69 6c 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ile.#define sqli
3380: 74 65 33 5f 70 72 6f 67 72 65 73 73 5f 68 61 6e  te3_progress_han
3390: 64 6c 65 72 20 20 20 20 20 20 20 73 71 6c 69 74  dler       sqlit
33a0: 65 33 5f 61 70 69 2d 3e 70 72 6f 67 72 65 73 73  e3_api->progress
33b0: 5f 68 61 6e 64 6c 65 72 0a 23 64 65 66 69 6e 65  _handler.#define
33c0: 20 73 71 6c 69 74 65 33 5f 72 65 61 6c 6c 6f 63   sqlite3_realloc
33d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
33e0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 61  sqlite3_api->rea
33f0: 6c 6c 6f 63 0a 23 64 65 66 69 6e 65 20 73 71 6c  lloc.#define sql
3400: 69 74 65 33 5f 72 65 73 65 74 20 20 20 20 20 20  ite3_reset      
3410: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
3420: 74 65 33 5f 61 70 69 2d 3e 72 65 73 65 74 0a 23  te3_api->reset.#
3430: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72  define sqlite3_r
3440: 65 73 75 6c 74 5f 62 6c 6f 62 20 20 20 20 20 20  esult_blob      
3450: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
3460: 69 2d 3e 72 65 73 75 6c 74 5f 62 6c 6f 62 0a 23  i->result_blob.#
3470: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72  define sqlite3_r
3480: 65 73 75 6c 74 5f 64 6f 75 62 6c 65 20 20 20 20  esult_double    
3490: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
34a0: 69 2d 3e 72 65 73 75 6c 74 5f 64 6f 75 62 6c 65  i->result_double
34b0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
34c0: 5f 72 65 73 75 6c 74 5f 65 72 72 6f 72 20 20 20  _result_error   
34d0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
34e0: 61 70 69 2d 3e 72 65 73 75 6c 74 5f 65 72 72 6f  api->result_erro
34f0: 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  r.#define sqlite
3500: 33 5f 72 65 73 75 6c 74 5f 65 72 72 6f 72 31 36  3_result_error16
3510: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
3520: 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 65 72 72  _api->result_err
3530: 6f 72 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c  or16.#define sql
3540: 69 74 65 33 5f 72 65 73 75 6c 74 5f 69 6e 74 20  ite3_result_int 
3550: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
3560: 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f  te3_api->result_
3570: 69 6e 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  int.#define sqli
3580: 74 65 33 5f 72 65 73 75 6c 74 5f 69 6e 74 36 34  te3_result_int64
3590: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
35a0: 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 69  e3_api->result_i
35b0: 6e 74 36 34 0a 23 64 65 66 69 6e 65 20 73 71 6c  nt64.#define sql
35c0: 69 74 65 33 5f 72 65 73 75 6c 74 5f 6e 75 6c 6c  ite3_result_null
35d0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
35e0: 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f  te3_api->result_
35f0: 6e 75 6c 6c 0a 23 64 65 66 69 6e 65 20 73 71 6c  null.#define sql
3600: 69 74 65 33 5f 72 65 73 75 6c 74 5f 74 65 78 74  ite3_result_text
3610: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
3620: 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f  te3_api->result_
3630: 74 65 78 74 0a 23 64 65 66 69 6e 65 20 73 71 6c  text.#define sql
3640: 69 74 65 33 5f 72 65 73 75 6c 74 5f 74 65 78 74  ite3_result_text
3650: 31 36 20 20 20 20 20 20 20 20 20 20 73 71 6c 69  16          sqli
3660: 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f  te3_api->result_
3670: 74 65 78 74 31 36 0a 23 64 65 66 69 6e 65 20 73  text16.#define s
3680: 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 74 65  qlite3_result_te
3690: 78 74 31 36 62 65 20 20 20 20 20 20 20 20 73 71  xt16be        sq
36a0: 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c  lite3_api->resul
36b0: 74 5f 74 65 78 74 31 36 62 65 0a 23 64 65 66 69  t_text16be.#defi
36c0: 6e 65 20 73 71 6c 69 74 65 33 5f 72 65 73 75 6c  ne sqlite3_resul
36d0: 74 5f 74 65 78 74 31 36 6c 65 20 20 20 20 20 20  t_text16le      
36e0: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72    sqlite3_api->r
36f0: 65 73 75 6c 74 5f 74 65 78 74 31 36 6c 65 0a 23  esult_text16le.#
3700: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72  define sqlite3_r
3710: 65 73 75 6c 74 5f 76 61 6c 75 65 20 20 20 20 20  esult_value     
3720: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
3730: 69 2d 3e 72 65 73 75 6c 74 5f 76 61 6c 75 65 0a  i->result_value.
3740: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
3750: 72 6f 6c 6c 62 61 63 6b 5f 68 6f 6f 6b 20 20 20  rollback_hook   
3760: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
3770: 70 69 2d 3e 72 6f 6c 6c 62 61 63 6b 5f 68 6f 6f  pi->rollback_hoo
3780: 6b 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  k.#define sqlite
3790: 33 5f 73 65 74 5f 61 75 74 68 6f 72 69 7a 65 72  3_set_authorizer
37a0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
37b0: 5f 61 70 69 2d 3e 73 65 74 5f 61 75 74 68 6f 72  _api->set_author
37c0: 69 7a 65 72 0a 23 64 65 66 69 6e 65 20 73 71 6c  izer.#define sql
37d0: 69 74 65 33 5f 73 65 74 5f 61 75 78 64 61 74 61  ite3_set_auxdata
37e0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
37f0: 74 65 33 5f 61 70 69 2d 3e 73 65 74 5f 61 75 78  te3_api->set_aux
3800: 64 61 74 61 0a 23 64 65 66 69 6e 65 20 73 71 6c  data.#define sql
3810: 69 74 65 33 5f 73 6e 70 72 69 6e 74 66 20 20 20  ite3_snprintf   
3820: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
3830: 74 65 33 5f 61 70 69 2d 3e 73 6e 70 72 69 6e 74  te3_api->snprint
3840: 66 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  f.#define sqlite
3850: 33 5f 73 74 65 70 20 20 20 20 20 20 20 20 20 20  3_step          
3860: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
3870: 5f 61 70 69 2d 3e 73 74 65 70 0a 23 64 65 66 69  _api->step.#defi
3880: 6e 65 20 73 71 6c 69 74 65 33 5f 74 61 62 6c 65  ne sqlite3_table
3890: 5f 63 6f 6c 75 6d 6e 5f 6d 65 74 61 64 61 74 61  _column_metadata
38a0: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 74    sqlite3_api->t
38b0: 61 62 6c 65 5f 63 6f 6c 75 6d 6e 5f 6d 65 74 61  able_column_meta
38c0: 64 61 74 61 0a 23 64 65 66 69 6e 65 20 73 71 6c  data.#define sql
38d0: 69 74 65 33 5f 74 68 72 65 61 64 5f 63 6c 65 61  ite3_thread_clea
38e0: 6e 75 70 20 20 20 20 20 20 20 20 20 73 71 6c 69  nup         sqli
38f0: 74 65 33 5f 61 70 69 2d 3e 74 68 72 65 61 64 5f  te3_api->thread_
3900: 63 6c 65 61 6e 75 70 0a 23 64 65 66 69 6e 65 20  cleanup.#define 
3910: 73 71 6c 69 74 65 33 5f 74 6f 74 61 6c 5f 63 68  sqlite3_total_ch
3920: 61 6e 67 65 73 20 20 20 20 20 20 20 20 20 20 73  anges          s
3930: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 74 6f 74 61  qlite3_api->tota
3940: 6c 5f 63 68 61 6e 67 65 73 0a 23 64 65 66 69 6e  l_changes.#defin
3950: 65 20 73 71 6c 69 74 65 33 5f 74 72 61 63 65 20  e sqlite3_trace 
3960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3970: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 74 72   sqlite3_api->tr
3980: 61 63 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ace.#define sqli
3990: 74 65 33 5f 74 72 61 6e 73 66 65 72 5f 62 69 6e  te3_transfer_bin
39a0: 64 69 6e 67 73 20 20 20 20 20 20 73 71 6c 69 74  dings      sqlit
39b0: 65 33 5f 61 70 69 2d 3e 74 72 61 6e 73 66 65 72  e3_api->transfer
39c0: 5f 62 69 6e 64 69 6e 67 73 0a 23 64 65 66 69 6e  _bindings.#defin
39d0: 65 20 73 71 6c 69 74 65 33 5f 75 70 64 61 74 65  e sqlite3_update
39e0: 5f 68 6f 6f 6b 20 20 20 20 20 20 20 20 20 20 20  _hook           
39f0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 75 70   sqlite3_api->up
3a00: 64 61 74 65 5f 68 6f 6f 6b 0a 23 64 65 66 69 6e  date_hook.#defin
3a10: 65 20 73 71 6c 69 74 65 33 5f 75 73 65 72 5f 64  e sqlite3_user_d
3a20: 61 74 61 20 20 20 20 20 20 20 20 20 20 20 20 20  ata             
3a30: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 75 73   sqlite3_api->us
3a40: 65 72 5f 64 61 74 61 0a 23 64 65 66 69 6e 65 20  er_data.#define 
3a50: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 62 6c  sqlite3_value_bl
3a60: 6f 62 20 20 20 20 20 20 20 20 20 20 20 20 20 73  ob             s
3a70: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75  qlite3_api->valu
3a80: 65 5f 62 6c 6f 62 0a 23 64 65 66 69 6e 65 20 73  e_blob.#define s
3a90: 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 62 79 74  qlite3_value_byt
3aa0: 65 73 20 20 20 20 20 20 20 20 20 20 20 20 73 71  es            sq
3ab0: 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65  lite3_api->value
3ac0: 5f 62 79 74 65 73 0a 23 64 65 66 69 6e 65 20 73  _bytes.#define s
3ad0: 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 62 79 74  qlite3_value_byt
3ae0: 65 73 31 36 20 20 20 20 20 20 20 20 20 20 73 71  es16          sq
3af0: 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65  lite3_api->value
3b00: 5f 62 79 74 65 73 31 36 0a 23 64 65 66 69 6e 65  _bytes16.#define
3b10: 20 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 64   sqlite3_value_d
3b20: 6f 75 62 6c 65 20 20 20 20 20 20 20 20 20 20 20  ouble           
3b30: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c  sqlite3_api->val
3b40: 75 65 5f 64 6f 75 62 6c 65 0a 23 64 65 66 69 6e  ue_double.#defin
3b50: 65 20 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f  e sqlite3_value_
3b60: 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20  int             
3b70: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61   sqlite3_api->va
3b80: 6c 75 65 5f 69 6e 74 0a 23 64 65 66 69 6e 65 20  lue_int.#define 
3b90: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 69 6e  sqlite3_value_in
3ba0: 74 36 34 20 20 20 20 20 20 20 20 20 20 20 20 73  t64            s
3bb0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75  qlite3_api->valu
3bc0: 65 5f 69 6e 74 36 34 0a 23 64 65 66 69 6e 65 20  e_int64.#define 
3bd0: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 6e 75  sqlite3_value_nu
3be0: 6d 65 72 69 63 5f 74 79 70 65 20 20 20 20 20 73  meric_type     s
3bf0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75  qlite3_api->valu
3c00: 65 5f 6e 75 6d 65 72 69 63 5f 74 79 70 65 0a 23  e_numeric_type.#
3c10: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76  define sqlite3_v
3c20: 61 6c 75 65 5f 74 65 78 74 20 20 20 20 20 20 20  alue_text       
3c30: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
3c40: 69 2d 3e 76 61 6c 75 65 5f 74 65 78 74 0a 23 64  i->value_text.#d
3c50: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 61  efine sqlite3_va
3c60: 6c 75 65 5f 74 65 78 74 31 36 20 20 20 20 20 20  lue_text16      
3c70: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
3c80: 2d 3e 76 61 6c 75 65 5f 74 65 78 74 31 36 0a 23  ->value_text16.#
3c90: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76  define sqlite3_v
3ca0: 61 6c 75 65 5f 74 65 78 74 31 36 62 65 20 20 20  alue_text16be   
3cb0: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
3cc0: 69 2d 3e 76 61 6c 75 65 5f 74 65 78 74 31 36 62  i->value_text16b
3cd0: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
3ce0: 33 5f 76 61 6c 75 65 5f 74 65 78 74 31 36 6c 65  3_value_text16le
3cf0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
3d00: 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 74 65 78 74  _api->value_text
3d10: 31 36 6c 65 0a 23 64 65 66 69 6e 65 20 73 71 6c  16le.#define sql
3d20: 69 74 65 33 5f 76 61 6c 75 65 5f 74 79 70 65 20  ite3_value_type 
3d30: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
3d40: 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 74  te3_api->value_t
3d50: 79 70 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ype.#define sqli
3d60: 74 65 33 5f 76 6d 70 72 69 6e 74 66 20 20 20 20  te3_vmprintf    
3d70: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
3d80: 65 33 5f 61 70 69 2d 3e 76 6d 70 72 69 6e 74 66  e3_api->vmprintf
3d90: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
3da0: 5f 6f 76 65 72 6c 6f 61 64 5f 66 75 6e 63 74 69  _overload_functi
3db0: 6f 6e 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f  on      sqlite3_
3dc0: 61 70 69 2d 3e 6f 76 65 72 6c 6f 61 64 5f 66 75  api->overload_fu
3dd0: 6e 63 74 69 6f 6e 0a 23 64 65 66 69 6e 65 20 73  nction.#define s
3de0: 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65 5f 76  qlite3_prepare_v
3df0: 32 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71  2             sq
3e00: 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72 65 70 61  lite3_api->prepa
3e10: 72 65 5f 76 32 0a 23 64 65 66 69 6e 65 20 73 71  re_v2.#define sq
3e20: 6c 69 74 65 33 5f 70 72 65 70 61 72 65 31 36 5f  lite3_prepare16_
3e30: 76 32 20 20 20 20 20 20 20 20 20 20 20 73 71 6c  v2           sql
3e40: 69 74 65 33 5f 61 70 69 2d 3e 70 72 65 70 61 72  ite3_api->prepar
3e50: 65 31 36 5f 76 32 0a 23 64 65 66 69 6e 65 20 73  e16_v2.#define s
3e60: 71 6c 69 74 65 33 5f 63 6c 65 61 72 5f 62 69 6e  qlite3_clear_bin
3e70: 64 69 6e 67 73 20 20 20 20 20 20 20 20 20 73 71  dings         sq
3e80: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6c 65 61 72  lite3_api->clear
3e90: 5f 62 69 6e 64 69 6e 67 73 0a 23 65 6e 64 69 66  _bindings.#endif
3ea0: 20 2f 2a 20 53 51 4c 49 54 45 5f 43 4f 52 45 20   /* SQLITE_CORE 
3eb0: 2a 2f 0a 0a 23 64 65 66 69 6e 65 20 53 51 4c 49  */..#define SQLI
3ec0: 54 45 5f 45 58 54 45 4e 53 49 4f 4e 5f 49 4e 49  TE_EXTENSION_INI
3ed0: 54 31 20 20 20 20 20 63 6f 6e 73 74 20 73 71 6c  T1     const sql
3ee0: 69 74 65 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65  ite3_api_routine
3ef0: 73 20 2a 73 71 6c 69 74 65 33 5f 61 70 69 3b 0a  s *sqlite3_api;.
3f00: 23 64 65 66 69 6e 65 20 53 51 4c 49 54 45 5f 45  #define SQLITE_E
3f10: 58 54 45 4e 53 49 4f 4e 5f 49 4e 49 54 32 28 76  XTENSION_INIT2(v
3f20: 29 20 20 73 71 6c 69 74 65 33 5f 61 70 69 20 3d  )  sqlite3_api =
3f30: 20 76 3b 0a 0a 23 65 6e 64 69 66 20 2f 2a 20 5f   v;..#endif /* _
3f40: 53 51 4c 49 54 45 33 45 58 54 5f 48 5f 20 2a 2f  SQLITE3EXT_H_ */
3f50: 0a                                               .