/ Check-in [2bbb9595]
Login

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

Overview
Comment:Merge the version 3.9.1 updates.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | sessions
Files: files | file ages | folders
SHA1:2bbb9595ccc4fdd854bf16a1efcddbc42a7ff14e
User & Date: drh 2015-10-16 20:20:08
Context
2015-10-30
16:50
Merge all the latest enhancements from trunk. check-in: 395a153f user: drh tags: sessions
2015-10-16
20:20
Merge the version 3.9.1 updates. check-in: 2bbb9595 user: drh tags: sessions
17:31
Version 3.9.1 check-in: 767c1727 user: drh tags: release, branch-3.9, version-3.9.1
2015-10-13
20:42
Merge in the final few changes before the 3.9.0 release. check-in: e1afdbb5 user: drh tags: sessions
Changes
Hide Diffs Side-by-Side Diffs Show Whitespace Changes Patch

Changes to VERSION.

     1         -3.9.0
            1  +3.9.1

Changes to configure.

     1      1   #! /bin/sh
     2      2   # Guess values for system-dependent variables and create Makefiles.
     3         -# Generated by GNU Autoconf 2.69 for sqlite 3.9.0.
            3  +# Generated by GNU Autoconf 2.69 for sqlite 3.9.1.
     4      4   #
     5      5   #
     6      6   # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
     7      7   #
     8      8   #
     9      9   # This configure script is free software; the Free Software Foundation
    10     10   # gives unlimited permission to copy, distribute and modify it.
................................................................................
   722    722   subdirs=
   723    723   MFLAGS=
   724    724   MAKEFLAGS=
   725    725   
   726    726   # Identity of this package.
   727    727   PACKAGE_NAME='sqlite'
   728    728   PACKAGE_TARNAME='sqlite'
   729         -PACKAGE_VERSION='3.9.0'
   730         -PACKAGE_STRING='sqlite 3.9.0'
          729  +PACKAGE_VERSION='3.9.1'
          730  +PACKAGE_STRING='sqlite 3.9.1'
   731    731   PACKAGE_BUGREPORT=''
   732    732   PACKAGE_URL=''
   733    733   
   734    734   # Factoring default headers for most tests.
   735    735   ac_includes_default="\
   736    736   #include <stdio.h>
   737    737   #ifdef HAVE_SYS_TYPES_H
