/ Check-in [d6dd2ad3]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Remove the "experimental" marking from the sqlite3_preupdate interfaces. But be sure all the interface definitions are within documentation.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:d6dd2ad35ed17e980ed564688499c802e5850386
User & Date: drh 2016-11-09 00:57:27
Context
2016-11-09
01:07
Add a DISTINCT query to speedtest1.c. Also change INSERT OR REPLACE into just REPLACE. check-in: 754ee844 user: drh tags: trunk
00:57
Remove the "experimental" marking from the sqlite3_preupdate interfaces. But be sure all the interface definitions are within documentation. check-in: d6dd2ad3 user: drh tags: trunk
2016-11-08
19:22
Avoid superfluous cursor seeks in "INSERT OR REPLACE" statements. check-in: bec5b6d4 user: dan tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/sqlite.h.in.

   123    123   */
   124    124   #define SQLITE_VERSION        "--VERS--"
   125    125   #define SQLITE_VERSION_NUMBER --VERSION-NUMBER--
   126    126   #define SQLITE_SOURCE_ID      "--SOURCE-ID--"
   127    127   
   128    128   /*
   129    129   ** CAPI3REF: Run-Time Library Version Numbers
   130         -** KEYWORDS: sqlite3_version, sqlite3_sourceid
          130  +** KEYWORDS: sqlite3_version sqlite3_sourceid
   131    131   **
   132    132   ** These interfaces provide the same information as the [SQLITE_VERSION],
   133    133   ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
   134    134   ** but are associated with the library instead of the header file.  ^(Cautious
   135    135   ** programmers might include assert() statements in their application to
   136    136   ** verify that values returned by these interfaces match the macros in
   137    137   ** the header, and thus ensure that the application is
................................................................................
  8221   8221   ** callback was invoked as a result of a direct insert, update, or delete
  8222   8222   ** operation; or 1 for inserts, updates, or deletes invoked by top-level 
  8223   8223   ** triggers; or 2 for changes resulting from triggers called by top-level
  8224   8224   ** triggers; and so forth.
  8225   8225   **
  8226   8226   ** See also:  [sqlite3_update_hook()]
  8227   8227   */
  8228         -SQLITE_EXPERIMENTAL void *sqlite3_preupdate_hook(
         8228  +#if defined(SQLITE_ENABLE_PREUPDATE_HOOK)
         8229  +void *sqlite3_preupdate_hook(
  8229   8230     sqlite3 *db,
  8230   8231     void(*xPreUpdate)(
  8231   8232       void *pCtx,                   /* Copy of third arg to preupdate_hook() */
  8232   8233       sqlite3 *db,                  /* Database handle */
  8233   8234       int op,                       /* SQLITE_UPDATE, DELETE or INSERT */
  8234   8235       char const *zDb,              /* Database name */
  8235   8236       char const *zName,            /* Table name */
  8236   8237       sqlite3_int64 iKey1,          /* Rowid of row about to be deleted/updated */
  8237   8238       sqlite3_int64 iKey2           /* New rowid value (for a rowid UPDATE) */
  8238   8239     ),
  8239   8240     void*
  8240   8241   );
  8241         -SQLITE_EXPERIMENTAL int sqlite3_preupdate_old(sqlite3 *, int, sqlite3_value **);
  8242         -SQLITE_EXPERIMENTAL int sqlite3_preupdate_count(sqlite3 *);
  8243         -SQLITE_EXPERIMENTAL int sqlite3_preupdate_depth(sqlite3 *);
  8244         -SQLITE_EXPERIMENTAL int sqlite3_preupdate_new(sqlite3 *, int, sqlite3_value **);
         8242  +int sqlite3_preupdate_old(sqlite3 *, int, sqlite3_value **);
         8243  +int sqlite3_preupdate_count(sqlite3 *);
         8244  +int sqlite3_preupdate_depth(sqlite3 *);
         8245  +int sqlite3_preupdate_new(sqlite3 *, int, sqlite3_value **);
         8246  +#endif
  8245   8247   
  8246   8248   /*
  8247   8249   ** CAPI3REF: Low-level system error code
  8248   8250   **
  8249   8251   ** ^Attempt to return the underlying operating system error code or error
  8250   8252   ** number that caused the most recent I/O error or failure to open a file.
  8251   8253   ** The return value is OS-dependent.  For example, on unix systems, after