amalgalite 0.10.2 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -30,7 +30,7 @@
30
30
  ** the version number) and changes its name to "sqlite3.h" as
31
31
  ** part of the build process.
32
32
  **
33
- ** @(#) $Id: sqlite.h.in,v 1.458 2009/06/19 22:50:31 drh Exp $
33
+ ** @(#) $Id: sqlite.h.in,v 1.462 2009/08/06 17:40:46 drh Exp $
34
34
  */
35
35
  #ifndef _SQLITE3_H_
36
36
  #define _SQLITE3_H_
@@ -51,6 +51,11 @@ extern "C" {
51
51
  # define SQLITE_EXTERN extern
52
52
  #endif
53
53
 
54
+ #ifndef SQLITE_API
55
+ # define SQLITE_API
56
+ #endif
57
+
58
+
54
59
  /*
55
60
  ** These no-op macros are used in front of interfaces to mark those
56
61
  ** interfaces as either deprecated or experimental. New applications
@@ -99,8 +104,8 @@ extern "C" {
99
104
  **
100
105
  ** Requirements: [H10011] [H10014]
101
106
  */
102
- #define SQLITE_VERSION "3.6.16"
103
- #define SQLITE_VERSION_NUMBER 3006016
107
+ #define SQLITE_VERSION "3.6.17"
108
+ #define SQLITE_VERSION_NUMBER 3006017
104
109
 
105
110
  /*
106
111
  ** CAPI3REF: Run-Time Library Version Numbers {H10020} <S60100>
@@ -120,9 +125,9 @@ extern "C" {
120
125
  **
121
126
  ** Requirements: [H10021] [H10022] [H10023]
122
127
  */
123
- SQLITE_EXTERN const char sqlite3_version[];
124
- const char *sqlite3_libversion(void);
125
- int sqlite3_libversion_number(void);
128
+ SQLITE_API SQLITE_EXTERN const char sqlite3_version[];
129
+ SQLITE_API const char *sqlite3_libversion(void);
130
+ SQLITE_API int sqlite3_libversion_number(void);
126
131
 
127
132
  /*
128
133
  ** CAPI3REF: Test To See If The Library Is Threadsafe {H10100} <S60100>
@@ -156,7 +161,7 @@ int sqlite3_libversion_number(void);
156
161
  **
157
162
  ** Requirements: [H10101] [H10102]
158
163
  */
159
- int sqlite3_threadsafe(void);
164
+ SQLITE_API int sqlite3_threadsafe(void);
160
165
 
161
166
  /*
162
167
  ** CAPI3REF: Database Connection Handle {H12000} <S40200>
@@ -237,7 +242,7 @@ typedef sqlite_uint64 sqlite3_uint64;
237
242
  ** Requirements:
238
243
  ** [H12011] [H12012] [H12013] [H12014] [H12015] [H12019]
239
244
  */
240
- int sqlite3_close(sqlite3 *);
245
+ SQLITE_API int sqlite3_close(sqlite3 *);
241
246
 
242
247
  /*
243
248
  ** The type for a callback function.
@@ -290,7 +295,7 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**);
290
295
  ** [H12101] [H12102] [H12104] [H12105] [H12107] [H12110] [H12113] [H12116]
291
296
  ** [H12119] [H12122] [H12125] [H12131] [H12134] [H12137] [H12138]
292
297
  */
293
- int sqlite3_exec(
298
+ SQLITE_API int sqlite3_exec(
294
299
  sqlite3*, /* An open database */
295
300
  const char *sql, /* SQL to be evaluated */
296
301
  int (*callback)(void*,int,char**,char**), /* Callback function */
@@ -858,10 +863,10 @@ struct sqlite3_vfs {
858
863
  ** must return [SQLITE_OK] on success and some other [error code] upon
859
864
  ** failure.
860
865
  */
861
- int sqlite3_initialize(void);
862
- int sqlite3_shutdown(void);
863
- int sqlite3_os_init(void);
864
- int sqlite3_os_end(void);
866
+ SQLITE_API int sqlite3_initialize(void);
867
+ SQLITE_API int sqlite3_shutdown(void);
868
+ SQLITE_API int sqlite3_os_init(void);
869
+ SQLITE_API int sqlite3_os_end(void);
865
870
 
866
871
  /*
867
872
  ** CAPI3REF: Configuring The SQLite Library {H14100} <S20000><S30200>
@@ -896,7 +901,7 @@ int sqlite3_os_end(void);
896
901
  ** [H14138] [H14141] [H14144] [H14147] [H14150] [H14153] [H14156] [H14159]
897
902
  ** [H14162] [H14165] [H14168]
898
903
  */
899
- SQLITE_EXPERIMENTAL int sqlite3_config(int, ...);
904
+ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_config(int, ...);
900
905
 
901
906
  /*
902
907
  ** CAPI3REF: Configure database connections {H14200} <S20000>
@@ -920,7 +925,7 @@ SQLITE_EXPERIMENTAL int sqlite3_config(int, ...);
920
925
  ** Requirements:
921
926
  ** [H14203] [H14206] [H14209] [H14212] [H14215]
922
927
  */
923
- SQLITE_EXPERIMENTAL int sqlite3_db_config(sqlite3*, int op, ...);
928
+ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_db_config(sqlite3*, int op, ...);
924
929
 
925
930
  /*
926
931
  ** CAPI3REF: Memory Allocation Routines {H10155} <S20120>
@@ -1191,7 +1196,7 @@ struct sqlite3_mem_methods {
1191
1196
  ** Requirements:
1192
1197
  ** [H12201] [H12202]
1193
1198
  */
1194
- int sqlite3_extended_result_codes(sqlite3*, int onoff);
1199
+ SQLITE_API int sqlite3_extended_result_codes(sqlite3*, int onoff);
1195
1200
 
1196
1201
  /*
1197
1202
  ** CAPI3REF: Last Insert Rowid {H12220} <S10700>
@@ -1236,7 +1241,7 @@ int sqlite3_extended_result_codes(sqlite3*, int onoff);
1236
1241
  ** unpredictable and might not equal either the old or the new
1237
1242
  ** last insert [rowid].
1238
1243
  */
1239
- sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);
1244
+ SQLITE_API sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);
1240
1245
 
1241
1246
  /*
1242
1247
  ** CAPI3REF: Count The Number Of Rows Modified {H12240} <S10600>
@@ -1292,7 +1297,7 @@ sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);
1292
1297
  ** while [sqlite3_changes()] is running then the value returned
1293
1298
  ** is unpredictable and not meaningful.
1294
1299
  */
1295
- int sqlite3_changes(sqlite3*);
1300
+ SQLITE_API int sqlite3_changes(sqlite3*);
1296
1301
 
1297
1302
  /*
1298
1303
  ** CAPI3REF: Total Number Of Rows Modified {H12260} <S10600>
@@ -1320,7 +1325,7 @@ int sqlite3_changes(sqlite3*);
1320
1325
  ** while [sqlite3_total_changes()] is running then the value
1321
1326
  ** returned is unpredictable and not meaningful.
1322
1327
  */
1323
- int sqlite3_total_changes(sqlite3*);
1328
+ SQLITE_API int sqlite3_total_changes(sqlite3*);
1324
1329
 
1325
1330
  /*
1326
1331
  ** CAPI3REF: Interrupt A Long-Running Query {H12270} <S30500>
@@ -1362,7 +1367,7 @@ int sqlite3_total_changes(sqlite3*);
1362
1367
  ** If the database connection closes while [sqlite3_interrupt()]
1363
1368
  ** is running then bad things will likely happen.
1364
1369
  */
1365
- void sqlite3_interrupt(sqlite3*);
1370
+ SQLITE_API void sqlite3_interrupt(sqlite3*);
1366
1371
 
1367
1372
  /*
1368
1373
  ** CAPI3REF: Determine If An SQL Statement Is Complete {H10510} <S70200>
@@ -1399,8 +1404,8 @@ void sqlite3_interrupt(sqlite3*);
1399
1404
  ** The input to [sqlite3_complete16()] must be a zero-terminated
1400
1405
  ** UTF-16 string in native byte order.
1401
1406
  */
1402
- int sqlite3_complete(const char *sql);
1403
- int sqlite3_complete16(const void *sql);
1407
+ SQLITE_API int sqlite3_complete(const char *sql);
1408
+ SQLITE_API int sqlite3_complete16(const void *sql);
1404
1409
 
1405
1410
  /*
1406
1411
  ** CAPI3REF: Register A Callback To Handle SQLITE_BUSY Errors {H12310} <S40400>
@@ -1469,7 +1474,7 @@ int sqlite3_complete16(const void *sql);
1469
1474
  ** A busy handler must not close the database connection
1470
1475
  ** or [prepared statement] that invoked the busy handler.
1471
1476
  */
1472
- int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*);
1477
+ SQLITE_API int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*);
1473
1478
 
1474
1479
  /*
1475
1480
  ** CAPI3REF: Set A Busy Timeout {H12340} <S40410>
@@ -1492,7 +1497,7 @@ int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*);
1492
1497
  ** Requirements:
1493
1498
  ** [H12341] [H12343] [H12344]
1494
1499
  */
1495
- int sqlite3_busy_timeout(sqlite3*, int ms);
1500
+ SQLITE_API int sqlite3_busy_timeout(sqlite3*, int ms);
1496
1501
 
1497
1502
  /*
1498
1503
  ** CAPI3REF: Convenience Routines For Running Queries {H12370} <S10000>
@@ -1565,7 +1570,7 @@ int sqlite3_busy_timeout(sqlite3*, int ms);
1565
1570
  ** Requirements:
1566
1571
  ** [H12371] [H12373] [H12374] [H12376] [H12379] [H12382]
1567
1572
  */
1568
- int sqlite3_get_table(
1573
+ SQLITE_API int sqlite3_get_table(
1569
1574
  sqlite3 *db, /* An open database */
1570
1575
  const char *zSql, /* SQL to be evaluated */
1571
1576
  char ***pazResult, /* Results of the query */
@@ -1573,7 +1578,7 @@ int sqlite3_get_table(
1573
1578
  int *pnColumn, /* Number of result columns written here */
1574
1579
  char **pzErrmsg /* Error msg written here */
1575
1580
  );
1576
- void sqlite3_free_table(char **result);
1581
+ SQLITE_API void sqlite3_free_table(char **result);
1577
1582
 
1578
1583
  /*
1579
1584
  ** CAPI3REF: Formatted String Printing Functions {H17400} <S70000><S20000>
@@ -1670,9 +1675,9 @@ void sqlite3_free_table(char **result);
1670
1675
  ** Requirements:
1671
1676
  ** [H17403] [H17406] [H17407]
1672
1677
  */
1673
- char *sqlite3_mprintf(const char*,...);
1674
- char *sqlite3_vmprintf(const char*, va_list);
1675
- char *sqlite3_snprintf(int,char*,const char*, ...);
1678
+ SQLITE_API char *sqlite3_mprintf(const char*,...);
1679
+ SQLITE_API char *sqlite3_vmprintf(const char*, va_list);
1680
+ SQLITE_API char *sqlite3_snprintf(int,char*,const char*, ...);
1676
1681
 
1677
1682
  /*
1678
1683
  ** CAPI3REF: Memory Allocation Subsystem {H17300} <S20000>
@@ -1755,9 +1760,9 @@ char *sqlite3_snprintf(int,char*,const char*, ...);
1755
1760
  ** a block of memory after it has been released using
1756
1761
  ** [sqlite3_free()] or [sqlite3_realloc()].
1757
1762
  */
1758
- void *sqlite3_malloc(int);
1759
- void *sqlite3_realloc(void*, int);
1760
- void sqlite3_free(void*);
1763
+ SQLITE_API void *sqlite3_malloc(int);
1764
+ SQLITE_API void *sqlite3_realloc(void*, int);
1765
+ SQLITE_API void sqlite3_free(void*);
1761
1766
 
1762
1767
  /*
1763
1768
  ** CAPI3REF: Memory Allocator Statistics {H17370} <S30210>
@@ -1769,8 +1774,8 @@ void sqlite3_free(void*);
1769
1774
  ** Requirements:
1770
1775
  ** [H17371] [H17373] [H17374] [H17375]
1771
1776
  */
1772
- sqlite3_int64 sqlite3_memory_used(void);
1773
- sqlite3_int64 sqlite3_memory_highwater(int resetFlag);
1777
+ SQLITE_API sqlite3_int64 sqlite3_memory_used(void);
1778
+ SQLITE_API sqlite3_int64 sqlite3_memory_highwater(int resetFlag);
1774
1779
 
1775
1780
  /*
1776
1781
  ** CAPI3REF: Pseudo-Random Number Generator {H17390} <S20000>
@@ -1793,7 +1798,7 @@ sqlite3_int64 sqlite3_memory_highwater(int resetFlag);
1793
1798
  ** Requirements:
1794
1799
  ** [H17392]
1795
1800
  */
1796
- void sqlite3_randomness(int N, void *P);
1801
+ SQLITE_API void sqlite3_randomness(int N, void *P);
1797
1802
 
1798
1803
  /*
1799
1804
  ** CAPI3REF: Compile-Time Authorization Callbacks {H12500} <S70100>
@@ -1879,7 +1884,7 @@ void sqlite3_randomness(int N, void *P);
1879
1884
  ** [H12501] [H12502] [H12503] [H12504] [H12505] [H12506] [H12507] [H12510]
1880
1885
  ** [H12511] [H12512] [H12520] [H12521] [H12522]
1881
1886
  */
1882
- int sqlite3_set_authorizer(
1887
+ SQLITE_API int sqlite3_set_authorizer(
1883
1888
  sqlite3*,
1884
1889
  int (*xAuth)(void*,int,const char*,const char*,const char*,const char*),
1885
1890
  void *pUserData
@@ -1977,8 +1982,8 @@ int sqlite3_set_authorizer(
1977
1982
  ** [H12281] [H12282] [H12283] [H12284] [H12285] [H12287] [H12288] [H12289]
1978
1983
  ** [H12290]
1979
1984
  */
1980
- SQLITE_EXPERIMENTAL void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);
1981
- SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*,
1985
+ SQLITE_API SQLITE_EXPERIMENTAL void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);
1986
+ SQLITE_API SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*,
1982
1987
  void(*xProfile)(void*,const char*,sqlite3_uint64), void*);
1983
1988
 
1984
1989
  /*
@@ -2003,7 +2008,7 @@ SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*,
2003
2008
  ** [H12911] [H12912] [H12913] [H12914] [H12915] [H12916] [H12917] [H12918]
2004
2009
  **
2005
2010
  */
2006
- void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
2011
+ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
2007
2012
 
2008
2013
  /*
2009
2014
  ** CAPI3REF: Opening A New Database Connection {H12700} <S40200>
@@ -2089,15 +2094,15 @@ void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
2089
2094
  ** [H12701] [H12702] [H12703] [H12704] [H12706] [H12707] [H12709] [H12711]
2090
2095
  ** [H12712] [H12713] [H12714] [H12717] [H12719] [H12721] [H12723]
2091
2096
  */
2092
- int sqlite3_open(
2097
+ SQLITE_API int sqlite3_open(
2093
2098
  const char *filename, /* Database filename (UTF-8) */
2094
2099
  sqlite3 **ppDb /* OUT: SQLite db handle */
2095
2100
  );
2096
- int sqlite3_open16(
2101
+ SQLITE_API int sqlite3_open16(
2097
2102
  const void *filename, /* Database filename (UTF-16) */
2098
2103
  sqlite3 **ppDb /* OUT: SQLite db handle */
2099
2104
  );
2100
- int sqlite3_open_v2(
2105
+ SQLITE_API int sqlite3_open_v2(
2101
2106
  const char *filename, /* Database filename (UTF-8) */
2102
2107
  sqlite3 **ppDb, /* OUT: SQLite db handle */
2103
2108
  int flags, /* Flags */
@@ -2140,10 +2145,10 @@ int sqlite3_open_v2(
2140
2145
  ** Requirements:
2141
2146
  ** [H12801] [H12802] [H12803] [H12807] [H12808] [H12809]
2142
2147
  */
2143
- int sqlite3_errcode(sqlite3 *db);
2144
- int sqlite3_extended_errcode(sqlite3 *db);
2145
- const char *sqlite3_errmsg(sqlite3*);
2146
- const void *sqlite3_errmsg16(sqlite3*);
2148
+ SQLITE_API int sqlite3_errcode(sqlite3 *db);
2149
+ SQLITE_API int sqlite3_extended_errcode(sqlite3 *db);
2150
+ SQLITE_API const char *sqlite3_errmsg(sqlite3*);
2151
+ SQLITE_API const void *sqlite3_errmsg16(sqlite3*);
2147
2152
 
2148
2153
  /*
2149
2154
  ** CAPI3REF: SQL Statement Object {H13000} <H13010>
@@ -2208,7 +2213,7 @@ typedef struct sqlite3_stmt sqlite3_stmt;
2208
2213
  ** Requirements:
2209
2214
  ** [H12762] [H12766] [H12769]
2210
2215
  */
2211
- int sqlite3_limit(sqlite3*, int id, int newVal);
2216
+ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal);
2212
2217
 
2213
2218
  /*
2214
2219
  ** CAPI3REF: Run-Time Limit Categories {H12790} <H12760>
@@ -2342,28 +2347,28 @@ int sqlite3_limit(sqlite3*, int id, int newVal);
2342
2347
  ** [H13011] [H13012] [H13013] [H13014] [H13015] [H13016] [H13019] [H13021]
2343
2348
  **
2344
2349
  */
2345
- int sqlite3_prepare(
2350
+ SQLITE_API int sqlite3_prepare(
2346
2351
  sqlite3 *db, /* Database handle */
2347
2352
  const char *zSql, /* SQL statement, UTF-8 encoded */
2348
2353
  int nByte, /* Maximum length of zSql in bytes. */
2349
2354
  sqlite3_stmt **ppStmt, /* OUT: Statement handle */
2350
2355
  const char **pzTail /* OUT: Pointer to unused portion of zSql */
2351
2356
  );
2352
- int sqlite3_prepare_v2(
2357
+ SQLITE_API int sqlite3_prepare_v2(
2353
2358
  sqlite3 *db, /* Database handle */
2354
2359
  const char *zSql, /* SQL statement, UTF-8 encoded */
2355
2360
  int nByte, /* Maximum length of zSql in bytes. */
2356
2361
  sqlite3_stmt **ppStmt, /* OUT: Statement handle */
2357
2362
  const char **pzTail /* OUT: Pointer to unused portion of zSql */
2358
2363
  );
2359
- int sqlite3_prepare16(
2364
+ SQLITE_API int sqlite3_prepare16(
2360
2365
  sqlite3 *db, /* Database handle */
2361
2366
  const void *zSql, /* SQL statement, UTF-16 encoded */
2362
2367
  int nByte, /* Maximum length of zSql in bytes. */
2363
2368
  sqlite3_stmt **ppStmt, /* OUT: Statement handle */
2364
2369
  const void **pzTail /* OUT: Pointer to unused portion of zSql */
2365
2370
  );
2366
- int sqlite3_prepare16_v2(
2371
+ SQLITE_API int sqlite3_prepare16_v2(
2367
2372
  sqlite3 *db, /* Database handle */
2368
2373
  const void *zSql, /* SQL statement, UTF-16 encoded */
2369
2374
  int nByte, /* Maximum length of zSql in bytes. */
@@ -2381,7 +2386,7 @@ int sqlite3_prepare16_v2(
2381
2386
  ** Requirements:
2382
2387
  ** [H13101] [H13102] [H13103]
2383
2388
  */
2384
- const char *sqlite3_sql(sqlite3_stmt *pStmt);
2389
+ SQLITE_API const char *sqlite3_sql(sqlite3_stmt *pStmt);
2385
2390
 
2386
2391
  /*
2387
2392
  ** CAPI3REF: Dynamically Typed Value Object {H15000} <S20200>
@@ -2520,15 +2525,15 @@ typedef struct sqlite3_context sqlite3_context;
2520
2525
  ** [H13530] [H13533] [H13536] [H13539] [H13542] [H13545] [H13548] [H13551]
2521
2526
  **
2522
2527
  */
2523
- int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*));
2524
- int sqlite3_bind_double(sqlite3_stmt*, int, double);
2525
- int sqlite3_bind_int(sqlite3_stmt*, int, int);
2526
- int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);
2527
- int sqlite3_bind_null(sqlite3_stmt*, int);
2528
- int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*));
2529
- int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void(*)(void*));
2530
- int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*);
2531
- int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n);
2528
+ SQLITE_API int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*));
2529
+ SQLITE_API int sqlite3_bind_double(sqlite3_stmt*, int, double);
2530
+ SQLITE_API int sqlite3_bind_int(sqlite3_stmt*, int, int);
2531
+ SQLITE_API int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);
2532
+ SQLITE_API int sqlite3_bind_null(sqlite3_stmt*, int);
2533
+ SQLITE_API int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*));
2534
+ SQLITE_API int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void(*)(void*));
2535
+ SQLITE_API int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*);
2536
+ SQLITE_API int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n);
2532
2537
 
