/ Hex Artifact Content
Login

Artifact 2c2156cc32a158e2b7bd9042d42accf94bff2e40:


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 37  lite3ext.h,v 1.7
02a0: 20 32 30 30 36 2f 30 39 2f 32 32 20 32 33 3a 33   2006/09/22 23:3
02b0: 38 3a 32 31 20 73 68 65 73 73 20 45 78 70 20 24  8:21 shess Exp $
02c0: 0a 2a 2f 0a 23 69 66 6e 64 65 66 20 5f 53 51 4c  .*/.#ifndef _SQL
02d0: 49 54 45 33 45 58 54 5f 48 5f 0a 23 64 65 66 69  ITE3EXT_H_.#defi
02e0: 6e 65 20 5f 53 51 4c 49 54 45 33 45 58 54 5f 48  ne _SQLITE3EXT_H
02f0: 5f 0a 23 69 6e 63 6c 75 64 65 20 22 73 71 6c 69  _.#include "sqli
0300: 74 65 33 2e 68 22 0a 0a 74 79 70 65 64 65 66 20  te3.h"..typedef 
0310: 73 74 72 75 63 74 20 73 71 6c 69 74 65 33 5f 61  struct sqlite3_a
0320: 70 69 5f 72 6f 75 74 69 6e 65 73 20 73 71 6c 69  pi_routines sqli
0330: 74 65 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65 73  te3_api_routines
0340: 3b 0a 0a 2f 2a 0a 2a 2a 20 54 68 65 20 66 6f 6c  ;../*.** The fol
0350: 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72 65  lowing structure
0360: 20 68 6f 6c 64 20 70 6f 69 6e 74 65 72 73 20 74   hold pointers t
0370: 6f 20 61 6c 6c 20 6f 66 20 74 68 65 20 53 51 4c  o all of the SQL
0380: 69 74 65 20 41 50 49 0a 2a 2a 20 72 6f 75 74 69  ite API.** routi
0390: 6e 65 73 2e 0a 2a 2f 0a 73 74 72 75 63 74 20 73  nes..*/.struct s
03a0: 71 6c 69 74 65 33 5f 61 70 69 5f 72 6f 75 74 69  qlite3_api_routi
03b0: 6e 65 73 20 7b 0a 20 20 76 6f 69 64 20 2a 20 28  nes {.  void * (
03c0: 2a 61 67 67 72 65 67 61 74 65 5f 63 6f 6e 74 65  *aggregate_conte
03d0: 78 74 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74  xt)(sqlite3_cont
03e0: 65 78 74 2a 2c 69 6e 74 20 6e 42 79 74 65 73 29  ext*,int nBytes)
03f0: 3b 0a 20 20 69 6e 74 20 20 28 2a 61 67 67 72 65  ;.  int  (*aggre
0400: 67 61 74 65 5f 63 6f 75 6e 74 29 28 73 71 6c 69  gate_count)(sqli
0410: 74 65 33 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a 20  te3_context*);. 
0420: 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f 62 6c 6f   int  (*bind_blo
0430: 62 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  b)(sqlite3_stmt*
0440: 2c 69 6e 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a  ,int,const void*
0450: 2c 69 6e 74 20 6e 2c 76 6f 69 64 28 2a 29 28 76  ,int n,void(*)(v
0460: 6f 69 64 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28  oid*));.  int  (
0470: 2a 62 69 6e 64 5f 64 6f 75 62 6c 65 29 28 73 71  *bind_double)(sq
0480: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c  lite3_stmt*,int,
0490: 64 6f 75 62 6c 65 29 3b 0a 20 20 69 6e 74 20 20  double);.  int  
04a0: 28 2a 62 69 6e 64 5f 69 6e 74 29 28 73 71 6c 69  (*bind_int)(sqli
04b0: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 69 6e  te3_stmt*,int,in
04c0: 74 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e  t);.  int  (*bin
04d0: 64 5f 69 6e 74 36 34 29 28 73 71 6c 69 74 65 33  d_int64)(sqlite3
04e0: 5f 73 74 6d 74 2a 2c 69 6e 74 2c 73 71 6c 69 74  _stmt*,int,sqlit
04f0: 65 5f 69 6e 74 36 34 29 3b 0a 20 20 69 6e 74 20  e_int64);.  int 
0500: 20 28 2a 62 69 6e 64 5f 6e 75 6c 6c 29 28 73 71   (*bind_null)(sq
0510: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29  lite3_stmt*,int)
0520: 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f  ;.  int  (*bind_
0530: 70 61 72 61 6d 65 74 65 72 5f 63 6f 75 6e 74 29  parameter_count)
0540: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b  (sqlite3_stmt*);
0550: 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e 64 5f 70  .  int  (*bind_p
0560: 61 72 61 6d 65 74 65 72 5f 69 6e 64 65 78 29 28  arameter_index)(
0570: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 63 6f  sqlite3_stmt*,co
0580: 6e 73 74 20 63 68 61 72 2a 7a 4e 61 6d 65 29 3b  nst char*zName);
0590: 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20  .  const char * 
05a0: 28 2a 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72  (*bind_parameter
05b0: 5f 6e 61 6d 65 29 28 73 71 6c 69 74 65 33 5f 73  _name)(sqlite3_s
05c0: 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 69 6e 74  tmt*,int);.  int
05d0: 20 20 28 2a 62 69 6e 64 5f 74 65 78 74 29 28 73    (*bind_text)(s
05e0: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74  qlite3_stmt*,int
05f0: 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74  ,const char*,int
0600: 20 6e 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a   n,void(*)(void*
0610: 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62 69 6e  ));.  int  (*bin
0620: 64 5f 74 65 78 74 31 36 29 28 73 71 6c 69 74 65  d_text16)(sqlite
0630: 33 5f 73 74 6d 74 2a 2c 69 6e 74 2c 63 6f 6e 73  3_stmt*,int,cons
0640: 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64  t void*,int,void
0650: 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 69  (*)(void*));.  i
0660: 6e 74 20 20 28 2a 62 69 6e 64 5f 76 61 6c 75 65  nt  (*bind_value
0670: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c  )(sqlite3_stmt*,
0680: 69 6e 74 2c 63 6f 6e 73 74 20 73 71 6c 69 74 65  int,const sqlite
0690: 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e 74  3_value*);.  int
06a0: 20 20 28 2a 62 75 73 79 5f 68 61 6e 64 6c 65 72    (*busy_handler
06b0: 29 28 73 71 6c 69 74 65 33 2a 2c 69 6e 74 28 2a  )(sqlite3*,int(*
06c0: 29 28 76 6f 69 64 2a 2c 69 6e 74 29 2c 76 6f 69  )(void*,int),voi
06d0: 64 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 62 75  d*);.  int  (*bu
06e0: 73 79 5f 74 69 6d 65 6f 75 74 29 28 73 71 6c 69  sy_timeout)(sqli
06f0: 74 65 33 2a 2c 69 6e 74 20 6d 73 29 3b 0a 20 20  te3*,int ms);.  
0700: 69 6e 74 20 20 28 2a 63 68 61 6e 67 65 73 29 28  int  (*changes)(
0710: 73 71 6c 69 74 65 33 2a 29 3b 0a 20 20 69 6e 74  sqlite3*);.  int
0720: 20 20 28 2a 63 6c 6f 73 65 29 28 73 71 6c 69 74    (*close)(sqlit
0730: 65 33 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63  e3*);.  int  (*c
0740: 6f 6c 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64 29  ollation_needed)
0750: 28 73 71 6c 69 74 65 33 2a 2c 76 6f 69 64 2a 2c  (sqlite3*,void*,
0760: 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 2c 73 71  void(*)(void*,sq
0770: 6c 69 74 65 33 2a 2c 69 6e 74 20 65 54 65 78 74  lite3*,int eText
0780: 52 65 70 2c 63 6f 6e 73 74 20 63 68 61 72 2a 29  Rep,const char*)
0790: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c 6c  );.  int  (*coll
07a0: 61 74 69 6f 6e 5f 6e 65 65 64 65 64 31 36 29 28  ation_needed16)(
07b0: 73 71 6c 69 74 65 33 2a 2c 76 6f 69 64 2a 2c 76  sqlite3*,void*,v
07c0: 6f 69 64 28 2a 29 28 76 6f 69 64 2a 2c 73 71 6c  oid(*)(void*,sql
07d0: 69 74 65 33 2a 2c 69 6e 74 20 65 54 65 78 74 52  ite3*,int eTextR
07e0: 65 70 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 29 29  ep,const void*))
07f0: 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a  ;.  const void *
0800: 20 28 2a 63 6f 6c 75 6d 6e 5f 62 6c 6f 62 29 28   (*column_blob)(
0810: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0820: 74 20 69 43 6f 6c 29 3b 0a 20 20 69 6e 74 20 20  t iCol);.  int  
0830: 28 2a 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 29 28  (*column_bytes)(
0840: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0850: 74 20 69 43 6f 6c 29 3b 0a 20 20 69 6e 74 20 20  t iCol);.  int  
0860: 28 2a 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 31 36  (*column_bytes16
0870: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c  )(sqlite3_stmt*,
0880: 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 69 6e 74  int iCol);.  int
0890: 20 20 28 2a 63 6f 6c 75 6d 6e 5f 63 6f 75 6e 74    (*column_count
08a0: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 70  )(sqlite3_stmt*p
08b0: 53 74 6d 74 29 3b 0a 20 20 63 6f 6e 73 74 20 63  Stmt);.  const c
08c0: 68 61 72 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 64  har * (*column_d
08d0: 61 74 61 62 61 73 65 5f 6e 61 6d 65 29 28 73 71  atabase_name)(sq
08e0: 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29  lite3_stmt*,int)
08f0: 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a  ;.  const void *
0900: 20 28 2a 63 6f 6c 75 6d 6e 5f 64 61 74 61 62 61   (*column_databa
0910: 73 65 5f 6e 61 6d 65 31 36 29 28 73 71 6c 69 74  se_name16)(sqlit
0920: 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20  e3_stmt*,int);. 
0930: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28 2a   const char * (*
0940: 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65 29  column_decltype)
0950: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69  (sqlite3_stmt*,i
0960: 6e 74 20 69 29 3b 0a 20 20 63 6f 6e 73 74 20 76  nt i);.  const v
0970: 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 64  oid * (*column_d
0980: 65 63 6c 74 79 70 65 31 36 29 28 73 71 6c 69 74  ecltype16)(sqlit
0990: 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20  e3_stmt*,int);. 
09a0: 20 64 6f 75 62 6c 65 20 20 28 2a 63 6f 6c 75 6d   double  (*colum
09b0: 6e 5f 64 6f 75 62 6c 65 29 28 73 71 6c 69 74 65  n_double)(sqlite
09c0: 33 5f 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c  3_stmt*,int iCol
09d0: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6c 75  );.  int  (*colu
09e0: 6d 6e 5f 69 6e 74 29 28 73 71 6c 69 74 65 33 5f  mn_int)(sqlite3_
09f0: 73 74 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b  stmt*,int iCol);
0a00: 0a 20 20 73 71 6c 69 74 65 5f 69 6e 74 36 34 20  .  sqlite_int64 
0a10: 20 28 2a 63 6f 6c 75 6d 6e 5f 69 6e 74 36 34 29   (*column_int64)
0a20: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69  (sqlite3_stmt*,i
0a30: 6e 74 20 69 43 6f 6c 29 3b 0a 20 20 63 6f 6e 73  nt iCol);.  cons
0a40: 74 20 63 68 61 72 20 2a 20 28 2a 63 6f 6c 75 6d  t char * (*colum
0a50: 6e 5f 6e 61 6d 65 29 28 73 71 6c 69 74 65 33 5f  n_name)(sqlite3_
0a60: 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f  stmt*,int);.  co
0a70: 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6c  nst void * (*col
0a80: 75 6d 6e 5f 6e 61 6d 65 31 36 29 28 73 71 6c 69  umn_name16)(sqli
0a90: 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a  te3_stmt*,int);.
0aa0: 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28    const char * (
0ab0: 2a 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e  *column_origin_n
0ac0: 61 6d 65 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  ame)(sqlite3_stm
0ad0: 74 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f 6e 73 74  t*,int);.  const
0ae0: 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6c 75 6d 6e   void * (*column
0af0: 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65 31 36 29 28  _origin_name16)(
0b00: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e  sqlite3_stmt*,in
0b10: 74 29 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72  t);.  const char
0b20: 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 74 61 62 6c   * (*column_tabl
0b30: 65 5f 6e 61 6d 65 29 28 73 71 6c 69 74 65 33 5f  e_name)(sqlite3_
0b40: 73 74 6d 74 2a 2c 69 6e 74 29 3b 0a 20 20 63 6f  stmt*,int);.  co
0b50: 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a 63 6f 6c  nst void * (*col
0b60: 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 31 36  umn_table_name16
0b70: 29 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c  )(sqlite3_stmt*,
0b80: 69 6e 74 29 3b 0a 20 20 63 6f 6e 73 74 20 75 6e  int);.  const un
0b90: 73 69 67 6e 65 64 20 63 68 61 72 20 2a 20 28 2a  signed char * (*
0ba0: 63 6f 6c 75 6d 6e 5f 74 65 78 74 29 28 73 71 6c  column_text)(sql
0bb0: 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74 20 69  ite3_stmt*,int i
0bc0: 43 6f 6c 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f  Col);.  const vo
0bd0: 69 64 20 2a 20 28 2a 63 6f 6c 75 6d 6e 5f 74 65  id * (*column_te
0be0: 78 74 31 36 29 28 73 71 6c 69 74 65 33 5f 73 74  xt16)(sqlite3_st
0bf0: 6d 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20  mt*,int iCol);. 
0c00: 20 69 6e 74 20 20 28 2a 63 6f 6c 75 6d 6e 5f 74   int  (*column_t
0c10: 79 70 65 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  ype)(sqlite3_stm
0c20: 74 2a 2c 69 6e 74 20 69 43 6f 6c 29 3b 0a 20 20  t*,int iCol);.  
0c30: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 20 28  sqlite3_value* (
0c40: 2a 63 6f 6c 75 6d 6e 5f 76 61 6c 75 65 29 28 73  *column_value)(s
0c50: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 2c 69 6e 74  qlite3_stmt*,int
0c60: 20 69 43 6f 6c 29 3b 0a 20 20 76 6f 69 64 20 2a   iCol);.  void *
0c70: 20 28 2a 63 6f 6d 6d 69 74 5f 68 6f 6f 6b 29 28   (*commit_hook)(
0c80: 73 71 6c 69 74 65 33 2a 2c 69 6e 74 28 2a 29 28  sqlite3*,int(*)(
0c90: 76 6f 69 64 2a 29 2c 76 6f 69 64 2a 29 3b 0a 20  void*),void*);. 
0ca0: 20 69 6e 74 20 20 28 2a 63 6f 6d 70 6c 65 74 65   int  (*complete
0cb0: 29 28 63 6f 6e 73 74 20 63 68 61 72 2a 73 71 6c  )(const char*sql
0cc0: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 6f 6d 70  );.  int  (*comp
0cd0: 6c 65 74 65 31 36 29 28 63 6f 6e 73 74 20 76 6f  lete16)(const vo
0ce0: 69 64 2a 73 71 6c 29 3b 0a 20 20 69 6e 74 20 20  id*sql);.  int  
0cf0: 28 2a 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69  (*create_collati
0d00: 6f 6e 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e  on)(sqlite3*,con
0d10: 73 74 20 63 68 61 72 2a 2c 69 6e 74 2c 76 6f 69  st char*,int,voi
0d20: 64 2a 2c 69 6e 74 28 2a 29 28 76 6f 69 64 2a 2c  d*,int(*)(void*,
0d30: 69 6e 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c  int,const void*,
0d40: 69 6e 74 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 29  int,const void*)
0d50: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 63 72 65 61  );.  int  (*crea
0d60: 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 31 36 29 28  te_collation16)(
0d70: 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20 63  sqlite3*,const c
0d80: 68 61 72 2a 2c 69 6e 74 2c 76 6f 69 64 2a 2c 69  har*,int,void*,i
0d90: 6e 74 28 2a 29 28 76 6f 69 64 2a 2c 69 6e 74 2c  nt(*)(void*,int,
0da0: 63 6f 6e 73 74 20 76 6f 69 64 2a 2c 69 6e 74 2c  const void*,int,
0db0: 63 6f 6e 73 74 20 76 6f 69 64 2a 29 29 3b 0a 20  const void*));. 
0dc0: 20 69 6e 74 20 20 28 2a 63 72 65 61 74 65 5f 66   int  (*create_f
0dd0: 75 6e 63 74 69 6f 6e 29 28 73 71 6c 69 74 65 33  unction)(sqlite3
0de0: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e  *,const char*,in
0df0: 74 2c 69 6e 74 2c 76 6f 69 64 2a 2c 76 6f 69 64  t,int,void*,void
0e00: 20 28 2a 78 46 75 6e 63 29 28 73 71 6c 69 74 65   (*xFunc)(sqlite
0e10: 33 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 2c 73  3_context*,int,s
0e20: 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 2a 29 2c  qlite3_value**),
0e30: 76 6f 69 64 20 28 2a 78 53 74 65 70 29 28 73 71  void (*xStep)(sq
0e40: 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69  lite3_context*,i
0e50: 6e 74 2c 73 71 6c 69 74 65 33 5f 76 61 6c 75 65  nt,sqlite3_value
0e60: 2a 2a 29 2c 76 6f 69 64 20 28 2a 78 46 69 6e 61  **),void (*xFina
0e70: 6c 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65  l)(sqlite3_conte
0e80: 78 74 2a 29 29 3b 0a 20 20 69 6e 74 20 20 28 2a  xt*));.  int  (*
0e90: 63 72 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e 31  create_function1
0ea0: 36 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73  6)(sqlite3*,cons
0eb0: 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 69 6e 74 2c  t void*,int,int,
0ec0: 76 6f 69 64 2a 2c 76 6f 69 64 20 28 2a 78 46 75  void*,void (*xFu
0ed0: 6e 63 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74  nc)(sqlite3_cont
0ee0: 65 78 74 2a 2c 69 6e 74 2c 73 71 6c 69 74 65 33  ext*,int,sqlite3
0ef0: 5f 76 61 6c 75 65 2a 2a 29 2c 76 6f 69 64 20 28  _value**),void (
0f00: 2a 78 53 74 65 70 29 28 73 71 6c 69 74 65 33 5f  *xStep)(sqlite3_
0f10: 63 6f 6e 74 65 78 74 2a 2c 69 6e 74 2c 73 71 6c  context*,int,sql
0f20: 69 74 65 33 5f 76 61 6c 75 65 2a 2a 29 2c 76 6f  ite3_value**),vo
0f30: 69 64 20 28 2a 78 46 69 6e 61 6c 29 28 73 71 6c  id (*xFinal)(sql
0f40: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 29 29 3b  ite3_context*));
0f50: 0a 20 20 69 6e 74 20 28 2a 63 72 65 61 74 65 5f  .  int (*create_
0f60: 6d 6f 64 75 6c 65 29 28 73 71 6c 69 74 65 33 2a  module)(sqlite3*
0f70: 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e  ,const char*,con
0f80: 73 74 20 73 71 6c 69 74 65 33 5f 6d 6f 64 75 6c  st sqlite3_modul
0f90: 65 2a 2c 76 6f 69 64 2a 29 3b 0a 20 20 69 6e 74  e*,void*);.  int
0fa0: 20 20 28 2a 64 61 74 61 5f 63 6f 75 6e 74 29 28    (*data_count)(
0fb0: 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 70 53 74  sqlite3_stmt*pSt
0fc0: 6d 74 29 3b 0a 20 20 73 71 6c 69 74 65 33 20 2a  mt);.  sqlite3 *
0fd0: 20 28 2a 64 62 5f 68 61 6e 64 6c 65 29 28 73 71   (*db_handle)(sq
0fe0: 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20 20  lite3_stmt*);.  
0ff0: 69 6e 74 20 28 2a 64 65 63 6c 61 72 65 5f 76 74  int (*declare_vt
1000: 61 62 29 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e  ab)(sqlite3*,con
1010: 73 74 20 63 68 61 72 2a 29 3b 0a 20 20 69 6e 74  st char*);.  int
1020: 20 20 28 2a 65 6e 61 62 6c 65 5f 73 68 61 72 65    (*enable_share
1030: 64 5f 63 61 63 68 65 29 28 69 6e 74 29 3b 0a 20  d_cache)(int);. 
1040: 20 69 6e 74 20 20 28 2a 65 72 72 63 6f 64 65 29   int  (*errcode)
1050: 28 73 71 6c 69 74 65 33 2a 64 62 29 3b 0a 20 20  (sqlite3*db);.  
1060: 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 28 2a 65  const char * (*e
1070: 72 72 6d 73 67 29 28 73 71 6c 69 74 65 33 2a 29  rrmsg)(sqlite3*)
1080: 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a  ;.  const void *
1090: 20 28 2a 65 72 72 6d 73 67 31 36 29 28 73 71 6c   (*errmsg16)(sql
10a0: 69 74 65 33 2a 29 3b 0a 20 20 69 6e 74 20 20 28  ite3*);.  int  (
10b0: 2a 65 78 65 63 29 28 73 71 6c 69 74 65 33 2a 2c  *exec)(sqlite3*,
10c0: 63 6f 6e 73 74 20 63 68 61 72 2a 2c 73 71 6c 69  const char*,sqli
10d0: 74 65 33 5f 63 61 6c 6c 62 61 63 6b 2c 76 6f 69  te3_callback,voi
10e0: 64 2a 2c 63 68 61 72 2a 2a 29 3b 0a 20 20 69 6e  d*,char**);.  in
10f0: 74 20 20 28 2a 65 78 70 69 72 65 64 29 28 73 71  t  (*expired)(sq
1100: 6c 69 74 65 33 5f 73 74 6d 74 2a 29 3b 0a 20 20  lite3_stmt*);.  
1110: 69 6e 74 20 20 28 2a 66 69 6e 61 6c 69 7a 65 29  int  (*finalize)
1120: 28 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a 70 53  (sqlite3_stmt*pS
1130: 74 6d 74 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a  tmt);.  void  (*
1140: 66 72 65 65 29 28 76 6f 69 64 2a 29 3b 0a 20 20  free)(void*);.  
1150: 76 6f 69 64 20 20 28 2a 66 72 65 65 5f 74 61 62  void  (*free_tab
1160: 6c 65 29 28 63 68 61 72 2a 2a 72 65 73 75 6c 74  le)(char**result
1170: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 67 65 74 5f  );.  int  (*get_
1180: 61 75 74 6f 63 6f 6d 6d 69 74 29 28 73 71 6c 69  autocommit)(sqli
1190: 74 65 33 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20  te3*);.  void * 
11a0: 28 2a 67 65 74 5f 61 75 78 64 61 74 61 29 28 73  (*get_auxdata)(s
11b0: 71 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c  qlite3_context*,
11c0: 69 6e 74 29 3b 0a 20 20 69 6e 74 20 20 28 2a 67  int);.  int  (*g
11d0: 65 74 5f 74 61 62 6c 65 29 28 73 71 6c 69 74 65  et_table)(sqlite
11e0: 33 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63  3*,const char*,c
11f0: 68 61 72 2a 2a 2a 2c 69 6e 74 2a 2c 69 6e 74 2a  har***,int*,int*
1200: 2c 63 68 61 72 2a 2a 29 3b 0a 20 20 69 6e 74 20  ,char**);.  int 
1210: 20 28 2a 67 6c 6f 62 61 6c 5f 72 65 63 6f 76 65   (*global_recove
1220: 72 29 28 76 6f 69 64 29 3b 0a 20 20 76 6f 69 64  r)(void);.  void
1230: 20 20 28 2a 69 6e 74 65 72 72 75 70 74 29 28 73    (*interrupt)(s
1240: 71 6c 69 74 65 33 2a 29 3b 0a 20 20 73 71 6c 69  qlite3*);.  sqli
1250: 74 65 5f 69 6e 74 36 34 20 20 28 2a 6c 61 73 74  te_int64  (*last
1260: 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 29 28 73  _insert_rowid)(s
1270: 71 6c 69 74 65 33 2a 29 3b 0a 20 20 63 6f 6e 73  qlite3*);.  cons
1280: 74 20 63 68 61 72 20 2a 20 28 2a 6c 69 62 76 65  t char * (*libve
1290: 72 73 69 6f 6e 29 28 76 6f 69 64 29 3b 0a 20 20  rsion)(void);.  
12a0: 69 6e 74 20 20 28 2a 6c 69 62 76 65 72 73 69 6f  int  (*libversio
12b0: 6e 5f 6e 75 6d 62 65 72 29 28 76 6f 69 64 29 3b  n_number)(void);
12c0: 0a 20 20 76 6f 69 64 20 2a 28 2a 6d 61 6c 6c 6f  .  void *(*mallo
12d0: 63 29 28 69 6e 74 29 3b 0a 20 20 63 68 61 72 20  c)(int);.  char 
12e0: 2a 20 28 2a 6d 70 72 69 6e 74 66 29 28 63 6f 6e  * (*mprintf)(con
12f0: 73 74 20 63 68 61 72 2a 2c 2e 2e 2e 29 3b 0a 20  st char*,...);. 
1300: 20 69 6e 74 20 20 28 2a 6f 70 65 6e 29 28 63 6f   int  (*open)(co
1310: 6e 73 74 20 63 68 61 72 2a 2c 73 71 6c 69 74 65  nst char*,sqlite
1320: 33 2a 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 6f  3**);.  int  (*o
1330: 70 65 6e 31 36 29 28 63 6f 6e 73 74 20 76 6f 69  pen16)(const voi
1340: 64 2a 2c 73 71 6c 69 74 65 33 2a 2a 29 3b 0a 20  d*,sqlite3**);. 
1350: 20 69 6e 74 20 20 28 2a 70 72 65 70 61 72 65 29   int  (*prepare)
1360: 28 73 71 6c 69 74 65 33 2a 2c 63 6f 6e 73 74 20  (sqlite3*,const 
1370: 63 68 61 72 2a 2c 69 6e 74 2c 73 71 6c 69 74 65  char*,int,sqlite
1380: 33 5f 73 74 6d 74 2a 2a 2c 63 6f 6e 73 74 20 63  3_stmt**,const c
1390: 68 61 72 2a 2a 29 3b 0a 20 20 69 6e 74 20 20 28  har**);.  int  (
13a0: 2a 70 72 65 70 61 72 65 31 36 29 28 73 71 6c 69  *prepare16)(sqli
13b0: 74 65 33 2a 2c 63 6f 6e 73 74 20 76 6f 69 64 2a  te3*,const void*
13c0: 2c 69 6e 74 2c 73 71 6c 69 74 65 33 5f 73 74 6d  ,int,sqlite3_stm
13d0: 74 2a 2a 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2a  t**,const void**
13e0: 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a 70 72  );.  void * (*pr
13f0: 6f 66 69 6c 65 29 28 73 71 6c 69 74 65 33 2a 2c  ofile)(sqlite3*,
1400: 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 2c 63 6f  void(*)(void*,co
1410: 6e 73 74 20 63 68 61 72 2a 2c 73 71 6c 69 74 65  nst char*,sqlite
1420: 5f 75 69 6e 74 36 34 29 2c 76 6f 69 64 2a 29 3b  _uint64),void*);
1430: 0a 20 20 76 6f 69 64 20 20 28 2a 70 72 6f 67 72  .  void  (*progr
1440: 65 73 73 5f 68 61 6e 64 6c 65 72 29 28 73 71 6c  ess_handler)(sql
1450: 69 74 65 33 2a 2c 69 6e 74 2c 69 6e 74 28 2a 29  ite3*,int,int(*)
1460: 28 76 6f 69 64 2a 29 2c 76 6f 69 64 2a 29 3b 0a  (void*),void*);.
1470: 20 20 76 6f 69 64 20 2a 28 2a 72 65 61 6c 6c 6f    void *(*reallo
1480: 63 29 28 76 6f 69 64 2a 2c 69 6e 74 29 3b 0a 20  c)(void*,int);. 
1490: 20 69 6e 74 20 20 28 2a 72 65 73 65 74 29 28 73   int  (*reset)(s
14a0: 71 6c 69 74 65 33 5f 73 74 6d 74 2a 70 53 74 6d  qlite3_stmt*pStm
14b0: 74 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72 65  t);.  void  (*re
14c0: 73 75 6c 74 5f 62 6c 6f 62 29 28 73 71 6c 69 74  sult_blob)(sqlit
14d0: 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73  e3_context*,cons
14e0: 74 20 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64  t void*,int,void
14f0: 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 76  (*)(void*));.  v
1500: 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f 64 6f  oid  (*result_do
1510: 75 62 6c 65 29 28 73 71 6c 69 74 65 33 5f 63 6f  uble)(sqlite3_co
1520: 6e 74 65 78 74 2a 2c 64 6f 75 62 6c 65 29 3b 0a  ntext*,double);.
1530: 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74    void  (*result
1540: 5f 65 72 72 6f 72 29 28 73 71 6c 69 74 65 33 5f  _error)(sqlite3_
1550: 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20 63  context*,const c
1560: 68 61 72 2a 2c 69 6e 74 29 3b 0a 20 20 76 6f 69  har*,int);.  voi
1570: 64 20 20 28 2a 72 65 73 75 6c 74 5f 65 72 72 6f  d  (*result_erro
1580: 72 31 36 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e  r16)(sqlite3_con
1590: 74 65 78 74 2a 2c 63 6f 6e 73 74 20 76 6f 69 64  text*,const void
15a0: 2a 2c 69 6e 74 29 3b 0a 20 20 76 6f 69 64 20 20  *,int);.  void  
15b0: 28 2a 72 65 73 75 6c 74 5f 69 6e 74 29 28 73 71  (*result_int)(sq
15c0: 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69  lite3_context*,i
15d0: 6e 74 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72  nt);.  void  (*r
15e0: 65 73 75 6c 74 5f 69 6e 74 36 34 29 28 73 71 6c  esult_int64)(sql
15f0: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 73 71  ite3_context*,sq
1600: 6c 69 74 65 5f 69 6e 74 36 34 29 3b 0a 20 20 76  lite_int64);.  v
1610: 6f 69 64 20 20 28 2a 72 65 73 75 6c 74 5f 6e 75  oid  (*result_nu
1620: 6c 6c 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74  ll)(sqlite3_cont
1630: 65 78 74 2a 29 3b 0a 20 20 76 6f 69 64 20 20 28  ext*);.  void  (
1640: 2a 72 65 73 75 6c 74 5f 74 65 78 74 29 28 73 71  *result_text)(sq
1650: 6c 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 63  lite3_context*,c
1660: 6f 6e 73 74 20 63 68 61 72 2a 2c 69 6e 74 2c 76  onst char*,int,v
1670: 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29 29 3b 0a  oid(*)(void*));.
1680: 20 20 76 6f 69 64 20 20 28 2a 72 65 73 75 6c 74    void  (*result
1690: 5f 74 65 78 74 31 36 29 28 73 71 6c 69 74 65 33  _text16)(sqlite3
16a0: 5f 63 6f 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20  _context*,const 
16b0: 76 6f 69 64 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a  void*,int,void(*
16c0: 29 28 76 6f 69 64 2a 29 29 3b 0a 20 20 76 6f 69  )(void*));.  voi
16d0: 64 20 20 28 2a 72 65 73 75 6c 74 5f 74 65 78 74  d  (*result_text
16e0: 31 36 62 65 29 28 73 71 6c 69 74 65 33 5f 63 6f  16be)(sqlite3_co
16f0: 6e 74 65 78 74 2a 2c 63 6f 6e 73 74 20 76 6f 69  ntext*,const voi
1700: 64 2a 2c 69 6e 74 2c 76 6f 69 64 28 2a 29 28 76  d*,int,void(*)(v
1710: 6f 69 64 2a 29 29 3b 0a 20 20 76 6f 69 64 20 20  oid*));.  void  
1720: 28 2a 72 65 73 75 6c 74 5f 74 65 78 74 31 36 6c  (*result_text16l
1730: 65 29 28 73 71 6c 69 74 65 33 5f 63 6f 6e 74 65  e)(sqlite3_conte
1740: 78 74 2a 2c 63 6f 6e 73 74 20 76 6f 69 64 2a 2c  xt*,const void*,
1750: 69 6e 74 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64  int,void(*)(void
1760: 2a 29 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 72  *));.  void  (*r
1770: 65 73 75 6c 74 5f 76 61 6c 75 65 29 28 73 71 6c  esult_value)(sql
1780: 69 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 73 71  ite3_context*,sq
1790: 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20  lite3_value*);. 
17a0: 20 76 6f 69 64 20 2a 20 28 2a 72 6f 6c 6c 62 61   void * (*rollba
17b0: 63 6b 5f 68 6f 6f 6b 29 28 73 71 6c 69 74 65 33  ck_hook)(sqlite3
17c0: 2a 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64 2a 29  *,void(*)(void*)
17d0: 2c 76 6f 69 64 2a 29 3b 0a 20 20 69 6e 74 20 20  ,void*);.  int  
17e0: 28 2a 73 65 74 5f 61 75 74 68 6f 72 69 7a 65 72  (*set_authorizer
17f0: 29 28 73 71 6c 69 74 65 33 2a 2c 69 6e 74 28 2a  )(sqlite3*,int(*
1800: 29 28 76 6f 69 64 2a 2c 69 6e 74 2c 63 6f 6e 73  )(void*,int,cons
1810: 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74 20 63 68  t char*,const ch
1820: 61 72 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c  ar*,const char*,
1830: 63 6f 6e 73 74 20 63 68 61 72 2a 29 2c 76 6f 69  const char*),voi
1840: 64 2a 29 3b 0a 20 20 76 6f 69 64 20 20 28 2a 73  d*);.  void  (*s
1850: 65 74 5f 61 75 78 64 61 74 61 29 28 73 71 6c 69  et_auxdata)(sqli
1860: 74 65 33 5f 63 6f 6e 74 65 78 74 2a 2c 69 6e 74  te3_context*,int
1870: 2c 76 6f 69 64 2a 2c 76 6f 69 64 20 28 2a 29 28  ,void*,void (*)(
1880: 76 6f 69 64 2a 29 29 3b 0a 20 20 63 68 61 72 20  void*));.  char 
1890: 2a 20 28 2a 73 6e 70 72 69 6e 74 66 29 28 69 6e  * (*snprintf)(in
18a0: 74 2c 63 68 61 72 2a 2c 63 6f 6e 73 74 20 63 68  t,char*,const ch
18b0: 61 72 2a 2c 2e 2e 2e 29 3b 0a 20 20 69 6e 74 20  ar*,...);.  int 
18c0: 20 28 2a 73 74 65 70 29 28 73 71 6c 69 74 65 33   (*step)(sqlite3
18d0: 5f 73 74 6d 74 2a 29 3b 0a 20 20 69 6e 74 20 20  _stmt*);.  int  
18e0: 28 2a 74 61 62 6c 65 5f 63 6f 6c 75 6d 6e 5f 6d  (*table_column_m
18f0: 65 74 61 64 61 74 61 29 28 73 71 6c 69 74 65 33  etadata)(sqlite3
1900: 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 2c 63 6f  *,const char*,co
1910: 6e 73 74 20 63 68 61 72 2a 2c 63 6f 6e 73 74 20  nst char*,const 
1920: 63 68 61 72 2a 2c 63 68 61 72 20 63 6f 6e 73 74  char*,char const
1930: 2a 2a 2c 63 68 61 72 20 63 6f 6e 73 74 2a 2a 2c  **,char const**,
1940: 69 6e 74 2a 2c 69 6e 74 2a 2c 69 6e 74 2a 29 3b  int*,int*,int*);
1950: 0a 20 20 76 6f 69 64 20 20 28 2a 74 68 72 65 61  .  void  (*threa
1960: 64 5f 63 6c 65 61 6e 75 70 29 28 76 6f 69 64 29  d_cleanup)(void)
1970: 3b 0a 20 20 69 6e 74 20 20 28 2a 74 6f 74 61 6c  ;.  int  (*total
1980: 5f 63 68 61 6e 67 65 73 29 28 73 71 6c 69 74 65  _changes)(sqlite
1990: 33 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a  3*);.  void * (*
19a0: 74 72 61 63 65 29 28 73 71 6c 69 74 65 33 2a 2c  trace)(sqlite3*,
19b0: 76 6f 69 64 28 2a 78 54 72 61 63 65 29 28 76 6f  void(*xTrace)(vo
19c0: 69 64 2a 2c 63 6f 6e 73 74 20 63 68 61 72 2a 29  id*,const char*)
19d0: 2c 76 6f 69 64 2a 29 3b 0a 20 20 69 6e 74 20 20  ,void*);.  int  
19e0: 28 2a 74 72 61 6e 73 66 65 72 5f 62 69 6e 64 69  (*transfer_bindi
19f0: 6e 67 73 29 28 73 71 6c 69 74 65 33 5f 73 74 6d  ngs)(sqlite3_stm
1a00: 74 2a 2c 73 71 6c 69 74 65 33 5f 73 74 6d 74 2a  t*,sqlite3_stmt*
1a10: 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a 75 70  );.  void * (*up
1a20: 64 61 74 65 5f 68 6f 6f 6b 29 28 73 71 6c 69 74  date_hook)(sqlit
1a30: 65 33 2a 2c 76 6f 69 64 28 2a 29 28 76 6f 69 64  e3*,void(*)(void
1a40: 2a 2c 69 6e 74 20 2c 63 68 61 72 20 63 6f 6e 73  *,int ,char cons
1a50: 74 2a 2c 63 68 61 72 20 63 6f 6e 73 74 2a 2c 73  t*,char const*,s
1a60: 71 6c 69 74 65 5f 69 6e 74 36 34 29 2c 76 6f 69  qlite_int64),voi
1a70: 64 2a 29 3b 0a 20 20 76 6f 69 64 20 2a 20 28 2a  d*);.  void * (*
1a80: 75 73 65 72 5f 64 61 74 61 29 28 73 71 6c 69 74  user_data)(sqlit
1a90: 65 33 5f 63 6f 6e 74 65 78 74 2a 29 3b 0a 20 20  e3_context*);.  
1aa0: 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20 28 2a 76  const void * (*v
1ab0: 61 6c 75 65 5f 62 6c 6f 62 29 28 73 71 6c 69 74  alue_blob)(sqlit
1ac0: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e  e3_value*);.  in
1ad0: 74 20 20 28 2a 76 61 6c 75 65 5f 62 79 74 65 73  t  (*value_bytes
1ae0: 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a  )(sqlite3_value*
1af0: 29 3b 0a 20 20 69 6e 74 20 20 28 2a 76 61 6c 75  );.  int  (*valu
1b00: 65 5f 62 79 74 65 73 31 36 29 28 73 71 6c 69 74  e_bytes16)(sqlit
1b10: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 64 6f  e3_value*);.  do
1b20: 75 62 6c 65 20 20 28 2a 76 61 6c 75 65 5f 64 6f  uble  (*value_do
1b30: 75 62 6c 65 29 28 73 71 6c 69 74 65 33 5f 76 61  uble)(sqlite3_va
1b40: 6c 75 65 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a  lue*);.  int  (*
1b50: 76 61 6c 75 65 5f 69 6e 74 29 28 73 71 6c 69 74  value_int)(sqlit
1b60: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 73 71  e3_value*);.  sq
1b70: 6c 69 74 65 5f 69 6e 74 36 34 20 20 28 2a 76 61  lite_int64  (*va
1b80: 6c 75 65 5f 69 6e 74 36 34 29 28 73 71 6c 69 74  lue_int64)(sqlit
1b90: 65 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 69 6e  e3_value*);.  in
1ba0: 74 20 20 28 2a 76 61 6c 75 65 5f 6e 75 6d 65 72  t  (*value_numer
1bb0: 69 63 5f 74 79 70 65 29 28 73 71 6c 69 74 65 33  ic_type)(sqlite3
1bc0: 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 63 6f 6e 73  _value*);.  cons
1bd0: 74 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20  t unsigned char 
1be0: 2a 20 28 2a 76 61 6c 75 65 5f 74 65 78 74 29 28  * (*value_text)(
1bf0: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b  sqlite3_value*);
1c00: 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20  .  const void * 
1c10: 28 2a 76 61 6c 75 65 5f 74 65 78 74 31 36 29 28  (*value_text16)(
1c20: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a 29 3b  sqlite3_value*);
1c30: 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 20  .  const void * 
1c40: 28 2a 76 61 6c 75 65 5f 74 65 78 74 31 36 62 65  (*value_text16be
1c50: 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 2a  )(sqlite3_value*
1c60: 29 3b 0a 20 20 63 6f 6e 73 74 20 76 6f 69 64 20  );.  const void 
1c70: 2a 20 28 2a 76 61 6c 75 65 5f 74 65 78 74 31 36  * (*value_text16
1c80: 6c 65 29 28 73 71 6c 69 74 65 33 5f 76 61 6c 75  le)(sqlite3_valu
1c90: 65 2a 29 3b 0a 20 20 69 6e 74 20 20 28 2a 76 61  e*);.  int  (*va
1ca0: 6c 75 65 5f 74 79 70 65 29 28 73 71 6c 69 74 65  lue_type)(sqlite
1cb0: 33 5f 76 61 6c 75 65 2a 29 3b 0a 20 20 63 68 61  3_value*);.  cha
1cc0: 72 20 2a 20 28 2a 76 6d 70 72 69 6e 74 66 29 28  r * (*vmprintf)(
1cd0: 63 6f 6e 73 74 20 63 68 61 72 2a 2c 76 61 5f 6c  const char*,va_l
1ce0: 69 73 74 29 3b 0a 20 20 69 6e 74 20 28 2a 6f 76  ist);.  int (*ov
1cf0: 65 72 6c 6f 61 64 5f 66 75 6e 63 74 69 6f 6e 29  erload_function)
1d00: 28 73 71 6c 69 74 65 33 2a 2c 20 63 6f 6e 73 74  (sqlite3*, const
1d10: 20 63 68 61 72 20 2a 7a 46 75 6e 63 4e 61 6d 65   char *zFuncName
1d20: 2c 20 69 6e 74 20 6e 41 72 67 29 3b 0a 7d 3b 0a  , int nArg);.};.
1d30: 0a 2f 2a 0a 2a 2a 20 54 68 65 20 66 6f 6c 6c 6f  ./*.** The follo
1d40: 77 69 6e 67 20 6d 61 63 72 6f 73 20 72 65 64 65  wing macros rede
1d50: 66 69 6e 65 20 74 68 65 20 41 50 49 20 72 6f 75  fine the API rou
1d60: 74 69 6e 65 73 20 73 6f 20 74 68 61 74 20 74 68  tines so that th
1d70: 65 79 20 61 72 65 0a 2a 2a 20 72 65 64 69 72 65  ey are.** redire
1d80: 63 74 65 64 20 74 68 72 6f 75 67 68 74 20 74 68  cted throught th
1d90: 65 20 67 6c 6f 62 61 6c 20 73 71 6c 69 74 65 33  e global sqlite3
1da0: 5f 61 70 69 20 73 74 72 75 63 74 75 72 65 2e 0a  _api structure..
1db0: 2a 2a 0a 2a 2a 20 54 68 69 73 20 68 65 61 64 65  **.** This heade
1dc0: 72 20 66 69 6c 65 20 69 73 20 61 6c 73 6f 20 75  r file is also u
1dd0: 73 65 64 20 62 79 20 74 68 65 20 6c 6f 61 64 65  sed by the loade
1de0: 78 74 2e 63 20 73 6f 75 72 63 65 20 66 69 6c 65  xt.c source file
1df0: 0a 2a 2a 20 28 70 61 72 74 20 6f 66 20 74 68 65  .** (part of the
1e00: 20 6d 61 69 6e 20 53 51 4c 69 74 65 20 6c 69 62   main SQLite lib
1e10: 72 61 72 79 20 2d 20 6e 6f 74 20 61 6e 20 65 78  rary - not an ex
1e20: 74 65 6e 73 69 6f 6e 29 20 73 6f 20 74 68 61 74  tension) so that
1e30: 0a 2a 2a 20 69 74 20 63 61 6e 20 67 65 74 20 61  .** it can get a
1e40: 63 63 65 73 73 20 74 6f 20 74 68 65 20 73 71 6c  ccess to the sql
1e50: 69 74 65 33 5f 61 70 69 5f 72 6f 75 74 69 6e 65  ite3_api_routine
1e60: 73 20 73 74 72 75 63 74 75 72 65 0a 2a 2a 20 64  s structure.** d
1e70: 65 66 69 6e 69 74 69 6f 6e 2e 20 20 42 75 74 20  efinition.  But 
1e80: 74 68 65 20 6d 61 69 6e 20 6c 69 62 72 61 72 79  the main library
1e90: 20 64 6f 65 73 20 6e 6f 74 20 77 61 6e 74 20 74   does not want t
1ea0: 6f 20 72 65 64 65 66 69 6e 65 0a 2a 2a 20 74 68  o redefine.** th
1eb0: 65 20 41 50 49 2e 20 20 53 6f 20 74 68 65 20 72  e API.  So the r
1ec0: 65 64 65 66 69 6e 69 74 69 6f 6e 20 6d 61 63 72  edefinition macr
1ed0: 6f 73 20 61 72 65 20 6f 6e 6c 79 20 76 61 6c 69  os are only vali
1ee0: 64 20 69 66 20 74 68 65 0a 2a 2a 20 53 51 4c 49  d if the.** SQLI
1ef0: 54 45 5f 43 4f 52 45 20 6d 61 63 72 6f 73 20 69  TE_CORE macros i
1f00: 73 20 75 6e 64 65 66 69 6e 65 64 2e 0a 2a 2f 0a  s undefined..*/.
1f10: 23 69 66 6e 64 65 66 20 53 51 4c 49 54 45 5f 43  #ifndef SQLITE_C
1f20: 4f 52 45 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ORE.#define sqli
1f30: 74 65 33 5f 61 67 67 72 65 67 61 74 65 5f 63 6f  te3_aggregate_co
1f40: 6e 74 65 78 74 20 20 20 20 20 20 73 71 6c 69 74  ntext      sqlit
1f50: 65 33 5f 61 70 69 2d 3e 61 67 67 72 65 67 61 74  e3_api->aggregat
1f60: 65 5f 63 6f 6e 74 65 78 74 0a 23 64 65 66 69 6e  e_context.#defin
1f70: 65 20 73 71 6c 69 74 65 33 5f 61 67 67 72 65 67  e sqlite3_aggreg
1f80: 61 74 65 5f 63 6f 75 6e 74 20 20 20 20 20 20 20  ate_count       
1f90: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 61 67   sqlite3_api->ag
1fa0: 67 72 65 67 61 74 65 5f 63 6f 75 6e 74 0a 23 64  gregate_count.#d
1fb0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69  efine sqlite3_bi
1fc0: 6e 64 5f 62 6c 6f 62 20 20 20 20 20 20 20 20 20  nd_blob         
1fd0: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
1fe0: 2d 3e 62 69 6e 64 5f 62 6c 6f 62 0a 23 64 65 66  ->bind_blob.#def
1ff0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64  ine sqlite3_bind
2000: 5f 64 6f 75 62 6c 65 20 20 20 20 20 20 20 20 20  _double         
2010: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2020: 62 69 6e 64 5f 64 6f 75 62 6c 65 0a 23 64 65 66  bind_double.#def
2030: 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69 6e 64  ine sqlite3_bind
2040: 5f 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20  _int            
2050: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2060: 62 69 6e 64 5f 69 6e 74 0a 23 64 65 66 69 6e 65  bind_int.#define
2070: 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 69 6e   sqlite3_bind_in
2080: 74 36 34 20 20 20 20 20 20 20 20 20 20 20 20 20  t64             
2090: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69 6e  sqlite3_api->bin
20a0: 64 5f 69 6e 74 36 34 0a 23 64 65 66 69 6e 65 20  d_int64.#define 
20b0: 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 6e 75 6c  sqlite3_bind_nul
20c0: 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73  l              s
20d0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69 6e 64  qlite3_api->bind
20e0: 5f 6e 75 6c 6c 0a 23 64 65 66 69 6e 65 20 73 71  _null.#define sq
20f0: 6c 69 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d  lite3_bind_param
2100: 65 74 65 72 5f 63 6f 75 6e 74 20 20 20 73 71 6c  eter_count   sql
2110: 69 74 65 33 5f 61 70 69 2d 3e 62 69 6e 64 5f 70  ite3_api->bind_p
2120: 61 72 61 6d 65 74 65 72 5f 63 6f 75 6e 74 0a 23  arameter_count.#
2130: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62  define sqlite3_b
2140: 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 69 6e  ind_parameter_in
2150: 64 65 78 20 20 20 73 71 6c 69 74 65 33 5f 61 70  dex   sqlite3_ap
2160: 69 2d 3e 62 69 6e 64 5f 70 61 72 61 6d 65 74 65  i->bind_paramete
2170: 72 5f 69 6e 64 65 78 0a 23 64 65 66 69 6e 65 20  r_index.#define 
2180: 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 70 61 72  sqlite3_bind_par
2190: 61 6d 65 74 65 72 5f 6e 61 6d 65 20 20 20 20 73  ameter_name    s
21a0: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 62 69 6e 64  qlite3_api->bind
21b0: 5f 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d 65 0a  _parameter_name.
21c0: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
21d0: 62 69 6e 64 5f 74 65 78 74 20 20 20 20 20 20 20  bind_text       
21e0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
21f0: 70 69 2d 3e 62 69 6e 64 5f 74 65 78 74 0a 23 64  pi->bind_text.#d
2200: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69  efine sqlite3_bi
2210: 6e 64 5f 74 65 78 74 31 36 20 20 20 20 20 20 20  nd_text16       
2220: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2230: 2d 3e 62 69 6e 64 5f 74 65 78 74 31 36 0a 23 64  ->bind_text16.#d
2240: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 69  efine sqlite3_bi
2250: 6e 64 5f 76 61 6c 75 65 20 20 20 20 20 20 20 20  nd_value        
2260: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2270: 2d 3e 62 69 6e 64 5f 76 61 6c 75 65 0a 23 64 65  ->bind_value.#de
2280: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 75 73  fine sqlite3_bus
2290: 79 5f 68 61 6e 64 6c 65 72 20 20 20 20 20 20 20  y_handler       
22a0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
22b0: 3e 62 75 73 79 5f 68 61 6e 64 6c 65 72 0a 23 64  >busy_handler.#d
22c0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 62 75  efine sqlite3_bu
22d0: 73 79 5f 74 69 6d 65 6f 75 74 20 20 20 20 20 20  sy_timeout      
22e0: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
22f0: 2d 3e 62 75 73 79 5f 74 69 6d 65 6f 75 74 0a 23  ->busy_timeout.#
2300: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63  define sqlite3_c
2310: 68 61 6e 67 65 73 20 20 20 20 20 20 20 20 20 20  hanges          
2320: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
2330: 69 2d 3e 63 68 61 6e 67 65 73 0a 23 64 65 66 69  i->changes.#defi
2340: 6e 65 20 73 71 6c 69 74 65 33 5f 63 6c 6f 73 65  ne sqlite3_close
2350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2360: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
2370: 6c 6f 73 65 0a 23 64 65 66 69 6e 65 20 73 71 6c  lose.#define sql
2380: 69 74 65 33 5f 63 6f 6c 6c 61 74 69 6f 6e 5f 6e  ite3_collation_n
2390: 65 65 64 65 64 20 20 20 20 20 20 20 73 71 6c 69  eeded       sqli
23a0: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 6c 61 74 69  te3_api->collati
23b0: 6f 6e 5f 6e 65 65 64 65 64 0a 23 64 65 66 69 6e  on_needed.#defin
23c0: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 6c 61 74  e sqlite3_collat
23d0: 69 6f 6e 5f 6e 65 65 64 65 64 31 36 20 20 20 20  ion_needed16    
23e0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
23f0: 6c 6c 61 74 69 6f 6e 5f 6e 65 65 64 65 64 31 36  llation_needed16
2400: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2410: 5f 63 6f 6c 75 6d 6e 5f 62 6c 6f 62 20 20 20 20  _column_blob    
2420: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
2430: 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 62 6c 6f 62  api->column_blob
2440: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2450: 5f 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 20 20 20  _column_bytes   
2460: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
2470: 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 62 79 74 65  api->column_byte
2480: 73 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  s.#define sqlite
2490: 33 5f 63 6f 6c 75 6d 6e 5f 62 79 74 65 73 31 36  3_column_bytes16
24a0: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
24b0: 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 62 79 74  _api->column_byt
24c0: 65 73 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c  es16.#define sql
24d0: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 63 6f 75 6e  ite3_column_coun
24e0: 74 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69  t           sqli
24f0: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f  te3_api->column_
2500: 63 6f 75 6e 74 0a 23 64 65 66 69 6e 65 20 73 71  count.#define sq
2510: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 64 61 74  lite3_column_dat
2520: 61 62 61 73 65 5f 6e 61 6d 65 20 20 20 73 71 6c  abase_name   sql
2530: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e  ite3_api->column
2540: 5f 64 61 74 61 62 61 73 65 5f 6e 61 6d 65 0a 23  _database_name.#
2550: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63  define sqlite3_c
2560: 6f 6c 75 6d 6e 5f 64 61 74 61 62 61 73 65 5f 6e  olumn_database_n
2570: 61 6d 65 31 36 20 73 71 6c 69 74 65 33 5f 61 70  ame16 sqlite3_ap
2580: 69 2d 3e 63 6f 6c 75 6d 6e 5f 64 61 74 61 62 61  i->column_databa
2590: 73 65 5f 6e 61 6d 65 31 36 0a 23 64 65 66 69 6e  se_name16.#defin
25a0: 65 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  e sqlite3_column
25b0: 5f 64 65 63 6c 74 79 70 65 20 20 20 20 20 20 20  _decltype       
25c0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f   sqlite3_api->co
25d0: 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65 0a 23 64  lumn_decltype.#d
25e0: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f  efine sqlite3_co
25f0: 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65 31 36 20  lumn_decltype16 
2600: 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69       sqlite3_api
2610: 2d 3e 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70  ->column_decltyp
2620: 65 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  e16.#define sqli
2630: 74 65 33 5f 63 6f 6c 75 6d 6e 5f 64 6f 75 62 6c  te3_column_doubl
2640: 65 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74  e          sqlit
2650: 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f 64  e3_api->column_d
2660: 6f 75 62 6c 65 0a 23 64 65 66 69 6e 65 20 73 71  ouble.#define sq
2670: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 69 6e 74  lite3_column_int
2680: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
2690: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e  ite3_api->column
26a0: 5f 69 6e 74 0a 23 64 65 66 69 6e 65 20 73 71 6c  _int.#define sql
26b0: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 69 6e 74 36  ite3_column_int6
26c0: 34 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69  4           sqli
26d0: 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e 5f  te3_api->column_
26e0: 69 6e 74 36 34 0a 23 64 65 66 69 6e 65 20 73 71  int64.#define sq
26f0: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d  lite3_column_nam
2700: 65 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c  e            sql
2710: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e  ite3_api->column
2720: 5f 6e 61 6d 65 0a 23 64 65 66 69 6e 65 20 73 71  _name.#define sq
2730: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d  lite3_column_nam
2740: 65 31 36 20 20 20 20 20 20 20 20 20 20 73 71 6c  e16          sql
2750: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e  ite3_api->column
2760: 5f 6e 61 6d 65 31 36 0a 23 64 65 66 69 6e 65 20  _name16.#define 
2770: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6f  sqlite3_column_o
2780: 72 69 67 69 6e 5f 6e 61 6d 65 20 20 20 20 20 73  rigin_name     s
2790: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
27a0: 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65 0a 23  mn_origin_name.#
27b0: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63  define sqlite3_c
27c0: 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d  olumn_origin_nam
27d0: 65 31 36 20 20 20 73 71 6c 69 74 65 33 5f 61 70  e16   sqlite3_ap
27e0: 69 2d 3e 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e  i->column_origin
27f0: 5f 6e 61 6d 65 31 36 0a 23 64 65 66 69 6e 65 20  _name16.#define 
2800: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74  sqlite3_column_t
2810: 61 62 6c 65 5f 6e 61 6d 65 20 20 20 20 20 20 73  able_name      s
2820: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
2830: 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 0a 23 64  mn_table_name.#d
2840: 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 63 6f  efine sqlite3_co
2850: 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 31  lumn_table_name1
2860: 36 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69  6    sqlite3_api
2870: 2d 3e 63 6f 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e  ->column_table_n
2880: 61 6d 65 31 36 0a 23 64 65 66 69 6e 65 20 73 71  ame16.#define sq
2890: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74 65 78  lite3_column_tex
28a0: 74 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c  t            sql
28b0: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e  ite3_api->column
28c0: 5f 74 65 78 74 0a 23 64 65 66 69 6e 65 20 73 71  _text.#define sq
28d0: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74 65 78  lite3_column_tex
28e0: 74 31 36 20 20 20 20 20 20 20 20 20 20 73 71 6c  t16          sql
28f0: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75 6d 6e  ite3_api->column
2900: 5f 74 65 78 74 31 36 0a 23 64 65 66 69 6e 65 20  _text16.#define 
2910: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74  sqlite3_column_t
2920: 79 70 65 20 20 20 20 20 20 20 20 20 20 20 20 73  ype            s
2930: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
2940: 6d 6e 5f 74 79 70 65 0a 23 64 65 66 69 6e 65 20  mn_type.#define 
2950: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 76  sqlite3_column_v
2960: 61 6c 75 65 20 20 20 20 20 20 20 20 20 20 20 73  alue           s
2970: 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6c 75  qlite3_api->colu
2980: 6d 6e 5f 76 61 6c 75 65 0a 23 64 65 66 69 6e 65  mn_value.#define
2990: 20 73 71 6c 69 74 65 33 5f 63 6f 6d 6d 69 74 5f   sqlite3_commit_
29a0: 68 6f 6f 6b 20 20 20 20 20 20 20 20 20 20 20 20  hook            
29b0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6d  sqlite3_api->com
29c0: 6d 69 74 5f 68 6f 6f 6b 0a 23 64 65 66 69 6e 65  mit_hook.#define
29d0: 20 73 71 6c 69 74 65 33 5f 63 6f 6d 70 6c 65 74   sqlite3_complet
29e0: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e               
29f0: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6d  sqlite3_api->com
2a00: 70 6c 65 74 65 0a 23 64 65 66 69 6e 65 20 73 71  plete.#define sq
2a10: 6c 69 74 65 33 5f 63 6f 6d 70 6c 65 74 65 31 36  lite3_complete16
2a20: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c               sql
2a30: 69 74 65 33 5f 61 70 69 2d 3e 63 6f 6d 70 6c 65  ite3_api->comple
2a40: 74 65 31 36 0a 23 64 65 66 69 6e 65 20 73 71 6c  te16.#define sql
2a50: 69 74 65 33 5f 63 72 65 61 74 65 5f 63 6f 6c 6c  ite3_create_coll
2a60: 61 74 69 6f 6e 20 20 20 20 20 20 20 73 71 6c 69  ation       sqli
2a70: 74 65 33 5f 61 70 69 2d 3e 63 72 65 61 74 65 5f  te3_api->create_
2a80: 63 6f 6c 6c 61 74 69 6f 6e 0a 23 64 65 66 69 6e  collation.#defin
2a90: 65 20 73 71 6c 69 74 65 33 5f 63 72 65 61 74 65  e sqlite3_create
2aa0: 5f 63 6f 6c 6c 61 74 69 6f 6e 31 36 20 20 20 20  _collation16    
2ab0: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63 72   sqlite3_api->cr
2ac0: 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 31 36  eate_collation16
2ad0: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2ae0: 5f 63 72 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e  _create_function
2af0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
2b00: 61 70 69 2d 3e 63 72 65 61 74 65 5f 66 75 6e 63  api->create_func
2b10: 74 69 6f 6e 0a 23 64 65 66 69 6e 65 20 73 71 6c  tion.#define sql
2b20: 69 74 65 33 5f 63 72 65 61 74 65 5f 66 75 6e 63  ite3_create_func
2b30: 74 69 6f 6e 31 36 20 20 20 20 20 20 73 71 6c 69  tion16      sqli
2b40: 74 65 33 5f 61 70 69 2d 3e 63 72 65 61 74 65 5f  te3_api->create_
2b50: 66 75 6e 63 74 69 6f 6e 31 36 0a 23 64 65 66 69  function16.#defi
2b60: 6e 65 20 73 71 6c 69 74 65 33 5f 63 72 65 61 74  ne sqlite3_creat
2b70: 65 5f 6d 6f 64 75 6c 65 20 20 20 20 20 20 20 20  e_module        
2b80: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 63    sqlite3_api->c
2b90: 72 65 61 74 65 5f 6d 6f 64 75 6c 65 0a 23 64 65  reate_module.#de
2ba0: 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 64 61 74  fine sqlite3_dat
2bb0: 61 5f 63 6f 75 6e 74 20 20 20 20 20 20 20 20 20  a_count         
2bc0: 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d      sqlite3_api-
2bd0: 3e 64 61 74 61 5f 63 6f 75 6e 74 0a 23 64 65 66  >data_count.#def
2be0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 64 62 5f 68  ine sqlite3_db_h
2bf0: 61 6e 64 6c 65 20 20 20 20 20 20 20 20 20 20 20  andle           
2c00: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2c10: 64 62 5f 68 61 6e 64 6c 65 0a 23 64 65 66 69 6e  db_handle.#defin
2c20: 65 20 73 71 6c 69 74 65 33 5f 64 65 63 6c 61 72  e sqlite3_declar
2c30: 65 5f 76 74 61 62 20 20 20 20 20 20 20 20 20 20  e_vtab          
2c40: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 64 65   sqlite3_api->de
2c50: 63 6c 61 72 65 5f 76 74 61 62 0a 23 64 65 66 69  clare_vtab.#defi
2c60: 6e 65 20 73 71 6c 69 74 65 33 5f 65 6e 61 62 6c  ne sqlite3_enabl
2c70: 65 5f 73 68 61 72 65 64 5f 63 61 63 68 65 20 20  e_shared_cache  
2c80: 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 65    sqlite3_api->e
2c90: 6e 61 62 6c 65 5f 73 68 61 72 65 64 5f 63 61 63  nable_shared_cac
2ca0: 68 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  he.#define sqlit
2cb0: 65 33 5f 65 72 72 63 6f 64 65 20 20 20 20 20 20  e3_errcode      
2cc0: 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65            sqlite
2cd0: 33 5f 61 70 69 2d 3e 65 72 72 63 6f 64 65 0a 23  3_api->errcode.#
2ce0: 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f 65  define sqlite3_e
2cf0: 72 72 6d 73 67 20 20 20 20 20 20 20 20 20 20 20  rrmsg           
2d00: 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61 70        sqlite3_ap
2d10: 69 2d 3e 65 72 72 6d 73 67 0a 23 64 65 66 69 6e  i->errmsg.#defin
2d20: 65 20 73 71 6c 69 74 65 33 5f 65 72 72 6d 73 67  e sqlite3_errmsg
2d30: 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20  16              
2d40: 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 65 72   sqlite3_api->er
2d50: 72 6d 73 67 31 36 0a 23 64 65 66 69 6e 65 20 73  rmsg16.#define s
2d60: 71 6c 69 74 65 33 5f 65 78 65 63 20 20 20 20 20  qlite3_exec     
2d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71                sq
2d80: 6c 69 74 65 33 5f 61 70 69 2d 3e 65 78 65 63 0a  lite3_api->exec.
2d90: 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33 5f  #define sqlite3_
2da0: 65 78 70 69 72 65 64 20 20 20 20 20 20 20 20 20  expired         
2db0: 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f 61         sqlite3_a
2dc0: 70 69 2d 3e 65 78 70 69 72 65 64 0a 23 64 65 66  pi->expired.#def
2dd0: 69 6e 65 20 73 71 6c 69 74 65 33 5f 66 69 6e 61  ine sqlite3_fina
2de0: 6c 69 7a 65 20 20 20 20 20 20 20 20 20 20 20 20  lize            
2df0: 20 20 20 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e     sqlite3_api->
2e00: 66 69 6e 61 6c 69 7a 65 0a 23 64 65 66 69 6e 65  finalize.#define
2e10: 20 73 71 6c 69 74 65 33 5f 66 72 65 65 20 20 20   sqlite3_free   
2e20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e30: 73 71 6c 69 74 65 33 5f 61 70 69 2d 3e 66 72 65  sqlite3_api->fre
2e40: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
2e50: 33 5f 66 72 65 65 5f 74 61 62 6c 65 20 20 20 20  3_free_table    
2e60: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
2e70: 5f 61 70 69 2d 3e 66 72 65 65 5f 74 61 62 6c 65  _api->free_table
2e80: 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65 33  .#define sqlite3
2e90: 5f 67 65 74 5f 61 75 74 6f 63 6f 6d 6d 69 74 20  _get_autocommit 
2ea0: 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33 5f          sqlite3_
2eb0: 61 70 69 2d 3e 67 65 74 5f 61 75 74 6f 63 6f 6d  api->get_autocom
2ec0: 6d 69 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  mit.#define sqli
2ed0: 74 65 33 5f 67 65 74 5f 61 75 78 64 61 74 61 20  te3_get_auxdata 
2ee0: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
2ef0: 65 33 5f 61 70 69 2d 3e 67 65 74 5f 61 75 78 64  e3_api->get_auxd
2f00: 61 74 61 0a 23 64 65 66 69 6e 65 20 73 71 6c 69  ata.#define sqli
2f10: 74 65 33 5f 67 65 74 5f 74 61 62 6c 65 20 20 20  te3_get_table   
2f20: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74             sqlit
2f30: 65 33 5f 61 70 69 2d 3e 67 65 74 5f 74 61 62 6c  e3_api->get_tabl
2f40: 65 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74 65  e.#define sqlite
2f50: 33 5f 67 6c 6f 62 61 6c 5f 72 65 63 6f 76 65 72  3_global_recover
2f60: 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 65 33           sqlite3
2f70: 5f 61 70 69 2d 3e 67 6c 6f 62 61 6c 5f 72 65 63  _api->global_rec
2f80: 6f 76 65 72 0a 23 64 65 66 69 6e 65 20 73 71 6c  over.#define sql
2f90: 69 74 65 33 5f 69 6e 74 65 72 72 75 70 74 20 20  ite3_interrupt  
2fa0: 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69              sqli
2fb0: 74 65 33 5f 61 70 69 2d 3e 69 6e 74 65 72 72 75  te3_api->interru
2fc0: 70 74 0a 23 64 65 66 69 6e 65 20 73 71 6c 69 74  pt.#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_ */.