Home | History | Annotate | Download | only in dist
      1 diff -r -u -d orig/shell.c ./shell.c
      2 --- orig/shell.c	2017-06-17 03:16:30.000000000 -0700
      3 +++ ./shell.c	2017-06-19 09:45:58.799840492 -0700
      4 @@ -52,6 +52,12 @@
      5  #endif
      6  #include <ctype.h>
      7  #include <stdarg.h>
      8 +// Begin Android Add
      9 +#ifndef NO_ANDROID_FUNCS
     10 +#include "IcuUtils.h"
     11 +#include <sqlite3_android.h>
     12 +#endif
     13 +// End Android Add
     14  
     15  #if !defined(_WIN32) && !defined(WIN32)
     16  # include <signal.h>
     17 @@ -3387,6 +3393,22 @@
     18                              sha3QueryFunc, 0, 0);
     19      sqlite3_create_function(p->db, "sha3_query", 2, SQLITE_UTF8, 0,
     20                              sha3QueryFunc, 0, 0);
     21 +
     22 +    // Begin Android Add
     23 +    #ifndef NO_ANDROID_FUNCS
     24 +        InitializeIcuOrDie();
     25 +        int err = register_localized_collators(p->db, "en_US", 0);
     26 +        if (err != SQLITE_OK) {
     27 +          fprintf(stderr, "register_localized_collators() failed\n");
     28 +          exit(1);
     29 +        }
     30 +        err = register_android_functions(p->db, 0);
     31 +        if (err != SQLITE_OK) {
     32 +          fprintf(stderr, "register_android_functions() failed\n");
     33 +          exit(1);
     34 +        }
     35 +    #endif
     36 +    // End Android Add
     37    }
     38  }
     39  
     40 diff -r -u -d orig/sqlite3.c ./sqlite3.c
     41 --- orig/sqlite3.c	2017-06-17 03:16:30.000000000 -0700
     42 +++ ./sqlite3.c	2017-06-19 09:45:58.859839260 -0700
     43 @@ -33497,7 +33497,7 @@
     44    SimulateIOError( rc=1 );
     45    if( rc!=0 ){
     46      storeLastErrno((unixFile*)id, errno);
     47 -    return SQLITE_IOERR_FSTAT;
     48 +    return unixLogError(SQLITE_IOERR_FSTAT, "fstat", ((unixFile*)id)->zPath);
     49    }
     50    *pSize = buf.st_size;
     51  
     52 @@ -33533,7 +33533,7 @@
     53      struct stat buf;              /* Used to hold return values of fstat() */
     54     
     55      if( osFstat(pFile->h, &buf) ){
     56 -      return SQLITE_IOERR_FSTAT;
     57 +      return unixLogError(SQLITE_IOERR_FSTAT, "fstat", pFile->zPath);
     58      }
     59  
     60      nSize = ((nByte+pFile->szChunk-1) / pFile->szChunk) * pFile->szChunk;
     61 @@ -34107,7 +34107,7 @@
     62      ** with the same permissions.
     63      */
     64      if( osFstat(pDbFd->h, &sStat) ){
     65 -      rc = SQLITE_IOERR_FSTAT;
     66 +      rc = unixLogError(SQLITE_IOERR_FSTAT, "fstat", pDbFd->zPath);
     67        goto shm_open_err;
     68      }
     69  
     70 @@ -115663,7 +115663,7 @@
     71    }
     72    if( pDb->pSchema->file_format>SQLITE_MAX_FILE_FORMAT ){
     73      sqlite3SetString(pzErrMsg, db, "unsupported file format");
     74 -    rc = SQLITE_ERROR;
     75 +    rc = SQLITE_CORRUPT_BKPT; // Android Change from "rc = SQLITE_ERROR;";
     76      goto initone_error_out;
     77    }
     78  
     79 @@ -149204,13 +149204,25 @@
     80    ** module with sqlite.
     81    */
     82    if( SQLITE_OK==rc 
     83 +#ifndef ANDROID    /* fts3_tokenizer disabled for security reasons */
     84     && SQLITE_OK==(rc = sqlite3Fts3InitHashTable(db, pHash, "fts3_tokenizer"))
     85 +#endif
     86     && SQLITE_OK==(rc = sqlite3_overload_function(db, "snippet", -1))
     87     && SQLITE_OK==(rc = sqlite3_overload_function(db, "offsets", 1))
     88     && SQLITE_OK==(rc = sqlite3_overload_function(db, "matchinfo", 1))
     89     && SQLITE_OK==(rc = sqlite3_overload_function(db, "matchinfo", 2))
     90     && SQLITE_OK==(rc = sqlite3_overload_function(db, "optimize", 1))
     91    ){
     92 +#ifdef SQLITE_ENABLE_FTS3_BACKWARDS
     93 +    rc = sqlite3_create_module_v2(
     94 +        db, "fts1", &fts3Module, (void *)pHash, 0
     95 +        );
     96 +    if(rc) return rc;
     97 +    rc = sqlite3_create_module_v2(
     98 +        db, "fts2", &fts3Module, (void *)pHash, 0
     99 +        );
    100 +    if(rc) return rc;
    101 +#endif
    102      rc = sqlite3_create_module_v2(
    103          db, "fts3", &fts3Module, (void *)pHash, hashDestroy
    104      );
    105