2533
2538
  /*
2534
2539
  ** CAPI3REF: Number Of SQL Parameters {H13600} <S70300>
@@ -2551,7 +2556,7 @@ int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n);
2551
2556
  ** Requirements:
2552
2557
  ** [H13601]
2553
2558
  */
2554
- int sqlite3_bind_parameter_count(sqlite3_stmt*);
2559
+ SQLITE_API int sqlite3_bind_parameter_count(sqlite3_stmt*);
2555
2560
 
2556
2561
  /*
2557
2562
  ** CAPI3REF: Name Of A Host Parameter {H13620} <S70300>
@@ -2581,7 +2586,7 @@ int sqlite3_bind_parameter_count(sqlite3_stmt*);
2581
2586
  ** Requirements:
2582
2587
  ** [H13621]
2583
2588
  */
2584
- const char *sqlite3_bind_parameter_name(sqlite3_stmt*, int);
2589
+ SQLITE_API const char *sqlite3_bind_parameter_name(sqlite3_stmt*, int);
2585
2590
 
2586
2591
  /*
2587
2592
  ** CAPI3REF: Index Of A Parameter With A Given Name {H13640} <S70300>
@@ -2600,7 +2605,7 @@ const char *sqlite3_bind_parameter_name(sqlite3_stmt*, int);
2600
2605
  ** Requirements:
2601
2606
  ** [H13641]
2602
2607
  */