................................................................................
  1455   1455   #
  1456   1456   # Report the --help message.
  1457   1457   #
  1458   1458   if test "$ac_init_help" = "long"; then
  1459   1459     # Omit some internal or obsolete options to make the list less imposing.
  1460   1460     # This message is too long to be a string in the A/UX 3.1 sh.
  1461   1461     cat <<_ACEOF
  1462         -\`configure' configures sqlite 3.9.0 to adapt to many kinds of systems.
         1462  +\`configure' configures sqlite 3.9.1 to adapt to many kinds of systems.
  1463   1463   
  1464   1464   Usage: $0 [OPTION]... [VAR=VALUE]...
  1465   1465   
  1466   1466   To assign environment variables (e.g., CC, CFLAGS...), specify them as
  1467   1467   VAR=VALUE.  See below for descriptions of some of the useful variables.
  1468   1468   
  1469   1469   Defaults for the options are specified in brackets.
................................................................................
  1520   1520     --build=BUILD     configure for building on BUILD [guessed]
  1521   1521     --host=HOST       cross-compile to build programs to run on HOST [BUILD]
  1522   1522   _ACEOF
  1523   1523   fi
  1524   1524   
  1525   1525   if test -n "$ac_init_help"; then
  1526   1526     case $ac_init_help in
  1527         -     short | recursive ) echo "Configuration of sqlite 3.9.0:";;
         1527  +     short | recursive ) echo "Configuration of sqlite 3.9.1:";;
  1528   1528      esac
  1529   1529     cat <<\_ACEOF
  1530   1530   
  1531   1531   Optional Features:
  1532   1532     --disable-option-checking  ignore unrecognized --enable/--with options
  1533   1533     --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  1534   1534     --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
................................................................................
  1640   1640       cd "$ac_pwd" || { ac_status=$?; break; }
  1641   1641     done
  1642   1642   fi
  1643   1643   
  1644   1644   test -n "$ac_init_help" && exit $ac_status
  1645   1645   if $ac_init_version; then
  1646   1646     cat <<\_ACEOF
  1647         -sqlite configure 3.9.0
         1647  +sqlite configure 3.9.1
  1648   1648   generated by GNU Autoconf 2.69
  1649   1649   
  1650   1650   Copyright (C) 2012 Free Software Foundation, Inc.
  1651   1651   This configure script is free software; the Free Software Foundation
  1652   1652   gives unlimited permission to copy, distribute and modify it.
  1653   1653   _ACEOF
  1654   1654     exit
................................................................................
  2059   2059     eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  2060   2060   
  2061   2061   } # ac_fn_c_check_header_mongrel
  2062   2062   cat >config.log <<_ACEOF
  2063   2063   This file contains any messages produced by compilers while
  2064   2064   running configure, to aid debugging if configure makes a mistake.
  2065   2065   
  2066         -It was created by sqlite $as_me 3.9.0, which was
         2066  +It was created by sqlite $as_me 3.9.1, which was
  2067   2067   generated by GNU Autoconf 2.69.  Invocation command line was
  2068   2068   
  2069   2069     $ $0 $@
  2070   2070   
  2071   2071   _ACEOF
  2072   2072   exec 5>>config.log
  2073   2073   {
................................................................................
 11985  11985   test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
 11986  11986   
 11987  11987   cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 11988  11988   # Save the log message, to keep $0 and so on meaningful, and to
 11989  11989   # report actual input values of CONFIG_FILES etc. instead of their
 11990  11990   # values after options handling.
 11991  11991   ac_log="
 11992         -This file was extended by sqlite $as_me 3.9.0, which was
        11992  +This file was extended by sqlite $as_me 3.9.1, which was
 11993  11993   generated by GNU Autoconf 2.69.  Invocation command line was
 11994  11994   
 11995  11995     CONFIG_FILES    = $CONFIG_FILES
 11996  11996     CONFIG_HEADERS  = $CONFIG_HEADERS
 11997  11997     CONFIG_LINKS    = $CONFIG_LINKS
 11998  11998     CONFIG_COMMANDS = $CONFIG_COMMANDS
 11999  11999     $ $0 $@
................................................................................
 12051  12051   
 12052  12052   Report bugs to the package provider."
 12053  12053   
 12054  12054   _ACEOF
 12055  12055   cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 12056  12056   ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 12057  12057   ac_cs_version="\\
 12058         -sqlite config.status 3.9.0
        12058  +sqlite config.status 3.9.1
 12059  12059   configured by $0, generated by GNU Autoconf 2.69,
 12060  12060     with options \\"\$ac_cs_config\\"
 12061  12061   
 12062  12062   Copyright (C) 2012 Free Software Foundation, Inc.
 12063  12063   This config.status script is free software; the Free Software Foundation
 12064  12064   gives unlimited permission to copy, distribute and modify it."
 12065  12065   

Changes to ext/fts5/fts5.h.

    18     18   */
    19     19   
    20     20   
    21     21   #ifndef _FTS5_H
    22     22   #define _FTS5_H
    23     23   
    24     24   #include "sqlite3.h"
           25  +
           26  +#ifdef __cplusplus
           27  +extern "C" {
           28  +#endif
    25     29   
    26     30   /*************************************************************************
    27     31   ** CUSTOM AUXILIARY FUNCTIONS
    28     32   **
    29     33   ** Virtual table implementations may overload SQL functions by implementing
    30     34   ** the sqlite3_module.xFindFunction() method.
    31     35   */
................................................................................
   503    507       void (*xDestroy)(void*)
   504    508     );
   505    509   };
   506    510   
   507    511   /*
   508    512   ** END OF REGISTRATION API
   509    513   *************************************************************************/
          514  +
          515  +#ifdef __cplusplus
          516  +}  /* end of the 'extern "C"' block */
          517  +#endif
   510    518   
   511    519   #endif /* _FTS5_H */
   512    520   

Changes to ext/misc/json1.c.

    24     24   #if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_JSON1)
    25     25   #if !defined(_SQLITEINT_H_)
    26     26   #include "sqlite3ext.h"
    27     27   #endif
    28     28   SQLITE_EXTENSION_INIT1
    29     29   #include <assert.h>
    30     30   #include <string.h>
    31         -#include <ctype.h>  /* amalgamator: keep */
    32     31   #include <stdlib.h>
    33     32   #include <stdarg.h>
    34     33   
    35     34   #define UNUSED_PARAM(X)  (void)(X)
    36     35   
    37     36   #ifndef LARGEST_INT64
    38     37   # define LARGEST_INT64  (0xffffffff|(((sqlite3_int64)0x7fffffff)<<32))
................................................................................
    39     38   # define SMALLEST_INT64 (((sqlite3_int64)-1) - LARGEST_INT64)
    40     39   #endif
    41     40   
    42     41   /*
    43     42   ** Versions of isspace(), isalnum() and isdigit() to which it is safe
    44     43   ** to pass signed char values.
    45     44   */
           45  +#ifdef sqlite3Isdigit
           46  +   /* Use the SQLite core versions if this routine is part of the
           47  +   ** SQLite amalgamation */
           48  +#  define safe_isdigit(x) sqlite3Isdigit(x)
           49  +#  define safe_isalnum(x) sqlite3Isalnum(x)
           50  +#else
           51  +   /* Use the standard library for separate compilation */
           52  +#include <ctype.h>  /* amalgamator: keep */
    46     53   #define safe_isdigit(x) isdigit((unsigned char)(x))
    47     54   #define safe_isalnum(x) isalnum((unsigned char)(x))
           55  +#endif
    48     56   
    49     57   /*
    50     58   ** Growing our own isspace() routine this way is twice as fast as
    51     59   ** the library isspace() function, resulting in a 7% overall performance
    52     60   ** increase for the parser.  (Ubuntu14.10 gcc 4.8.4 x64 with -Os).
    53     61   */
    54     62   static const char jsonIsSpace[] = {
    55         -  0, 0, 0, 0, 0, 0, 0, 0,     0, 1, 1, 0, 1, 1, 0, 0,
           63  +  0, 0, 0, 0, 0, 0, 0, 0,     0, 1, 1, 0, 0, 1, 0, 0,
    56     64     0, 0, 0, 0, 0, 0, 0, 0,     0, 0, 0, 0, 0, 0, 0, 0,
    57     65     1, 0, 0, 0, 0, 0, 0, 0,     0, 0, 0, 0, 0, 0, 0, 0,
    58     66     0, 0, 0, 0, 0, 0, 0, 0,     0, 0, 0, 0, 0, 0, 0, 0,
    59     67     0, 0, 0, 0, 0, 0, 0, 0,     0, 0, 0, 0, 0, 0, 0, 0,
    60     68     0, 0, 0, 0, 0, 0, 0, 0,     0, 0, 0, 0, 0, 0, 0, 0,
    61     69     0, 0, 0, 0, 0, 0, 0, 0,     0, 0, 0, 0, 0, 0, 0, 0,
    62     70     0, 0, 0, 0, 0, 0, 0, 0,     0, 0, 0, 0, 0, 0, 0, 0,
................................................................................
   510    518         if( pNode->u.zJContent[0]=='-' ){ i = -i; }
   511    519         sqlite3_result_int64(pCtx, i);
   512    520         int_done:
   513    521         break;
   514    522         int_as_real: /* fall through to real */;
   515    523       }
   516    524       case JSON_REAL: {
   517         -      double r = strtod(pNode->u.zJContent, 0);
          525  +      double r;
          526  +#ifdef SQLITE_AMALGAMATION
          527  +      const char *z = pNode->u.zJContent;
          528  +      sqlite3AtoF(z, &r, sqlite3Strlen30(z), SQLITE_UTF8);
          529  +#else
          530  +      r = strtod(pNode->u.zJContent, 0);
          531  +#endif
   518    532         sqlite3_result_double(pCtx, r);
   519    533         break;
   520    534       }
   521    535       case JSON_STRING: {
   522    536   #if 0 /* Never happens because JNODE_RAW is only set by json_set(),
   523    537         ** json_insert() and json_replace() and those routines do not
   524    538         ** call jsonReturn() */
................................................................................
  2018   2032       rc = sqlite3_create_module(db, aMod[i].zName, aMod[i].pModule, 0);
  2019   2033     }
  2020   2034   #endif
  2021   2035     return rc;
  2022   2036   }
  2023   2037   
  2024   2038   
         2039  +#ifndef SQLITE_CORE
  2025   2040   #ifdef _WIN32
  2026   2041   __declspec(dllexport)
  2027   2042   #endif
  2028   2043   int sqlite3_json_init(
  2029   2044     sqlite3 *db, 
  2030   2045     char **pzErrMsg, 
  2031   2046     const sqlite3_api_routines *pApi
  2032   2047   ){
  2033   2048     SQLITE_EXTENSION_INIT2(pApi);
  2034   2049     (void)pzErrMsg;  /* Unused parameter */
  2035   2050     return sqlite3Json1Init(db);
  2036   2051   }
         2052  +#endif
  2037   2053   #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_JSON1) */

Changes to ext/rbu/sqlite3rbu.h.

   264    264   ** the suspended RBU update is also an error (SQLITE_BUSY).
   265    265   */
   266    266   
   267    267   #ifndef _SQLITE3RBU_H
   268    268   #define _SQLITE3RBU_H
   269    269   
   270    270   #include "sqlite3.h"              /* Required for error code definitions */
          271  +
          272  +#ifdef __cplusplus
          273  +extern "C" {
          274  +#endif
   271    275   
   272    276   typedef struct sqlite3rbu sqlite3rbu;
   273    277   
   274    278   /*
   275    279   ** Open an RBU handle.
   276    280   **
   277    281   ** Argument zTarget is the path to the target database. Argument zRbu is
................................................................................
   442    446   ** sqlite3rbu_create_vfs().
   443    447   **
   444    448   ** VFS objects are not reference counted. If a VFS object is destroyed
   445    449   ** before all database handles that use it have been closed, the results
   446    450   ** are undefined.
   447    451   */
   448    452   void sqlite3rbu_destroy_vfs(const char *zName);
          453  +
          454  +#ifdef __cplusplus
          455  +}  /* end of the 'extern "C"' block */
          456  +#endif
   449    457   
   450    458   #endif /* _SQLITE3RBU_H */

Changes to test/fuzzcheck.c.

  1122   1122           openFlags = SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE;
  1123   1123           if( nativeFlag && pDb->sz==0 ){
  1124   1124             openFlags |= SQLITE_OPEN_MEMORY;
  1125   1125             zVfs = 0;
  1126   1126           }
  1127   1127           rc = sqlite3_open_v2("main.db", &db, openFlags, zVfs);
  1128   1128           if( rc ) fatalError("cannot open inmem database");
  1129         -#ifdef SQLITE_ENABLE_JSON1
  1130         -        {
  1131         -          extern int sqlite3_json_init(sqlite3*);
  1132         -          sqlite3_json_init(db);
  1133         -        }
  1134         -#endif
  1135   1129           if( cellSzCkFlag ) runSql(db, "PRAGMA cell_size_check=ON", runFlags);
  1136   1130           setAlarm(iTimeout);
  1137   1131   #ifndef SQLITE_OMIT_PROGRESS_CALLBACK
  1138   1132           if( sqlFuzz || vdbeLimitFlag ){
  1139   1133             sqlite3_progress_handler(db, 100000, progressHandler, &vdbeLimitFlag);
  1140   1134           }
  1141   1135   #endif

Changes to tool/fuzzershell.c.

   722    722           if( pLook ){
   723    723             rc = sqlite3_db_config(db, SQLITE_DBCONFIG_LOOKASIDE,pLook,szLook,nLook);
   724    724             if( rc!=SQLITE_OK ) abendError("lookaside configuration filed: %d", rc);
   725    725           }
   726    726       #ifndef SQLITE_OMIT_TRACE
   727    727           sqlite3_trace(db, verboseFlag ? traceCallback : traceNoop, 0);
   728    728       #endif
   729         -#ifdef SQLITE_ENABLE_JSON1
   730         -        {
   731         -          extern int sqlite3_json_init(sqlite3*);
   732         -          sqlite3_json_init(db);
   733         -        }
   734         -#endif
   735    729           sqlite3_create_function(db, "eval", 1, SQLITE_UTF8, 0, sqlEvalFunc, 0, 0);
   736    730           sqlite3_create_function(db, "eval", 2, SQLITE_UTF8, 0, sqlEvalFunc, 0, 0);
   737    731           sqlite3_limit(db, SQLITE_LIMIT_LENGTH, 1000000);
   738    732           if( zEncoding ) sqlexec(db, "PRAGMA encoding=%s", zEncoding);
   739    733           if( pageSize ) sqlexec(db, "PRAGMA pagesize=%d", pageSize);
   740    734           if( doAutovac ) sqlexec(db, "PRAGMA auto_vacuum=FULL");
   741    735           iStart = timeOfDay();

Changes to tool/mksqlite3h.tcl.

    98     98     while {![eof $in]} {
    99     99     
   100    100       set line [gets $in]
   101    101   
   102    102       # File sqlite3rtree.h contains a line "#include <sqlite3.h>". Omit this
   103    103       # line when copying sqlite3rtree.h into sqlite3.h.
   104    104       #
   105         -    if {[string match {*#include*<sqlite3.h>*} $line]} continue
          105  +    if {[string match {*#include*[<"]sqlite3.h[>"]*} $line]} continue
   106    106     
   107    107       regsub -- --VERS--           $line $zVersion line
   108    108       regsub -- --VERSION-NUMBER-- $line $nVersion line
   109    109       regsub -- --SOURCE-ID--      $line "$zDate $zUuid" line
   110    110   
   111    111       if {[regexp $varpattern $line] && ![regexp {^ *typedef} $line]} {
   112    112         set line "SQLITE_API $line"