/ Hex Artifact Content
Login

Artifact 1db7d63ab5de4b3e6b83dd03d1a4e64fef6d2a17:


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 32  lite3ext.h,v 1.2
02a0: 35 20 32 30 30 38 2f 31 30 2f 31 32 20 30 30 3a  5 2008/10/12 00:
02b0: 32 37 3a 35 34 20 73 68 61 6e 65 20 45 78 70 20  27:54 shane Exp 
02c0: 24 0a 2a 2f 0a 23 69 66 6e 64 65 66 20 5f 53 51  $.*/.#ifndef _SQ
02d0: 4c 49 54 45 33 45 58 54 5f 48 5f 0a 23 64 65 66  LITE3EXT_H_.#def
02e0: 69 6e 65 20 5f 53 51 4c 49 54 45 33 45 58 54 5f  ine _SQLITE3EXT_
02f0: 48 5f 0a 23 69 6e 63 6c 75 64 65 20 22 73 71 6c  H_.#include "sql
0300: 69 74 65 33 2e 68 22 0a 0a 74 79 70 65 64 65 66  ite3.h"..typedef
0310: 20 73 74 72 75 63 74 20 73 71 6c 69 74 65 33 5f   struct sqlite3_
0320: 61 70 69 5f 72 6f 75 74 69 6e 65 73 20 73 71 6c  api_routines sql
0330: 69 74 65 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65  ite3_api_routine
0340: 73 3b 0a 0a 2f 2a 0a 2a 2a 20 54 68 65 20 66 6f  s;../*.** The fo
0350: 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72  llowing structur
0360: 65 20 68 6f 6c 64 73 20 70 6f 69 6e 74 65 72 73  e holds pointers
0370: 20 74 6f 20 61 6c 6c 20 6f 66 20 74 68 65 20 53   to all of the S
0380: 51 4c 69 74 65 20 41 50 49 0a 2a 2a 20 72 6f 75  QLite API.** rou
0390: 74 69 6e 65 73 2e 0a 2a 2a 0a 2a 2a 20 57 41 52  tines..**.** WAR
03a0: 4e 49 4e 47 3a 20 20 49 6e 20 6f 72 64 65 72 20  NING:  In order 
03b0: 74 6f 20 6d 61 69 6e 74 61 69 6e 20 62 61 63 6b  to maintain back
03c0: 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 69 6c  wards compatibil
03d0: 69 74 79 2c 20 61 64 64 20 6e 65 77 0a 2a 2a 20  ity, add new.** 
03e0: 69 6e 74 65 72 66 61 63 65 73 20 74 6f 20 74 68  interfaces to th
03f0: 65 20 65 6e 64 20 6f 66 20 74 68 69 73 20 73 74  e end of this st
0400: 72 75 63 74 75 72 65 20 6f 6e 6c 79 2e 20 20 49  ructure only.  I
0410: 66 20 79 6f 75 20 69 6e 73 65 72 74 20 6e 65 77  f you insert new
0420: 0a 2a 2a 20 69 6e 74 65 72 66 61 63 65 73 20 69  .** interfaces i
0430: 6e 20 74 68 65 20 6d 69 64 64 6c 65 20 6f 66 20  n the middle of 
0440: 74 68 69 73 20 73 74 72 75 63 74 75 72 65 2c 20  this structure, 
0450: 74 68 65 6e 20 6f 6c 64 65 72 20 64 69 66 66 65  then older diffe
0460: 72 65 6e 74 0a 2a 2a 20 76 65 72 73 69 6f 6e 73  rent.** versions
0470: 20 6f 66 20 53 51 4c 69 74 65 20 77 69 6c 6c 20   of SQLite will 
0480: 6e 6f 74 20 62 65 20 61 62 6c 65 20 74 6f 20 6c  not be able to l
0490: 6f 61 64 20 65 61 63 68 20 6f 74 68 65 72 73 27  oad each others'
04a0: 20 73 68 61 72 65 64 0a 2a 2a 20 6c 69 62 72 61   shared.** libra
04b0: 72 69 65 73 21 0a 2a 2f 0a 73 74 72 75 63 74 20  ries!.*/.struct 
04c0: 73 71 6c 69 74 65 33 5f 61 70 69 5f 72 6f 75 74  sqlite3_api_rout
04d0: 69 6e 65 73 20 7b 0a 20 20 76 6f 69 64 20 2a 20  ines {.  void * 
04e0: 28 2a 61 67 67 72 65 67 61 74 65 5f 63 6f 6e 74  (*aggregate_cont
04f0: 65 78 74 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e  ext)(sqlite3_con
0500: 74 65 78 74 2a 2c 69 6e 74 20 6e 42 79 74 65 73  text*,int nBytes
0510: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 61 67 67 72  );.  int  (*aggr
0520: 65 67 61 74 65 5f 63 6f 75 6e 74 29 28 73 71 6c  egate_count)(sql
0530: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a  ite3_context*);.
0540: 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f 62 6c    int  (*bind_bl
0550: 6f 62 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74  ob)(sqlite3_stmt
0560: 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20 76 6f 69 64  *,int,const void
0570: 2a 2c 69 6e 74 20 6e 2c 76 6f 69 64 28 2a 29 28  *,int n,void(*)(
0580: 76 6f 69 64 2a 29 29 3b 0a 20 20 69 6e 74 20 20  void*));.  int  
0590: 28 2a 62 69 6e 64 5f 64 6f 75 62 6c 65 29 28 73  (*bind_double)(s
05a0: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74  qlite3_stmt*,int
05b0: 2c 64 6f 75 62 6c 65 29 3b 0a 20 20 69 6e 74 20  ,double);.  int 
05c0: 20 28 2a 62 69 6e 64 5f 69 6e 74 29 28 73 71 6c   (*bind_int)(sql
05d0: 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 69  ite3_stmt*,int,i
05e0: 6e 74 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69  nt);.  int  (*bi
05f0: 6e 64 5f 69 6e 74 36 34 29 28 73 71 6c 69 74 65  nd_int64)(sqlite
0600: 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 73 71 6c 69  3_stmt*,int,sqli
0610: 74 65 5f 69 6e 74 36 34 29 3b 0a 20 20 69 6e 74  te_int64);.  int
0620: 20 20 28 2a 62 69 6e 64 5f 6e 75 6c 6c 29 28 73    (*bind_null)(s
0630: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74  qlite3_stmt*,int
0640: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e 64  );.  int  (*bind
0650: 5f 70 61 72 61 6d 65 74 65 72 5f 63 6f 75 6e 74  _parameter_count
0660: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29  )(sqlite3_stmt*)
0670: 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f  ;.  int  (*bind_
0680: 70 61 72 61 6d 65 74 65 72 5f 69 6e 64 65 78 29  parameter_index)
0690: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 63  (sqlite3_stmt*,c
06a0: 6f 6e 73 74 20 63 68 61 72 2a 7a 4e 61 6d 65 29  onst char*zName)
06b0: 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a  ;.  const char *
06c0: 20 28 2a 62 69 6e 64 5f 70 61 72 61 6d 65 74 65   (*bind_paramete
06d0: 72 5f 6e 61 6d 65 29 28 73 71 6c 69 74 65 33 5f  r_name)(sqlite3_
06e0: 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 69 6e  stmt*,int);.  in
06f0: 74 20 20 28 2a 62 69 6e 64 5f 74 65 78 74 29 28  t  (*bind_text)(
0700: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0710: 74 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e  t,const char*,in
0720: 74 20 6e 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64  t n,void(*)(void
0730: 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69  *));.  int  (*bi
0740: 6e 64 5f 74 65 78 74 31 36 29 28 73 71 6c 69 74  nd_text16)(sqlit
0750: 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 63 6f 6e  e3_stmt*,int,con
0760: 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69  st void*,int,voi
0770: 64 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20  d(*)(void*));.  
0780: 69 6e 74 20 20 28 2a 62 69 6e 64 5f 76 61 6c 75  int  (*bind_valu
0790: 65 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  e)(sqlite3_stmt*
07a0: 2c 69 6e 74 2c 63 6f 6e 73 74 20 73 71 6c 69 74  ,int,const sqlit
07b0: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e  e3_value*);.  in
07c0: 74 20 20 28 2a 62 75 73 79 5f 68 61 6e 64 6c 65  t  (*busy_handle
07d0: 72 29 28 73 71 6c 69 74 65 33 2a 2c 69 6e 74 28  r)(sqlite3*,int(
07e0: 2a 29 28 76 6f 69 64 2a 2c 69 6e 74 29 2c 76 6f  *)(void*,int),vo
07f0: 69 64 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62  id*);.  int  (*b
0800: 75 73 79 5f 74 69 6d 65 6f 75 74 29 28 73 71 6c  usy_timeout)(sql
0810: 69 74 65 33 2a 2c 69 6e 74 20 6d 73 29 3b 0a 20  ite3*,int ms);. 
0820: 20 69 6e 74 20 20 28 2a 63 68 61 6e 67 65 73 29   int  (*changes)
0830: 28 73 71 6c 69 74 65 33 2a 29 3b 0a 20 20 69 6e  (sqlite3*);.  in
0840: 74 20 20 28 2a 63 6c 6f 73 65 29 28 73 71 6c 69  t  (*close)(sqli
0850: 74 65 33 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a  te3*);.  int  (*
0860: 63 6f 6c 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64  collation_needed
0870: 29 28 73 71 6c 69 74 65 33 2a 2c 76 6f 69 64 2a  )(sqlite3*,void*
0880: 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 2c 73  ,void(*)(void*,s
0890: 71 6c 69 74 65 33 2a 2c 69 6e 74 20 65 54 65 78  qlite3*,int eTex
08a0: 74 52 65 70 2c 63 6f 6e 73 74 20 63 68 61 72 2a  tRep,const char*
08b0: 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c  ));.  int  (*col
08c0: 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64 31 36 29  lation_needed16)
08d0: 28 73 71 6c 69 74 65 33 2a 2c 76 6f 69 64 2a 2c  (sqlite3*,void*,
08e0: 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 2c 73 71  void(*)(void*,sq
08f0: 6c 69 74 65 33 2a 2c 69 6e 74 20 65 54 65 78 74  lite3*,int eText
0900: 52 65 70 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 29  Rep,const void*)
0910: 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20  );.  const void 
0920: 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 62 6c 6f 62 29  * (*column_blob)
0930: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69  (sqlite3_stmt*,i
0940: 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 69 6e 74 20  nt iCol);.  int 
0950: 20 28 2a 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 29   (*column_bytes)
0960: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69  (sqlite3_stmt*,i
0970: 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 69 6e 74 20  nt iCol);.  int 
0980: 20 28 2a 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 31   (*column_bytes1
0990: 36 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  6)(sqlite3_stmt*
09a0: 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 69 6e  ,int iCol);.  in
09b0: 74 20 20 28 2a 63 6f 6c 75 6d 6e 5f 63 6f 75 6e  t  (*column_coun
09c0: 74 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  t)(sqlite3_stmt*
09d0: 70 53 74 6d 74 29 3b 0a 20 20 63 6f 6e 73 74 20  pStmt);.  const 
09e0: 63 68 61 72 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f  char * (*column_
09f0: 64 61 74 61 62 61 73 65 5f 6e 61 6d 65 29 28 73  database_name)(s
0a00: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74  qlite3_stmt*,int
0a10: 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20  );.  const void 
0a20: 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 64 61 74 61 62  * (*column_datab
0a30: 61 73 65 5f 6e 61 6d 65 31 36 29 28 73 71 6c 69  ase_name16)(sqli
0a40: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a  te3_stmt*,int);.
0a50: 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28    const char * (
0a60: 2a 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65  *column_decltype
0a70: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c  )(sqlite3_stmt*,
0a80: 69 6e 74 20 69 29 3b 0a 20 20 63 6f 6e 73 74 20  int i);.  const 
0a90: 76 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f  void * (*column_
0aa0: 64 65 63 6c 74 79 70 65 31 36 29 28 73 71 6c 69  decltype16)(sqli
0ab0: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a  te3_stmt*,int);.
0ac0: 20 20 64 6f 75 62 6c 65 20 20 28 2a 63 6f 6c 75    double  (*colu
0ad0: 6d 6e 5f 64 6f 75 62 6c 65 29 28 73 71 6c 69 74  mn_double)(sqlit
0ae0: 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f  e3_stmt*,int iCo
0af0: 6c 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c  l);.  int  (*col
0b00: 75 6d 6e 5f 69 6e 74 29 28 73 71 6c 69 74 65 33  umn_int)(sqlite3
0b10: 5f 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29  _stmt*,int iCol)
0b20: 3b 0a 20 20 73 71 6c 69 74 65 5f 69 6e 74 36 34  ;.  sqlite_int64
0b30: 20 20 28 2a 63 6f 6c 75 6d 6e 5f 69 6e 74 36 34    (*column_int64
0b40: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c  )(sqlite3_stmt*,
0b50: 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 63 6f 6e  int iCol);.  con
0b60: 73 74 20 63 68 61 72 20 2a 20 28 2a 63 6f 6c 75  st char * (*colu
0b70: 6d 6e 5f 6e 61 6d 65 29 28 73 71 6c 69 74 65 33  mn_name)(sqlite3
0b80: 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63  _stmt*,int);.  c
0b90: 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f  onst void * (*co
0ba0: 6c 75 6d 6e 5f 6e 61 6d 65 31 36 29 28 73 71 6c  lumn_name16)(sql
0bb0: 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b  ite3_stmt*,int);
0bc0: 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20  .  const char * 
0bd0: 28 2a 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f  (*column_origin_
0be0: 6e 61 6d 65 29 28 73 71 6c 69 74 65 33 5f 73 74  name)(sqlite3_st
0bf0: 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73  mt*,int);.  cons
0c00: 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d  t void * (*colum
0c10: 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65 31 36 29  n_origin_name16)
0c20: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69  (sqlite3_stmt*,i
0c30: 6e 74 29 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61  nt);.  const cha
0c40: 72 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 74 61 62  r * (*column_tab
0c50: 6c 65 5f 6e 61 6d 65 29 28 73 71 6c 69 74 65 33  le_name)(sqlite3
0c60: 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63  _stmt*,int);.  c
0c70: 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f  onst void * (*co
0c80: 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 31  lumn_table_name1
0c90: 36 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  6)(sqlite3_stmt*
0ca0: 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73 74 20 75  ,int);.  const u
0cb0: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 20 28  nsigned char * (
0cc0: 2a 63 6f 6c 75 6d 6e 5f 74 65 78 74 29 28 73 71  *column_text)(sq
0cd0: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20  lite3_stmt*,int 
0ce0: 69 43 6f 6c 29 3b 0a 20 20 63 6f 6e 73 74 20 76  iCol);.  const v
0cf0: 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 74  oid * (*column_t
0d00: 65 78 74 31 36 29 28 73 71 6c 69 74 65 33 5f 73  ext16)(sqlite3_s
0d10: 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a  tmt*,int iCol);.
0d20: 20 20 69 6e 74 20 20 28 2a 63 6f 6c 75 6d 6e 5f    int  (*column_
0d30: 74 79 70 65 29 28 73 71 6c 69 74 65 33 5f 73 74  type)(sqlite3_st
0d40: 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20  mt*,int iCol);. 
0d50: 20 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 20   sqlite3_value* 
0d60: 28 2a 63 6f 6c 75 6d 6e 5f 76 61 6c 75 65 29 28  (*column_value)(
0d70: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0d80: 74 20 69 43 6f 6c 29 3b 0a 20 20 76 6f 69 64 20  t iCol);.  void 
0d90: 2a 20 28 2a 63 6f 6d 6d 69 74 5f 68 6f 6f 6b 29  * (*commit_hook)
0da0: 28 73 71 6c 69 74 65 33 2a 2c 69 6e 74 28 2a 29  (sqlite3*,int(*)
0db0: 28 76 6f 69 64 2a 29 2c 76 6f 69 64 2a 29 3b 0a  (void*),void*);.
0dc0: 20 20 69 6e 74 20 20 28 2a 63 6f 6d 70 6c 65 74    int  (*complet
0dd0: 65 29 28 63 6f 6e 73 74 20 63 68 61 72 2a 73 71  e)(const char*sq
0de0: 6c 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6d  l);.  int  (*com
0df0: 70 6c 65 74 65 31 36 29 28 63 6f 6e 73 74 20 76  plete16)(const v
0e00: 6f 69 64 2a 73 71 6c 29 3b 0a 20 20 69 6e 74 20  oid*sql);.  int 
0e10: 20 28 2a 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74   (*create_collat
0e20: 69 6f 6e 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f  ion)(sqlite3*,co
0e30: 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74 2c 76 6f  nst char*,int,vo
0e40: 69 64 2a 2c 69 6e 74 28 2a 29 28 76 6f 69 64 2a  id*,int(*)(void*
0e50: 2c 69 6e 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a  ,int,const void*
0e60: 2c 69 6e 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a  ,int,const void*
0e70: 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 72 65  ));.  int  (*cre
0e80: 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 31 36 29  ate_collation16)
0e90: 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20  (sqlite3*,const 
0ea0: 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64 2a 2c  void*,int,void*,
0eb0: 69 6e 74 28 2a 29 28 76 6f 69 64 2a 2c 69 6e 74  int(*)(void*,int
0ec0: 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74  ,const void*,int
0ed0: 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 29 29 3b 0a  ,const void*));.
0ee0: 20 20 69 6e 74 20 20 28 2a 63 72 65 61 74 65 5f    int  (*create_
0ef0: 66 75 6e 63 74 69 6f 6e 29 28 73 71 6c 69 74 65  function)(sqlite
0f00: 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69  3*,const char*,i
0f10: 6e 74 2c 69 6e 74 2c 76 6f 69 64 2a 2c 76 6f 69  nt,int,void*,voi
0f20: 64 20 28 2a 78 46 75 6e 63 29 28 73 71 6c 69 74  d (*xFunc)(sqlit
0f30: 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 2c  e3_context*,int,
0f40: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 2a 29  sqlite3_value**)
0f50: 2c 76 6f 69 64 20 28 2a 78 53 74 65 70 29 28 73  ,void (*xStep)(s
0f60: 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c  qlite3_context*,
0f70: 69 6e 74 2c 73 71 6c 69 74 65 33 5f 76 61 6c 75  int,sqlite3_valu
0f80: 65 2a 2a 29 2c 76 6f 69 64 20 28 2a 78 46 69 6e  e**),void (*xFin
0f90: 61 6c 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74  al)(sqlite3_cont
0fa0: 65 78 74 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28  ext*));.  int  (
0fb0: 2a 63 72 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e  *create_function
0fc0: 31 36 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e  16)(sqlite3*,con
0fd0: 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 69 6e 74  st void*,int,int
0fe0: 2c 76 6f 69 64 2a 2c 76 6f 69 64 20 28 2a 78 46  ,void*,void (*xF
0ff0: 75 6e 63 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e  unc)(sqlite3_con
1000: 74 65 78 74 2a 2c 69 6e 74 2c 73 71 6c 69 74 65  text*,int,sqlite
1010: 33 5f 76 61 6c 75 65 2a 2a 29 2c 76 6f 69 64 20  3_value**),void 
1020: 28 2a 78 53 74 65 70 29 28 73 71 6c 69 74 65 33  (*xStep)(sqlite3
1030: 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 2c 73 71  _context*,int,sq
1040: 6c 69 74 65 33 5f 76 61 6c 75 65 2a 2a 29 2c 76  lite3_value**),v
1050: 6f 69 64 20 28 2a 78 46 69 6e 61 6c 29 28 73 71  oid (*xFinal)(sq
1060: 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 29 29  lite3_context*))
1070: 3b 0a 20 20 69 6e 74 20 28 2a 63 72 65 61 74 65  ;.  int (*create
1080: 5f 6d 6f 64 75 6c 65 29 28 73 71 6c 69 74 65 33  _module)(sqlite3
1090: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f  *,const char*,co
10a0: 6e 73 74 20 73 71 6c 69 74 65 33 5f 6d 6f 64 75  nst sqlite3_modu
10b0: 6c 65 2a 2c 76 6f 69 64 2a 29 3b 0a 20 20 69 6e  le*,void*);.  in
10c0: 74 20 20 28 2a 64 61 74 61 5f 63 6f 75 6e 74 29  t  (*data_count)
10d0: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 70 53  (sqlite3_stmt*pS
10e0: 74 6d 74 29 3b 0a 20 20 73 71 6c 69 74 65 33 20  tmt);.  sqlite3 
10f0: 2a 20 28 2a 64 62 5f 68 61 6e 64 6c 65 29 28 73  * (*db_handle)(s
1100: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20  qlite3_stmt*);. 
1110: 20 69 6e 74 20 28 2a 64 65 63 6c 61 72 65 5f 76   int (*declare_v
1120: 74 61 62 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f  tab)(sqlite3*,co
1130: 6e 73 74 20 63 68 61 72 2a 29 3b 0a 20 20 69 6e  nst char*);.  in
1140: 74 20 20 28 2a 65 6e 61 62 6c 65 5f 73 68 61 72  t  (*enable_shar
1150: 65 64 5f 63 61 63 68 65 29 28 69 6e 74 29 3b 0a  ed_cache)(int);.
1160: 20 20 69 6e 74 20 20 28 2a 65 72 72 63 6f 64 65    int  (*errcode
1170: 29 28 73 71 6c 69 74 65 33 2a 64 62 29 3b 0a 20  )(sqlite3*db);. 
1180: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28 2a   const char * (*
1190: 65 72 72 6d 73 67 29 28 73 71 6c 69 74 65 33 2a  errmsg)(sqlite3*
11a0: 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20  );.  const void 
11b0: 2a 20 28 2a 65 72 72 6d 73 67 31 36 29 28 73 71  * (*errmsg16)(sq
11c0: 6c 69 74 65 33 2a 29 3b 0a 20 20 69 6e 74 20 20  lite3*);.  int  
11d0: 28 2a 65 78 65 63 29 28 73 71 6c 69 74 65 33 2a  (*exec)(sqlite3*
11e0: 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 73 71 6c  ,const char*,sql
11f0: 69 74 65 33 5f 63 61 6c 6c 62 61 63 6b 2c 76 6f  ite3_callback,vo
1200: 69 64 2a 2c 63 68 61 72 2a 2a 29 3b 0a 20 20 69  id*,char**);.  i
1210: 6e 74 20 20 28 2a 65 78 70 69 72 65 64 29 28 73  nt  (*expired)(s
1220: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20  qlite3_stmt*);. 
1230: 20 69 6e 74 20 20 28 2a 66 69 6e 61 6c 69 7a 65   int  (*finalize
1240: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 70  )(sqlite3_stmt*p
1250: 53 74 6d 74 29 3b 0a 20 20 76 6f 69 64 20 20 28  Stmt);.  void  (
1260: 2a 66 72 65 65 29 28 76 6f 69 64 2a 29 3b 0a 20  *free)(void*);. 
1270: 20 76 6f 69 64 20 20 28 2a 66 72 65 65 5f 74 61   void  (*free_ta
1280: 62 6c 65 29 28 63 68 61 72 2a 2a 72 65 73 75 6c  ble)(char**resul
1290: 74 29 3b 0a 20 20 69 6e 74 20 20 28 2a 67 65 74  t);.  int  (*get
12a0: 5f 61 75 74 6f 63 6f 6d 6d 69 74 29 28 73 71 6c  _autocommit)(sql
12b0: 69 74 65 33 2a 29 3b 0a 20 20 76 6f 69 64 20 2a  ite3*);.  void *
12c0: 20 28 2a 67 65 74 5f 61 75 78 64 61 74 61 29 28   (*get_auxdata)(
12d0: 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a  sqlite3_context*
12e0: 2c 69 6e 74 29 3b 0a 20 20 69 6e 74 20 20 28 2a  ,int);.  int  (*
12f0: 67 65 74 5f 74 61 62 6c 65 29 28 73 71 6c 69 74  get_table)(sqlit
1300: 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c  e3*,const char*,
1310: 63 68 61 72 2a 2a 2a 2c 69 6e 74 2a 2c 69 6e 74  char***,int*,int
1320: 2a 2c 63 68 61 72 2a 2a 29 3b 0a 20 20 69 6e 74  *,char**);.  int
1330: 20 20 28 2a 67 6c 6f 62 61 6c 5f 72 65 63 6f 76    (*global_recov
1340: 65 72 29 28 76 6f 69 64 29 3b 0a 20 20 76 6f 69  er)(void);.  voi
1350: 64 20 20 28 2a 69 6e 74 65 72 72 75 70 74 78 29  d  (*interruptx)
1360: 28 73 71 6c 69 74 65 33 2a 29 3b 0a 20 20 73 71  (sqlite3*);.  sq
1370: 6c 69 74 65 5f 69 6e 74 36 34 20 20 28 2a 6c 61  lite_int64  (*la
1380: 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 29  st_insert_rowid)
1390: 28 73 71 6c 69 74 65 33 2a 29 3b 0a 20 20 63 6f  (sqlite3*);.  co
13a0: 6e 73 74 20 63 68 61 72 20 2a 20 28 2a 6c 69 62  nst char * (*lib
13b0: 76 65 72 73 69 6f 6e 29 28 76 6f 69 64 29 3b 0a  version)(void);.
13c0: 20 20 69 6e 74 20 20 28 2a 6c 69 62 76 65 72 73    int  (*libvers
13d0: 69 6f 6e 5f 6e 75 6d 62 65 72 29 28 76 6f 69 64  ion_number)(void
13e0: 29 3b 0a 20 20 76 6f 69 64 20 2a 28 2a 6d 61 6c  );.  void *(*mal
13f0: 6c 6f 63 29 28 69 6e 74 29 3b 0a 20 20 63 68 61  loc)(int);.  cha
1400: 72 20 2a 20 28 2a 6d 70 72 69 6e 74 66 29 28 63  r * (*mprintf)(c
1410: 6f 6e 73 74 20 63 68 61 72 2a 2c 2e 2e 2e 29 3b  onst char*,...);
1420: 0a 20 20 69 6e 74 20 20 28 2a 6f 70 65 6e 29 28  .  int  (*open)(
1430: 63 6f 6e 73 74 20 63 68 61 72 2a 2c 73 71 6c 69  const char*,sqli
1440: 74 65 33 2a 2a 29 3b 0a 20 20 69 6e 74 20 20 28  te3**);.  int  (
1450: 2a 6f 70 65 6e 31 36 29 28 63 6f 6e 73 74 20 76  *open16)(const v
1460: 6f 69 64 2a 2c 73 71 6c 69 74 65 33 2a 2a 29 3b  oid*,sqlite3**);
1470: 0a 20 20 69 6e 74 20 20 28 2a 70 72 65 70 61 72  .  int  (*prepar
1480: 65 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73  e)(sqlite3*,cons
1490: 74 20 63 68 61 72 2a 2c 69 6e 74 2c 73 71 6c 69  t char*,int,sqli
14a0: 74 65 33 5f 73 74 6d 74 2a 2a 2c 63 6f 6e 73 74  te3_stmt**,const
14b0: 20 63 68 61 72 2a 2a 29 3b 0a 20 20 69 6e 74 20   char**);.  int 
14c0: 20 28 2a 70 72 65 70 61 72 65 31 36 29 28 73 71   (*prepare16)(sq
14d0: 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 76 6f 69  lite3*,const voi
14e0: 64 2a 2c 69 6e 74 2c 73 71 6c 69 74 65 33 5f 73  d*,int,sqlite3_s
14f0: 74 6d 74 2a 2a 2c 63 6f 6e 73 74 20 76 6f 69 64  tmt**,const void
1500: 2a 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a  **);.  void * (*
1510: 70 72 6f 66 69 6c 65 29 28 73 71 6c 69 74 65 33  profile)(sqlite3
1520: 2a 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 2c  *,void(*)(void*,
1530: 63 6f 6e 73 74 20 63 68 61 72 2a 2c 73 71 6c 69  const char*,sqli
1540: 74 65 5f 75 69 6e 74 36 34 29 2c 76 6f 69 64 2a  te_uint64),void*
1550: 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 70 72 6f  );.  void  (*pro
1560: 67 72 65 73 73 5f 68 61 6e 64 6c 65 72 29 28 73  gress_handler)(s
1570: 71 6c 69 74 65 33 2a 2c 69 6e 74 2c 69 6e 74 28  qlite3*,int,int(
1580: 2a 29 28 76 6f 69 64 2a 29 2c 76 6f 69 64 2a 29  *)(void*),void*)
1590: 3b 0a 20 20 76 6f 69 64 20 2a 28 2a 72 65 61 6c  ;.  void *(*real
15a0: 6c 6f 63 29 28 76 6f 69 64 2a 2c 69 6e 74 29 3b  loc)(void*,int);
15b0: 0a 20 20 69 6e 74 20 20 28 2a 72 65 73 65 74 29  .  int  (*reset)
15c0: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 70 53  (sqlite3_stmt*pS
15d0: 74 6d 74 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a  tmt);.  void  (*
15e0: 72 65 73 75 6c 74 5f 62 6c 6f 62 29 28 73 71 6c  result_blob)(sql
15f0: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f  ite3_context*,co
1600: 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f  nst void*,int,vo
1610: 69 64 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20  id(*)(void*));. 
1620: 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f   void  (*result_
1630: 64 6f 75 62 6c 65 29 28 73 71 6c 69 74 65 33 5f  double)(sqlite3_
1640: 63 6f 6e 74 65 78 74 2a 2c 64 6f 75 62 6c 65 29  context*,double)
1650: 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75  ;.  void  (*resu
1660: 6c 74 5f 65 72 72 6f 72 29 28 73 71 6c 69 74 65  lt_error)(sqlite
1670: 33 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74  3_context*,const
1680: 20 63 68 61 72 2a 2c 69 6e 74 29 3b 0a 20 20 76   char*,int);.  v
1690: 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f 65 72  oid  (*result_er
16a0: 72 6f 72 31 36 29 28 73 71 6c 69 74 65 33 5f 63  ror16)(sqlite3_c
16b0: 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20 76 6f  ontext*,const vo
16c0: 69 64 2a 2c 69 6e 74 29 3b 0a 20 20 76 6f 69 64  id*,int);.  void
16d0: 20 20 28 2a 72 65 73 75 6c 74 5f 69 6e 74 29 28    (*result_int)(
16e0: 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a  sqlite3_context*
16f0: 2c 69 6e 74 29 3b 0a 20 20 76 6f 69 64 20 20 28  ,int);.  void  (
1700: 2a 72 65 73 75 6c 74 5f 69 6e 74 36 34 29 28 73  *result_int64)(s
1710: 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c  qlite3_context*,
1720: 73 71 6c 69 74 65 5f 69 6e 74 36 34 29 3b 0a 20  sqlite_int64);. 
1730: 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f   void  (*result_
1740: 6e 75 6c 6c 29 28 73 71 6c 69 74 65 33 5f 63 6f  null)(sqlite3_co
1750: 6e 74 65 78 74 2a 29 3b 0a 20 20 76 6f 69 64 20  ntext*);.  void 
1760: 20 28 2a 72 65 73 75 6c 74 5f 74 65 78 74 29 28   (*result_text)(
1770: 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a  sqlite3_context*
1780: 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74  ,const char*,int
1790: 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 29  ,void(*)(void*))
17a0: 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75  ;.  void  (*resu
17b0: 6c 74 5f 74 65 78 74 31 36 29 28 73 71 6c 69 74  lt_text16)(sqlit
17c0: 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73  e3_context*,cons
17d0: 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64  t void*,int,void
17e0: 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 76  (*)(void*));.  v
17f0: 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f 74 65  oid  (*result_te
1800: 78 74 31 36 62 65 29 28 73 71 6c 69 74 65 33 5f  xt16be)(sqlite3_
1810: 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20 76  context*,const v
1820: 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a 29  oid*,int,void(*)
1830: 28 76 6f 69 64 2a 29 29 3b 0a 20 20 76 6f 69 64  (void*));.  void
1840: 20 20 28 2a 72 65 73 75 6c 74 5f 74 65 78 74 31    (*result_text1
1850: 36 6c 65 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e  6le)(sqlite3_con
1860: 74 65 78 74 2a 2c 63 6f 6e 73 74 20 76 6f 69 64  text*,const void
1870: 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a 29 28 76 6f  *,int,void(*)(vo
1880: 69 64 2a 29 29 3b 0a 20 20 76 6f 69 64 20 20 28  id*));.  void  (
1890: 2a 72 65 73 75 6c 74 5f 76 61 6c 75 65 29 28 73  *result_value)(s
18a0: 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c  qlite3_context*,
18b0: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b  sqlite3_value*);
18c0: 0a 20 20 76 6f 69 64 20 2a 20 28 2a 72 6f 6c 6c  .  void * (*roll
18d0: 62 61 63 6b 5f 68 6f 6f 6b 29 28 73 71 6c 69 74  back_hook)(sqlit
18e0: 65 33 2a 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64  e3*,void(*)(void
18f0: 2a 29 2c 76 6f 69 64 2a 29 3b 0a 20 20 69 6e 74  *),void*);.  int
1900: 20 20 28 2a 73 65 74 5f 61 75 74 68 6f 72 69 7a    (*set_authoriz
1910: 65 72 29 28 73 71 6c 69 74 65 33 2a 2c 69 6e 74  er)(sqlite3*,int
1920: 28 2a 29 28 76 6f 69 64 2a 2c 69 6e 74 2c 63 6f  (*)(void*,int,co
1930: 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74 20  nst char*,const 
1940: 63 68 61 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72  char*,const char
1950: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 29 2c 76  *,const char*),v
1960: 6f 69 64 2a 29 3b 0a 20 20 76 6f 69 64 20 20 28  oid*);.  void  (
1970: 2a 73 65 74 5f 61 75 78 64 61 74 61 29 28 73 71  *set_auxdata)(sq
1980: 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69  lite3_context*,i
1990: 6e 74 2c 76 6f 69 64 2a 2c 76 6f 69 64 20 28 2a  nt,void*,void (*
19a0: 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 63 68 61  )(void*));.  cha
19b0: 72 20 2a 20 28 2a 73 6e 70 72 69 6e 74 66 29 28  r * (*snprintf)(
19c0: 69 6e 74 2c 63 68 61 72 2a 2c 63 6f 6e 73 74 20  int,char*,const 
19d0: 63 68 61 72 2a 2c 2e 2e 2e 29 3b 0a 20 20 69 6e  char*,...);.  in
19e0: 74 20 20 28 2a 73 74 65 70 29 28 73 71 6c 69 74  t  (*step)(sqlit
19f0: 65 33 5f 73 74 6d 74 2a 29 3b 0a 20 20 69 6e 74  e3_stmt*);.  int
1a00: 20 20 28 2a 74 61 62 6c 65 5f 63 6f 6c 75 6d 6e    (*table_column
1a10: 5f 6d 65 74 61 64 61 74 61 29 28 73 71 6c 69 74  _metadata)(sqlit
1a20: 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c  e3*,const char*,
1a30: 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73  const char*,cons
1a40: 74 20 63 68 61 72 2a 2c 63 68 61 72 20 63 6f 6e  t char*,char con
1a50: 73 74 2a 2a 2c 63 68 61 72 20 63 6f 6e 73 74 2a  st**,char const*
1a60: 2a 2c 69 6e 74 2a 2c 69 6e 74 2a 2c 69 6e 74 2a  *,int*,int*,int*
1a70: 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 74 68 72  );.  void  (*thr
1a80: 65 61 64 5f 63 6c 65 61 6e 75 70 29 28 76 6f 69  ead_cleanup)(voi
1a90: 64 29 3b 0a 20 20 69 6e 74 20 20 28 2a 74 6f 74  d);.  int  (*tot
1aa0: 61 6c 5f 63 68 61 6e 67 65 73 29 28 73 71 6c 69  al_changes)(sqli
1ab0: 74 65 33 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20  te3*);.  void * 
1ac0: 28 2a 74 72 61 63 65 29 28 73 71 6c 69 74 65 33  (*trace)(sqlite3
1ad0: 2a 2c 76 6f 69 64 28 2a 78 54 72 61 63 65 29 28  *,void(*xTrace)(
1ae0: 76 6f 69 64 2a 2c 63 6f 6e 73 74 20 63 68 61 72  void*,const char
1af0: 2a 29 2c 76 6f 69 64 2a 29 3b 0a 20 20 69 6e 74  *),void*);.  int
1b00: 20 20 28 2a 74 72 61 6e 73 66 65 72 5f 62 69 6e    (*transfer_bin
1b10: 64 69 6e 67 73 29 28 73 71 6c 69 74 65 33 5f 73  dings)(sqlite3_s
1b20: 74 6d 74 2a 2c 73 71 6c 69 74 65 33 5f 73 74 6d  tmt*,sqlite3_stm
1b30: 74 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a  t*);.  void * (*
1b40: 75 70 64 61 74 65 5f 68 6f 6f 6b 29 28 73 71 6c  update_hook)(sql
1b50: 69 74 65 33 2a 2c 76 6f 69 64 28 2a 29 28 76 6f  ite3*,void(*)(vo
1b60: 69 64 2a 2c 69 6e 74 20 2c 63 68 61 72 20 63 6f  id*,int ,char co
1b70: 6e 73 74 2a 2c 63 68 61 72 20 63 6f 6e 73 74 2a  nst*,char const*
1b80: 2c 73 71 6c 69 74 65 5f 69 6e 74 36 34 29 2c 76  ,sqlite_int64),v
1b90: 6f 69 64 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20  oid*);.  void * 
1ba0: 28 2a 75 73 65 72 5f 64 61 74 61 29 28 73 71 6c  (*user_data)(sql
1bb0: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a  ite3_context*);.
1bc0: 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28    const void * (
1bd0: 2a 76 61 6c 75 65 5f 62 6c 6f 62 29 28 73 71 6c  *value_blob)(sql
1be0: 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20  ite3_value*);.  
1bf0: 69 6e 74 20 20 28 2a 76 61 6c 75 65 5f 62 79 74  int  (*value_byt
1c00: 65 73 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75  es)(sqlite3_valu
1c10: 65 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 76 61  e*);.  int  (*va
1c20: 6c 75 65 5f 62 79 74 65 73 31 36 29 28 73 71 6c  lue_bytes16)(sql
1c30: 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20  ite3_value*);.  
1c40: 64 6f 75 62 6c 65 20 20 28 2a 76 61 6c 75 65 5f  double  (*value_
1c50: 64 6f 75 62 6c 65 29 28 73 71 6c 69 74 65 33 5f  double)(sqlite3_
1c60: 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e 74 20 20  value*);.  int  
1c70: 28 2a 76 61 6c 75 65 5f 69 6e 74 29 28 73 71 6c  (*value_int)(sql
1c80: 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20  ite3_value*);.  
1c90: 73 71 6c 69 74 65 5f 69 6e 74 36 34 20 20 28 2a  sqlite_int64  (*
1ca0: 76 61 6c 75 65 5f 69 6e 74 36 34 29 28 73 71 6c  value_int64)(sql
1cb0: 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20  ite3_value*);.  
1cc0: 69 6e 74 20 20 28 2a 76 61 6c 75 65 5f 6e 75 6d  int  (*value_num
1cd0: 65 72 69 63 5f 74 79 70 65 29 28 73 71 6c 69 74  eric_type)(sqlit
1ce0: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 63 6f  e3_value*);.  co
1cf0: 6e 73 74 20 75 6e 73 69 67 6e 65 64 20 63 68 61  nst unsigned cha
1d00: 72 20 2a 20 28 2a 76 61 6c 75 65 5f 74 65 78 74  r * (*value_text
1d10: 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a  )(sqlite3_value*
1d20: 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20  );.  const void 
1d30: 2a 20 28 2a 76 61 6c 75 65 5f 74 65 78 74 31 36  * (*value_text16
1d40: 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a  )(sqlite3_value*
1d50: 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20  );.  const void 
1d60: 2a 20 28 2a 76 61 6c 75 65 5f 74 65 78 74 31 36  * (*value_text16
1d70: 62 65 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75  be)(sqlite3_valu
1d80: 65 2a 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69  e*);.  const voi
1d90: 64 20 2a 20 28 2a 76 61 6c 75 65 5f 74 65 78 74  d * (*value_text
1da0: 31 36 6c 65 29 28 73 71 6c 69 74 65 33 5f 76 61  16le)(sqlite3_va
1db0: 6c 75 65 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a  lue*);.  int  (*
1dc0: 76 61 6c 75 65 5f 74 79 70 65 29 28 73 71 6c 69  value_type)(sqli
1dd0: 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 63  te3_value*);.  c
1de0: 68 61 72 20 2a 28 2a 76 6d 70 72 69 6e 74 66 29  har *(*vmprintf)
1df0: 28 63 6f 6e 73 74 20 63 68 61 72 2a 2c 76 61 5f  (const char*,va_
1e00: 6c 69 73 74 29 3b 0a 20 20 2f 2a 20 41 64 64 65  list);.  /* Adde
1e10: 64 20 3f 3f 3f 20 2a 2f 0a 20 20 69 6e 74 20 28  d ??? */.  int (
1e20: 2a 6f 76 65 72 6c 6f 61 64 5f 66 75 6e 63 74 69  *overload_functi
1e30: 6f 6e 29 28 73 71 6c 69 74 65 33 2a 2c 20 63 6f  on)(sqlite3*, co
1e40: 6e 73 74 20 63 68 61 72 20 2a 7a 46 75 6e 63 4e  nst char *zFuncN
1e50: 61 6d 65 2c 20 69 6e 74 20 6e 41 72 67 29 3b 0a  ame, int nArg);.
1e60: 20 20 2f 2a 20 41 64 64 65 64 20 62 79 20 33 2e    /* Added by 3.
1e70: 33 2e 31 33 20 2a 2f 0a 20 20 69 6e 74 20 28 2a  3.13 */.  int (*
1e80: 70 72 65 70 61 72 65 5f 76 32 29 28 73 71 6c 69  prepare_v2)(sqli
1e90: 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a  te3*,const char*
1ea0: 2c 69 6e 74 2c 73 71 6c 69 74 65 33 5f 73 74 6d  ,int,sqlite3_stm
1eb0: 74 2a 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2a  t**,const char**
1ec0: 29 3b 0a 20 20 69 6e 74 20 28 2a 70 72 65 70 61  );.  int (*prepa
1ed0: 72 65 31 36 5f 76 32 29 28 73 71 6c 69 74 65 33  re16_v2)(sqlite3
1ee0: 2a 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e  *,const void*,in
1ef0: 74 2c 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2a  t,sqlite3_stmt**
1f00: 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2a 29 3b 0a  ,const void**);.
1f10: 20 20 69 6e 74 20 28 2a 63 6c 65 61 72 5f 62 69    int (*clear_bi
1f20: 6e 64 69 6e 67 73 29 28 73 71 6c 69 74 65 33 5f  ndings)(sqlite3_
1f30: 73 74 6d 74 2a 29 3b 0a 20 20 2f 2a 20 41 64 64  stmt*);.  /* Add
1f40: 65 64 20 62 79 20 33 2e 34 2e 31 20 2a 2f 0a 20  ed by 3.4.1 */. 
1f50: 20 69 6e 74 20 28 2a 63 72 65 61 74 65 5f 6d 6f   int (*create_mo
1f60: 64 75 6c 65 5f 76 32 29 28 73 71 6c 69 74 65 33  dule_v2)(sqlite3
1f70: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f  *,const char*,co
1f80: 6e 73 74 20 73 71 6c 69 74 65 33 5f 6d 6f 64 75  nst sqlite3_modu
1f90: 6c 65 2a 2c 76 6f 69 64 2a 2c 76 6f 69 64 20 28  le*,void*,void (
1fa0: 2a 78 44 65 73 74 72 6f 79 29 28 76 6f 69 64 20  *xDestroy)(void 
1fb0: 2a 29 29 3b 0a 20 20 2f 2a 20 41 64 64 65 64 20  *));.  /* Added 
1fc0: 62 79 20 33 2e 35 2e 30 20 2a 2f 0a 20 20 69 6e  by 3.5.0 */.  in
1fd0: 74 20 28 2a 62 69 6e 64 5f 7a 65 72 6f 62 6c 6f  t (*bind_zeroblo
1fe0: 62 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  b)(sqlite3_stmt*
1ff0: 2c 69 6e 74 2c 69 6e 74 29 3b 0a 20 20 69 6e 74  ,int,int);.  int
2000: 20 28 2a 62 6c 6f 62 5f 62 79 74 65 73 29 28 73   (*blob_bytes)(s
2010: 71 6c 69 74 65 33 5f 62 6c 6f 62 2a 29 3b 0a 20  qlite3_blob*);. 
2020: 20 69 6e 74 20 28 2a 62 6c 6f 62 5f 63 6c 6f 73   int (*blob_clos
2030: 65 29 28 73 71 6c 69 74 65 33 5f 62 6c 6f 62 2a  e)(sqlite3_blob*
2040: 29 3b 0a 20 20 69 6e 74 20 28 2a 62 6c 6f 62 5f  );.  int (*blob_
2050: 6f 70 65 6e 29 28 73 71 6c 69 74 65 33 2a 2c 63  open)(sqlite3*,c
2060: 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74  onst char*,const
2070: 20 63 68 61 72 2a 2c 63 6f 6e 73 74 20 63 68 61   char*,const cha
2080: 72 2a 2c 73 71 6c 69 74 65 33 5f 69 6e 74 36 34  r*,sqlite3_int64
2090: 2c 69 6e 74 2c 73 71 6c 69 74 65 33 5f 62 6c 6f  ,int,sqlite3_blo
20a0: 62 2a 2a 29 3b 0a 20 20 69 6e 74 20 28 2a 62 6c  b**);.  int (*bl
20b0: 6f 62 5f 72 65 61 64 29 28 73 71 6c 69 74 65 33  ob_read)(sqlite3
20c0: 5f 62 6c 6f 62 2a 2c 76 6f 69 64 2a 2c 69 6e 74  _blob*,void*,int
20d0: 2c 69 6e 74 29 3b 0a 20 20 69 6e 74 20 28 2a 62  ,int);.  int (*b
20e0: 6c 6f 62 5f 77 72 69 74 65 29 28 73 71 6c 69 74  lob_write)(sqlit
20f0: 65 33 5f 62 6c 6f 62 2a 2c 63 6f 6e 73 74 20 76  e3_blob*,const v
2100: 6f 69 64 2a 2c 69 6e 74 2c 69 6e 74 29 3b 0a 20  oid*,int,int);. 
2110: 20 69 6e 74 20 28 2a 63 72 65 61 74 65 5f 63 6f   int (*create_co
2120: 6c 6c 61 74 69 6f 6e 5f 76 32 29 28 73 71 6c 69  llation_v2)(sqli
2130: 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a  te3*,const char*
2140: 2c 69 6e 74 2c 76 6f 69 64 2a 2c 69 6e 74 28 2a  ,int,void*,int(*
2150: 29 28 76 6f 69 64 2a 2c 69 6e 74 2c 63 6f 6e 73  )(void*,int,cons
2160: 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 63 6f 6e 73  t void*,int,cons
2170: 74 20 76 6f 69 64 2a 29 2c 76 6f 69 64 28 2a 29  t void*),void(*)
2180: 28 76 6f 69 64 2a 29 29 3b 0a 20 20 69 6e 74 20  (void*));.  int 
2190: 28 2a 66 69 6c 65 5f 63 6f 6e 74 72 6f 6c 29 28  (*file_control)(
21a0: 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63  sqlite3*,const c
21b0: 68 61 72 2a 2c 69 6e 74 2c 76 6f 69 64 2a 29 3b  har*,int,void*);
21c0: 0a 20 20 73 71 6c 69 74 65 33 5f 69 6e 74 36 34  .  sqlite3_int64
21d0: 20 28 2a 6d 65 6d 6f 72 79 5f 68 69 67 68 77 61   (*memory_highwa
21e0: 74 65 72 29 28 69 6e 74 29 3b 0a 20 20 73 71 6c  ter)(int);.  sql
21f0: 69 74 65 33 5f 69 6e 74 36 34 20 28 2a 6d 65 6d  ite3_int64 (*mem
2200: 6f 72 79 5f 75 73 65 64 29 28 76 6f 69 64 29 3b  ory_used)(void);
2210: 0a 20 20 73 71 6c 69 74 65 33 5f 6d 75 74 65 78  .  sqlite3_mutex
2220: 20 2a 28 2a 6d 75 74 65 78 5f 61 6c 6c 6f 63 29   *(*mutex_alloc)
2230: 28 69 6e 74 29 3b 0a 20 20 76 6f 69 64 20 28 2a  (int);.  void (*
2240: 6d 75 74 65 78 5f 65 6e 74 65 72 29 28 73 71 6c  mutex_enter)(sql
2250: 69 74 65 33 5f 6d 75 74 65 78 2a 29 3b 0a 20 20  ite3_mutex*);.  
2260: 76 6f 69 64 20 28 2a 6d 75 74 65 78 5f 66 72 65  void (*mutex_fre
2270: 65 29 28 73 71 6c 69 74 65 33 5f 6d 75 74 65 78  e)(sqlite3_mutex
2280: 2a 29 3b 0a 20 20 76 6f 69 64 20 28 2a 6d 75 74  *);.  void (*mut
2290: 65 78 5f 6c 65 61 76 65 29 28 73 71 6c 69 74 65  ex_leave)(sqlite
22a0: 33 5f 6d 75 74 65 78 2a 29 3b 0a 20 20 69 6e 74  3_mutex*);.  int
22b0: 20 28 2a 6d 75 74 65 78 5f 74 72 79 29 28 73 71   (*mutex_try)(sq
22c0: 6c 69 74 65 33 5f 6d 75 74 65 78 2a 29 3b 0a 20  lite3_mutex*);. 
22d0: 20 69 6e 74 20 28 2a 6f 70 65 6e 5f 76 32 29 28   int (*open_v2)(
22e0: 63 6f 6e 73 74 20 63 68 61 72 2a 2c 73 71 6c 69  const char*,sqli
22f0: 74 65 33 2a 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20  te3**,int,const 
2300: 63 68 61 72 2a 29 3b 0a 20 20 69 6e 74 20 28 2a  char*);.  int (*
2310: 72 65 6c 65 61 73 65 5f 6d 65 6d 6f 72 79 29 28  release_memory)(
2320: 69 6e 74 29 3b 0a 20 20 76 6f 69 64 20 28 2a 72  int);.  void (*r
2330: 65 73 75 6c 74 5f 65 72 72 6f 72 5f 6e 6f 6d 65  esult_error_nome
2340: 6d 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65  m)(sqlite3_conte
2350: 78 74 2a 29 3b 0a 20 20 76 6f 69 64 20 28 2a 72  xt*);.  void (*r
2360: 65 73 75 6c 74 5f 65 72 72 6f 72 5f 74 6f 6f 62  esult_error_toob
2370: 69 67 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74  ig)(sqlite3_cont
2380: 65 78 74 2a 29 3b 0a 20 20 69 6e 74 20 28 2a 73  ext*);.  int (*s
2390: 6c 65 65 70 29 28 69 6e 74 29 3b 0a 20 20 76 6f  leep)(int);.  vo
23a0: 69 64 20 28 2a 73 6f 66 74 5f 68 65 61 70 5f 6c  id (*soft_heap_l
23b0: 69 6d 69 74 29 28 69 6e 74 29 3b 0a 20 20 73 71  imit)(int);.  sq
23c0: 6c 69 74 65 33 5f 76 66 73 20 2a 28 2a 76 66 73  lite3_vfs *(*vfs
23d0: 5f 66 69 6e 64 29 28 63 6f 6e 73 74 20 63 68 61  _find)(const cha
23e0: 72 2a 29 3b 0a 20 20 69 6e 74 20 28 2a 76 66 73  r*);.  int (*vfs
23f0: 5f 72 65 67 69 73 74 65 72 29 28 73 71 6c 69 74  _register)(sqlit
2400: 65 33 5f 76 66 73 2a 2c 69 6e 74 29 3b 0a 20 20  e3_vfs*,int);.  
2410: 69 6e 74 20 28 2a 76 66 73 5f 75 6e 72 65 67 69  int (*vfs_unregi
2420: 73 74 65 72 29 28 73 71 6c 69 74 65 33 5f 76 66  ster)(sqlite3_vf
2430: 73 2a 29 3b 0a 20 20 69 6e 74 20 28 2a 78 74 68  s*);.  int (*xth
2440: 72 65 61 64 73 61 66 65 29 28 76 6f 69 64 29 3b  readsafe)(void);
2450: 0a 20 20 76 6f 69 64 20 28 2a 72 65 73 75 6c 74  .  void (*result
2460: 5f 7a 65 72 6f 62 6c 6f 62 29 28 73 71 6c 69 74  _zeroblob)(sqlit
2470: 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 29  e3_context*,int)
2480: 3b 0a 20 20 76 6f 69 64 20 28 2a 72 65 73 75 6c  ;.  void (*resul
2490: 74 5f 65 72 72 6f 72 5f 63 6f 64 65 29 28 73 71  t_error_code)(sq
24a0: 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69  lite3_context*,i
24b0: 6e 74 29 3b 0a 20 20 69 6e 74 20 28 2a 74 65 73  nt);.  int (*tes
24c0: 74 5f 63 6f 6e 74 72 6f 6c 29 28 69 6e 74 2c 20  t_control)(int, 
24d0: 2e 2e 2e 29 3b 0a 20 20 76 6f 69 64 20 28 2a 72  ...);.  void (*r
24e0: 61 6e 64 6f 6d 6e 65 73 73 29 28 69 6e 74 2c 76  andomness)(int,v
24f0: 6f 69 64 2a 29 3b 0a 20 20 73 71 6c 69 74 65 33  oid*);.  sqlite3
2500: 20 2a 28 2a 63 6f 6e 74 65 78 74 5f 64 62 5f 68   *(*context_db_h
2510: 61 6e 64 6c 65 29 28 73 71 6c 69 74 65 33 5f 63  andle)(sqlite3_c
2520: 6f 6e 74 65 78 74 2a 29 3b 0a 20 20 69 6e 74 20  ontext*);.  int 
2530: 28 2a 65 78 74 65 6e 64 65 64 5f 72 65 73 75 6c  (*extended_resul
2540: 74 5f 63 6f 64 65 73 29 28 73 71 6c 69 74 65 33  t_codes)(sqlite3
2550: 2a 2c 69 6e 74 29 3b 0a 20 20 69 6e 74 20 28 2a  *,int);.  int (*
2560: 6c 69 6d 69 74 29 28 73 71 6c 69 74 65 33 2a 2c  limit)(sqlite3*,
2570: 69 6e 74 2c 69 6e 74 29 3b 0a 20 20 73 71 6c 69  int,int);.  sqli
2580: 74 65 33 5f 73 74 6d 74 20 2a 28 2a 6e 65 78 74  te3_stmt *(*next
2590: 5f 73 74 6d 74 29 28 73 71 6c 69 74 65 33 2a 2c  _stmt)(sqlite3*,
25a0: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a  sqlite3_stmt*);.
25b0: 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 28 2a    const char *(*
25c0: 73 71 6c 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  sql)(sqlite3_stm
25d0: 74 2a 29 3b 0a 20 20 69 6e 74 20 28 2a 73 74 61  t*);.  int (*sta
25e0: 74 75 73 29 28 69 6e 74 2c 69 6e 74 2a 2c 69 6e  tus)(int,int*,in
25f0: 74 2a 2c 69 6e 74 29 3b 0a 7d 3b 0a 0a 2f 2a 0a  t*,int);.};../*.
2600: 2a 2a 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  ** The following
2610: 20 6d 61 63 72 6f 73 20 72 65 64 65 66 69 6e 65   macros redefine
2620: 20 74 68 65 20 41 50 49 20 72 6f 75 74 69 6e 65   the API routine
2630: 73 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 61  s so that they a
2640: 72 65 0a 2a 2a 20 72 65 64 69 72 65 63 74 65 64  re.** redirected
2650: 20 74 68 72 6f 75 67 68 74 20 74 68 65 20 67 6c   throught the gl
2660: 6f 62 61 6c 20 73 71 6c 69 74 65 33 5f 61 70 69  obal sqlite3_api
2670: 20 73 74 72 75 63 74 75 72 65 2e 0a 2a 2a 0a 2a   structure..**.*
2680: 2a 20 54 68 69 73 20 68 65 61 64 65 72 20 66 69  * This header fi
2690: 6c 65 20 69 73 20 61 6c 73 6f 20 75 73 65 64 20  le is also used 
26a0: 62 79 20 74 68 65 20 6c 6f 61 64 65 78 74 2e 63  by the loadext.c
26b0: 20 73 6f 75 72 63 65 20 66 69 6c 65 0a 2a 2a 20   source file.** 
26c0: 28 70 61 72 74 20 6f 66 20 74 68 65 20 6d 61 69  (part of the mai
26d0: 6e 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79  n SQLite library
26e0: 20 2d 20 6e 6f 74 20 61 6e 20 65 78 74 65 6e 73   - not an extens
26f0: 69 6f 6e 29 20 73 6f 20 74 68 61 74 0a 2a 2a 20  ion) so that.** 
2700: 69 74 20 63 61 6e 20 67 65 74 20 61 63 63 65 73  it can get acces
2710: 73 20 74 6f 20 74 68 65 20 73 71 6c 69 74 65 33  s to the sqlite3
2720: 5f 61 70 69 5f 72 6f 75 74 69 6e 65 73 20 73 74  _api_routines st
2730: 72 75 63 74 75 72 65 0a 2a 2a 20 64 65 66 69 6e  ructure.** defin
2740: 69 74 69 6f 6e 2e 20 20 42 75 74 20 74 68 65 20  ition.  But the 
2750: 6d 61 69 6e 20 6c 69 62 72 61 72 79 20 64 6f 65  main library doe
2760: 73 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 72 65  s not want to re
2770: 64 65 66 69 6e 65 0a 2a 2a 20 74 68 65 20 41 50  define.** the AP
2780: 49 2e 20 20 53 6f 20 74 68 65 20 72 65 64 65 66  I.  So the redef
2790: 69 6e 69 74 69 6f 6e 20 6d 61 63 72 6f 73 20 61  inition macros a
27a0: 72 65 20 6f 6e 6c 79 20 76 61 6c 69 64 20 69 66  re only valid if
27b0: 20 74 68 65 0a 2a 2a 20 53 51 4c 49 54 45 5f 43   the.** SQLITE_C
27c0: 4f 52 45 20 6d 61 63 72 6f 73 20 69 73 20 75 6e  ORE macros is un
27d0: 64 65 66 69 6e 65 64 2e 0a 2a 2f 0a 23 69 66 6e  defined..*/.#ifn
27e0: 64 65 66 20 53 51 4c 49 54 45 5f 43 4f 52 45 0a  def SQLITE_CORE.
27f0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2800: 61 67 67 72 65 67 61 74 65 5f 63 6f 6e 74 65 78  aggregate_contex
2810: 74 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61  t      sqlite3_a
2820: 70 69 2d 3e 61 67 67 72 65 67 61 74 65 5f 63 6f  pi->aggregate_co
2830: 6e 74 65 78 74 0a 23 69 66 6e 64 65 66 20 53 51  ntext.#ifndef SQ
2840: 4c 49 54 45 5f 4f 4d 49 54 5f 44 45 50 52 45 43  LITE_OMIT_DEPREC
2850: 41 54 45 44 0a 23 64 65 66 69 6e 65 20 73 71 6c  ATED.#define sql
2860: 69 74 65 33 5f 61 67 67 72 65 67 61 74 65 5f 63  ite3_aggregate_c
2870: 6f 75 6e 74 20 20 20 20 20 20 20 20 73 71 6c 69  ount        sqli
2880: 74 65 33 5f 61 70 69 2d 3e 61 67 67 72 65 67 61  te3_api->aggrega
2890: 74 65 5f 63 6f 75 6e 74 0a 23 65 6e 64 69 66 0a  te_count.#endif.
28a0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
28b0: 62 69 6e 64 5f 62 6c 6f 62 20 20 20 20 20 20 20  bind_blob       
28c0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
28d0: 70 69 2d 3e 62 69 6e 64 5f 62 6c 6f 62 0a 23 64  pi->bind_blob.#d
28e0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69  efine sqlite3_bi
28f0: 6e 64 5f 64 6f 75 62 6c 65 20 20 20 20 20 20 20  nd_double       
2900: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2910: 2d 3e 62 69 6e 64 5f 64 6f 75 62 6c 65 0a 23 64  ->bind_double.#d
2920: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69  efine sqlite3_bi
2930: 6e 64 5f 69 6e 74 20 20 20 20 20 20 20 20 20 20  nd_int          
2940: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2950: 2d 3e 62 69 6e 64 5f 69 6e 74 0a 23 64 65 66 69  ->bind_int.#defi
2960: 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f  ne sqlite3_bind_
2970: 69 6e 74 36 34 20 20 20 20 20 20 20 20 20 20 20  int64           
2980: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62    sqlite3_api->b
2990: 69 6e 64 5f 69 6e 74 36 34 0a 23 64 65 66 69 6e  ind_int64.#defin
29a0: 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 6e  e sqlite3_bind_n
29b0: 75 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 20  ull             
29c0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69   sqlite3_api->bi
29d0: 6e 64 5f 6e 75 6c 6c 0a 23 64 65 66 69 6e 65 20  nd_null.#define 
29e0: 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 70 61 72  sqlite3_bind_par
29f0: 61 6d 65 74 65 72 5f 63 6f 75 6e 74 20 20 20 73  ameter_count   s
2a00: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69 6e 64  qlite3_api->bind
2a10: 5f 70 61 72 61 6d 65 74 65 72 5f 63 6f 75 6e 74  _parameter_count
2a20: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2a30: 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f  _bind_parameter_
2a40: 69 6e 64 65 78 20 20 20 73 71 6c 69 74 65 33 5f  index   sqlite3_
2a50: 61 70 69 2d 3e 62 69 6e 64 5f 70 61 72 61 6d 65  api->bind_parame
2a60: 74 65 72 5f 69 6e 64 65 78 0a 23 64 65 66 69 6e  ter_index.#defin
2a70: 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 70  e sqlite3_bind_p
2a80: 61 72 61 6d 65 74 65 72 5f 6e 61 6d 65 20 20 20  arameter_name   
2a90: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69   sqlite3_api->bi
2aa0: 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d  nd_parameter_nam
2ab0: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
2ac0: 33 5f 62 69 6e 64 5f 74 65 78 74 20 20 20 20 20  3_bind_text     
2ad0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
2ae0: 5f 61 70 69 2d 3e 62 69 6e 64 5f 74 65 78 74 0a  _api->bind_text.
2af0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2b00: 62 69 6e 64 5f 74 65 78 74 31 36 20 20 20 20 20  bind_text16     
2b10: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2b20: 70 69 2d 3e 62 69 6e 64 5f 74 65 78 74 31 36 0a  pi->bind_text16.
2b30: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2b40: 62 69 6e 64 5f 76 61 6c 75 65 20 20 20 20 20 20  bind_value      
2b50: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2b60: 70 69 2d 3e 62 69 6e 64 5f 76 61 6c 75 65 0a 23  pi->bind_value.#
2b70: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62  define sqlite3_b
2b80: 75 73 79 5f 68 61 6e 64 6c 65 72 20 20 20 20 20  usy_handler     
2b90: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
2ba0: 69 2d 3e 62 75 73 79 5f 68 61 6e 64 6c 65 72 0a  i->busy_handler.
2bb0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2bc0: 62 75 73 79 5f 74 69 6d 65 6f 75 74 20 20 20 20  busy_timeout    
2bd0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2be0: 70 69 2d 3e 62 75 73 79 5f 74 69 6d 65 6f 75 74  pi->busy_timeout
2bf0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2c00: 5f 63 68 61 6e 67 65 73 20 20 20 20 20 20 20 20  _changes        
2c10: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
2c20: 61 70 69 2d 3e 63 68 61 6e 67 65 73 0a 23 64 65  api->changes.#de
2c30: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6c 6f  fine sqlite3_clo
2c40: 73 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20  se              
2c50: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
2c60: 3e 63 6c 6f 73 65 0a 23 64 65 66 69 6e 65 20 73  >close.#define s
2c70: 71 6c 69 74 65 33 5f 63 6f 6c 6c 61 74 69 6f 6e  qlite3_collation
2c80: 5f 6e 65 65 64 65 64 20 20 20 20 20 20 20 73 71  _needed       sq
2c90: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 6c 61  lite3_api->colla
2ca0: 74 69 6f 6e 5f 6e 65 65 64 65 64 0a 23 64 65 66  tion_needed.#def
2cb0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 6c  ine sqlite3_coll
2cc0: 61 74 69 6f 6e 5f 6e 65 65 64 65 64 31 36 20 20  ation_needed16  
2cd0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2ce0: 63 6f 6c 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64  collation_needed
2cf0: 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  16.#define sqlit
2d00: 65 33 5f 63 6f 6c 75 6d 6e 5f 62 6c 6f 62 20 20  e3_column_blob  
2d10: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
2d20: 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 62 6c  3_api->column_bl
2d30: 6f 62 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  ob.#define sqlit
2d40: 65 33 5f 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 20  e3_column_bytes 
2d50: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
2d60: 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 62 79  3_api->column_by
2d70: 74 65 73 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  tes.#define sqli
2d80: 74 65 33 5f 63 6f 6c 75 6d 6e 5f 62 79 74 65 73  te3_column_bytes
2d90: 31 36 20 20 20 20 20 20 20 20 20 73 71 6c 69 74  16         sqlit
2da0: 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 62  e3_api->column_b
2db0: 79 74 65 73 31 36 0a 23 64 65 66 69 6e 65 20 73  ytes16.#define s
2dc0: 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 63 6f  qlite3_column_co
2dd0: 75 6e 74 20 20 20 20 20 20 20 20 20 20 20 73 71  unt           sq
2de0: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d  lite3_api->colum
2df0: 6e 5f 63 6f 75 6e 74 0a 23 64 65 66 69 6e 65 20  n_count.#define 
2e00: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 64  sqlite3_column_d
2e10: 61 74 61 62 61 73 65 5f 6e 61 6d 65 20 20 20 73  atabase_name   s
2e20: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
2e30: 6d 6e 5f 64 61 74 61 62 61 73 65 5f 6e 61 6d 65  mn_database_name
2e40: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2e50: 5f 63 6f 6c 75 6d 6e 5f 64 61 74 61 62 61 73 65  _column_database
2e60: 5f 6e 61 6d 65 31 36 20 73 71 6c 69 74 65 33 5f  _name16 sqlite3_
2e70: 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 64 61 74 61  api->column_data
2e80: 62 61 73 65 5f 6e 61 6d 65 31 36 0a 23 64 65 66  base_name16.#def
2e90: 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75  ine sqlite3_colu
2ea0: 6d 6e 5f 64 65 63 6c 74 79 70 65 20 20 20 20 20  mn_decltype     
2eb0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2ec0: 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65 0a  column_decltype.
2ed0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2ee0: 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65 31  column_decltype1
2ef0: 36 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61  6      sqlite3_a
2f00: 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74  pi->column_declt
2f10: 79 70 65 31 36 0a 23 64 65 66 69 6e 65 20 73 71  ype16.#define sq
2f20: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 64 6f 75  lite3_column_dou
2f30: 62 6c 65 20 20 20 20 20 20 20 20 20 20 73 71 6c  ble          sql
2f40: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e  ite3_api->column
2f50: 5f 64 6f 75 62 6c 65 0a 23 64 65 66 69 6e 65 20  _double.#define 
2f60: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 69  sqlite3_column_i
2f70: 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 73  nt             s
2f80: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
2f90: 6d 6e 5f 69 6e 74 0a 23 64 65 66 69 6e 65 20 73  mn_int.#define s
2fa0: 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 69 6e  qlite3_column_in
2fb0: 74 36 34 20 20 20 20 20 20 20 20 20 20 20 73 71  t64           sq
2fc0: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d  lite3_api->colum
2fd0: 6e 5f 69 6e 74 36 34 0a 23 64 65 66 69 6e 65 20  n_int64.#define 
2fe0: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6e  sqlite3_column_n
2ff0: 61 6d 65 20 20 20 20 20 20 20 20 20 20 20 20 73  ame            s
3000: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
3010: 6d 6e 5f 6e 61 6d 65 0a 23 64 65 66 69 6e 65 20  mn_name.#define 
3020: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6e  sqlite3_column_n
3030: 61 6d 65 31 36 20 20 20 20 20 20 20 20 20 20 73  ame16          s
3040: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
3050: 6d 6e 5f 6e 61 6d 65 31 36 0a 23 64 65 66 69 6e  mn_name16.#defin
3060: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
3070: 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65 20 20 20 20  _origin_name    
3080: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
3090: 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65  lumn_origin_name
30a0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
30b0: 5f 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e  _column_origin_n
30c0: 61 6d 65 31 36 20 20 20 73 71 6c 69 74 65 33 5f  ame16   sqlite3_
30d0: 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 6f 72 69 67  api->column_orig
30e0: 69 6e 5f 6e 61 6d 65 31 36 0a 23 64 65 66 69 6e  in_name16.#defin
30f0: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
3100: 5f 74 61 62 6c 65 5f 6e 61 6d 65 20 20 20 20 20  _table_name     
3110: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
3120: 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 0a  lumn_table_name.
3130: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
3140: 63 6f 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d  column_table_nam
3150: 65 31 36 20 20 20 20 73 71 6c 69 74 65 33 5f 61  e16    sqlite3_a
3160: 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 74 61 62 6c 65  pi->column_table
3170: 5f 6e 61 6d 65 31 36 0a 23 64 65 66 69 6e 65 20  _name16.#define 
3180: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74  sqlite3_column_t
3190: 65 78 74 20 20 20 20 20 20 20 20 20 20 20 20 73  ext            s
31a0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
31b0: 6d 6e 5f 74 65 78 74 0a 23 64 65 66 69 6e 65 20  mn_text.#define 
31c0: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74  sqlite3_column_t
31d0: 65 78 74 31 36 20 20 20 20 20 20 20 20 20 20 73  ext16          s
31e0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
31f0: 6d 6e 5f 74 65 78 74 31 36 0a 23 64 65 66 69 6e  mn_text16.#defin
3200: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
3210: 5f 74 79 70 65 20 20 20 20 20 20 20 20 20 20 20  _type           
3220: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
3230: 6c 75 6d 6e 5f 74 79 70 65 0a 23 64 65 66 69 6e  lumn_type.#defin
3240: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
3250: 5f 76 61 6c 75 65 20 20 20 20 20 20 20 20 20 20  _value          
3260: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
3270: 6c 75 6d 6e 5f 76 61 6c 75 65 0a 23 64 65 66 69  lumn_value.#defi
3280: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6d 6d 69  ne sqlite3_commi
3290: 74 5f 68 6f 6f 6b 20 20 20 20 20 20 20 20 20 20  t_hook          
32a0: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
32b0: 6f 6d 6d 69 74 5f 68 6f 6f 6b 0a 23 64 65 66 69  ommit_hook.#defi
32c0: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6d 70 6c  ne sqlite3_compl
32d0: 65 74 65 20 20 20 20 20 20 20 20 20 20 20 20 20  ete             
32e0: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
32f0: 6f 6d 70 6c 65 74 65 0a 23 64 65 66 69 6e 65 20  omplete.#define 
3300: 73 71 6c 69 74 65 33 5f 63 6f 6d 70 6c 65 74 65  sqlite3_complete
3310: 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 73  16             s
3320: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6d 70  qlite3_api->comp
3330: 6c 65 74 65 31 36 0a 23 64 65 66 69 6e 65 20 73  lete16.#define s
3340: 71 6c 69 74 65 33 5f 63 72 65 61 74 65 5f 63 6f  qlite3_create_co
3350: 6c 6c 61 74 69 6f 6e 20 20 20 20 20 20 20 73 71  llation       sq
3360: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 72 65 61 74  lite3_api->creat
3370: 65 5f 63 6f 6c 6c 61 74 69 6f 6e 0a 23 64 65 66  e_collation.#def
3380: 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 72 65 61  ine sqlite3_crea
3390: 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 31 36 20 20  te_collation16  
33a0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
33b0: 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e  create_collation
33c0: 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  16.#define sqlit
33d0: 65 33 5f 63 72 65 61 74 65 5f 66 75 6e 63 74 69  e3_create_functi
33e0: 6f 6e 20 20 20 20 20 20 20 20 73 71 6c 69 74 65  on        sqlite
33f0: 33 5f 61 70 69 2d 3e 63 72 65 61 74 65 5f 66 75  3_api->create_fu
3400: 6e 63 74 69 6f 6e 0a 23 64 65 66 69 6e 65 20 73  nction.#define s
3410: 71 6c 69 74 65 33 5f 63 72 65 61 74 65 5f 66 75  qlite3_create_fu
3420: 6e 63 74 69 6f 6e 31 36 20 20 20 20 20 20 73 71  nction16      sq
3430: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 72 65 61 74  lite3_api->creat
3440: 65 5f 66 75 6e 63 74 69 6f 6e 31 36 0a 23 64 65  e_function16.#de
3450: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 72 65  fine sqlite3_cre
3460: 61 74 65 5f 6d 6f 64 75 6c 65 20 20 20 20 20 20  ate_module      
3470: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
3480: 3e 63 72 65 61 74 65 5f 6d 6f 64 75 6c 65 0a 23  >create_module.#
3490: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63  define sqlite3_c
34a0: 72 65 61 74 65 5f 6d 6f 64 75 6c 65 5f 76 32 20  reate_module_v2 
34b0: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
34c0: 69 2d 3e 63 72 65 61 74 65 5f 6d 6f 64 75 6c 65  i->create_module
34d0: 5f 76 32 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  _v2.#define sqli
34e0: 74 65 33 5f 64 61 74 61 5f 63 6f 75 6e 74 20 20  te3_data_count  
34f0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
3500: 65 33 5f 61 70 69 2d 3e 64 61 74 61 5f 63 6f 75  e3_api->data_cou
3510: 6e 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  nt.#define sqlit
3520: 65 33 5f 64 62 5f 68 61 6e 64 6c 65 20 20 20 20  e3_db_handle    
3530: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3540: 33 5f 61 70 69 2d 3e 64 62 5f 68 61 6e 64 6c 65  3_api->db_handle
3550: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
3560: 5f 64 65 63 6c 61 72 65 5f 76 74 61 62 20 20 20  _declare_vtab   
3570: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
3580: 61 70 69 2d 3e 64 65 63 6c 61 72 65 5f 76 74 61  api->declare_vta
3590: 62 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  b.#define sqlite
35a0: 33 5f 65 6e 61 62 6c 65 5f 73 68 61 72 65 64 5f  3_enable_shared_
35b0: 63 61 63 68 65 20 20 20 20 73 71 6c 69 74 65 33  cache    sqlite3
35c0: 5f 61 70 69 2d 3e 65 6e 61 62 6c 65 5f 73 68 61  _api->enable_sha
35d0: 72 65 64 5f 63 61 63 68 65 0a 23 64 65 66 69 6e  red_cache.#defin
35e0: 65 20 73 71 6c 69 74 65 33 5f 65 72 72 63 6f 64  e sqlite3_errcod
35f0: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e               
3600: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 65 72   sqlite3_api->er
3610: 72 63 6f 64 65 0a 23 64 65 66 69 6e 65 20 73 71  rcode.#define sq
3620: 6c 69 74 65 33 5f 65 72 72 6d 73 67 20 20 20 20  lite3_errmsg    
3630: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
3640: 69 74 65 33 5f 61 70 69 2d 3e 65 72 72 6d 73 67  ite3_api->errmsg
3650: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
3660: 5f 65 72 72 6d 73 67 31 36 20 20 20 20 20 20 20  _errmsg16       
3670: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
3680: 61 70 69 2d 3e 65 72 72 6d 73 67 31 36 0a 23 64  api->errmsg16.#d
3690: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 65 78  efine sqlite3_ex
36a0: 65 63 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ec              
36b0: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
36c0: 2d 3e 65 78 65 63 0a 23 69 66 6e 64 65 66 20 53  ->exec.#ifndef S
36d0: 51 4c 49 54 45 5f 4f 4d 49 54 5f 44 45 50 52 45  QLITE_OMIT_DEPRE
36e0: 43 41 54 45 44 0a 23 64 65 66 69 6e 65 20 73 71  CATED.#define sq
36f0: 6c 69 74 65 33 5f 65 78 70 69 72 65 64 20 20 20  lite3_expired   
3700: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
3710: 69 74 65 33 5f 61 70 69 2d 3e 65 78 70 69 72 65  ite3_api->expire
3720: 64 0a 23 65 6e 64 69 66 0a 23 64 65 66 69 6e 65  d.#endif.#define
3730: 20 73 71 6c 69 74 65 33 5f 66 69 6e 61 6c 69 7a   sqlite3_finaliz
3740: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e               
3750: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 66 69 6e  sqlite3_api->fin
3760: 61 6c 69 7a 65 0a 23 64 65 66 69 6e 65 20 73 71  alize.#define sq
3770: 6c 69 74 65 33 5f 66 72 65 65 20 20 20 20 20 20  lite3_free      
3780: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
3790: 69 74 65 33 5f 61 70 69 2d 3e 66 72 65 65 0a 23  ite3_api->free.#
37a0: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 66  define sqlite3_f
37b0: 72 65 65 5f 74 61 62 6c 65 20 20 20 20 20 20 20  ree_table       
37c0: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
37d0: 69 2d 3e 66 72 65 65 5f 74 61 62 6c 65 0a 23 64  i->free_table.#d
37e0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 67 65  efine sqlite3_ge
37f0: 74 5f 61 75 74 6f 63 6f 6d 6d 69 74 20 20 20 20  t_autocommit    
3800: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
3810: 2d 3e 67 65 74 5f 61 75 74 6f 63 6f 6d 6d 69 74  ->get_autocommit
3820: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
3830: 5f 67 65 74 5f 61 75 78 64 61 74 61 20 20 20 20  _get_auxdata    
3840: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
3850: 61 70 69 2d 3e 67 65 74 5f 61 75 78 64 61 74 61  api->get_auxdata
3860: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
3870: 5f 67 65 74 5f 74 61 62 6c 65 20 20 20 20 20 20  _get_table      
3880: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
3890: 61 70 69 2d 3e 67 65 74 5f 74 61 62 6c 65 0a 23  api->get_table.#
38a0: 69 66 6e 64 65 66 20 53 51 4c 49 54 45 5f 4f 4d  ifndef SQLITE_OM
38b0: 49 54 5f 44 45 50 52 45 43 41 54 45 44 0a 23 64  IT_DEPRECATED.#d
38c0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 67 6c  efine sqlite3_gl
38d0: 6f 62 61 6c 5f 72 65 63 6f 76 65 72 20 20 20 20  obal_recover    
38e0: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
38f0: 2d 3e 67 6c 6f 62 61 6c 5f 72 65 63 6f 76 65 72  ->global_recover
3900: 0a 23 65 6e 64 69 66 0a 23 64 65 66 69 6e 65 20  .#endif.#define 
3910: 73 71 6c 69 74 65 33 5f 69 6e 74 65 72 72 75 70  sqlite3_interrup
3920: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73  t              s
3930: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 69 6e 74 65  qlite3_api->inte
3940: 72 72 75 70 74 78 0a 23 64 65 66 69 6e 65 20 73  rruptx.#define s
3950: 71 6c 69 74 65 33 5f 6c 61 73 74 5f 69 6e 73 65  qlite3_last_inse
3960: 72 74 5f 72 6f 77 69 64 20 20 20 20 20 20 73 71  rt_rowid      sq
3970: 6c 69 74 65 33 5f 61 70 69 2d 3e 6c 61 73 74 5f  lite3_api->last_
3980: 69 6e 73 65 72 74 5f 72 6f 77 69 64 0a 23 64 65  insert_rowid.#de
3990: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 6c 69 62  fine sqlite3_lib
39a0: 76 65 72 73 69 6f 6e 20 20 20 20 20 20 20 20 20  version         
39b0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
39c0: 3e 6c 69 62 76 65 72 73 69 6f 6e 0a 23 64 65 66  >libversion.#def
39d0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 6c 69 62 76  ine sqlite3_libv
39e0: 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 20 20 20  ersion_number   
39f0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
3a00: 6c 69 62 76 65 72 73 69 6f 6e 5f 6e 75 6d 62 65  libversion_numbe
3a10: 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  r.#define sqlite
3a20: 33 5f 6d 61 6c 6c 6f 63 20 20 20 20 20 20 20 20  3_malloc        
3a30: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
3a40: 5f 61 70 69 2d 3e 6d 61 6c 6c 6f 63 0a 23 64 65  _api->malloc.#de
3a50: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 6d 70 72  fine sqlite3_mpr
3a60: 69 6e 74 66 20 20 20 20 20 20 20 20 20 20 20 20  intf            
3a70: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
3a80: 3e 6d 70 72 69 6e 74 66 0a 23 64 65 66 69 6e 65  >mprintf.#define
3a90: 20 73 71 6c 69 74 65 33 5f 6f 70 65 6e 20 20 20   sqlite3_open   
3aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3ab0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6f 70 65  sqlite3_api->ope
3ac0: 6e 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  n.#define sqlite
3ad0: 33 5f 6f 70 65 6e 31 36 20 20 20 20 20 20 20 20  3_open16        
3ae0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
3af0: 5f 61 70 69 2d 3e 6f 70 65 6e 31 36 0a 23 64 65  _api->open16.#de
3b00: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 70 72 65  fine sqlite3_pre
3b10: 70 61 72 65 20 20 20 20 20 20 20 20 20 20 20 20  pare            
3b20: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
3b30: 3e 70 72 65 70 61 72 65 0a 23 64 65 66 69 6e 65  >prepare.#define
3b40: 20 73 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65   sqlite3_prepare
3b50: 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20  16              
3b60: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72 65  sqlite3_api->pre
3b70: 70 61 72 65 31 36 0a 23 64 65 66 69 6e 65 20 73  pare16.#define s
3b80: 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65 5f 76  qlite3_prepare_v
3b90: 32 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71  2             sq
3ba0: 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72 65 70 61  lite3_api->prepa
3bb0: 72 65 5f 76 32 0a 23 64 65 66 69 6e 65 20 73 71  re_v2.#define sq
3bc0: 6c 69 74 65 33 5f 70 72 65 70 61 72 65 31 36 5f  lite3_prepare16_
3bd0: 76 32 20 20 20 20 20 20 20 20 20 20 20 73 71 6c  v2           sql
3be0: 69 74 65 33 5f 61 70 69 2d 3e 70 72 65 70 61 72  ite3_api->prepar
3bf0: 65 31 36 5f 76 32 0a 23 64 65 66 69 6e 65 20 73  e16_v2.#define s
3c00: 71 6c 69 74 65 33 5f 70 72 6f 66 69 6c 65 20 20  qlite3_profile  
3c10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71                sq
3c20: 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72 6f 66 69  lite3_api->profi
3c30: 6c 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  le.#define sqlit
3c40: 65 33 5f 70 72 6f 67 72 65 73 73 5f 68 61 6e 64  e3_progress_hand
3c50: 6c 65 72 20 20 20 20 20 20 20 73 71 6c 69 74 65  ler       sqlite
3c60: 33 5f 61 70 69 2d 3e 70 72 6f 67 72 65 73 73 5f  3_api->progress_
3c70: 68 61 6e 64 6c 65 72 0a 23 64 65 66 69 6e 65 20  handler.#define 
3c80: 73 71 6c 69 74 65 33 5f 72 65 61 6c 6c 6f 63 20  sqlite3_realloc 
3c90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73                 s
3ca0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65 61 6c  qlite3_api->real
3cb0: 6c 6f 63 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  loc.#define sqli
3cc0: 74 65 33 5f 72 65 73 65 74 20 20 20 20 20 20 20  te3_reset       
3cd0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
3ce0: 65 33 5f 61 70 69 2d 3e 72 65 73 65 74 0a 23 64  e3_api->reset.#d
3cf0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 65  efine sqlite3_re
3d00: 73 75 6c 74 5f 62 6c 6f 62 20 20 20 20 20 20 20  sult_blob       
3d10: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
3d20: 2d 3e 72 65 73 75 6c 74 5f 62 6c 6f 62 0a 23 64  ->result_blob.#d
3d30: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 65  efine sqlite3_re
3d40: 73 75 6c 74 5f 64 6f 75 62 6c 65 20 20 20 20 20  sult_double     
3d50: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
3d60: 2d 3e 72 65 73 75 6c 74 5f 64 6f 75 62 6c 65 0a  ->result_double.
3d70: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
3d80: 72 65 73 75 6c 74 5f 65 72 72 6f 72 20 20 20 20  result_error    
3d90: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
3da0: 70 69 2d 3e 72 65 73 75 6c 74 5f 65 72 72 6f 72  pi->result_error
3db0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
3dc0: 5f 72 65 73 75 6c 74 5f 65 72 72 6f 72 31 36 20  _result_error16 
3dd0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
3de0: 61 70 69 2d 3e 72 65 73 75 6c 74 5f 65 72 72 6f  api->result_erro
3df0: 72 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  r16.#define sqli
3e00: 74 65 33 5f 72 65 73 75 6c 74 5f 69 6e 74 20 20  te3_result_int  
3e10: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
3e20: 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 69  e3_api->result_i
3e30: 6e 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  nt.#define sqlit
3e40: 65 33 5f 72 65 73 75 6c 74 5f 69 6e 74 36 34 20  e3_result_int64 
3e50: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3e60: 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 69 6e  3_api->result_in
3e70: 74 36 34 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  t64.#define sqli
3e80: 74 65 33 5f 72 65 73 75 6c 74 5f 6e 75 6c 6c 20  te3_result_null 
3e90: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
3ea0: 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 6e  e3_api->result_n
3eb0: 75 6c 6c 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ull.#define sqli
3ec0: 74 65 33 5f 72 65 73 75 6c 74 5f 74 65 78 74 20  te3_result_text 
3ed0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
3ee0: 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 74  e3_api->result_t
3ef0: 65 78 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ext.#define sqli
3f00: 74 65 33 5f 72 65 73 75 6c 74 5f 74 65 78 74 31  te3_result_text1
3f10: 36 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74  6          sqlit
3f20: 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 74  e3_api->result_t
3f30: 65 78 74 31 36 0a 23 64 65 66 69 6e 65 20 73 71  ext16.#define sq
3f40: 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 74 65 78  lite3_result_tex
3f50: 74 31 36 62 65 20 20 20 20 20 20 20 20 73 71 6c  t16be        sql
3f60: 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74  ite3_api->result
3f70: 5f 74 65 78 74 31 36 62 65 0a 23 64 65 66 69 6e  _text16be.#defin
3f80: 65 20 73 71 6c 69 74 65 33 5f 72 65 73 75 6c 74  e sqlite3_result
3f90: 5f 74 65 78 74 31 36 6c 65 20 20 20 20 20 20 20  _text16le       
3fa0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65   sqlite3_api->re
3fb0: 73 75 6c 74 5f 74 65 78 74 31 36 6c 65 0a 23 64  sult_text16le.#d
3fc0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 65  efine sqlite3_re
3fd0: 73 75 6c 74 5f 76 61 6c 75 65 20 20 20 20 20 20  sult_value      
3fe0: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
3ff0: 2d 3e 72 65 73 75 6c 74 5f 76 61 6c 75 65 0a 23  ->result_value.#
4000: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72  define sqlite3_r
4010: 6f 6c 6c 62 61 63 6b 5f 68 6f 6f 6b 20 20 20 20  ollback_hook    
4020: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
4030: 69 2d 3e 72 6f 6c 6c 62 61 63 6b 5f 68 6f 6f 6b  i->rollback_hook
4040: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
4050: 5f 73 65 74 5f 61 75 74 68 6f 72 69 7a 65 72 20  _set_authorizer 
4060: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
4070: 61 70 69 2d 3e 73 65 74 5f 61 75 74 68 6f 72 69  api->set_authori
4080: 7a 65 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  zer.#define sqli
4090: 74 65 33 5f 73 65 74 5f 61 75 78 64 61 74 61 20  te3_set_auxdata 
40a0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
40b0: 65 33 5f 61 70 69 2d 3e 73 65 74 5f 61 75 78 64  e3_api->set_auxd
40c0: 61 74 61 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ata.#define sqli
40d0: 74 65 33 5f 73 6e 70 72 69 6e 74 66 20 20 20 20  te3_snprintf    
40e0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
40f0: 65 33 5f 61 70 69 2d 3e 73 6e 70 72 69 6e 74 66  e3_api->snprintf
4100: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
4110: 5f 73 74 65 70 20 20 20 20 20 20 20 20 20 20 20  _step           
4120: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
4130: 61 70 69 2d 3e 73 74 65 70 0a 23 64 65 66 69 6e  api->step.#defin
4140: 65 20 73 71 6c 69 74 65 33 5f 74 61 62 6c 65 5f  e sqlite3_table_
4150: 63 6f 6c 75 6d 6e 5f 6d 65 74 61 64 61 74 61 20  column_metadata 
4160: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 74 61   sqlite3_api->ta
4170: 62 6c 65 5f 63 6f 6c 75 6d 6e 5f 6d 65 74 61 64  ble_column_metad
4180: 61 74 61 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ata.#define sqli
4190: 74 65 33 5f 74 68 72 65 61 64 5f 63 6c 65 61 6e  te3_thread_clean
41a0: 75 70 20 20 20 20 20 20 20 20 20 73 71 6c 69 74  up         sqlit
41b0: 65 33 5f 61 70 69 2d 3e 74 68 72 65 61 64 5f 63  e3_api->thread_c
41c0: 6c 65 61 6e 75 70 0a 23 64 65 66 69 6e 65 20 73  leanup.#define s
41d0: 71 6c 69 74 65 33 5f 74 6f 74 61 6c 5f 63 68 61  qlite3_total_cha
41e0: 6e 67 65 73 20 20 20 20 20 20 20 20 20 20 73 71  nges          sq
41f0: 6c 69 74 65 33 5f 61 70 69 2d 3e 74 6f 74 61 6c  lite3_api->total
4200: 5f 63 68 61 6e 67 65 73 0a 23 64 65 66 69 6e 65  _changes.#define
4210: 20 73 71 6c 69 74 65 33 5f 74 72 61 63 65 20 20   sqlite3_trace  
4220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4230: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 74 72 61  sqlite3_api->tra
4240: 63 65 0a 23 69 66 6e 64 65 66 20 53 51 4c 49 54  ce.#ifndef SQLIT
4250: 45 5f 4f 4d 49 54 5f 44 45 50 52 45 43 41 54 45  E_OMIT_DEPRECATE
4260: 44 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  D.#define sqlite
4270: 33 5f 74 72 61 6e 73 66 65 72 5f 62 69 6e 64 69  3_transfer_bindi
4280: 6e 67 73 20 20 20 20 20 20 73 71 6c 69 74 65 33  ngs      sqlite3
4290: 5f 61 70 69 2d 3e 74 72 61 6e 73 66 65 72 5f 62  _api->transfer_b
42a0: 69 6e 64 69 6e 67 73 0a 23 65 6e 64 69 66 0a 23  indings.#endif.#
42b0: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 75  define sqlite3_u
42c0: 70 64 61 74 65 5f 68 6f 6f 6b 20 20 20 20 20 20  pdate_hook      
42d0: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
42e0: 69 2d 3e 75 70 64 61 74 65 5f 68 6f 6f 6b 0a 23  i->update_hook.#
42f0: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 75  define sqlite3_u
4300: 73 65 72 5f 64 61 74 61 20 20 20 20 20 20 20 20  ser_data        
4310: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
4320: 69 2d 3e 75 73 65 72 5f 64 61 74 61 0a 23 64 65  i->user_data.#de
4330: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 61 6c  fine sqlite3_val
4340: 75 65 5f 62 6c 6f 62 20 20 20 20 20 20 20 20 20  ue_blob         
4350: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
4360: 3e 76 61 6c 75 65 5f 62 6c 6f 62 0a 23 64 65 66  >value_blob.#def
4370: 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 61 6c 75  ine sqlite3_valu
4380: 65 5f 62 79 74 65 73 20 20 20 20 20 20 20 20 20  e_bytes         
4390: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
43a0: 76 61 6c 75 65 5f 62 79 74 65 73 0a 23 64 65 66  value_bytes.#def
43b0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 61 6c 75  ine sqlite3_valu
43c0: 65 5f 62 79 74 65 73 31 36 20 20 20 20 20 20 20  e_bytes16       
43d0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
43e0: 76 61 6c 75 65 5f 62 79 74 65 73 31 36 0a 23 64  value_bytes16.#d
43f0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 61  efine sqlite3_va
4400: 6c 75 65 5f 64 6f 75 62 6c 65 20 20 20 20 20 20  lue_double      
4410: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
4420: 2d 3e 76 61 6c 75 65 5f 64 6f 75 62 6c 65 0a 23  ->value_double.#
4430: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76  define sqlite3_v
4440: 61 6c 75 65 5f 69 6e 74 20 20 20 20 20 20 20 20  alue_int        
4450: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
4460: 69 2d 3e 76 61 6c 75 65 5f 69 6e 74 0a 23 64 65  i->value_int.#de
4470: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 61 6c  fine sqlite3_val
4480: 75 65 5f 69 6e 74 36 34 20 20 20 20 20 20 20 20  ue_int64        
4490: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
44a0: 3e 76 61 6c 75 65 5f 69 6e 74 36 34 0a 23 64 65  >value_int64.#de
44b0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 61 6c  fine sqlite3_val
44c0: 75 65 5f 6e 75 6d 65 72 69 63 5f 74 79 70 65 20  ue_numeric_type 
44d0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
44e0: 3e 76 61 6c 75 65 5f 6e 75 6d 65 72 69 63 5f 74  >value_numeric_t
44f0: 79 70 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ype.#define sqli
4500: 74 65 33 5f 76 61 6c 75 65 5f 74 65 78 74 20 20  te3_value_text  
4510: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
4520: 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 74 65  e3_api->value_te
4530: 78 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  xt.#define sqlit
4540: 65 33 5f 76 61 6c 75 65 5f 74 65 78 74 31 36 20  e3_value_text16 
4550: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
4560: 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 74 65 78  3_api->value_tex
4570: 74 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  t16.#define sqli
4580: 74 65 33 5f 76 61 6c 75 65 5f 74 65 78 74 31 36  te3_value_text16
4590: 62 65 20 20 20 20 20 20 20 20 20 73 71 6c 69 74  be         sqlit
45a0: 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 74 65  e3_api->value_te
45b0: 78 74 31 36 62 65 0a 23 64 65 66 69 6e 65 20 73  xt16be.#define s
45c0: 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 74 65 78  qlite3_value_tex
45d0: 74 31 36 6c 65 20 20 20 20 20 20 20 20 20 73 71  t16le         sq
45e0: 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65  lite3_api->value
45f0: 5f 74 65 78 74 31 36 6c 65 0a 23 64 65 66 69 6e  _text16le.#defin
4600: 65 20 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f  e sqlite3_value_
4610: 74 79 70 65 20 20 20 20 20 20 20 20 20 20 20 20  type            
4620: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61   sqlite3_api->va
4630: 6c 75 65 5f 74 79 70 65 0a 23 64 65 66 69 6e 65  lue_type.#define
4640: 20 73 71 6c 69 74 65 33 5f 76 6d 70 72 69 6e 74   sqlite3_vmprint
4650: 66 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  f               
4660: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 6d 70  sqlite3_api->vmp
4670: 72 69 6e 74 66 0a 23 64 65 66 69 6e 65 20 73 71  rintf.#define sq
4680: 6c 69 74 65 33 5f 6f 76 65 72 6c 6f 61 64 5f 66  lite3_overload_f
4690: 75 6e 63 74 69 6f 6e 20 20 20 20 20 20 73 71 6c  unction      sql
46a0: 69 74 65 33 5f 61 70 69 2d 3e 6f 76 65 72 6c 6f  ite3_api->overlo
46b0: 61 64 5f 66 75 6e 63 74 69 6f 6e 0a 23 64 65 66  ad_function.#def
46c0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 70 72 65 70  ine sqlite3_prep
46d0: 61 72 65 5f 76 32 20 20 20 20 20 20 20 20 20 20  are_v2          
46e0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
46f0: 70 72 65 70 61 72 65 5f 76 32 0a 23 64 65 66 69  prepare_v2.#defi
4700: 6e 65 20 73 71 6c 69 74 65 33 5f 70 72 65 70 61  ne sqlite3_prepa
4710: 72 65 31 36 5f 76 32 20 20 20 20 20 20 20 20 20  re16_v2         
4720: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 70    sqlite3_api->p
4730: 72 65 70 61 72 65 31 36 5f 76 32 0a 23 64 65 66  repare16_v2.#def
4740: 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6c 65 61  ine sqlite3_clea
4750: 72 5f 62 69 6e 64 69 6e 67 73 20 20 20 20 20 20  r_bindings      
4760: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
4770: 63 6c 65 61 72 5f 62 69 6e 64 69 6e 67 73 0a 23  clear_bindings.#
4780: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62  define sqlite3_b
4790: 69 6e 64 5f 7a 65 72 6f 62 6c 6f 62 20 20 20 20  ind_zeroblob    
47a0: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
47b0: 69 2d 3e 62 69 6e 64 5f 7a 65 72 6f 62 6c 6f 62  i->bind_zeroblob
47c0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
47d0: 5f 62 6c 6f 62 5f 62 79 74 65 73 20 20 20 20 20  _blob_bytes     
47e0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
47f0: 61 70 69 2d 3e 62 6c 6f 62 5f 62 79 74 65 73 0a  api->blob_bytes.
4800: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
4810: 62 6c 6f 62 5f 63 6c 6f 73 65 20 20 20 20 20 20  blob_close      
4820: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
4830: 70 69 2d 3e 62 6c 6f 62 5f 63 6c 6f 73 65 0a 23  pi->blob_close.#
4840: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62  define sqlite3_b
4850: 6c 6f 62 5f 6f 70 65 6e 20 20 20 20 20 20 20 20  lob_open        
4860: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
4870: 69 2d 3e 62 6c 6f 62 5f 6f 70 65 6e 0a 23 64 65  i->blob_open.#de
4880: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 6c 6f  fine sqlite3_blo
4890: 62 5f 72 65 61 64 20 20 20 20 20 20 20 20 20 20  b_read          
48a0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
48b0: 3e 62 6c 6f 62 5f 72 65 61 64 0a 23 64 65 66 69  >blob_read.#defi
48c0: 6e 65 20 73 71 6c 69 74 65 33 5f 62 6c 6f 62 5f  ne sqlite3_blob_
48d0: 77 72 69 74 65 20 20 20 20 20 20 20 20 20 20 20  write           
48e0: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62    sqlite3_api->b
48f0: 6c 6f 62 5f 77 72 69 74 65 0a 23 64 65 66 69 6e  lob_write.#defin
4900: 65 20 73 71 6c 69 74 65 33 5f 63 72 65 61 74 65  e sqlite3_create
4910: 5f 63 6f 6c 6c 61 74 69 6f 6e 5f 76 32 20 20 20  _collation_v2   
4920: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 72   sqlite3_api->cr
4930: 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 5f 76  eate_collation_v
4940: 32 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  2.#define sqlite
4950: 33 5f 66 69 6c 65 5f 63 6f 6e 74 72 6f 6c 20 20  3_file_control  
4960: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
4970: 5f 61 70 69 2d 3e 66 69 6c 65 5f 63 6f 6e 74 72  _api->file_contr
4980: 6f 6c 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  ol.#define sqlit
4990: 65 33 5f 6d 65 6d 6f 72 79 5f 68 69 67 68 77 61  e3_memory_highwa
49a0: 74 65 72 20 20 20 20 20 20 20 73 71 6c 69 74 65  ter       sqlite
49b0: 33 5f 61 70 69 2d 3e 6d 65 6d 6f 72 79 5f 68 69  3_api->memory_hi
49c0: 67 68 77 61 74 65 72 0a 23 64 65 66 69 6e 65 20  ghwater.#define 
49d0: 73 71 6c 69 74 65 33 5f 6d 65 6d 6f 72 79 5f 75  sqlite3_memory_u
49e0: 73 65 64 20 20 20 20 20 20 20 20 20 20 20 20 73  sed            s
49f0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 65 6d 6f  qlite3_api->memo
4a00: 72 79 5f 75 73 65 64 0a 23 64 65 66 69 6e 65 20  ry_used.#define 
4a10: 73 71 6c 69 74 65 33 5f 6d 75 74 65 78 5f 61 6c  sqlite3_mutex_al
4a20: 6c 6f 63 20 20 20 20 20 20 20 20 20 20 20 20 73  loc            s
4a30: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 75 74 65  qlite3_api->mute
4a40: 78 5f 61 6c 6c 6f 63 0a 23 64 65 66 69 6e 65 20  x_alloc.#define 
4a50: 73 71 6c 69 74 65 33 5f 6d 75 74 65 78 5f 65 6e  sqlite3_mutex_en
4a60: 74 65 72 20 20 20 20 20 20 20 20 20 20 20 20 73  ter            s
4a70: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 75 74 65  qlite3_api->mute
4a80: 78 5f 65 6e 74 65 72 0a 23 64 65 66 69 6e 65 20  x_enter.#define 
4a90: 73 71 6c 69 74 65 33 5f 6d 75 74 65 78 5f 66 72  sqlite3_mutex_fr
4aa0: 65 65 20 20 20 20 20 20 20 20 20 20 20 20 20 73  ee             s
4ab0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 75 74 65  qlite3_api->mute
4ac0: 78 5f 66 72 65 65 0a 23 64 65 66 69 6e 65 20 73  x_free.#define s
4ad0: 71 6c 69 74 65 33 5f 6d 75 74 65 78 5f 6c 65 61  qlite3_mutex_lea
4ae0: 76 65 20 20 20 20 20 20 20 20 20 20 20 20 73 71  ve            sq
4af0: 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 75 74 65 78  lite3_api->mutex
4b00: 5f 6c 65 61 76 65 0a 23 64 65 66 69 6e 65 20 73  _leave.#define s
4b10: 71 6c 69 74 65 33 5f 6d 75 74 65 78 5f 74 72 79  qlite3_mutex_try
4b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71                sq
4b30: 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 75 74 65 78  lite3_api->mutex
4b40: 5f 74 72 79 0a 23 64 65 66 69 6e 65 20 73 71 6c  _try.#define sql
4b50: 69 74 65 33 5f 6f 70 65 6e 5f 76 32 20 20 20 20  ite3_open_v2    
4b60: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
4b70: 74 65 33 5f 61 70 69 2d 3e 6f 70 65 6e 5f 76 32  te3_api->open_v2
4b80: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
4b90: 5f 72 65 6c 65 61 73 65 5f 6d 65 6d 6f 72 79 20  _release_memory 
4ba0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
4bb0: 61 70 69 2d 3e 72 65 6c 65 61 73 65 5f 6d 65 6d  api->release_mem
4bc0: 6f 72 79 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ory.#define sqli
4bd0: 74 65 33 5f 72 65 73 75 6c 74 5f 65 72 72 6f 72  te3_result_error
4be0: 5f 6e 6f 6d 65 6d 20 20 20 20 20 73 71 6c 69 74  _nomem     sqlit
4bf0: 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 65  e3_api->result_e
4c00: 72 72 6f 72 5f 6e 6f 6d 65 6d 0a 23 64 65 66 69  rror_nomem.#defi
4c10: 6e 65 20 73 71 6c 69 74 65 33 5f 72 65 73 75 6c  ne sqlite3_resul
4c20: 74 5f 65 72 72 6f 72 5f 74 6f 6f 62 69 67 20 20  t_error_toobig  
4c30: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72    sqlite3_api->r
4c40: 65 73 75 6c 74 5f 65 72 72 6f 72 5f 74 6f 6f 62  esult_error_toob
4c50: 69 67 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  ig.#define sqlit
4c60: 65 33 5f 73 6c 65 65 70 20 20 20 20 20 20 20 20  e3_sleep        
4c70: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
4c80: 33 5f 61 70 69 2d 3e 73 6c 65 65 70 0a 23 64 65  3_api->sleep.#de
4c90: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 73 6f 66  fine sqlite3_sof
4ca0: 74 5f 68 65 61 70 5f 6c 69 6d 69 74 20 20 20 20  t_heap_limit    
4cb0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
4cc0: 3e 73 6f 66 74 5f 68 65 61 70 5f 6c 69 6d 69 74  >soft_heap_limit
4cd0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
4ce0: 5f 76 66 73 5f 66 69 6e 64 20 20 20 20 20 20 20  _vfs_find       
4cf0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
4d00: 61 70 69 2d 3e 76 66 73 5f 66 69 6e 64 0a 23 64  api->vfs_find.#d
4d10: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 66  efine sqlite3_vf
4d20: 73 5f 72 65 67 69 73 74 65 72 20 20 20 20 20 20  s_register      
4d30: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
4d40: 2d 3e 76 66 73 5f 72 65 67 69 73 74 65 72 0a 23  ->vfs_register.#
4d50: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76  define sqlite3_v
4d60: 66 73 5f 75 6e 72 65 67 69 73 74 65 72 20 20 20  fs_unregister   
4d70: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
4d80: 69 2d 3e 76 66 73 5f 75 6e 72 65 67 69 73 74 65  i->vfs_unregiste
4d90: 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  r.#define sqlite
4da0: 33 5f 74 68 72 65 61 64 73 61 66 65 20 20 20 20  3_threadsafe    
4db0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
4dc0: 5f 61 70 69 2d 3e 78 74 68 72 65 61 64 73 61 66  _api->xthreadsaf
4dd0: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
4de0: 33 5f 72 65 73 75 6c 74 5f 7a 65 72 6f 62 6c 6f  3_result_zeroblo
4df0: 62 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33  b        sqlite3
4e00: 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 7a 65 72  _api->result_zer
4e10: 6f 62 6c 6f 62 0a 23 64 65 66 69 6e 65 20 73 71  oblob.#define sq
4e20: 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 65 72 72  lite3_result_err
4e30: 6f 72 5f 63 6f 64 65 20 20 20 20 20 20 73 71 6c  or_code      sql
4e40: 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74  ite3_api->result
4e50: 5f 65 72 72 6f 72 5f 63 6f 64 65 0a 23 64 65 66  _error_code.#def
4e60: 69 6e 65 20 73 71 6c 69 74 65 33 5f 74 65 73 74  ine sqlite3_test
4e70: 5f 63 6f 6e 74 72 6f 6c 20 20 20 20 20 20 20 20  _control        
4e80: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
4e90: 74 65 73 74 5f 63 6f 6e 74 72 6f 6c 0a 23 64 65  test_control.#de
4ea0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 61 6e  fine sqlite3_ran
4eb0: 64 6f 6d 6e 65 73 73 20 20 20 20 20 20 20 20 20  domness         
4ec0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
4ed0: 3e 72 61 6e 64 6f 6d 6e 65 73 73 0a 23 64 65 66  >randomness.#def
4ee0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6e 74  ine sqlite3_cont
4ef0: 65 78 74 5f 64 62 5f 68 61 6e 64 6c 65 20 20 20  ext_db_handle   
4f00: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
4f10: 63 6f 6e 74 65 78 74 5f 64 62 5f 68 61 6e 64 6c  context_db_handl
4f20: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
4f30: 33 5f 65 78 74 65 6e 64 65 64 5f 72 65 73 75 6c  3_extended_resul
4f40: 74 5f 63 6f 64 65 73 20 20 73 71 6c 69 74 65 33  t_codes  sqlite3
4f50: 5f 61 70 69 2d 3e 65 78 74 65 6e 64 65 64 5f 72  _api->extended_r
4f60: 65 73 75 6c 74 5f 63 6f 64 65 73 0a 23 64 65 66  esult_codes.#def
4f70: 69 6e 65 20 73 71 6c 69 74 65 33 5f 6c 69 6d 69  ine sqlite3_limi
4f80: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  t               
4f90: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
4fa0: 6c 69 6d 69 74 0a 23 64 65 66 69 6e 65 20 73 71  limit.#define sq
4fb0: 6c 69 74 65 33 5f 6e 65 78 74 5f 73 74 6d 74 20  lite3_next_stmt 
4fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
4fd0: 69 74 65 33 5f 61 70 69 2d 3e 6e 65 78 74 5f 73  ite3_api->next_s
4fe0: 74 6d 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  tmt.#define sqli
4ff0: 74 65 33 5f 73 71 6c 20 20 20 20 20 20 20 20 20  te3_sql         
5000: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
5010: 65 33 5f 61 70 69 2d 3e 73 71 6c 0a 23 64 65 66  e3_api->sql.#def
5020: 69 6e 65 20 73 71 6c 69 74 65 33 5f 73 74 61 74  ine sqlite3_stat
5030: 75 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20  us              
5040: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
5050: 73 74 61 74 75 73 0a 23 65 6e 64 69 66 20 2f 2a  status.#endif /*
5060: 20 53 51 4c 49 54 45 5f 43 4f 52 45 20 2a 2f 0a   SQLITE_CORE */.
5070: 0a 23 64 65 66 69 6e 65 20 53 51 4c 49 54 45 5f  .#define SQLITE_
5080: 45 58 54 45 4e 53 49 4f 4e 5f 49 4e 49 54 31 20  EXTENSION_INIT1 
5090: 20 20 20 20 63 6f 6e 73 74 20 73 71 6c 69 74 65      const sqlite
50a0: 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65 73 20 2a  3_api_routines *
50b0: 73 71 6c 69 74 65 33 5f 61 70 69 20 3d 20 30 3b  sqlite3_api = 0;
50c0: 0a 23 64 65 66 69 6e 65 20 53 51 4c 49 54 45 5f  .#define SQLITE_
50d0: 45 58 54 45 4e 53 49 4f 4e 5f 49 4e 49 54 32 28  EXTENSION_INIT2(
50e0: 76 29 20 20 73 71 6c 69 74 65 33 5f 61 70 69 20  v)  sqlite3_api 
50f0: 3d 20 76 3b 0a 0a 23 65 6e 64 69 66 20 2f 2a 20  = v;..#endif /* 
5100: 5f 53 51 4c 49 54 45 33 45 58 54 5f 48 5f 20 2a  _SQLITE3EXT_H_ *
5110: 2f 0a                                            /.