2603
- int sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName);
2608
+ SQLITE_API int sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName);
2604
2609
 
2605
2610
  /*
2606
2611
  ** CAPI3REF: Reset All Bindings On A Prepared Statement {H13660} <S70300>
@@ -2612,7 +2617,7 @@ int sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName);
2612
2617
  ** Requirements:
2613
2618
  ** [H13661]
2614
2619
  */
2615
- int sqlite3_clear_bindings(sqlite3_stmt*);
2620
+ SQLITE_API int sqlite3_clear_bindings(sqlite3_stmt*);
2616
2621
 
2617
2622
  /*
2618
2623
  ** CAPI3REF: Number Of Columns In A Result Set {H13710} <S10700>
@@ -2624,7 +2629,7 @@ int sqlite3_clear_bindings(sqlite3_stmt*);
2624
2629
  ** Requirements:
2625
2630
  ** [H13711]
2626
2631
  */
2627
- int sqlite3_column_count(sqlite3_stmt *pStmt);
2632
+ SQLITE_API int sqlite3_column_count(sqlite3_stmt *pStmt);
2628
2633
 
2629
2634
  /*
2630
2635
  ** CAPI3REF: Column Names In A Result Set {H13720} <S10700>
@@ -2653,8 +2658,8 @@ int sqlite3_column_count(sqlite3_stmt *pStmt);
2653
2658
  ** Requirements:
2654
2659
  ** [H13721] [H13723] [H13724] [H13725] [H13726] [H13727]
2655
2660
  */
2656
- const char *sqlite3_column_name(sqlite3_stmt*, int N);
2657
- const void *sqlite3_column_name16(sqlite3_stmt*, int N);
2661
+ SQLITE_API const char *sqlite3_column_name(sqlite3_stmt*, int N);
2662
+ SQLITE_API const void *sqlite3_column_name16(sqlite3_stmt*, int N);
2658
2663
 
2659
2664
  /*
2660
2665
  ** CAPI3REF: Source Of Data In A Query Result {H13740} <S10700>
@@ -2701,12 +2706,12 @@ const void *sqlite3_column_name16(sqlite3_stmt*, int N);
2701
2706
  ** for the same [prepared statement] and result column
2702
2707
  ** at the same time then the results are undefined.
2703
2708
  */
