/ Hex Artifact Content
Login

Artifact 011c75fd6459a61454514af07c7a4f1f5c767f27:


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 38  lite3ext.h,v 1.8
02a0: 20 32 30 30 37 2f 30 31 2f 30 39 20 31 34 3a 33   2007/01/09 14:3
02b0: 37 3a 31 38 20 64 72 68 20 45 78 70 20 24 0a 2a  7:18 drh Exp $.*
02c0: 2f 0a 23 69 66 6e 64 65 66 20 5f 53 51 4c 49 54  /.#ifndef _SQLIT
02d0: 45 33 45 58 54 5f 48 5f 0a 23 64 65 66 69 6e 65  E3EXT_H_.#define
02e0: 20 5f 53 51 4c 49 54 45 33 45 58 54 5f 48 5f 0a   _SQLITE3EXT_H_.
02f0: 23 69 6e 63 6c 75 64 65 20 22 73 71 6c 69 74 65  #include "sqlite
0300: 33 2e 68 22 0a 0a 74 79 70 65 64 65 66 20 73 74  3.h"..typedef st
0310: 72 75 63 74 20 73 71 6c 69 74 65 33 5f 61 70 69  ruct sqlite3_api
0320: 5f 72 6f 75 74 69 6e 65 73 20 73 71 6c 69 74 65  _routines sqlite
0330: 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65 73 3b 0a  3_api_routines;.
0340: 0a 2f 2a 0a 2a 2a 20 54 68 65 20 66 6f 6c 6c 6f  ./*.** The follo
0350: 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 20 68  wing structure h
0360: 6f 6c 64 20 70 6f 69 6e 74 65 72 73 20 74 6f 20  old pointers to 
0370: 61 6c 6c 20 6f 66 20 74 68 65 20 53 51 4c 69 74  all of the SQLit
0380: 65 20 41 50 49 0a 2a 2a 20 72 6f 75 74 69 6e 65  e API.** routine
0390: 73 2e 0a 2a 2f 0a 73 74 72 75 63 74 20 73 71 6c  s..*/.struct sql
03a0: 69 74 65 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65  ite3_api_routine
03b0: 73 20 7b 0a 20 20 76 6f 69 64 20 2a 20 28 2a 61  s {.  void * (*a
03c0: 67 67 72 65 67 61 74 65 5f 63 6f 6e 74 65 78 74  ggregate_context
03d0: 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78  )(sqlite3_contex
03e0: 74 2a 2c 69 6e 74 20 6e 42 79 74 65 73 29 3b 0a  t*,int nBytes);.
03f0: 20 20 69 6e 74 20 20 28 2a 61 67 67 72 65 67 61    int  (*aggrega
0400: 74 65 5f 63 6f 75 6e 74 29 28 73 71 6c 69 74 65  te_count)(sqlite
0410: 33 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a 20 20 69  3_context*);.  i
0420: 6e 74 20 20 28 2a 62 69 6e 64 5f 62 6c 6f 62 29  nt  (*bind_blob)
0430: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69  (sqlite3_stmt*,i
0440: 6e 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69  nt,const void*,i
0450: 6e 74 20 6e 2c 76 6f 69 64 28 2a 29 28 76 6f 69  nt n,void(*)(voi
0460: 64 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62  d*));.  int  (*b
0470: 69 6e 64 5f 64 6f 75 62 6c 65 29 28 73 71 6c 69  ind_double)(sqli
0480: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 64 6f  te3_stmt*,int,do
0490: 75 62 6c 65 29 3b 0a 20 20 69 6e 74 20 20 28 2a  uble);.  int  (*
04a0: 62 69 6e 64 5f 69 6e 74 29 28 73 71 6c 69 74 65  bind_int)(sqlite
04b0: 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 69 6e 74 29  3_stmt*,int,int)
04c0: 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f  ;.  int  (*bind_
04d0: 69 6e 74 36 34 29 28 73 71 6c 69 74 65 33 5f 73  int64)(sqlite3_s
04e0: 74 6d 74 2a 2c 69 6e 74 2c 73 71 6c 69 74 65 5f  tmt*,int,sqlite_
04f0: 69 6e 74 36 34 29 3b 0a 20 20 69 6e 74 20 20 28  int64);.  int  (
0500: 2a 62 69 6e 64 5f 6e 75 6c 6c 29 28 73 71 6c 69  *bind_null)(sqli
0510: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a  te3_stmt*,int);.
0520: 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f 70 61    int  (*bind_pa
0530: 72 61 6d 65 74 65 72 5f 63 6f 75 6e 74 29 28 73  rameter_count)(s
0540: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20  qlite3_stmt*);. 
0550: 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f 70 61 72   int  (*bind_par
0560: 61 6d 65 74 65 72 5f 69 6e 64 65 78 29 28 73 71  ameter_index)(sq
0570: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 63 6f 6e 73  lite3_stmt*,cons
0580: 74 20 63 68 61 72 2a 7a 4e 61 6d 65 29 3b 0a 20  t char*zName);. 
0590: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28 2a   const char * (*
05a0: 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 6e  bind_parameter_n
05b0: 61 6d 65 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  ame)(sqlite3_stm
05c0: 74 2a 2c 69 6e 74 29 3b 0a 20 20 69 6e 74 20 20  t*,int);.  int  
05d0: 28 2a 62 69 6e 64 5f 74 65 78 74 29 28 73 71 6c  (*bind_text)(sql
05e0: 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 63  ite3_stmt*,int,c
05f0: 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74 20 6e  onst char*,int n
0600: 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 29  ,void(*)(void*))
0610: 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f  ;.  int  (*bind_
0620: 74 65 78 74 31 36 29 28 73 71 6c 69 74 65 33 5f  text16)(sqlite3_
0630: 73 74 6d 74 2a 2c 69 6e 74 2c 63 6f 6e 73 74 20  stmt*,int,const 
0640: 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a  void*,int,void(*
0650: 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 69 6e 74  )(void*));.  int
0660: 20 20 28 2a 62 69 6e 64 5f 76 61 6c 75 65 29 28    (*bind_value)(
0670: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0680: 74 2c 63 6f 6e 73 74 20 73 71 6c 69 74 65 33 5f  t,const sqlite3_
0690: 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e 74 20 20  value*);.  int  
06a0: 28 2a 62 75 73 79 5f 68 61 6e 64 6c 65 72 29 28  (*busy_handler)(
06b0: 73 71 6c 69 74 65 33 2a 2c 69 6e 74 28 2a 29 28  sqlite3*,int(*)(
06c0: 76 6f 69 64 2a 2c 69 6e 74 29 2c 76 6f 69 64 2a  void*,int),void*
06d0: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62 75 73 79  );.  int  (*busy
06e0: 5f 74 69 6d 65 6f 75 74 29 28 73 71 6c 69 74 65  _timeout)(sqlite
06f0: 33 2a 2c 69 6e 74 20 6d 73 29 3b 0a 20 20 69 6e  3*,int ms);.  in
0700: 74 20 20 28 2a 63 68 61 6e 67 65 73 29 28 73 71  t  (*changes)(sq
0710: 6c 69 74 65 33 2a 29 3b 0a 20 20 69 6e 74 20 20  lite3*);.  int  
0720: 28 2a 63 6c 6f 73 65 29 28 73 71 6c 69 74 65 33  (*close)(sqlite3
0730: 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c  *);.  int  (*col
0740: 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64 29 28 73  lation_needed)(s
0750: 71 6c 69 74 65 33 2a 2c 76 6f 69 64 2a 2c 76 6f  qlite3*,void*,vo
0760: 69 64 28 2a 29 28 76 6f 69 64 2a 2c 73 71 6c 69  id(*)(void*,sqli
0770: 74 65 33 2a 2c 69 6e 74 20 65 54 65 78 74 52 65  te3*,int eTextRe
0780: 70 2c 63 6f 6e 73 74 20 63 68 61 72 2a 29 29 3b  p,const char*));
0790: 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c 6c 61 74  .  int  (*collat
07a0: 69 6f 6e 5f 6e 65 65 64 65 64 31 36 29 28 73 71  ion_needed16)(sq
07b0: 6c 69 74 65 33 2a 2c 76 6f 69 64 2a 2c 76 6f 69  lite3*,void*,voi
07c0: 64 28 2a 29 28 76 6f 69 64 2a 2c 73 71 6c 69 74  d(*)(void*,sqlit
07d0: 65 33 2a 2c 69 6e 74 20 65 54 65 78 74 52 65 70  e3*,int eTextRep
07e0: 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 29 29 3b 0a  ,const void*));.
07f0: 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28    const void * (
0800: 2a 63 6f 6c 75 6d 6e 5f 62 6c 6f 62 29 28 73 71  *column_blob)(sq
0810: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20  lite3_stmt*,int 
0820: 69 43 6f 6c 29 3b 0a 20 20 69 6e 74 20 20 28 2a  iCol);.  int  (*
0830: 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 29 28 73 71  column_bytes)(sq
0840: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20  lite3_stmt*,int 
0850: 69 43 6f 6c 29 3b 0a 20 20 69 6e 74 20 20 28 2a  iCol);.  int  (*
0860: 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 31 36 29 28  column_bytes16)(
0870: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0880: 74 20 69 43 6f 6c 29 3b 0a 20 20 69 6e 74 20 20  t iCol);.  int  
0890: 28 2a 63 6f 6c 75 6d 6e 5f 63 6f 75 6e 74 29 28  (*column_count)(
08a0: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 70 53 74  sqlite3_stmt*pSt
08b0: 6d 74 29 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61  mt);.  const cha
08c0: 72 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 64 61 74  r * (*column_dat
08d0: 61 62 61 73 65 5f 6e 61 6d 65 29 28 73 71 6c 69  abase_name)(sqli
08e0: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a  te3_stmt*,int);.
08f0: 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28    const void * (
0900: 2a 63 6f 6c 75 6d 6e 5f 64 61 74 61 62 61 73 65  *column_database
0910: 5f 6e 61 6d 65 31 36 29 28 73 71 6c 69 74 65 33  _name16)(sqlite3
0920: 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63  _stmt*,int);.  c
0930: 6f 6e 73 74 20 63 68 61 72 20 2a 20 28 2a 63 6f  onst char * (*co
0940: 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65 29 28 73  lumn_decltype)(s
0950: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74  qlite3_stmt*,int
0960: 20 69 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69   i);.  const voi
0970: 64 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 64 65 63  d * (*column_dec
0980: 6c 74 79 70 65 31 36 29 28 73 71 6c 69 74 65 33  ltype16)(sqlite3
0990: 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 64  _stmt*,int);.  d
09a0: 6f 75 62 6c 65 20 20 28 2a 63 6f 6c 75 6d 6e 5f  ouble  (*column_
09b0: 64 6f 75 62 6c 65 29 28 73 71 6c 69 74 65 33 5f  double)(sqlite3_
09c0: 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b  stmt*,int iCol);
09d0: 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c 75 6d 6e  .  int  (*column
09e0: 5f 69 6e 74 29 28 73 71 6c 69 74 65 33 5f 73 74  _int)(sqlite3_st
09f0: 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20  mt*,int iCol);. 
0a00: 20 73 71 6c 69 74 65 5f 69 6e 74 36 34 20 20 28   sqlite_int64  (
0a10: 2a 63 6f 6c 75 6d 6e 5f 69 6e 74 36 34 29 28 73  *column_int64)(s
0a20: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74  qlite3_stmt*,int
0a30: 20 69 43 6f 6c 29 3b 0a 20 20 63 6f 6e 73 74 20   iCol);.  const 
0a40: 63 68 61 72 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f  char * (*column_
0a50: 6e 61 6d 65 29 28 73 71 6c 69 74 65 33 5f 73 74  name)(sqlite3_st
0a60: 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73  mt*,int);.  cons
0a70: 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d  t void * (*colum
0a80: 6e 5f 6e 61 6d 65 31 36 29 28 73 71 6c 69 74 65  n_name16)(sqlite
0a90: 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20  3_stmt*,int);.  
0aa0: 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28 2a 63  const char * (*c
0ab0: 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d  olumn_origin_nam
0ac0: 65 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  e)(sqlite3_stmt*
0ad0: 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73 74 20 76  ,int);.  const v
0ae0: 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 6f  oid * (*column_o
0af0: 72 69 67 69 6e 5f 6e 61 6d 65 31 36 29 28 73 71  rigin_name16)(sq
0b00: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29  lite3_stmt*,int)
0b10: 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a  ;.  const char *
0b20: 20 28 2a 63 6f 6c 75 6d 6e 5f 74 61 62 6c 65 5f   (*column_table_
0b30: 6e 61 6d 65 29 28 73 71 6c 69 74 65 33 5f 73 74  name)(sqlite3_st
0b40: 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73  mt*,int);.  cons
0b50: 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d  t void * (*colum
0b60: 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 31 36 29 28  n_table_name16)(
0b70: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0b80: 74 29 3b 0a 20 20 63 6f 6e 73 74 20 75 6e 73 69  t);.  const unsi
0b90: 67 6e 65 64 20 63 68 61 72 20 2a 20 28 2a 63 6f  gned char * (*co
0ba0: 6c 75 6d 6e 5f 74 65 78 74 29 28 73 71 6c 69 74  lumn_text)(sqlit
0bb0: 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f  e3_stmt*,int iCo
0bc0: 6c 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64  l);.  const void
0bd0: 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 74 65 78 74   * (*column_text
0be0: 31 36 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74  16)(sqlite3_stmt
0bf0: 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 69  *,int iCol);.  i
0c00: 6e 74 20 20 28 2a 63 6f 6c 75 6d 6e 5f 74 79 70  nt  (*column_typ
0c10: 65 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  e)(sqlite3_stmt*
0c20: 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 73 71  ,int iCol);.  sq
0c30: 6c 69 74 65 33 5f 76 61 6c 75 65 2a 20 28 2a 63  lite3_value* (*c
0c40: 6f 6c 75 6d 6e 5f 76 61 6c 75 65 29 28 73 71 6c  olumn_value)(sql
0c50: 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20 69  ite3_stmt*,int i
0c60: 43 6f 6c 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28  Col);.  void * (
0c70: 2a 63 6f 6d 6d 69 74 5f 68 6f 6f 6b 29 28 73 71  *commit_hook)(sq
0c80: 6c 69 74 65 33 2a 2c 69 6e 74 28 2a 29 28 76 6f  lite3*,int(*)(vo
0c90: 69 64 2a 29 2c 76 6f 69 64 2a 29 3b 0a 20 20 69  id*),void*);.  i
0ca0: 6e 74 20 20 28 2a 63 6f 6d 70 6c 65 74 65 29 28  nt  (*complete)(
0cb0: 63 6f 6e 73 74 20 63 68 61 72 2a 73 71 6c 29 3b  const char*sql);
0cc0: 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6d 70 6c 65  .  int  (*comple
0cd0: 74 65 31 36 29 28 63 6f 6e 73 74 20 76 6f 69 64  te16)(const void
0ce0: 2a 73 71 6c 29 3b 0a 20 20 69 6e 74 20 20 28 2a  *sql);.  int  (*
0cf0: 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e  create_collation
0d00: 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74  )(sqlite3*,const
0d10: 20 63 68 61 72 2a 2c 69 6e 74 2c 76 6f 69 64 2a   char*,int,void*
0d20: 2c 69 6e 74 28 2a 29 28 76 6f 69 64 2a 2c 69 6e  ,int(*)(void*,in
0d30: 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e  t,const void*,in
0d40: 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 29 29 3b  t,const void*));
0d50: 0a 20 20 69 6e 74 20 20 28 2a 63 72 65 61 74 65  .  int  (*create
0d60: 5f 63 6f 6c 6c 61 74 69 6f 6e 31 36 29 28 73 71  _collation16)(sq
0d70: 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63 68 61  lite3*,const cha
0d80: 72 2a 2c 69 6e 74 2c 76 6f 69 64 2a 2c 69 6e 74  r*,int,void*,int
0d90: 28 2a 29 28 76 6f 69 64 2a 2c 69 6e 74 2c 63 6f  (*)(void*,int,co
0da0: 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 63 6f  nst void*,int,co
0db0: 6e 73 74 20 76 6f 69 64 2a 29 29 3b 0a 20 20 69  nst void*));.  i
0dc0: 6e 74 20 20 28 2a 63 72 65 61 74 65 5f 66 75 6e  nt  (*create_fun
0dd0: 63 74 69 6f 6e 29 28 73 71 6c 69 74 65 33 2a 2c  ction)(sqlite3*,
0de0: 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74 2c  const char*,int,
0df0: 69 6e 74 2c 76 6f 69 64 2a 2c 76 6f 69 64 20 28  int,void*,void (
0e00: 2a 78 46 75 6e 63 29 28 73 71 6c 69 74 65 33 5f  *xFunc)(sqlite3_
0e10: 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 2c 73 71 6c  context*,int,sql
0e20: 69 74 65 33 5f 76 61 6c 75 65 2a 2a 29 2c 76 6f  ite3_value**),vo
0e30: 69 64 20 28 2a 78 53 74 65 70 29 28 73 71 6c 69  id (*xStep)(sqli
0e40: 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74  te3_context*,int
0e50: 2c 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 2a  ,sqlite3_value**
0e60: 29 2c 76 6f 69 64 20 28 2a 78 46 69 6e 61 6c 29  ),void (*xFinal)
0e70: 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74  (sqlite3_context
0e80: 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 72  *));.  int  (*cr
0e90: 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e 31 36 29  eate_function16)
0ea0: 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20  (sqlite3*,const 
0eb0: 76 6f 69 64 2a 2c 69 6e 74 2c 69 6e 74 2c 76 6f  void*,int,int,vo
0ec0: 69 64 2a 2c 76 6f 69 64 20 28 2a 78 46 75 6e 63  id*,void (*xFunc
0ed0: 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78  )(sqlite3_contex
0ee0: 74 2a 2c 69 6e 74 2c 73 71 6c 69 74 65 33 5f 76  t*,int,sqlite3_v
0ef0: 61 6c 75 65 2a 2a 29 2c 76 6f 69 64 20 28 2a 78  alue**),void (*x
0f00: 53 74 65 70 29 28 73 71 6c 69 74 65 33 5f 63 6f  Step)(sqlite3_co
0f10: 6e 74 65 78 74 2a 2c 69 6e 74 2c 73 71 6c 69 74  ntext*,int,sqlit
0f20: 65 33 5f 76 61 6c 75 65 2a 2a 29 2c 76 6f 69 64  e3_value**),void
0f30: 20 28 2a 78 46 69 6e 61 6c 29 28 73 71 6c 69 74   (*xFinal)(sqlit
0f40: 65 33 5f 63 6f 6e 74 65 78 74 2a 29 29 3b 0a 20  e3_context*));. 
0f50: 20 69 6e 74 20 28 2a 63 72 65 61 74 65 5f 6d 6f   int (*create_mo
0f60: 64 75 6c 65 29 28 73 71 6c 69 74 65 33 2a 2c 63  dule)(sqlite3*,c
0f70: 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74  onst char*,const
0f80: 20 73 71 6c 69 74 65 33 5f 6d 6f 64 75 6c 65 2a   sqlite3_module*
0f90: 2c 76 6f 69 64 2a 29 3b 0a 20 20 69 6e 74 20 20  ,void*);.  int  
0fa0: 28 2a 64 61 74 61 5f 63 6f 75 6e 74 29 28 73 71  (*data_count)(sq
0fb0: 6c 69 74 65 33 5f 73 74 6d 74 2a 70 53 74 6d 74  lite3_stmt*pStmt
0fc0: 29 3b 0a 20 20 73 71 6c 69 74 65 33 20 2a 20 28  );.  sqlite3 * (
0fd0: 2a 64 62 5f 68 61 6e 64 6c 65 29 28 73 71 6c 69  *db_handle)(sqli
0fe0: 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20 20 69 6e  te3_stmt*);.  in
0ff0: 74 20 28 2a 64 65 63 6c 61 72 65 5f 76 74 61 62  t (*declare_vtab
1000: 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74  )(sqlite3*,const
1010: 20 63 68 61 72 2a 29 3b 0a 20 20 69 6e 74 20 20   char*);.  int  
1020: 28 2a 65 6e 61 62 6c 65 5f 73 68 61 72 65 64 5f  (*enable_shared_
1030: 63 61 63 68 65 29 28 69 6e 74 29 3b 0a 20 20 69  cache)(int);.  i
1040: 6e 74 20 20 28 2a 65 72 72 63 6f 64 65 29 28 73  nt  (*errcode)(s
1050: 71 6c 69 74 65 33 2a 64 62 29 3b 0a 20 20 63 6f  qlite3*db);.  co
1060: 6e 73 74 20 63 68 61 72 20 2a 20 28 2a 65 72 72  nst char * (*err
1070: 6d 73 67 29 28 73 71 6c 69 74 65 33 2a 29 3b 0a  msg)(sqlite3*);.
1080: 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28    const void * (
1090: 2a 65 72 72 6d 73 67 31 36 29 28 73 71 6c 69 74  *errmsg16)(sqlit
10a0: 65 33 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 65  e3*);.  int  (*e
10b0: 78 65 63 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f  xec)(sqlite3*,co
10c0: 6e 73 74 20 63 68 61 72 2a 2c 73 71 6c 69 74 65  nst char*,sqlite
10d0: 33 5f 63 61 6c 6c 62 61 63 6b 2c 76 6f 69 64 2a  3_callback,void*
10e0: 2c 63 68 61 72 2a 2a 29 3b 0a 20 20 69 6e 74 20  ,char**);.  int 
10f0: 20 28 2a 65 78 70 69 72 65 64 29 28 73 71 6c 69   (*expired)(sqli
1100: 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20 20 69 6e  te3_stmt*);.  in
1110: 74 20 20 28 2a 66 69 6e 61 6c 69 7a 65 29 28 73  t  (*finalize)(s
1120: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 70 53 74 6d  qlite3_stmt*pStm
1130: 74 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 66 72  t);.  void  (*fr
1140: 65 65 29 28 76 6f 69 64 2a 29 3b 0a 20 20 76 6f  ee)(void*);.  vo
1150: 69 64 20 20 28 2a 66 72 65 65 5f 74 61 62 6c 65  id  (*free_table
1160: 29 28 63 68 61 72 2a 2a 72 65 73 75 6c 74 29 3b  )(char**result);
1170: 0a 20 20 69 6e 74 20 20 28 2a 67 65 74 5f 61 75  .  int  (*get_au
1180: 74 6f 63 6f 6d 6d 69 74 29 28 73 71 6c 69 74 65  tocommit)(sqlite
1190: 33 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a  3*);.  void * (*
11a0: 67 65 74 5f 61 75 78 64 61 74 61 29 28 73 71 6c  get_auxdata)(sql
11b0: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e  ite3_context*,in
11c0: 74 29 3b 0a 20 20 69 6e 74 20 20 28 2a 67 65 74  t);.  int  (*get
11d0: 5f 74 61 62 6c 65 29 28 73 71 6c 69 74 65 33 2a  _table)(sqlite3*
11e0: 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63 68 61  ,const char*,cha
11f0: 72 2a 2a 2a 2c 69 6e 74 2a 2c 69 6e 74 2a 2c 63  r***,int*,int*,c
1200: 68 61 72 2a 2a 29 3b 0a 20 20 69 6e 74 20 20 28  har**);.  int  (
1210: 2a 67 6c 6f 62 61 6c 5f 72 65 63 6f 76 65 72 29  *global_recover)
1220: 28 76 6f 69 64 29 3b 0a 20 20 76 6f 69 64 20 20  (void);.  void  
1230: 28 2a 69 6e 74 65 72 72 75 70 74 78 29 28 73 71  (*interruptx)(sq
1240: 6c 69 74 65 33 2a 29 3b 0a 20 20 73 71 6c 69 74  lite3*);.  sqlit
1250: 65 5f 69 6e 74 36 34 20 20 28 2a 6c 61 73 74 5f  e_int64  (*last_
1260: 69 6e 73 65 72 74 5f 72 6f 77 69 64 29 28 73 71  insert_rowid)(sq
1270: 6c 69 74 65 33 2a 29 3b 0a 20 20 63 6f 6e 73 74  lite3*);.  const
1280: 20 63 68 61 72 20 2a 20 28 2a 6c 69 62 76 65 72   char * (*libver
1290: 73 69 6f 6e 29 28 76 6f 69 64 29 3b 0a 20 20 69  sion)(void);.  i
12a0: 6e 74 20 20 28 2a 6c 69 62 76 65 72 73 69 6f 6e  nt  (*libversion
12b0: 5f 6e 75 6d 62 65 72 29 28 76 6f 69 64 29 3b 0a  _number)(void);.
12c0: 20 20 76 6f 69 64 20 2a 28 2a 6d 61 6c 6c 6f 63    void *(*malloc
12d0: 29 28 69 6e 74 29 3b 0a 20 20 63 68 61 72 20 2a  )(int);.  char *
12e0: 20 28 2a 6d 70 72 69 6e 74 66 29 28 63 6f 6e 73   (*mprintf)(cons
12f0: 74 20 63 68 61 72 2a 2c 2e 2e 2e 29 3b 0a 20 20  t char*,...);.  
1300: 69 6e 74 20 20 28 2a 6f 70 65 6e 29 28 63 6f 6e  int  (*open)(con
1310: 73 74 20 63 68 61 72 2a 2c 73 71 6c 69 74 65 33  st char*,sqlite3
1320: 2a 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 6f 70  **);.  int  (*op
1330: 65 6e 31 36 29 28 63 6f 6e 73 74 20 76 6f 69 64  en16)(const void
1340: 2a 2c 73 71 6c 69 74 65 33 2a 2a 29 3b 0a 20 20  *,sqlite3**);.  
1350: 69 6e 74 20 20 28 2a 70 72 65 70 61 72 65 29 28  int  (*prepare)(
1360: 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63  sqlite3*,const c
1370: 68 61 72 2a 2c 69 6e 74 2c 73 71 6c 69 74 65 33  har*,int,sqlite3
1380: 5f 73 74 6d 74 2a 2a 2c 63 6f 6e 73 74 20 63 68  _stmt**,const ch
1390: 61 72 2a 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a  ar**);.  int  (*
13a0: 70 72 65 70 61 72 65 31 36 29 28 73 71 6c 69 74  prepare16)(sqlit
13b0: 65 33 2a 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c  e3*,const void*,
13c0: 69 6e 74 2c 73 71 6c 69 74 65 33 5f 73 74 6d 74  int,sqlite3_stmt
13d0: 2a 2a 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2a 29  **,const void**)
13e0: 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a 70 72 6f  ;.  void * (*pro
13f0: 66 69 6c 65 29 28 73 71 6c 69 74 65 33 2a 2c 76  file)(sqlite3*,v
1400: 6f 69 64 28 2a 29 28 76 6f 69 64 2a 2c 63 6f 6e  oid(*)(void*,con
1410: 73 74 20 63 68 61 72 2a 2c 73 71 6c 69 74 65 5f  st char*,sqlite_
1420: 75 69 6e 74 36 34 29 2c 76 6f 69 64 2a 29 3b 0a  uint64),void*);.
1430: 20 20 76 6f 69 64 20 20 28 2a 70 72 6f 67 72 65    void  (*progre
1440: 73 73 5f 68 61 6e 64 6c 65 72 29 28 73 71 6c 69  ss_handler)(sqli
1450: 74 65 33 2a 2c 69 6e 74 2c 69 6e 74 28 2a 29 28  te3*,int,int(*)(
1460: 76 6f 69 64 2a 29 2c 76 6f 69 64 2a 29 3b 0a 20  void*),void*);. 
1470: 20 76 6f 69 64 20 2a 28 2a 72 65 61 6c 6c 6f 63   void *(*realloc
1480: 29 28 76 6f 69 64 2a 2c 69 6e 74 29 3b 0a 20 20  )(void*,int);.  
1490: 69 6e 74 20 20 28 2a 72 65 73 65 74 29 28 73 71  int  (*reset)(sq
14a0: 6c 69 74 65 33 5f 73 74 6d 74 2a 70 53 74 6d 74  lite3_stmt*pStmt
14b0: 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65 73  );.  void  (*res
14c0: 75 6c 74 5f 62 6c 6f 62 29 28 73 71 6c 69 74 65  ult_blob)(sqlite
14d0: 33 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74  3_context*,const
14e0: 20 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64 28   void*,int,void(
14f0: 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 76 6f  *)(void*));.  vo
1500: 69 64 20 20 28 2a 72 65 73 75 6c 74 5f 64 6f 75  id  (*result_dou
1510: 62 6c 65 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e  ble)(sqlite3_con
1520: 74 65 78 74 2a 2c 64 6f 75 62 6c 65 29 3b 0a 20  text*,double);. 
1530: 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f   void  (*result_
1540: 65 72 72 6f 72 29 28 73 71 6c 69 74 65 33 5f 63  error)(sqlite3_c
1550: 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20 63 68  ontext*,const ch
1560: 61 72 2a 2c 69 6e 74 29 3b 0a 20 20 76 6f 69 64  ar*,int);.  void
1570: 20 20 28 2a 72 65 73 75 6c 74 5f 65 72 72 6f 72    (*result_error
1580: 31 36 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74  16)(sqlite3_cont
1590: 65 78 74 2a 2c 63 6f 6e 73 74 20 76 6f 69 64 2a  ext*,const void*
15a0: 2c 69 6e 74 29 3b 0a 20 20 76 6f 69 64 20 20 28  ,int);.  void  (
15b0: 2a 72 65 73 75 6c 74 5f 69 6e 74 29 28 73 71 6c  *result_int)(sql
15c0: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e  ite3_context*,in
15d0: 74 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65  t);.  void  (*re
15e0: 73 75 6c 74 5f 69 6e 74 36 34 29 28 73 71 6c 69  sult_int64)(sqli
15f0: 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 73 71 6c  te3_context*,sql
1600: 69 74 65 5f 69 6e 74 36 34 29 3b 0a 20 20 76 6f  ite_int64);.  vo
1610: 69 64 20 20 28 2a 72 65 73 75 6c 74 5f 6e 75 6c  id  (*result_nul
1620: 6c 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65  l)(sqlite3_conte
1630: 78 74 2a 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a  xt*);.  void  (*
1640: 72 65 73 75 6c 74 5f 74 65 78 74 29 28 73 71 6c  result_text)(sql
1650: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f  ite3_context*,co
1660: 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74 2c 76 6f  nst char*,int,vo
1670: 69 64 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20  id(*)(void*));. 
1680: 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f   void  (*result_
1690: 74 65 78 74 31 36 29 28 73 71 6c 69 74 65 33 5f  text16)(sqlite3_
16a0: 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20 76  context*,const v
16b0: 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a 29  oid*,int,void(*)
16c0: 28 76 6f 69 64 2a 29 29 3b 0a 20 20 76 6f 69 64  (void*));.  void
16d0: 20 20 28 2a 72 65 73 75 6c 74 5f 74 65 78 74 31    (*result_text1
16e0: 36 62 65 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e  6be)(sqlite3_con
16f0: 74 65 78 74 2a 2c 63 6f 6e 73 74 20 76 6f 69 64  text*,const void
1700: 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a 29 28 76 6f  *,int,void(*)(vo
1710: 69 64 2a 29 29 3b 0a 20 20 76 6f 69 64 20 20 28  id*));.  void  (
1720: 2a 72 65 73 75 6c 74 5f 74 65 78 74 31 36 6c 65  *result_text16le
1730: 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78  )(sqlite3_contex
1740: 74 2a 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69  t*,const void*,i
1750: 6e 74 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a  nt,void(*)(void*
1760: 29 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65  ));.  void  (*re
1770: 73 75 6c 74 5f 76 61 6c 75 65 29 28 73 71 6c 69  sult_value)(sqli
1780: 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 73 71 6c  te3_context*,sql
1790: 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20  ite3_value*);.  
17a0: 76 6f 69 64 20 2a 20 28 2a 72 6f 6c 6c 62 61 63  void * (*rollbac
17b0: 6b 5f 68 6f 6f 6b 29 28 73 71 6c 69 74 65 33 2a  k_hook)(sqlite3*
17c0: 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 2c  ,void(*)(void*),
17d0: 76 6f 69 64 2a 29 3b 0a 20 20 69 6e 74 20 20 28  void*);.  int  (
17e0: 2a 73 65 74 5f 61 75 74 68 6f 72 69 7a 65 72 29  *set_authorizer)
17f0: 28 73 71 6c 69 74 65 33 2a 2c 69 6e 74 28 2a 29  (sqlite3*,int(*)
1800: 28 76 6f 69 64 2a 2c 69 6e 74 2c 63 6f 6e 73 74  (void*,int,const
1810: 20 63 68 61 72 2a 2c 63 6f 6e 73 74 20 63 68 61   char*,const cha
1820: 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63  r*,const char*,c
1830: 6f 6e 73 74 20 63 68 61 72 2a 29 2c 76 6f 69 64  onst char*),void
1840: 2a 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 73 65  *);.  void  (*se
1850: 74 5f 61 75 78 64 61 74 61 29 28 73 71 6c 69 74  t_auxdata)(sqlit
1860: 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 2c  e3_context*,int,
1870: 76 6f 69 64 2a 2c 76 6f 69 64 20 28 2a 29 28 76  void*,void (*)(v
1880: 6f 69 64 2a 29 29 3b 0a 20 20 63 68 61 72 20 2a  oid*));.  char *
1890: 20 28 2a 73 6e 70 72 69 6e 74 66 29 28 69 6e 74   (*snprintf)(int
18a0: 2c 63 68 61 72 2a 2c 63 6f 6e 73 74 20 63 68 61  ,char*,const cha
18b0: 72 2a 2c 2e 2e 2e 29 3b 0a 20 20 69 6e 74 20 20  r*,...);.  int  
18c0: 28 2a 73 74 65 70 29 28 73 71 6c 69 74 65 33 5f  (*step)(sqlite3_
18d0: 73 74 6d 74 2a 29 3b 0a 20 20 69 6e 74 20 20 28  stmt*);.  int  (
18e0: 2a 74 61 62 6c 65 5f 63 6f 6c 75 6d 6e 5f 6d 65  *table_column_me
18f0: 74 61 64 61 74 61 29 28 73 71 6c 69 74 65 33 2a  tadata)(sqlite3*
1900: 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e  ,const char*,con
1910: 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74 20 63  st char*,const c
1920: 68 61 72 2a 2c 63 68 61 72 20 63 6f 6e 73 74 2a  har*,char const*
1930: 2a 2c 63 68 61 72 20 63 6f 6e 73 74 2a 2a 2c 69  *,char const**,i
1940: 6e 74 2a 2c 69 6e 74 2a 2c 69 6e 74 2a 29 3b 0a  nt*,int*,int*);.
1950: 20 20 76 6f 69 64 20 20 28 2a 74 68 72 65 61 64    void  (*thread
1960: 5f 63 6c 65 61 6e 75 70 29 28 76 6f 69 64 29 3b  _cleanup)(void);
1970: 0a 20 20 69 6e 74 20 20 28 2a 74 6f 74 61 6c 5f  .  int  (*total_
1980: 63 68 61 6e 67 65 73 29 28 73 71 6c 69 74 65 33  changes)(sqlite3
1990: 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a 74  *);.  void * (*t
19a0: 72 61 63 65 29 28 73 71 6c 69 74 65 33 2a 2c 76  race)(sqlite3*,v
19b0: 6f 69 64 28 2a 78 54 72 61 63 65 29 28 76 6f 69  oid(*xTrace)(voi
19c0: 64 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 29 2c  d*,const char*),
19d0: 76 6f 69 64 2a 29 3b 0a 20 20 69 6e 74 20 20 28  void*);.  int  (
19e0: 2a 74 72 61 6e 73 66 65 72 5f 62 69 6e 64 69 6e  *transfer_bindin
19f0: 67 73 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74  gs)(sqlite3_stmt
1a00: 2a 2c 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29  *,sqlite3_stmt*)
1a10: 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a 75 70 64  ;.  void * (*upd
1a20: 61 74 65 5f 68 6f 6f 6b 29 28 73 71 6c 69 74 65  ate_hook)(sqlite
1a30: 33 2a 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a  3*,void(*)(void*
1a40: 2c 69 6e 74 20 2c 63 68 61 72 20 63 6f 6e 73 74  ,int ,char const
1a50: 2a 2c 63 68 61 72 20 63 6f 6e 73 74 2a 2c 73 71  *,char const*,sq
1a60: 6c 69 74 65 5f 69 6e 74 36 34 29 2c 76 6f 69 64  lite_int64),void
1a70: 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a 75  *);.  void * (*u
1a80: 73 65 72 5f 64 61 74 61 29 28 73 71 6c 69 74 65  ser_data)(sqlite
1a90: 33 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a 20 20 63  3_context*);.  c
1aa0: 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a 76 61  onst void * (*va
1ab0: 6c 75 65 5f 62 6c 6f 62 29 28 73 71 6c 69 74 65  lue_blob)(sqlite
1ac0: 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e 74  3_value*);.  int
1ad0: 20 20 28 2a 76 61 6c 75 65 5f 62 79 74 65 73 29    (*value_bytes)
1ae0: 28 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29  (sqlite3_value*)
1af0: 3b 0a 20 20 69 6e 74 20 20 28 2a 76 61 6c 75 65  ;.  int  (*value
1b00: 5f 62 79 74 65 73 31 36 29 28 73 71 6c 69 74 65  _bytes16)(sqlite
1b10: 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 64 6f 75  3_value*);.  dou
1b20: 62 6c 65 20 20 28 2a 76 61 6c 75 65 5f 64 6f 75  ble  (*value_dou
1b30: 62 6c 65 29 28 73 71 6c 69 74 65 33 5f 76 61 6c  ble)(sqlite3_val
1b40: 75 65 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 76  ue*);.  int  (*v
1b50: 61 6c 75 65 5f 69 6e 74 29 28 73 71 6c 69 74 65  alue_int)(sqlite
1b60: 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 73 71 6c  3_value*);.  sql
1b70: 69 74 65 5f 69 6e 74 36 34 20 20 28 2a 76 61 6c  ite_int64  (*val
1b80: 75 65 5f 69 6e 74 36 34 29 28 73 71 6c 69 74 65  ue_int64)(sqlite
1b90: 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e 74  3_value*);.  int
1ba0: 20 20 28 2a 76 61 6c 75 65 5f 6e 75 6d 65 72 69    (*value_numeri
1bb0: 63 5f 74 79 70 65 29 28 73 71 6c 69 74 65 33 5f  c_type)(sqlite3_
1bc0: 76 61 6c 75 65 2a 29 3b 0a 20 20 63 6f 6e 73 74  value*);.  const
1bd0: 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a   unsigned char *
1be0: 20 28 2a 76 61 6c 75 65 5f 74 65 78 74 29 28 73   (*value_text)(s
1bf0: 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a  qlite3_value*);.
1c00: 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28    const void * (
1c10: 2a 76 61 6c 75 65 5f 74 65 78 74 31 36 29 28 73  *value_text16)(s
1c20: 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a  qlite3_value*);.
1c30: 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28    const void * (
1c40: 2a 76 61 6c 75 65 5f 74 65 78 74 31 36 62 65 29  *value_text16be)
1c50: 28 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29  (sqlite3_value*)
1c60: 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a  ;.  const void *
1c70: 20 28 2a 76 61 6c 75 65 5f 74 65 78 74 31 36 6c   (*value_text16l
1c80: 65 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75 65  e)(sqlite3_value
1c90: 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 76 61 6c  *);.  int  (*val
1ca0: 75 65 5f 74 79 70 65 29 28 73 71 6c 69 74 65 33  ue_type)(sqlite3
1cb0: 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 63 68 61 72  _value*);.  char
1cc0: 20 2a 20 28 2a 76 6d 70 72 69 6e 74 66 29 28 63   * (*vmprintf)(c
1cd0: 6f 6e 73 74 20 63 68 61 72 2a 2c 76 61 5f 6c 69  onst char*,va_li
1ce0: 73 74 29 3b 0a 20 20 69 6e 74 20 28 2a 6f 76 65  st);.  int (*ove
1cf0: 72 6c 6f 61 64 5f 66 75 6e 63 74 69 6f 6e 29 28  rload_function)(
1d00: 73 71 6c 69 74 65 33 2a 2c 20 63 6f 6e 73 74 20  sqlite3*, const 
1d10: 63 68 61 72 20 2a 7a 46 75 6e 63 4e 61 6d 65 2c  char *zFuncName,
1d20: 20 69 6e 74 20 6e 41 72 67 29 3b 0a 7d 3b 0a 0a   int nArg);.};..
1d30: 2f 2a 0a 2a 2a 20 54 68 65 20 66 6f 6c 6c 6f 77  /*.** The follow
1d40: 69 6e 67 20 6d 61 63 72 6f 73 20 72 65 64 65 66  ing macros redef
1d50: 69 6e 65 20 74 68 65 20 41 50 49 20 72 6f 75 74  ine the API rout
1d60: 69 6e 65 73 20 73 6f 20 74 68 61 74 20 74 68 65  ines so that the
1d70: 79 20 61 72 65 0a 2a 2a 20 72 65 64 69 72 65 63  y are.** redirec
1d80: 74 65 64 20 74 68 72 6f 75 67 68 74 20 74 68 65  ted throught the
1d90: 20 67 6c 6f 62 61 6c 20 73 71 6c 69 74 65 33 5f   global sqlite3_
1da0: 61 70 69 20 73 74 72 75 63 74 75 72 65 2e 0a 2a  api structure..*
1db0: 2a 0a 2a 2a 20 54 68 69 73 20 68 65 61 64 65 72  *.** This header
1dc0: 20 66 69 6c 65 20 69 73 20 61 6c 73 6f 20 75 73   file is also us
1dd0: 65 64 20 62 79 20 74 68 65 20 6c 6f 61 64 65 78  ed by the loadex
1de0: 74 2e 63 20 73 6f 75 72 63 65 20 66 69 6c 65 0a  t.c source file.
1df0: 2a 2a 20 28 70 61 72 74 20 6f 66 20 74 68 65 20  ** (part of the 
1e00: 6d 61 69 6e 20 53 51 4c 69 74 65 20 6c 69 62 72  main SQLite libr
1e10: 61 72 79 20 2d 20 6e 6f 74 20 61 6e 20 65 78 74  ary - not an ext
1e20: 65 6e 73 69 6f 6e 29 20 73 6f 20 74 68 61 74 0a  ension) so that.
1e30: 2a 2a 20 69 74 20 63 61 6e 20 67 65 74 20 61 63  ** it can get ac
1e40: 63 65 73 73 20 74 6f 20 74 68 65 20 73 71 6c 69  cess to the sqli
1e50: 74 65 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65 73  te3_api_routines
1e60: 20 73 74 72 75 63 74 75 72 65 0a 2a 2a 20 64 65   structure.** de
1e70: 66 69 6e 69 74 69 6f 6e 2e 20 20 42 75 74 20 74  finition.  But t
1e80: 68 65 20 6d 61 69 6e 20 6c 69 62 72 61 72 79 20  he main library 
1e90: 64 6f 65 73 20 6e 6f 74 20 77 61 6e 74 20 74 6f  does not want to
1ea0: 20 72 65 64 65 66 69 6e 65 0a 2a 2a 20 74 68 65   redefine.** the
1eb0: 20 41 50 49 2e 20 20 53 6f 20 74 68 65 20 72 65   API.  So the re
1ec0: 64 65 66 69 6e 69 74 69 6f 6e 20 6d 61 63 72 6f  definition macro
1ed0: 73 20 61 72 65 20 6f 6e 6c 79 20 76 61 6c 69 64  s are only valid
1ee0: 20 69 66 20 74 68 65 0a 2a 2a 20 53 51 4c 49 54   if the.** SQLIT
1ef0: 45 5f 43 4f 52 45 20 6d 61 63 72 6f 73 20 69 73  E_CORE macros is
1f00: 20 75 6e 64 65 66 69 6e 65 64 2e 0a 2a 2f 0a 23   undefined..*/.#
1f10: 69 66 6e 64 65 66 20 53 51 4c 49 54 45 5f 43 4f  ifndef SQLITE_CO
1f20: 52 45 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  RE.#define sqlit
1f30: 65 33 5f 61 67 67 72 65 67 61 74 65 5f 63 6f 6e  e3_aggregate_con
1f40: 74 65 78 74 20 20 20 20 20 20 73 71 6c 69 74 65  text      sqlite
1f50: 33 5f 61 70 69 2d 3e 61 67 67 72 65 67 61 74 65  3_api->aggregate
1f60: 5f 63 6f 6e 74 65 78 74 0a 23 64 65 66 69 6e 65  _context.#define
1f70: 20 73 71 6c 69 74 65 33 5f 61 67 67 72 65 67 61   sqlite3_aggrega
1f80: 74 65 5f 63 6f 75 6e 74 20 20 20 20 20 20 20 20  te_count        
1f90: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 61 67 67  sqlite3_api->agg
1fa0: 72 65 67 61 74 65 5f 63 6f 75 6e 74 0a 23 64 65  regate_count.#de
1fb0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e  fine sqlite3_bin
1fc0: 64 5f 62 6c 6f 62 20 20 20 20 20 20 20 20 20 20  d_blob          
1fd0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
1fe0: 3e 62 69 6e 64 5f 62 6c 6f 62 0a 23 64 65 66 69  >bind_blob.#defi
1ff0: 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f  ne sqlite3_bind_
2000: 64 6f 75 62 6c 65 20 20 20 20 20 20 20 20 20 20  double          
2010: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62    sqlite3_api->b
2020: 69 6e 64 5f 64 6f 75 62 6c 65 0a 23 64 65 66 69  ind_double.#defi
2030: 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f  ne sqlite3_bind_
2040: 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20  int             
2050: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62    sqlite3_api->b
2060: 69 6e 64 5f 69 6e 74 0a 23 64 65 66 69 6e 65 20  ind_int.#define 
2070: 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 69 6e 74  sqlite3_bind_int
2080: 36 34 20 20 20 20 20 20 20 20 20 20 20 20 20 73  64             s
2090: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69 6e 64  qlite3_api->bind
20a0: 5f 69 6e 74 36 34 0a 23 64 65 66 69 6e 65 20 73  _int64.#define s
20b0: 71 6c 69 74 65 33 5f 62 69 6e 64 5f 6e 75 6c 6c  qlite3_bind_null
20c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71                sq
20d0: 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69 6e 64 5f  lite3_api->bind_
20e0: 6e 75 6c 6c 0a 23 64 65 66 69 6e 65 20 73 71 6c  null.#define sql
20f0: 69 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65  ite3_bind_parame
2100: 74 65 72 5f 63 6f 75 6e 74 20 20 20 73 71 6c 69  ter_count   sqli
2110: 74 65 33 5f 61 70 69 2d 3e 62 69 6e 64 5f 70 61  te3_api->bind_pa
2120: 72 61 6d 65 74 65 72 5f 63 6f 75 6e 74 0a 23 64  rameter_count.#d
2130: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69  efine sqlite3_bi
2140: 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 69 6e 64  nd_parameter_ind
2150: 65 78 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69  ex   sqlite3_api
2160: 2d 3e 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72  ->bind_parameter
2170: 5f 69 6e 64 65 78 0a 23 64 65 66 69 6e 65 20 73  _index.#define s
2180: 71 6c 69 74 65 33 5f 62 69 6e 64 5f 70 61 72 61  qlite3_bind_para
2190: 6d 65 74 65 72 5f 6e 61 6d 65 20 20 20 20 73 71  meter_name    sq
21a0: 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69 6e 64 5f  lite3_api->bind_
21b0: 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d 65 0a 23  parameter_name.#
21c0: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62  define sqlite3_b
21d0: 69 6e 64 5f 74 65 78 74 20 20 20 20 20 20 20 20  ind_text        
21e0: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
21f0: 69 2d 3e 62 69 6e 64 5f 74 65 78 74 0a 23 64 65  i->bind_text.#de
2200: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e  fine sqlite3_bin
2210: 64 5f 74 65 78 74 31 36 20 20 20 20 20 20 20 20  d_text16        
2220: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
2230: 3e 62 69 6e 64 5f 74 65 78 74 31 36 0a 23 64 65  >bind_text16.#de
2240: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e  fine sqlite3_bin
2250: 64 5f 76 61 6c 75 65 20 20 20 20 20 20 20 20 20  d_value         
2260: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
2270: 3e 62 69 6e 64 5f 76 61 6c 75 65 0a 23 64 65 66  >bind_value.#def
2280: 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 75 73 79  ine sqlite3_busy
2290: 5f 68 61 6e 64 6c 65 72 20 20 20 20 20 20 20 20  _handler        
22a0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
22b0: 62 75 73 79 5f 68 61 6e 64 6c 65 72 0a 23 64 65  busy_handler.#de
22c0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 75 73  fine sqlite3_bus
22d0: 79 5f 74 69 6d 65 6f 75 74 20 20 20 20 20 20 20  y_timeout       
22e0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
22f0: 3e 62 75 73 79 5f 74 69 6d 65 6f 75 74 0a 23 64  >busy_timeout.#d
2300: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 68  efine sqlite3_ch
2310: 61 6e 67 65 73 20 20 20 20 20 20 20 20 20 20 20  anges           
2320: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2330: 2d 3e 63 68 61 6e 67 65 73 0a 23 64 65 66 69 6e  ->changes.#defin
2340: 65 20 73 71 6c 69 74 65 33 5f 63 6c 6f 73 65 20  e sqlite3_close 
2350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2360: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6c   sqlite3_api->cl
2370: 6f 73 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ose.#define sqli
2380: 74 65 33 5f 63 6f 6c 6c 61 74 69 6f 6e 5f 6e 65  te3_collation_ne
2390: 65 64 65 64 20 20 20 20 20 20 20 73 71 6c 69 74  eded       sqlit
23a0: 65 33 5f 61 70 69 2d 3e 63 6f 6c 6c 61 74 69 6f  e3_api->collatio
23b0: 6e 5f 6e 65 65 64 65 64 0a 23 64 65 66 69 6e 65  n_needed.#define
23c0: 20 73 71 6c 69 74 65 33 5f 63 6f 6c 6c 61 74 69   sqlite3_collati
23d0: 6f 6e 5f 6e 65 65 64 65 64 31 36 20 20 20 20 20  on_needed16     
23e0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c  sqlite3_api->col
23f0: 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64 31 36 0a  lation_needed16.
2400: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2410: 63 6f 6c 75 6d 6e 5f 62 6c 6f 62 20 20 20 20 20  column_blob     
2420: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2430: 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 62 6c 6f 62 0a  pi->column_blob.
2440: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2450: 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 20 20 20 20  column_bytes    
2460: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2470: 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 62 79 74 65 73  pi->column_bytes
2480: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2490: 5f 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 31 36 20  _column_bytes16 
24a0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
24b0: 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 62 79 74 65  api->column_byte
24c0: 73 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  s16.#define sqli
24d0: 74 65 33 5f 63 6f 6c 75 6d 6e 5f 63 6f 75 6e 74  te3_column_count
24e0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
24f0: 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 63  e3_api->column_c
2500: 6f 75 6e 74 0a 23 64 65 66 69 6e 65 20 73 71 6c  ount.#define sql
2510: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 64 61 74 61  ite3_column_data
2520: 62 61 73 65 5f 6e 61 6d 65 20 20 20 73 71 6c 69  base_name   sqli
2530: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f  te3_api->column_
2540: 64 61 74 61 62 61 73 65 5f 6e 61 6d 65 0a 23 64  database_name.#d
2550: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f  efine sqlite3_co
2560: 6c 75 6d 6e 5f 64 61 74 61 62 61 73 65 5f 6e 61  lumn_database_na
2570: 6d 65 31 36 20 73 71 6c 69 74 65 33 5f 61 70 69  me16 sqlite3_api
2580: 2d 3e 63 6f 6c 75 6d 6e 5f 64 61 74 61 62 61 73  ->column_databas
2590: 65 5f 6e 61 6d 65 31 36 0a 23 64 65 66 69 6e 65  e_name16.#define
25a0: 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f   sqlite3_column_
25b0: 64 65 63 6c 74 79 70 65 20 20 20 20 20 20 20 20  decltype        
25c0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c  sqlite3_api->col
25d0: 75 6d 6e 5f 64 65 63 6c 74 79 70 65 0a 23 64 65  umn_decltype.#de
25e0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c  fine sqlite3_col
25f0: 75 6d 6e 5f 64 65 63 6c 74 79 70 65 31 36 20 20  umn_decltype16  
2600: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
2610: 3e 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65  >column_decltype
2620: 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  16.#define sqlit
2630: 65 33 5f 63 6f 6c 75 6d 6e 5f 64 6f 75 62 6c 65  e3_column_double
2640: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
2650: 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 64 6f  3_api->column_do
2660: 75 62 6c 65 0a 23 64 65 66 69 6e 65 20 73 71 6c  uble.#define sql
2670: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 69 6e 74 20  ite3_column_int 
2680: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
2690: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f  te3_api->column_
26a0: 69 6e 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  int.#define sqli
26b0: 74 65 33 5f 63 6f 6c 75 6d 6e 5f 69 6e 74 36 34  te3_column_int64
26c0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
26d0: 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 69  e3_api->column_i
26e0: 6e 74 36 34 0a 23 64 65 66 69 6e 65 20 73 71 6c  nt64.#define sql
26f0: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d 65  ite3_column_name
2700: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
2710: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f  te3_api->column_
2720: 6e 61 6d 65 0a 23 64 65 66 69 6e 65 20 73 71 6c  name.#define sql
2730: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d 65  ite3_column_name
2740: 31 36 20 20 20 20 20 20 20 20 20 20 73 71 6c 69  16          sqli
2750: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f  te3_api->column_
2760: 6e 61 6d 65 31 36 0a 23 64 65 66 69 6e 65 20 73  name16.#define s
2770: 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6f 72  qlite3_column_or
2780: 69 67 69 6e 5f 6e 61 6d 65 20 20 20 20 20 73 71  igin_name     sq
2790: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d  lite3_api->colum
27a0: 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65 0a 23 64  n_origin_name.#d
27b0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f  efine sqlite3_co
27c0: 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65  lumn_origin_name
27d0: 31 36 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69  16   sqlite3_api
27e0: 2d 3e 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f  ->column_origin_
27f0: 6e 61 6d 65 31 36 0a 23 64 65 66 69 6e 65 20 73  name16.#define s
2800: 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74 61  qlite3_column_ta
2810: 62 6c 65 5f 6e 61 6d 65 20 20 20 20 20 20 73 71  ble_name      sq
2820: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d  lite3_api->colum
2830: 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 0a 23 64 65  n_table_name.#de
2840: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c  fine sqlite3_col
2850: 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 31 36  umn_table_name16
2860: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
2870: 3e 63 6f 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61  >column_table_na
2880: 6d 65 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c  me16.#define sql
2890: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74 65 78 74  ite3_column_text
28a0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
28b0: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f  te3_api->column_
28c0: 74 65 78 74 0a 23 64 65 66 69 6e 65 20 73 71 6c  text.#define sql
28d0: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74 65 78 74  ite3_column_text
28e0: 31 36 20 20 20 20 20 20 20 20 20 20 73 71 6c 69  16          sqli
28f0: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f  te3_api->column_
2900: 74 65 78 74 31 36 0a 23 64 65 66 69 6e 65 20 73  text16.#define s
2910: 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74 79  qlite3_column_ty
2920: 70 65 20 20 20 20 20 20 20 20 20 20 20 20 73 71  pe            sq
2930: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d  lite3_api->colum
2940: 6e 5f 74 79 70 65 0a 23 64 65 66 69 6e 65 20 73  n_type.#define s
2950: 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 76 61  qlite3_column_va
2960: 6c 75 65 20 20 20 20 20 20 20 20 20 20 20 73 71  lue           sq
2970: 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d  lite3_api->colum
2980: 6e 5f 76 61 6c 75 65 0a 23 64 65 66 69 6e 65 20  n_value.#define 
2990: 73 71 6c 69 74 65 33 5f 63 6f 6d 6d 69 74 5f 68  sqlite3_commit_h
29a0: 6f 6f 6b 20 20 20 20 20 20 20 20 20 20 20 20 73  ook            s
29b0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6d 6d  qlite3_api->comm
29c0: 69 74 5f 68 6f 6f 6b 0a 23 64 65 66 69 6e 65 20  it_hook.#define 
29d0: 73 71 6c 69 74 65 33 5f 63 6f 6d 70 6c 65 74 65  sqlite3_complete
29e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73                 s
29f0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6d 70  qlite3_api->comp
2a00: 6c 65 74 65 0a 23 64 65 66 69 6e 65 20 73 71 6c  lete.#define sql
2a10: 69 74 65 33 5f 63 6f 6d 70 6c 65 74 65 31 36 20  ite3_complete16 
2a20: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
2a30: 74 65 33 5f 61 70 69 2d 3e 63 6f 6d 70 6c 65 74  te3_api->complet
2a40: 65 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  e16.#define sqli
2a50: 74 65 33 5f 63 72 65 61 74 65 5f 63 6f 6c 6c 61  te3_create_colla
2a60: 74 69 6f 6e 20 20 20 20 20 20 20 73 71 6c 69 74  tion       sqlit
2a70: 65 33 5f 61 70 69 2d 3e 63 72 65 61 74 65 5f 63  e3_api->create_c
2a80: 6f 6c 6c 61 74 69 6f 6e 0a 23 64 65 66 69 6e 65  ollation.#define
2a90: 20 73 71 6c 69 74 65 33 5f 63 72 65 61 74 65 5f   sqlite3_create_
2aa0: 63 6f 6c 6c 61 74 69 6f 6e 31 36 20 20 20 20 20  collation16     
2ab0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 72 65  sqlite3_api->cre
2ac0: 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 31 36 0a  ate_collation16.
2ad0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2ae0: 63 72 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e 20  create_function 
2af0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2b00: 70 69 2d 3e 63 72 65 61 74 65 5f 66 75 6e 63 74  pi->create_funct
2b10: 69 6f 6e 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ion.#define sqli
2b20: 74 65 33 5f 63 72 65 61 74 65 5f 66 75 6e 63 74  te3_create_funct
2b30: 69 6f 6e 31 36 20 20 20 20 20 20 73 71 6c 69 74  ion16      sqlit
2b40: 65 33 5f 61 70 69 2d 3e 63 72 65 61 74 65 5f 66  e3_api->create_f
2b50: 75 6e 63 74 69 6f 6e 31 36 0a 23 64 65 66 69 6e  unction16.#defin
2b60: 65 20 73 71 6c 69 74 65 33 5f 63 72 65 61 74 65  e sqlite3_create
2b70: 5f 6d 6f 64 75 6c 65 20 20 20 20 20 20 20 20 20  _module         
2b80: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 72   sqlite3_api->cr
2b90: 65 61 74 65 5f 6d 6f 64 75 6c 65 0a 23 64 65 66  eate_module.#def
2ba0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 64 61 74 61  ine sqlite3_data
2bb0: 5f 63 6f 75 6e 74 20 20 20 20 20 20 20 20 20 20  _count          
2bc0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2bd0: 64 61 74 61 5f 63 6f 75 6e 74 0a 23 64 65 66 69  data_count.#defi
2be0: 6e 65 20 73 71 6c 69 74 65 33 5f 64 62 5f 68 61  ne sqlite3_db_ha
2bf0: 6e 64 6c 65 20 20 20 20 20 20 20 20 20 20 20 20  ndle            
2c00: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 64    sqlite3_api->d
2c10: 62 5f 68 61 6e 64 6c 65 0a 23 64 65 66 69 6e 65  b_handle.#define
2c20: 20 73 71 6c 69 74 65 33 5f 64 65 63 6c 61 72 65   sqlite3_declare
2c30: 5f 76 74 61 62 20 20 20 20 20 20 20 20 20 20 20  _vtab           
2c40: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 64 65 63  sqlite3_api->dec
2c50: 6c 61 72 65 5f 76 74 61 62 0a 23 64 65 66 69 6e  lare_vtab.#defin
2c60: 65 20 73 71 6c 69 74 65 33 5f 65 6e 61 62 6c 65  e sqlite3_enable
2c70: 5f 73 68 61 72 65 64 5f 63 61 63 68 65 20 20 20  _shared_cache   
2c80: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 65 6e   sqlite3_api->en
2c90: 61 62 6c 65 5f 73 68 61 72 65 64 5f 63 61 63 68  able_shared_cach
2ca0: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
2cb0: 33 5f 65 72 72 63 6f 64 65 20 20 20 20 20 20 20  3_errcode       
2cc0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
2cd0: 5f 61 70 69 2d 3e 65 72 72 63 6f 64 65 0a 23 64  _api->errcode.#d
2ce0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 65 72  efine sqlite3_er
2cf0: 72 6d 73 67 20 20 20 20 20 20 20 20 20 20 20 20  rmsg            
2d00: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2d10: 2d 3e 65 72 72 6d 73 67 0a 23 64 65 66 69 6e 65  ->errmsg.#define
2d20: 20 73 71 6c 69 74 65 33 5f 65 72 72 6d 73 67 31   sqlite3_errmsg1
2d30: 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  6               
2d40: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 65 72 72  sqlite3_api->err
2d50: 6d 73 67 31 36 0a 23 64 65 66 69 6e 65 20 73 71  msg16.#define sq
2d60: 6c 69 74 65 33 5f 65 78 65 63 20 20 20 20 20 20  lite3_exec      
2d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
2d80: 69 74 65 33 5f 61 70 69 2d 3e 65 78 65 63 0a 23  ite3_api->exec.#
2d90: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 65  define sqlite3_e
2da0: 78 70 69 72 65 64 20 20 20 20 20 20 20 20 20 20  xpired          
2db0: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
2dc0: 69 2d 3e 65 78 70 69 72 65 64 0a 23 64 65 66 69  i->expired.#defi
2dd0: 6e 65 20 73 71 6c 69 74 65 33 5f 66 69 6e 61 6c  ne sqlite3_final
2de0: 69 7a 65 20 20 20 20 20 20 20 20 20 20 20 20 20  ize             
2df0: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 66    sqlite3_api->f
2e00: 69 6e 61 6c 69 7a 65 0a 23 64 65 66 69 6e 65 20  inalize.#define 
2e10: 73 71 6c 69 74 65 33 5f 66 72 65 65 20 20 20 20  sqlite3_free    
2e20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73                 s
2e30: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 66 72 65 65  qlite3_api->free
2e40: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2e50: 5f 66 72 65 65 5f 74 61 62 6c 65 20 20 20 20 20  _free_table     
2e60: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
2e70: 61 70 69 2d 3e 66 72 65 65 5f 74 61 62 6c 65 0a  api->free_table.
2e80: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2e90: 67 65 74 5f 61 75 74 6f 63 6f 6d 6d 69 74 20 20  get_autocommit  
2ea0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2eb0: 70 69 2d 3e 67 65 74 5f 61 75 74 6f 63 6f 6d 6d  pi->get_autocomm
2ec0: 69 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  it.#define sqlit
2ed0: 65 33 5f 67 65 74 5f 61 75 78 64 61 74 61 20 20  e3_get_auxdata  
2ee0: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
2ef0: 33 5f 61 70 69 2d 3e 67 65 74 5f 61 75 78 64 61  3_api->get_auxda
2f00: 74 61 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  ta.#define sqlit
2f10: 65 33 5f 67 65 74 5f 74 61 62 6c 65 20 20 20 20  e3_get_table    
2f20: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
2f30: 33 5f 61 70 69 2d 3e 67 65 74 5f 74 61 62 6c 65  3_api->get_table
2f40: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2f50: 5f 67 6c 6f 62 61 6c 5f 72 65 63 6f 76 65 72 20  _global_recover 
2f60: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
2f70: 61 70 69 2d 3e 67 6c 6f 62 61 6c 5f 72 65 63 6f  api->global_reco
2f80: 76 65 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ver.#define sqli
2f90: 74 65 33 5f 69 6e 74 65 72 72 75 70 74 20 20 20  te3_interrupt   
2fa0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
2fb0: 65 33 5f 61 70 69 2d 3e 69 6e 74 65 72 72 75 70  e3_api->interrup
2fc0: 74 78 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  tx.#define sqlit
2fd0: 65 33 5f 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72  e3_last_insert_r
2fe0: 6f 77 69 64 20 20 20 20 20 20 73 71 6c 69 74 65  owid      sqlite
2ff0: 33 5f 61 70 69 2d 3e 6c 61 73 74 5f 69 6e 73 65  3_api->last_inse
3000: 72 74 5f 72 6f 77 69 64 0a 23 64 65 66 69 6e 65  rt_rowid.#define
3010: 20 73 71 6c 69 74 65 33 5f 6c 69 62 76 65 72 73   sqlite3_libvers
3020: 69 6f 6e 20 20 20 20 20 20 20 20 20 20 20 20 20  ion             
3030: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6c 69 62  sqlite3_api->lib
3040: 76 65 72 73 69 6f 6e 0a 23 64 65 66 69 6e 65 20  version.#define 
3050: 73 71 6c 69 74 65 33 5f 6c 69 62 76 65 72 73 69  sqlite3_libversi
3060: 6f 6e 5f 6e 75 6d 62 65 72 20 20 20 20 20 20 73  on_number      s
3070: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6c 69 62 76  qlite3_api->libv
3080: 65 72 73 69 6f 6e 5f 6e 75 6d 62 65 72 0a 23 64  ersion_number.#d
3090: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 6d 61  efine sqlite3_ma
30a0: 6c 6c 6f 63 20 20 20 20 20 20 20 20 20 20 20 20  lloc            
30b0: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
30c0: 2d 3e 6d 61 6c 6c 6f 63 0a 23 64 65 66 69 6e 65  ->malloc.#define
30d0: 20 73 71 6c 69 74 65 33 5f 6d 70 72 69 6e 74 66   sqlite3_mprintf
30e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
30f0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 6d 70 72  sqlite3_api->mpr
3100: 69 6e 74 66 0a 23 64 65 66 69 6e 65 20 73 71 6c  intf.#define sql
3110: 69 74 65 33 5f 6f 70 65 6e 20 20 20 20 20 20 20  ite3_open       
3120: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
3130: 74 65 33 5f 61 70 69 2d 3e 6f 70 65 6e 0a 23 64  te3_api->open.#d
3140: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 6f 70  efine sqlite3_op
3150: 65 6e 31 36 20 20 20 20 20 20 20 20 20 20 20 20  en16            
3160: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
3170: 2d 3e 6f 70 65 6e 31 36 0a 23 64 65 66 69 6e 65  ->open16.#define
3180: 20 73 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65   sqlite3_prepare
3190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
31a0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 70 72 65  sqlite3_api->pre
31b0: 70 61 72 65 0a 23 64 65 66 69 6e 65 20 73 71 6c  pare.#define sql
31c0: 69 74 65 33 5f 70 72 65 70 61 72 65 31 36 20 20  ite3_prepare16  
31d0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
31e0: 74 65 33 5f 61 70 69 2d 3e 70 72 65 70 61 72 65  te3_api->prepare
31f0: 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  16.#define sqlit
3200: 65 33 5f 70 72 6f 66 69 6c 65 20 20 20 20 20 20  e3_profile      
3210: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3220: 33 5f 61 70 69 2d 3e 70 72 6f 66 69 6c 65 0a 23  3_api->profile.#
3230: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 70  define sqlite3_p
3240: 72 6f 67 72 65 73 73 5f 68 61 6e 64 6c 65 72 20  rogress_handler 
3250: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
3260: 69 2d 3e 70 72 6f 67 72 65 73 73 5f 68 61 6e 64  i->progress_hand
3270: 6c 65 72 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ler.#define sqli
3280: 74 65 33 5f 72 65 61 6c 6c 6f 63 20 20 20 20 20  te3_realloc     
3290: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
32a0: 65 33 5f 61 70 69 2d 3e 72 65 61 6c 6c 6f 63 0a  e3_api->realloc.
32b0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
32c0: 72 65 73 65 74 20 20 20 20 20 20 20 20 20 20 20  reset           
32d0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
32e0: 70 69 2d 3e 72 65 73 65 74 0a 23 64 65 66 69 6e  pi->reset.#defin
32f0: 65 20 73 71 6c 69 74 65 33 5f 72 65 73 75 6c 74  e sqlite3_result
3300: 5f 62 6c 6f 62 20 20 20 20 20 20 20 20 20 20 20  _blob           
3310: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65   sqlite3_api->re
3320: 73 75 6c 74 5f 62 6c 6f 62 0a 23 64 65 66 69 6e  sult_blob.#defin
3330: 65 20 73 71 6c 69 74 65 33 5f 72 65 73 75 6c 74  e sqlite3_result
3340: 5f 64 6f 75 62 6c 65 20 20 20 20 20 20 20 20 20  _double         
3350: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65   sqlite3_api->re
3360: 73 75 6c 74 5f 64 6f 75 62 6c 65 0a 23 64 65 66  sult_double.#def
3370: 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 65 73 75  ine sqlite3_resu
3380: 6c 74 5f 65 72 72 6f 72 20 20 20 20 20 20 20 20  lt_error        
3390: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
33a0: 72 65 73 75 6c 74 5f 65 72 72 6f 72 0a 23 64 65  result_error.#de
33b0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72 65 73  fine sqlite3_res
33c0: 75 6c 74 5f 65 72 72 6f 72 31 36 20 20 20 20 20  ult_error16     
33d0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
33e0: 3e 72 65 73 75 6c 74 5f 65 72 72 6f 72 31 36 0a  >result_error16.
33f0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
3400: 72 65 73 75 6c 74 5f 69 6e 74 20 20 20 20 20 20  result_int      
3410: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
3420: 70 69 2d 3e 72 65 73 75 6c 74 5f 69 6e 74 0a 23  pi->result_int.#
3430: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 72  define sqlite3_r
3440: 65 73 75 6c 74 5f 69 6e 74 36 34 20 20 20 20 20  esult_int64     
3450: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
3460: 69 2d 3e 72 65 73 75 6c 74 5f 69 6e 74 36 34 0a  i->result_int64.
3470: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
3480: 72 65 73 75 6c 74 5f 6e 75 6c 6c 20 20 20 20 20  result_null     
3490: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
34a0: 70 69 2d 3e 72 65 73 75 6c 74 5f 6e 75 6c 6c 0a  pi->result_null.
34b0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
34c0: 72 65 73 75 6c 74 5f 74 65 78 74 20 20 20 20 20  result_text     
34d0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
34e0: 70 69 2d 3e 72 65 73 75 6c 74 5f 74 65 78 74 0a  pi->result_text.
34f0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
3500: 72 65 73 75 6c 74 5f 74 65 78 74 31 36 20 20 20  result_text16   
3510: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
3520: 70 69 2d 3e 72 65 73 75 6c 74 5f 74 65 78 74 31  pi->result_text1
3530: 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  6.#define sqlite
3540: 33 5f 72 65 73 75 6c 74 5f 74 65 78 74 31 36 62  3_result_text16b
3550: 65 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33  e        sqlite3
3560: 5f 61 70 69 2d 3e 72 65 73 75 6c 74 5f 74 65 78  _api->result_tex
3570: 74 31 36 62 65 0a 23 64 65 66 69 6e 65 20 73 71  t16be.#define sq
3580: 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 74 65 78  lite3_result_tex
3590: 74 31 36 6c 65 20 20 20 20 20 20 20 20 73 71 6c  t16le        sql
35a0: 69 74 65 33 5f 61 70 69 2d 3e 72 65 73 75 6c 74  ite3_api->result
35b0: 5f 74 65 78 74 31 36 6c 65 0a 23 64 65 66 69 6e  _text16le.#defin
35c0: 65 20 73 71 6c 69 74 65 33 5f 72 65 73 75 6c 74  e sqlite3_result
35d0: 5f 76 61 6c 75 65 20 20 20 20 20 20 20 20 20 20  _value          
35e0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72 65   sqlite3_api->re
35f0: 73 75 6c 74 5f 76 61 6c 75 65 0a 23 64 65 66 69  sult_value.#defi
3600: 6e 65 20 73 71 6c 69 74 65 33 5f 72 6f 6c 6c 62  ne sqlite3_rollb
3610: 61 63 6b 5f 68 6f 6f 6b 20 20 20 20 20 20 20 20  ack_hook        
3620: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 72    sqlite3_api->r
3630: 6f 6c 6c 62 61 63 6b 5f 68 6f 6f 6b 0a 23 64 65  ollback_hook.#de
3640: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 73 65 74  fine sqlite3_set
3650: 5f 61 75 74 68 6f 72 69 7a 65 72 20 20 20 20 20  _authorizer     
3660: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
3670: 3e 73 65 74 5f 61 75 74 68 6f 72 69 7a 65 72 0a  >set_authorizer.
3680: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
3690: 73 65 74 5f 61 75 78 64 61 74 61 20 20 20 20 20  set_auxdata     
36a0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
36b0: 70 69 2d 3e 73 65 74 5f 61 75 78 64 61 74 61 0a  pi->set_auxdata.
36c0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
36d0: 73 6e 70 72 69 6e 74 66 20 20 20 20 20 20 20 20  snprintf        
36e0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
36f0: 70 69 2d 3e 73 6e 70 72 69 6e 74 66 0a 23 64 65  pi->snprintf.#de
3700: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 73 74 65  fine sqlite3_ste
3710: 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  p               
3720: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
3730: 3e 73 74 65 70 0a 23 64 65 66 69 6e 65 20 73 71  >step.#define sq
3740: 6c 69 74 65 33 5f 74 61 62 6c 65 5f 63 6f 6c 75  lite3_table_colu
3750: 6d 6e 5f 6d 65 74 61 64 61 74 61 20 20 73 71 6c  mn_metadata  sql
3760: 69 74 65 33 5f 61 70 69 2d 3e 74 61 62 6c 65 5f  ite3_api->table_
3770: 63 6f 6c 75 6d 6e 5f 6d 65 74 61 64 61 74 61 0a  column_metadata.
3780: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
3790: 74 68 72 65 61 64 5f 63 6c 65 61 6e 75 70 20 20  thread_cleanup  
37a0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
37b0: 70 69 2d 3e 74 68 72 65 61 64 5f 63 6c 65 61 6e  pi->thread_clean
37c0: 75 70 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  up.#define sqlit
37d0: 65 33 5f 74 6f 74 61 6c 5f 63 68 61 6e 67 65 73  e3_total_changes
37e0: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
37f0: 33 5f 61 70 69 2d 3e 74 6f 74 61 6c 5f 63 68 61  3_api->total_cha
3800: 6e 67 65 73 0a 23 64 65 66 69 6e 65 20 73 71 6c  nges.#define sql
3810: 69 74 65 33 5f 74 72 61 63 65 20 20 20 20 20 20  ite3_trace      
3820: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
3830: 74 65 33 5f 61 70 69 2d 3e 74 72 61 63 65 0a 23  te3_api->trace.#
3840: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 74  define sqlite3_t
3850: 72 61 6e 73 66 65 72 5f 62 69 6e 64 69 6e 67 73  ransfer_bindings
3860: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
3870: 69 2d 3e 74 72 61 6e 73 66 65 72 5f 62 69 6e 64  i->transfer_bind
3880: 69 6e 67 73 0a 23 64 65 66 69 6e 65 20 73 71 6c  ings.#define sql
3890: 69 74 65 33 5f 75 70 64 61 74 65 5f 68 6f 6f 6b  ite3_update_hook
38a0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
38b0: 74 65 33 5f 61 70 69 2d 3e 75 70 64 61 74 65 5f  te3_api->update_
38c0: 68 6f 6f 6b 0a 23 64 65 66 69 6e 65 20 73 71 6c  hook.#define sql
38d0: 69 74 65 33 5f 75 73 65 72 5f 64 61 74 61 20 20  ite3_user_data  
38e0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
38f0: 74 65 33 5f 61 70 69 2d 3e 75 73 65 72 5f 64 61  te3_api->user_da
3900: 74 61 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  ta.#define sqlit
3910: 65 33 5f 76 61 6c 75 65 5f 62 6c 6f 62 20 20 20  e3_value_blob   
3920: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3930: 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 62 6c 6f  3_api->value_blo
3940: 62 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  b.#define sqlite
3950: 33 5f 76 61 6c 75 65 5f 62 79 74 65 73 20 20 20  3_value_bytes   
3960: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
3970: 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 62 79 74 65  _api->value_byte
3980: 73 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  s.#define sqlite
3990: 33 5f 76 61 6c 75 65 5f 62 79 74 65 73 31 36 20  3_value_bytes16 
39a0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
39b0: 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 62 79 74 65  _api->value_byte
39c0: 73 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  s16.#define sqli
39d0: 74 65 33 5f 76 61 6c 75 65 5f 64 6f 75 62 6c 65  te3_value_double
39e0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
39f0: 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 64 6f  e3_api->value_do
3a00: 75 62 6c 65 0a 23 64 65 66 69 6e 65 20 73 71 6c  uble.#define sql
3a10: 69 74 65 33 5f 76 61 6c 75 65 5f 69 6e 74 20 20  ite3_value_int  
3a20: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
3a30: 74 65 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 69  te3_api->value_i
3a40: 6e 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  nt.#define sqlit
3a50: 65 33 5f 76 61 6c 75 65 5f 69 6e 74 36 34 20 20  e3_value_int64  
3a60: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
3a70: 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 69 6e 74  3_api->value_int
3a80: 36 34 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  64.#define sqlit
3a90: 65 33 5f 76 61 6c 75 65 5f 6e 75 6d 65 72 69 63  e3_value_numeric
3aa0: 5f 74 79 70 65 20 20 20 20 20 73 71 6c 69 74 65  _type     sqlite
3ab0: 33 5f 61 70 69 2d 3e 76 61 6c 75 65 5f 6e 75 6d  3_api->value_num
3ac0: 65 72 69 63 5f 74 79 70 65 0a 23 64 65 66 69 6e  eric_type.#defin
3ad0: 65 20 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f  e sqlite3_value_
3ae0: 74 65 78 74 20 20 20 20 20 20 20 20 20 20 20 20  text            
3af0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61   sqlite3_api->va
3b00: 6c 75 65 5f 74 65 78 74 0a 23 64 65 66 69 6e 65  lue_text.#define
3b10: 20 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 74   sqlite3_value_t
3b20: 65 78 74 31 36 20 20 20 20 20 20 20 20 20 20 20  ext16           
3b30: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61 6c  sqlite3_api->val
3b40: 75 65 5f 74 65 78 74 31 36 0a 23 64 65 66 69 6e  ue_text16.#defin
3b50: 65 20 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f  e sqlite3_value_
3b60: 74 65 78 74 31 36 62 65 20 20 20 20 20 20 20 20  text16be        
3b70: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 76 61   sqlite3_api->va
3b80: 6c 75 65 5f 74 65 78 74 31 36 62 65 0a 23 64 65  lue_text16be.#de
3b90: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76 61 6c  fine sqlite3_val
3ba0: 75 65 5f 74 65 78 74 31 36 6c 65 20 20 20 20 20  ue_text16le     
3bb0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
3bc0: 3e 76 61 6c 75 65 5f 74 65 78 74 31 36 6c 65 0a  >value_text16le.
3bd0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
3be0: 76 61 6c 75 65 5f 74 79 70 65 20 20 20 20 20 20  value_type      
3bf0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
3c00: 70 69 2d 3e 76 61 6c 75 65 5f 74 79 70 65 0a 23  pi->value_type.#
3c10: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 76  define sqlite3_v
3c20: 6d 70 72 69 6e 74 66 20 20 20 20 20 20 20 20 20  mprintf         
3c30: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
3c40: 69 2d 3e 76 6d 70 72 69 6e 74 66 0a 23 64 65 66  i->vmprintf.#def
3c50: 69 6e 65 20 73 71 6c 69 74 65 33 5f 6f 76 65 72  ine sqlite3_over
3c60: 6c 6f 61 64 5f 66 75 6e 63 74 69 6f 6e 20 20 20  load_function   
3c70: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
3c80: 6f 76 65 72 6c 6f 61 64 5f 66 75 6e 63 74 69 6f  overload_functio
3c90: 6e 0a 23 65 6e 64 69 66 20 2f 2a 20 53 51 4c 49  n.#endif /* SQLI
3ca0: 54 45 5f 43 4f 52 45 20 2a 2f 0a 0a 23 64 65 66  TE_CORE */..#def
3cb0: 69 6e 65 20 53 51 4c 49 54 45 5f 45 58 54 45 4e  ine SQLITE_EXTEN
3cc0: 53 49 4f 4e 5f 49 4e 49 54 31 20 20 20 20 20 63  SION_INIT1     c
3cd0: 6f 6e 73 74 20 73 71 6c 69 74 65 33 5f 61 70 69  onst sqlite3_api
3ce0: 5f 72 6f 75 74 69 6e 65 73 20 2a 73 71 6c 69 74  _routines *sqlit
3cf0: 65 33 5f 61 70 69 3b 0a 23 64 65 66 69 6e 65 20  e3_api;.#define 
3d00: 53 51 4c 49 54 45 5f 45 58 54 45 4e 53 49 4f 4e  SQLITE_EXTENSION
3d10: 5f 49 4e 49 54 32 28 76 29 20 20 73 71 6c 69 74  _INIT2(v)  sqlit
3d20: 65 33 5f 61 70 69 20 3d 20 76 3b 0a 0a 23 65 6e  e3_api = v;..#en
3d30: 64 69 66 20 2f 2a 20 5f 53 51 4c 49 54 45 33 45  dif /* _SQLITE3E
3d40: 58 54 5f 48 5f 20 2a 2f 0a                       XT_H_ */.