2704
- const char *sqlite3_column_database_name(sqlite3_stmt*,int);
2705
- const void *sqlite3_column_database_name16(sqlite3_stmt*,int);
2706
- const char *sqlite3_column_table_name(sqlite3_stmt*,int);
2707
- const void *sqlite3_column_table_name16(sqlite3_stmt*,int);
2708
- const char *sqlite3_column_origin_name(sqlite3_stmt*,int);
2709
- const void *sqlite3_column_origin_name16(sqlite3_stmt*,int);
2709
+ SQLITE_API const char *sqlite3_column_database_name(sqlite3_stmt*,int);
2710
+ SQLITE_API const void *sqlite3_column_database_name16(sqlite3_stmt*,int);
2711
+ SQLITE_API const char *sqlite3_column_table_name(sqlite3_stmt*,int);
2712
+ SQLITE_API const void *sqlite3_column_table_name16(sqlite3_stmt*,int);
2713
+ SQLITE_API const char *sqlite3_column_origin_name(sqlite3_stmt*,int);
2714
+ SQLITE_API const void *sqlite3_column_origin_name16(sqlite3_stmt*,int);
2710
2715
 
2711
2716
  /*
2712
2717
  ** CAPI3REF: Declared Datatype Of A Query Result {H13760} <S10700>
@@ -2740,8 +2745,8 @@ const void *sqlite3_column_origin_name16(sqlite3_stmt*,int);
2740
2745
  ** Requirements:
2741
2746
  ** [H13761] [H13762] [H13763]
2742
2747
  */
2743
- const char *sqlite3_column_decltype(sqlite3_stmt*,int);
2744
- const void *sqlite3_column_decltype16(sqlite3_stmt*,int);
2748
+ SQLITE_API const char *sqlite3_column_decltype(sqlite3_stmt*,int);
2749
+ SQLITE_API const void *sqlite3_column_decltype16(sqlite3_stmt*,int);
2745
2750
 
2746
2751
  /*
2747
2752
  ** CAPI3REF: Evaluate An SQL Statement {H13200} <S10000>
@@ -2811,7 +2816,7 @@ const void *sqlite3_column_decltype16(sqlite3_stmt*,int);
2811
2816
  ** Requirements:
2812
2817
  ** [H13202] [H15304] [H15306] [H15308] [H15310]
2813
2818
  */
2814
- int sqlite3_step(sqlite3_stmt*);
2819
+ SQLITE_API int sqlite3_step(sqlite3_stmt*);
2815
2820
 
2816
2821
  /*
2817
2822
  ** CAPI3REF: Number of columns in a result set {H13770} <S10700>
@@ -2821,7 +2826,7 @@ int sqlite3_step(sqlite3_stmt*);
2821
2826
  ** Requirements:
2822
2827
  ** [H13771] [H13772]
2823
2828
  */
2824
- int sqlite3_data_count(sqlite3_stmt *pStmt);
2829
+ SQLITE_API int sqlite3_data_count(sqlite3_stmt *pStmt);
2825
2830
 
2826
2831
  /*
2827
2832
  ** CAPI3REF: Fundamental Datatypes {H10265} <S10110><S10120>
@@ -3011,16 +3016,16 @@ int sqlite3_data_count(sqlite3_stmt *pStmt);
3011
3016
  ** [H13803] [H13806] [H13809] [H13812] [H13815] [H13818] [H13821] [H13824]
3012
3017
  ** [H13827] [H13830]
3013
3018
  */
3014
- const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);
3015
- int sqlite3_column_bytes(sqlite3_stmt*, int iCol);
3016
- int sqlite3_column_bytes16(sqlite3_stmt*, int iCol);
3017
- double sqlite3_column_double(sqlite3_stmt*, int iCol);
3018
- int sqlite3_column_int(sqlite3_stmt*, int iCol);
3019
- sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);
3020
- const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
3021
- const void *sqlite3_column_text16(sqlite3_stmt*, int iCol);
3022
- int sqlite3_column_type(sqlite3_stmt*, int iCol);
3023
- sqlite3_value *sqlite3_column_value(sqlite3_stmt*, int iCol);
3019
+ SQLITE_API const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);
3020
+ SQLITE_API int sqlite3_column_bytes(sqlite3_stmt*, int iCol);
3021
+ SQLITE_API int sqlite3_column_bytes16(sqlite3_stmt*, int iCol);
3022
+ SQLITE_API double sqlite3_column_double(sqlite3_stmt*, int iCol);
3023
+ SQLITE_API int sqlite3_column_int(sqlite3_stmt*, int iCol);
3024
+ SQLITE_API sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);
3025
+ SQLITE_API const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
3026
+ SQLITE_API const void *sqlite3_column_text16(sqlite3_stmt*, int iCol);
3027
+ SQLITE_API int sqlite3_column_type(sqlite3_stmt*, int iCol);
3028
+ SQLITE_API sqlite3_value *sqlite3_column_value(sqlite3_stmt*, int iCol);
3024
3029
 
3025
3030
  /*
3026
3031
  ** CAPI3REF: Destroy A Prepared Statement Object {H13300} <S70300><S30100>
@@ -3041,7 +3046,7 @@ sqlite3_value *sqlite3_column_value(sqlite3_stmt*, int iCol);
3041
3046
  ** Requirements:
3042
3047
  ** [H11302] [H11304]
3043
3048
  */
3044
- int sqlite3_finalize(sqlite3_stmt *pStmt);
3049
+ SQLITE_API int sqlite3_finalize(sqlite3_stmt *pStmt);
3045
3050
 
3046
3051
  /*
3047
3052
  ** CAPI3REF: Reset A Prepared Statement Object {H13330} <S70300>
@@ -3067,7 +3072,7 @@ int sqlite3_finalize(sqlite3_stmt *pStmt);
3067
3072
  ** {H11338} The [sqlite3_reset(S)] interface does not change the values
3068
3073
  ** of any [sqlite3_bind_blob|bindings] on the [prepared statement] S.
3069
3074
  */
3070
- int sqlite3_reset(sqlite3_stmt *pStmt);
3075
+ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt);
3071
3076
 
3072
3077
  /*
3073
3078
  ** CAPI3REF: Create Or Redefine SQL Functions {H16100} <S20200>
@@ -3153,7 +3158,7 @@ int sqlite3_reset(sqlite3_stmt *pStmt);
3153
3158
  ** [H16103] [H16106] [H16109] [H16112] [H16118] [H16121] [H16127]
3154
3159
  ** [H16130] [H16133] [H16136] [H16139] [H16142]
3155
3160
  */
3156
- int sqlite3_create_function(
3161
+ SQLITE_API int sqlite3_create_function(
3157
3162
  sqlite3 *db,
3158
3163
  const char *zFunctionName,
3159
3164
  int nArg,
@@ -3163,7 +3168,7 @@ int sqlite3_create_function(
3163
3168
  void (*xStep)(sqlite3_context*,int,sqlite3_value**),
3164
3169
  void (*xFinal)(sqlite3_context*)
3165
3170
  );
3166
- int sqlite3_create_function16(
3171
+ SQLITE_API int sqlite3_create_function16(
3167
3172
  sqlite3 *db,
3168
3173
  const void *zFunctionName,
3169
3174
  int nArg,
@@ -3198,12 +3203,12 @@ int sqlite3_create_function16(
3198
3203
  ** using these functions, we are not going to tell you what they do.
3199
3204
  */
3200
3205
  #ifndef SQLITE_OMIT_DEPRECATED
3201
- SQLITE_DEPRECATED int sqlite3_aggregate_count(sqlite3_context*);
3202
- SQLITE_DEPRECATED int sqlite3_expired(sqlite3_stmt*);
3203
- SQLITE_DEPRECATED int sqlite3_transfer_bindings(sqlite3_stmt*, sqlite3_stmt*);
3204
- SQLITE_DEPRECATED int sqlite3_global_recover(void);
3205
- SQLITE_DEPRECATED void sqlite3_thread_cleanup(void);
3206
- SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int64,int),void*,sqlite3_int64);
3206
+ SQLITE_API SQLITE_DEPRECATED int sqlite3_aggregate_count(sqlite3_context*);
3207
+ SQLITE_API SQLITE_DEPRECATED int sqlite3_expired(sqlite3_stmt*);
3208
+ SQLITE_API SQLITE_DEPRECATED int sqlite3_transfer_bindings(sqlite3_stmt*, sqlite3_stmt*);
3209
+ SQLITE_API SQLITE_DEPRECATED int sqlite3_global_recover(void);
3210
+ SQLITE_API SQLITE_DEPRECATED void sqlite3_thread_cleanup(void);
3211
+ SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int64,int),void*,sqlite3_int64);
3207
3212
  #endif
3208
3213
 
3209
3214
  /*
@@ -3255,18 +3260,18 @@ SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int64,int),void
3255
3260
  ** [H15103] [H15106] [H15109] [H15112] [H15115] [H15118] [H15121] [H15124]
3256
3261
  ** [H15127] [H15130] [H15133] [H15136]
3257
3262
  */
3258
- const void *sqlite3_value_blob(sqlite3_value*);
3259
- int sqlite3_value_bytes(sqlite3_value*);
3260
- int sqlite3_value_bytes16(sqlite3_value*);
3261
- double sqlite3_value_double(sqlite3_value*);
3262
- int sqlite3_value_int(sqlite3_value*);
3263
- sqlite3_int64 sqlite3_value_int64(sqlite3_value*);
3264
- const unsigned char *sqlite3_value_text(sqlite3_value*);
3265
- const void *sqlite3_value_text16(sqlite3_value*);
3266
- const void *sqlite3_value_text16le(sqlite3_value*);
3267
- const void *sqlite3_value_text16be(sqlite3_value*);
3268
- int sqlite3_value_type(sqlite3_value*);
3269
- int sqlite3_value_numeric_type(sqlite3_value*);
3263
+ SQLITE_API const void *sqlite3_value_blob(sqlite3_value*);
3264
+ SQLITE_API int sqlite3_value_bytes(sqlite3_value*);
3265
+ SQLITE_API int sqlite3_value_bytes16(sqlite3_value*);
3266
+ SQLITE_API double sqlite3_value_double(sqlite3_value*);
3267
+ SQLITE_API int sqlite3_value_int(sqlite3_value*);
3268
+ SQLITE_API sqlite3_int64 sqlite3_value_int64(sqlite3_value*);
3269
+ SQLITE_API const unsigned char *sqlite3_value_text(sqlite3_value*);
3270
+ SQLITE_API const void *sqlite3_value_text16(sqlite3_value*);
3271
+ SQLITE_API const void *sqlite3_value_text16le(sqlite3_value*);
3272
+ SQLITE_API const void *sqlite3_value_text16be(sqlite3_value*);
3273
+ SQLITE_API int sqlite3_value_type(sqlite3_value*);
3274
+ SQLITE_API int sqlite3_value_numeric_type(sqlite3_value*);
3270
3275
 
3271
3276
  /*
3272
3277
  ** CAPI3REF: Obtain Aggregate Function Context {H16210} <S20200>
@@ -3294,7 +3299,7 @@ int sqlite3_value_numeric_type(sqlite3_value*);
3294
3299
  ** Requirements:
3295
3300
  ** [H16211] [H16213] [H16215] [H16217]
3296
3301
  */
3297
- void *sqlite3_aggregate_context(sqlite3_context*, int nBytes);
3302
+ SQLITE_API void *sqlite3_aggregate_context(sqlite3_context*, int nBytes);
3298
3303
 
3299
3304
  /*
3300
3305
  ** CAPI3REF: User Data For Functions {H16240} <S20200>
@@ -3311,7 +3316,7 @@ void *sqlite3_aggregate_context(sqlite3_context*, int nBytes);
3311
3316
  ** Requirements:
3312
3317
  ** [H16243]
3313
3318
  */
3314
- void *sqlite3_user_data(sqlite3_context*);
3319
+ SQLITE_API void *sqlite3_user_data(sqlite3_context*);
3315
3320
 
3316
3321
  /*
3317
3322
  ** CAPI3REF: Database Connection For Functions {H16250} <S60600><S20200>
@@ -3325,7 +3330,7 @@ void *sqlite3_user_data(sqlite3_context*);
3325
3330
  ** Requirements:
3326
3331
  ** [H16253]
3327
3332
  */
3328
- sqlite3 *sqlite3_context_db_handle(sqlite3_context*);
3333
+ SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context*);
3329
3334
 
3330
3335
  /*
3331
3336
  ** CAPI3REF: Function Auxiliary Data {H16270} <S20200>
@@ -3372,8 +3377,8 @@ sqlite3 *sqlite3_context_db_handle(sqlite3_context*);
3372
3377
  ** Requirements:
3373
3378
  ** [H16272] [H16274] [H16276] [H16277] [H16278] [H16279]
3374
3379
  */
3375
- void *sqlite3_get_auxdata(sqlite3_context*, int N);
3376
- void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(void*));
3380
+ SQLITE_API void *sqlite3_get_auxdata(sqlite3_context*, int N);
3381
+ SQLITE_API void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(void*));
3377
3382
 
3378
3383
 
3379
3384
  /*
@@ -3503,22 +3508,22 @@ typedef void (*sqlite3_destructor_type)(void*);
3503
3508
  ** [H16427] [H16430] [H16433] [H16436] [H16439] [H16442] [H16445] [H16448]
3504
3509
  ** [H16451] [H16454] [H16457] [H16460] [H16463]
3505
3510
  */
3506
- void sqlite3_result_blob(sqlite3_context*, const void*, int, void(*)(void*));
3507
- void sqlite3_result_double(sqlite3_context*, double);
3508
- void sqlite3_result_error(sqlite3_context*, const char*, int);
3509
- void sqlite3_result_error16(sqlite3_context*, const void*, int);
3510
- void sqlite3_result_error_toobig(sqlite3_context*);
3511
- void sqlite3_result_error_nomem(sqlite3_context*);
3512
- void sqlite3_result_error_code(sqlite3_context*, int);
3513
- void sqlite3_result_int(sqlite3_context*, int);
3514
- void sqlite3_result_int64(sqlite3_context*, sqlite3_int64);
3515
- void sqlite3_result_null(sqlite3_context*);
3516
- void sqlite3_result_text(sqlite3_context*, const char*, int, void(*)(void*));
3517
- void sqlite3_result_text16(sqlite3_context*, const void*, int, void(*)(void*));
3518
- void sqlite3_result_text16le(sqlite3_context*, const void*, int,void(*)(void*));
3519
- void sqlite3_result_text16be(sqlite3_context*, const void*, int,void(*)(void*));
3520
- void sqlite3_result_value(sqlite3_context*, sqlite3_value*);
3521
- void sqlite3_result_zeroblob(sqlite3_context*, int n);
3511
+ SQLITE_API void sqlite3_result_blob(sqlite3_context*, const void*, int, void(*)(void*));
3512
+ SQLITE_API void sqlite3_result_double(sqlite3_context*, double);
3513
+ SQLITE_API void sqlite3_result_error(sqlite3_context*, const char*, int);
3514
+ SQLITE_API void sqlite3_result_error16(sqlite3_context*, const void*, int);
3515
+ SQLITE_API void sqlite3_result_error_toobig(sqlite3_context*);
3516
+ SQLITE_API void sqlite3_result_error_nomem(sqlite3_context*);
3517
+ SQLITE_API void sqlite3_result_error_code(sqlite3_context*, int);
3518
+ SQLITE_API void sqlite3_result_int(sqlite3_context*, int);
3519
+ SQLITE_API void sqlite3_result_int64(sqlite3_context*, sqlite3_int64);
3520
+ SQLITE_API void sqlite3_result_null(sqlite3_context*);
3521
+ SQLITE_API void sqlite3_result_text(sqlite3_context*, const char*, int, void(*)(void*));
3522
+ SQLITE_API void sqlite3_result_text16(sqlite3_context*, const void*, int, void(*)(void*));
3523
+ SQLITE_API void sqlite3_result_text16le(sqlite3_context*, const void*, int,void(*)(void*));
3524
+ SQLITE_API void sqlite3_result_text16be(sqlite3_context*, const void*, int,void(*)(void*));
3525
+ SQLITE_API void sqlite3_result_value(sqlite3_context*, sqlite3_value*);
3526
+ SQLITE_API void sqlite3_result_zeroblob(sqlite3_context*, int n);
3522
3527
 
3523
3528
  /*
3524
3529
  ** CAPI3REF: Define New Collating Sequences {H16600} <S20300>
@@ -3570,14 +3575,14 @@ void sqlite3_result_zeroblob(sqlite3_context*, int n);
3570
3575
  ** [H16603] [H16604] [H16606] [H16609] [H16612] [H16615] [H16618] [H16621]
3571
3576
  ** [H16624] [H16627] [H16630]
3572
3577
  */
3573
- int sqlite3_create_collation(
3578
+ SQLITE_API int sqlite3_create_collation(
3574
3579
  sqlite3*,
3575
3580
  const char *zName,
3576
3581
  int eTextRep,
3577
3582
  void*,
3578
3583
  int(*xCompare)(void*,int,const void*,int,const void*)
3579
3584
  );
3580
- int sqlite3_create_collation_v2(
3585
+ SQLITE_API int sqlite3_create_collation_v2(
3581
3586
  sqlite3*,
3582
3587
  const char *zName,
3583
3588
  int eTextRep,
@@ -3585,7 +3590,7 @@ int sqlite3_create_collation_v2(
3585
3590
  int(*xCompare)(void*,int,const void*,int,const void*),
3586
3591
  void(*xDestroy)(void*)
3587
3592
  );
3588
- int sqlite3_create_collation16(
3593
+ SQLITE_API int sqlite3_create_collation16(
3589
3594
  sqlite3*,
3590
3595
  const void *zName,
3591
3596
  int eTextRep,
@@ -3622,12 +3627,12 @@ int sqlite3_create_collation16(
3622
3627
  ** Requirements:
3623
3628
  ** [H16702] [H16704] [H16706]
3624
3629
  */
3625
- int sqlite3_collation_needed(
3630
+ SQLITE_API int sqlite3_collation_needed(
3626
3631
  sqlite3*,
3627
3632
  void*,
3628
3633
  void(*)(void*,sqlite3*,int eTextRep,const char*)
3629
3634
  );
3630
- int sqlite3_collation_needed16(
3635
+ SQLITE_API int sqlite3_collation_needed16(
3631
3636
  sqlite3*,
3632
3637
  void*,
3633
3638
  void(*)(void*,sqlite3*,int eTextRep,const void*)
@@ -3640,7 +3645,7 @@ int sqlite3_collation_needed16(
3640
3645
  ** The code to implement this API is not available in the public release
3641
3646
  ** of SQLite.
3642
3647
  */
3643
- int sqlite3_key(
3648
+ SQLITE_API int sqlite3_key(
3644
3649
  sqlite3 *db, /* Database to be rekeyed */
3645
3650
  const void *pKey, int nKey /* The key */
3646
3651
  );
@@ -3653,7 +3658,7 @@ int sqlite3_key(
3653
3658
  ** The code to implement this API is not available in the public release
3654
3659
  ** of SQLite.
3655
3660
  */
3656
- int sqlite3_rekey(
3661
+ SQLITE_API int sqlite3_rekey(
3657
3662
  sqlite3 *db, /* Database to be rekeyed */
3658
3663
  const void *pKey, int nKey /* The new key */
3659
3664
  );
@@ -3674,7 +3679,7 @@ int sqlite3_rekey(
3674
3679
  **
3675
3680
  ** Requirements: [H10533] [H10536]
3676
3681
  */
3677
- int sqlite3_sleep(int);
3682
+ SQLITE_API int sqlite3_sleep(int);
3678
3683
 
3679
3684
  /*
3680
3685
  ** CAPI3REF: Name Of The Folder Holding Temporary Files {H10310} <S20000>
@@ -3704,7 +3709,7 @@ int sqlite3_sleep(int);
3704
3709
  ** made NULL or made to point to memory obtained from [sqlite3_malloc]
3705
3710
  ** or else the use of the [temp_store_directory pragma] should be avoided.
3706
3711
  */
3707
- SQLITE_EXTERN char *sqlite3_temp_directory;
3712
+ SQLITE_API SQLITE_EXTERN char *sqlite3_temp_directory;
3708
3713
 
3709
3714
  /*
3710
3715
  ** CAPI3REF: Test For Auto-Commit Mode {H12930} <S60200>
@@ -3729,7 +3734,7 @@ SQLITE_EXTERN char *sqlite3_temp_directory;
3729
3734
  **
3730
3735
  ** Requirements: [H12931] [H12932] [H12933] [H12934]
3731
3736
  */
3732
- int sqlite3_get_autocommit(sqlite3*);
3737
+ SQLITE_API int sqlite3_get_autocommit(sqlite3*);
3733
3738
 
3734
3739
  /*
3735
3740
  ** CAPI3REF: Find The Database Handle Of A Prepared Statement {H13120} <S60600>
@@ -3742,7 +3747,7 @@ int sqlite3_get_autocommit(sqlite3*);
3742
3747
  **
3743
3748
  ** Requirements: [H13123]
3744
3749
  */
3745
- sqlite3 *sqlite3_db_handle(sqlite3_stmt*);
3750
+ SQLITE_API sqlite3 *sqlite3_db_handle(sqlite3_stmt*);
3746
3751
 
3747
3752
  /*
3748
3753
  ** CAPI3REF: Find the next prepared statement {H13140} <S60600>
@@ -3759,7 +3764,7 @@ sqlite3 *sqlite3_db_handle(sqlite3_stmt*);
3759
3764
  **
3760
3765
  ** Requirements: [H13143] [H13146] [H13149] [H13152]
3761
3766
  */
3762
- sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt);
3767
+ SQLITE_API sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt);
3763
3768
 
3764
3769
  /*
3765
3770
  ** CAPI3REF: Commit And Rollback Notification Callbacks {H12950} <S60400>
@@ -3810,8 +3815,8 @@ sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt);
3810
3815
  ** [H12951] [H12952] [H12953] [H12954] [H12955]
3811
3816
  ** [H12961] [H12962] [H12963] [H12964]
3812
3817
  */
3813
- void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*);
3814
- void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*);
3818
+ SQLITE_API void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*);
3819
+ SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*);
3815
3820
 
3816
3821
  /*
3817
3822
  ** CAPI3REF: Data Change Notification Callbacks {H12970} <S60400>
@@ -3860,7 +3865,7 @@ void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*);
3860
3865
  ** Requirements:
3861
3866
  ** [H12971] [H12973] [H12975] [H12977] [H12979] [H12981] [H12983] [H12986]
3862
3867
  */
3863
- void *sqlite3_update_hook(
3868
+ SQLITE_API void *sqlite3_update_hook(
3864
3869
  sqlite3*,
3865
3870
  void(*)(void *,int ,char const *,char const *,sqlite3_int64),
3866
3871
  void*
@@ -3868,7 +3873,7 @@ void *sqlite3_update_hook(
3868
3873
 
3869
3874
  /*
3870
3875
  ** CAPI3REF: Enable Or Disable Shared Pager Cache {H10330} <S30900>
3871
- ** KEYWORDS: {shared cache} {shared cache mode}
3876
+ ** KEYWORDS: {shared cache}
3872
3877
  **
3873
3878
  ** This routine enables or disables the sharing of the database cache
3874
3879
  ** and schema data structures between [database connection | connections]
@@ -3899,7 +3904,7 @@ void *sqlite3_update_hook(
3899
3904
  **
3900
3905
  ** Requirements: [H10331] [H10336] [H10337] [H10339]
3901
3906
  */
3902
- int sqlite3_enable_shared_cache(int);
3907
+ SQLITE_API int sqlite3_enable_shared_cache(int);
3903
3908
 
3904
3909
  /*
3905
3910
  ** CAPI3REF: Attempt To Free Heap Memory {H17340} <S30220>
@@ -3913,7 +3918,7 @@ int sqlite3_enable_shared_cache(int);
3913
3918
  **
3914
3919
  ** Requirements: [H17341] [H17342]
3915
3920
  */
3916
- int sqlite3_release_memory(int);
3921
+ SQLITE_API int sqlite3_release_memory(int);
3917
3922
 
3918
3923
  /*
3919
3924
  ** CAPI3REF: Impose A Limit On Heap Size {H17350} <S30220>
@@ -3948,7 +3953,7 @@ int sqlite3_release_memory(int);
3948
3953
  ** Requirements:
3949
3954
  ** [H16351] [H16352] [H16353] [H16354] [H16355] [H16358]
3950
3955
  */
3951
- void sqlite3_soft_heap_limit(int);
3956
+ SQLITE_API void sqlite3_soft_heap_limit(int);
3952
3957
 
3953
3958
  /*
3954
3959
  ** CAPI3REF: Extract Metadata About A Column Of A Table {H12850} <S60300>
@@ -4012,7 +4017,7 @@ void sqlite3_soft_heap_limit(int);
4012
4017
  ** This API is only available if the library was compiled with the
4013
4018
  ** [SQLITE_ENABLE_COLUMN_METADATA] C-preprocessor symbol defined.
4014
4019
  */
4015
- int sqlite3_table_column_metadata(
4020
+ SQLITE_API int sqlite3_table_column_metadata(
4016
4021
  sqlite3 *db, /* Connection handle */
4017
4022
  const char *zDbName, /* Database name or NULL */
4018
4023
  const char *zTableName, /* Table name */
@@ -4050,7 +4055,7 @@ int sqlite3_table_column_metadata(
4050
4055
  ** [sqlite3_enable_load_extension()] prior to calling this API,
4051
4056
  ** otherwise an error will be returned.
4052
4057
  */
4053
- int sqlite3_load_extension(
4058
+ SQLITE_API int sqlite3_load_extension(
4054
4059
  sqlite3 *db, /* Load the extension into this database connection */
4055
4060
  const char *zFile, /* Name of the shared library containing extension */
4056
4061
  const char *zProc, /* Entry point. Derived from zFile if 0 */
@@ -4073,7 +4078,7 @@ int sqlite3_load_extension(
4073
4078
  **
4074
4079
  ** {H12622} Extension loading is off by default.
4075
4080
  */
4076
- int sqlite3_enable_load_extension(sqlite3 *db, int onoff);
4081
+ SQLITE_API int sqlite3_enable_load_extension(sqlite3 *db, int onoff);
4077
4082
 
4078
4083
  /*
4079
4084
  ** CAPI3REF: Automatically Load An Extensions {H12640} <S20500>
@@ -4100,7 +4105,7 @@ int sqlite3_enable_load_extension(sqlite3 *db, int onoff);
4100
4105
  **
4101
4106
  ** {H12644} Automatic extensions apply across all threads.
4102
4107
  */
4103
- int sqlite3_auto_extension(void (*xEntryPoint)(void));
4108
+ SQLITE_API int sqlite3_auto_extension(void (*xEntryPoint)(void));
4104
4109
 
4105
4110
  /*
4106
4111
  ** CAPI3REF: Reset Automatic Extension Loading {H12660} <S20500>
@@ -4114,7 +4119,7 @@ int sqlite3_auto_extension(void (*xEntryPoint)(void));
4114
4119
  **
4115
4120
  ** {H12662} This function disables automatic extensions in all threads.
4116
4121
  */
4117
- void sqlite3_reset_auto_extension(void);
4122
+ SQLITE_API void sqlite3_reset_auto_extension(void);
4118
4123
 
4119
4124
  /*
4120
4125
  ****** EXPERIMENTAL - subject to change without notice **************
@@ -4285,7 +4290,7 @@ struct sqlite3_index_info {
4285
4290
  ** This interface has exactly the same effect as calling
4286
4291
  ** [sqlite3_create_module_v2()] with a NULL client data destructor.
4287
4292
  */
4288
- SQLITE_EXPERIMENTAL int sqlite3_create_module(
4293
+ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_create_module(
4289
4294
  sqlite3 *db, /* SQLite connection to register module with */
4290
4295
  const char *zName, /* Name of the module */
4291
4296
  const sqlite3_module *p, /* Methods for the module */
@@ -4302,7 +4307,7 @@ SQLITE_EXPERIMENTAL int sqlite3_create_module(
4302
4307
  ** invoke the destructor function (if it is not NULL) when SQLite
4303
4308
  ** no longer needs the pClientData pointer.
4304
4309
  */
4305
- SQLITE_EXPERIMENTAL int sqlite3_create_module_v2(
4310
+ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_create_module_v2(
4306
4311
  sqlite3 *db, /* SQLite connection to register module with */
4307
4312
  const char *zName, /* Name of the module */
4308
4313
  const sqlite3_module *p, /* Methods for the module */
@@ -4331,7 +4336,7 @@ SQLITE_EXPERIMENTAL int sqlite3_create_module_v2(
4331
4336
  */
4332
4337
  struct sqlite3_vtab {
4333
4338
  const sqlite3_module *pModule; /* The module for this virtual table */
4334
- int nRef; /* Used internally */
4339
+ int nRef; /* NO LONGER USED */
4335
4340
  char *zErrMsg; /* Error message from sqlite3_mprintf() */
4336
4341
  /* Virtual table implementations will typically add additional fields */
4337
4342
  };
@@ -4368,7 +4373,7 @@ struct sqlite3_vtab_cursor {
4368
4373
  ** to declare the format (the names and datatypes of the columns) of
4369
4374
  ** the virtual tables they implement.
4370
4375
  */
4371
- SQLITE_EXPERIMENTAL int sqlite3_declare_vtab(sqlite3*, const char *zSQL);
4376
+ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_declare_vtab(sqlite3*, const char *zSQL);
4372
4377
 
4373
4378
  /*
4374
4379
  ** CAPI3REF: Overload A Function For A Virtual Table {H18300} <S20400>
@@ -4387,7 +4392,7 @@ SQLITE_EXPERIMENTAL int sqlite3_declare_vtab(sqlite3*, const char *zSQL);
4387
4392
  ** purpose is to be a placeholder function that can be overloaded
4388
4393
  ** by a [virtual table].
4389
4394
  */
4390
- SQLITE_EXPERIMENTAL int sqlite3_overload_function(sqlite3*, const char *zFuncName, int nArg);
4395
+ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_overload_function(sqlite3*, const char *zFuncName, int nArg);
4391
4396
 
4392
4397
  /*
4393
4398
  ** The interface to the virtual-table mechanism defined above (back up
@@ -4471,7 +4476,7 @@ typedef struct sqlite3_blob sqlite3_blob;
4471
4476
  ** Requirements:
4472
4477
  ** [H17813] [H17814] [H17816] [H17819] [H17821] [H17824]
4473
4478
  */
4474
- int sqlite3_blob_open(
4479
+ SQLITE_API int sqlite3_blob_open(
4475
4480
  sqlite3*,
4476
4481
  const char *zDb,
4477
4482
  const char *zTable,
@@ -4506,7 +4511,7 @@ int sqlite3_blob_open(
4506
4511
  ** Requirements:
4507
4512
  ** [H17833] [H17836] [H17839]
4508
4513
  */
4509
- int sqlite3_blob_close(sqlite3_blob *);
4514
+ SQLITE_API int sqlite3_blob_close(sqlite3_blob *);
4510
4515
 
4511
4516
  /*
4512
4517
  ** CAPI3REF: Return The Size Of An Open BLOB {H17840} <S30230>
@@ -4524,7 +4529,7 @@ int sqlite3_blob_close(sqlite3_blob *);
4524
4529
  ** Requirements:
4525
4530
  ** [H17843]
4526
4531
  */
4527
- int sqlite3_blob_bytes(sqlite3_blob *);
4532
+ SQLITE_API int sqlite3_blob_bytes(sqlite3_blob *);
4528
4533
 
4529
4534
  /*
4530
4535
  ** CAPI3REF: Read Data From A BLOB Incrementally {H17850} <S30230>
@@ -4555,7 +4560,7 @@ int sqlite3_blob_bytes(sqlite3_blob *);
4555
4560
  ** Requirements:
4556
4561
  ** [H17853] [H17856] [H17859] [H17862] [H17863] [H17865] [H17868]
4557
4562
  */
4558
- int sqlite3_blob_read(sqlite3_blob *, void *Z, int N, int iOffset);
4563
+ SQLITE_API int sqlite3_blob_read(sqlite3_blob *, void *Z, int N, int iOffset);
4559
4564
 
4560
4565
  /*
4561
4566
  ** CAPI3REF: Write Data Into A BLOB Incrementally {H17870} <S30230>
@@ -4597,7 +4602,7 @@ int sqlite3_blob_read(sqlite3_blob *, void *Z, int N, int iOffset);
4597
4602
  ** [H17873] [H17874] [H17875] [H17876] [H17877] [H17879] [H17882] [H17885]
4598
4603
  ** [H17888]
4599
4604
  */
4600
- int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset);
4605
+ SQLITE_API int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset);
4601
4606
 
4602
4607
  /*
4603
4608
  ** CAPI3REF: Virtual File System Objects {H11200} <S20100>
@@ -4631,9 +4636,9 @@ int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset);
4631
4636
  ** Requirements:
4632
4637
  ** [H11203] [H11206] [H11209] [H11212] [H11215] [H11218]
4633
4638
  */
4634
- sqlite3_vfs *sqlite3_vfs_find(const char *zVfsName);
4635
- int sqlite3_vfs_register(sqlite3_vfs*, int makeDflt);
4636
- int sqlite3_vfs_unregister(sqlite3_vfs*);
4639
+ SQLITE_API sqlite3_vfs *sqlite3_vfs_find(const char *zVfsName);
4640
+ SQLITE_API int sqlite3_vfs_register(sqlite3_vfs*, int makeDflt);
4641
+ SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*);
4637
4642
 
4638
4643
  /*
4639
4644
  ** CAPI3REF: Mutexes {H17000} <S20000>
@@ -4747,11 +4752,11 @@ int sqlite3_vfs_unregister(sqlite3_vfs*);
4747
4752
  **
4748
4753
  ** See also: [sqlite3_mutex_held()] and [sqlite3_mutex_notheld()].
4749
4754
  */
4750
- sqlite3_mutex *sqlite3_mutex_alloc(int);
4751
- void sqlite3_mutex_free(sqlite3_mutex*);
4752
- void sqlite3_mutex_enter(sqlite3_mutex*);
4753
- int sqlite3_mutex_try(sqlite3_mutex*);
4754
- void sqlite3_mutex_leave(sqlite3_mutex*);
4755
+ SQLITE_API sqlite3_mutex *sqlite3_mutex_alloc(int);
4756
+ SQLITE_API void sqlite3_mutex_free(sqlite3_mutex*);
4757
+ SQLITE_API void sqlite3_mutex_enter(sqlite3_mutex*);
4758
+ SQLITE_API int sqlite3_mutex_try(sqlite3_mutex*);
4759
+ SQLITE_API void sqlite3_mutex_leave(sqlite3_mutex*);
4755
4760
 
4756
4761
  /*
4757
4762
  ** CAPI3REF: Mutex Methods Object {H17120} <S20130>
@@ -4846,8 +4851,8 @@ struct sqlite3_mutex_methods {
4846
4851
  ** the appropriate thing to do. {H17086} The sqlite3_mutex_notheld()
4847
4852
  ** interface should also return 1 when given a NULL pointer.
4848
4853
  */
4849
- int sqlite3_mutex_held(sqlite3_mutex*);
4850
- int sqlite3_mutex_notheld(sqlite3_mutex*);
4854
+ SQLITE_API int sqlite3_mutex_held(sqlite3_mutex*);
4855
+ SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex*);
4851
4856
 
4852
4857
  /*
4853
4858
  ** CAPI3REF: Mutex Types {H17001} <H17000>
@@ -4878,7 +4883,7 @@ int sqlite3_mutex_notheld(sqlite3_mutex*);
4878
4883
  ** If the [threading mode] is Single-thread or Multi-thread then this
4879
4884
  ** routine returns a NULL pointer.
4880
4885
  */
4881
- sqlite3_mutex *sqlite3_db_mutex(sqlite3*);
4886
+ SQLITE_API sqlite3_mutex *sqlite3_db_mutex(sqlite3*);
4882
4887
 
4883
4888
  /*
4884
4889
  ** CAPI3REF: Low-Level Control Of Database Files {H11300} <S30800>
@@ -4904,7 +4909,7 @@ sqlite3_mutex *sqlite3_db_mutex(sqlite3*);
4904
4909
  **
4905
4910
  ** See also: [SQLITE_FCNTL_LOCKSTATE]
4906
4911
  */
4907
- int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*);
4912
+ SQLITE_API int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*);
4908
4913
 
4909
4914
  /*
4910
4915
  ** CAPI3REF: Testing Interface {H11400} <S30800>
@@ -4923,7 +4928,7 @@ int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*);
4923
4928
  ** Unlike most of the SQLite API, this function is not guaranteed to
4924
4929
  ** operate consistently from one release to the next.
4925
4930
  */
4926
- int sqlite3_test_control(int op, ...);
4931
+ SQLITE_API int sqlite3_test_control(int op, ...);
4927
4932
 
4928
4933
  /*
4929
4934
  ** CAPI3REF: Testing Interface Operation Codes {H11410} <H11400>
@@ -4945,6 +4950,7 @@ int sqlite3_test_control(int op, ...);
4945
4950
  #define SQLITE_TESTCTRL_PENDING_BYTE 11
4946
4951
  #define SQLITE_TESTCTRL_ASSERT 12
4947
4952
  #define SQLITE_TESTCTRL_ALWAYS 13
4953
+ #define SQLITE_TESTCTRL_RESERVE 14
4948
4954
 
4949
4955
  /*
4950
4956
  ** CAPI3REF: SQLite Runtime Status {H17200} <S60200>
@@ -4976,7 +4982,7 @@ int sqlite3_test_control(int op, ...);
4976
4982
  **
4977
4983
  ** See also: [sqlite3_db_status()]
4978
4984
  */
4979
- SQLITE_EXPERIMENTAL int sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetFlag);
4985
+ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetFlag);
4980
4986
 
4981
4987
 
4982
4988
  /*
@@ -5084,7 +5090,7 @@ SQLITE_EXPERIMENTAL int sqlite3_status(int op, int *pCurrent, int *pHighwater, i
5084
5090
  **
5085
5091
  ** See also: [sqlite3_status()] and [sqlite3_stmt_status()].
5086
5092
  */
5087
- SQLITE_EXPERIMENTAL int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int resetFlg);
5093
+ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int resetFlg);
5088
5094
 
5089
5095
  /*
5090
5096
  ** CAPI3REF: Status Parameters for database connections {H17520} <H17500>
@@ -5125,7 +5131,7 @@ SQLITE_EXPERIMENTAL int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiw
5125
5131
  **
5126
5132
  ** See also: [sqlite3_status()] and [sqlite3_db_status()].
5127
5133
  */
5128
- SQLITE_EXPERIMENTAL int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg);
5134
+ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg);
5129
5135
 
5130
5136
  /*
5131
5137
  ** CAPI3REF: Status Parameters for prepared statements {H17570} <H17550>
@@ -5480,16 +5486,16 @@ typedef struct sqlite3_backup sqlite3_backup;
5480
5486
  ** same time as another thread is invoking sqlite3_backup_step() it is
5481
5487
  ** possible that they return invalid values.
5482
5488
  */
5483
- sqlite3_backup *sqlite3_backup_init(
5489
+ SQLITE_API sqlite3_backup *sqlite3_backup_init(
5484
5490
  sqlite3 *pDest, /* Destination database handle */
5485
5491
  const char *zDestName, /* Destination database name */
5486
5492
  sqlite3 *pSource, /* Source database handle */
5487
5493
  const char *zSourceName /* Source database name */
5488
5494
  );
5489
- int sqlite3_backup_step(sqlite3_backup *p, int nPage);
5490
- int sqlite3_backup_finish(sqlite3_backup *p);
5491
- int sqlite3_backup_remaining(sqlite3_backup *p);
5492
- int sqlite3_backup_pagecount(sqlite3_backup *p);
5495
+ SQLITE_API int sqlite3_backup_step(sqlite3_backup *p, int nPage);
5496
+ SQLITE_API int sqlite3_backup_finish(sqlite3_backup *p);
5497
+ SQLITE_API int sqlite3_backup_remaining(sqlite3_backup *p);
5498
+ SQLITE_API int sqlite3_backup_pagecount(sqlite3_backup *p);
5493
5499
 
5494
5500
  /*
5495
5501
  ** CAPI3REF: Unlock Notification
@@ -5606,12 +5612,24 @@ int sqlite3_backup_pagecount(sqlite3_backup *p);
5606
5612
  ** the special "DROP TABLE/INDEX" case, the extended error code is just
5607
5613
  ** SQLITE_LOCKED.
5608
5614
  */
5609
- int sqlite3_unlock_notify(
5615
+ SQLITE_API int sqlite3_unlock_notify(
5610
5616
  sqlite3 *pBlocked, /* Waiting connection */
5611
5617
  void (*xNotify)(void **apArg, int nArg), /* Callback function to invoke */
5612
5618
  void *pNotifyArg /* Argument to pass to xNotify */
5613
5619
  );
5614
5620
 
5621
+
5622
+ /*
5623
+ ** CAPI3REF: String Comparison
5624
+ ** EXPERIMENTAL
5625
+ **
5626
+ ** The [sqlite3_strnicmp()] API allows applications and extensions to
5627
+ ** compare the contents of two buffers containing UTF-8 strings in a
5628
+ ** case-indendent fashion, using the same definition of case independence
5629
+ ** that SQLite uses internally when comparing identifiers.
5630
+ */
5631
+ SQLITE_API int sqlite3_strnicmp(const char *, const char *, int);
5632
+
5615
5633
  /*
5616
5634
  ** Undo the hack that converts floating point types to integer for
5617
5635
  ** builds on processors without floating point support.
@@ -5624,3 +5642,4 @@ int sqlite3_unlock_notify(
5624
5642
  } /* End of the 'extern "C"' block */
5625
5643
  #endif
5626
5644
  #endif
5645
+