| Index: third_party/sqlite/src/src/test_wholenumber.c | 
| diff --git a/third_party/sqlite/src/src/test_wholenumber.c b/third_party/sqlite/src/src/test_wholenumber.c | 
| deleted file mode 100644 | 
| index 150dc95ac49ee64d859950df0cbc229644a57a87..0000000000000000000000000000000000000000 | 
| --- a/third_party/sqlite/src/src/test_wholenumber.c | 
| +++ /dev/null | 
| @@ -1,311 +0,0 @@ | 
| -/* | 
| -** 2011 April 02 | 
| -** | 
| -** The author disclaims copyright to this source code.  In place of | 
| -** a legal notice, here is a blessing: | 
| -** | 
| -**    May you do good and not evil. | 
| -**    May you find forgiveness for yourself and forgive others. | 
| -**    May you share freely, never taking more than you give. | 
| -** | 
| -************************************************************************* | 
| -** | 
| -** This file implements a virtual table that returns the whole numbers | 
| -** between 1 and 4294967295, inclusive. | 
| -** | 
| -** Example: | 
| -** | 
| -**     CREATE VIRTUAL TABLE nums USING wholenumber; | 
| -**     SELECT value FROM nums WHERE value<10; | 
| -** | 
| -** Results in: | 
| -** | 
| -**     1 2 3 4 5 6 7 8 9 | 
| -*/ | 
| -#include "sqlite3.h" | 
| -#include <assert.h> | 
| -#include <string.h> | 
| - | 
| -#ifndef SQLITE_OMIT_VIRTUALTABLE | 
| - | 
| - | 
| -/* A wholenumber cursor object */ | 
| -typedef struct wholenumber_cursor wholenumber_cursor; | 
| -struct wholenumber_cursor { | 
| -  sqlite3_vtab_cursor base;  /* Base class - must be first */ | 
| -  unsigned iValue;           /* Current value */ | 
| -  unsigned mxValue;          /* Maximum value */ | 
| -}; | 
| - | 
| -/* Methods for the wholenumber module */ | 
| -static int wholenumberConnect( | 
| -  sqlite3 *db, | 
| -  void *pAux, | 
| -  int argc, const char *const*argv, | 
| -  sqlite3_vtab **ppVtab, | 
| -  char **pzErr | 
| -){ | 
| -  sqlite3_vtab *pNew; | 
| -  pNew = *ppVtab = sqlite3_malloc( sizeof(*pNew) ); | 
| -  if( pNew==0 ) return SQLITE_NOMEM; | 
| -  sqlite3_declare_vtab(db, "CREATE TABLE x(value)"); | 
| -  memset(pNew, 0, sizeof(*pNew)); | 
| -  return SQLITE_OK; | 
| -} | 
| -/* Note that for this virtual table, the xCreate and xConnect | 
| -** methods are identical. */ | 
| - | 
| -static int wholenumberDisconnect(sqlite3_vtab *pVtab){ | 
| -  sqlite3_free(pVtab); | 
| -  return SQLITE_OK; | 
| -} | 
| -/* The xDisconnect and xDestroy methods are also the same */ | 
| - | 
| - | 
| -/* | 
| -** Open a new wholenumber cursor. | 
| -*/ | 
| -static int wholenumberOpen(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ | 
| -  wholenumber_cursor *pCur; | 
| -  pCur = sqlite3_malloc( sizeof(*pCur) ); | 
| -  if( pCur==0 ) return SQLITE_NOMEM; | 
| -  memset(pCur, 0, sizeof(*pCur)); | 
| -  *ppCursor = &pCur->base; | 
| -  return SQLITE_OK; | 
| -} | 
| - | 
| -/* | 
| -** Close a wholenumber cursor. | 
| -*/ | 
| -static int wholenumberClose(sqlite3_vtab_cursor *cur){ | 
| -  sqlite3_free(cur); | 
| -  return SQLITE_OK; | 
| -} | 
| - | 
| - | 
| -/* | 
| -** Advance a cursor to its next row of output | 
| -*/ | 
| -static int wholenumberNext(sqlite3_vtab_cursor *cur){ | 
| -  wholenumber_cursor *pCur = (wholenumber_cursor*)cur; | 
| -  pCur->iValue++; | 
| -  return SQLITE_OK; | 
| -} | 
| - | 
| -/* | 
| -** Return the value associated with a wholenumber. | 
| -*/ | 
| -static int wholenumberColumn( | 
| -  sqlite3_vtab_cursor *cur, | 
| -  sqlite3_context *ctx, | 
| -  int i | 
| -){ | 
| -  wholenumber_cursor *pCur = (wholenumber_cursor*)cur; | 
| -  sqlite3_result_int64(ctx, pCur->iValue); | 
| -  return SQLITE_OK; | 
| -} | 
| - | 
| -/* | 
| -** The rowid. | 
| -*/ | 
| -static int wholenumberRowid(sqlite3_vtab_cursor *cur, sqlite_int64 *pRowid){ | 
| -  wholenumber_cursor *pCur = (wholenumber_cursor*)cur; | 
| -  *pRowid = pCur->iValue; | 
| -  return SQLITE_OK; | 
| -} | 
| - | 
| -/* | 
| -** When the wholenumber_cursor.rLimit value is 0 or less, that is a signal | 
| -** that the cursor has nothing more to output. | 
| -*/ | 
| -static int wholenumberEof(sqlite3_vtab_cursor *cur){ | 
| -  wholenumber_cursor *pCur = (wholenumber_cursor*)cur; | 
| -  return pCur->iValue>pCur->mxValue || pCur->iValue==0; | 
| -} | 
| - | 
| -/* | 
| -** Called to "rewind" a cursor back to the beginning so that | 
| -** it starts its output over again.  Always called at least once | 
| -** prior to any wholenumberColumn, wholenumberRowid, or wholenumberEof call. | 
| -** | 
| -**    idxNum   Constraints | 
| -**    ------   --------------------- | 
| -**      0      (none) | 
| -**      1      value > $argv0 | 
| -**      2      value >= $argv0 | 
| -**      4      value < $argv0 | 
| -**      8      value <= $argv0 | 
| -** | 
| -**      5      value > $argv0 AND value < $argv1 | 
| -**      6      value >= $argv0 AND value < $argv1 | 
| -**      9      value > $argv0 AND value <= $argv1 | 
| -**     10      value >= $argv0 AND value <= $argv1 | 
| -*/ | 
| -static int wholenumberFilter( | 
| -  sqlite3_vtab_cursor *pVtabCursor, | 
| -  int idxNum, const char *idxStr, | 
| -  int argc, sqlite3_value **argv | 
| -){ | 
| -  wholenumber_cursor *pCur = (wholenumber_cursor *)pVtabCursor; | 
| -  sqlite3_int64 v; | 
| -  int i = 0; | 
| -  pCur->iValue = 1; | 
| -  pCur->mxValue = 0xffffffff;  /* 4294967295 */ | 
| -  if( idxNum & 3 ){ | 
| -    v = sqlite3_value_int64(argv[0]) + (idxNum&1); | 
| -    if( v>pCur->iValue && v<=pCur->mxValue ) pCur->iValue = v; | 
| -    i++; | 
| -  } | 
| -  if( idxNum & 12 ){ | 
| -    v = sqlite3_value_int64(argv[i]) - ((idxNum>>2)&1); | 
| -    if( v>=pCur->iValue && v<pCur->mxValue ) pCur->mxValue = v; | 
| -  } | 
| -  return SQLITE_OK; | 
| -} | 
| - | 
| -/* | 
| -** Search for terms of these forms: | 
| -** | 
| -**  (1)  value > $value | 
| -**  (2)  value >= $value | 
| -**  (4)  value < $value | 
| -**  (8)  value <= $value | 
| -** | 
| -** idxNum is an ORed combination of 1 or 2 with 4 or 8. | 
| -*/ | 
| -static int wholenumberBestIndex( | 
| -  sqlite3_vtab *tab, | 
| -  sqlite3_index_info *pIdxInfo | 
| -){ | 
| -  int i; | 
| -  int idxNum = 0; | 
| -  int argvIdx = 1; | 
| -  int ltIdx = -1; | 
| -  int gtIdx = -1; | 
| -  const struct sqlite3_index_constraint *pConstraint; | 
| -  pConstraint = pIdxInfo->aConstraint; | 
| -  for(i=0; i<pIdxInfo->nConstraint; i++, pConstraint++){ | 
| -    if( pConstraint->usable==0 ) continue; | 
| -    if( (idxNum & 3)==0 && pConstraint->op==SQLITE_INDEX_CONSTRAINT_GT ){ | 
| -      idxNum |= 1; | 
| -      ltIdx = i; | 
| -    } | 
| -    if( (idxNum & 3)==0 && pConstraint->op==SQLITE_INDEX_CONSTRAINT_GE ){ | 
| -      idxNum |= 2; | 
| -      ltIdx = i; | 
| -    } | 
| -    if( (idxNum & 12)==0 && pConstraint->op==SQLITE_INDEX_CONSTRAINT_LT ){ | 
| -      idxNum |= 4; | 
| -      gtIdx = i; | 
| -    } | 
| -    if( (idxNum & 12)==0 && pConstraint->op==SQLITE_INDEX_CONSTRAINT_LE ){ | 
| -      idxNum |= 8; | 
| -      gtIdx = i; | 
| -    } | 
| -  } | 
| -  pIdxInfo->idxNum = idxNum; | 
| -  if( ltIdx>=0 ){ | 
| -    pIdxInfo->aConstraintUsage[ltIdx].argvIndex = argvIdx++; | 
| -    pIdxInfo->aConstraintUsage[ltIdx].omit = 1; | 
| -  } | 
| -  if( gtIdx>=0 ){ | 
| -    pIdxInfo->aConstraintUsage[gtIdx].argvIndex = argvIdx; | 
| -    pIdxInfo->aConstraintUsage[gtIdx].omit = 1; | 
| -  } | 
| -  if( pIdxInfo->nOrderBy==1 | 
| -   && pIdxInfo->aOrderBy[0].desc==0 | 
| -  ){ | 
| -    pIdxInfo->orderByConsumed = 1; | 
| -  } | 
| -  pIdxInfo->estimatedCost = (double)1; | 
| -  return SQLITE_OK; | 
| -} | 
| - | 
| -/* | 
| -** A virtual table module that provides read-only access to a | 
| -** Tcl global variable namespace. | 
| -*/ | 
| -static sqlite3_module wholenumberModule = { | 
| -  0,                         /* iVersion */ | 
| -  wholenumberConnect, | 
| -  wholenumberConnect, | 
| -  wholenumberBestIndex, | 
| -  wholenumberDisconnect, | 
| -  wholenumberDisconnect, | 
| -  wholenumberOpen,           /* xOpen - open a cursor */ | 
| -  wholenumberClose,          /* xClose - close a cursor */ | 
| -  wholenumberFilter,         /* xFilter - configure scan constraints */ | 
| -  wholenumberNext,           /* xNext - advance a cursor */ | 
| -  wholenumberEof,            /* xEof - check for end of scan */ | 
| -  wholenumberColumn,         /* xColumn - read data */ | 
| -  wholenumberRowid,          /* xRowid - read data */ | 
| -  0,                         /* xUpdate */ | 
| -  0,                         /* xBegin */ | 
| -  0,                         /* xSync */ | 
| -  0,                         /* xCommit */ | 
| -  0,                         /* xRollback */ | 
| -  0,                         /* xFindMethod */ | 
| -  0,                         /* xRename */ | 
| -}; | 
| - | 
| -#endif /* SQLITE_OMIT_VIRTUALTABLE */ | 
| - | 
| - | 
| -/* | 
| -** Register the wholenumber virtual table | 
| -*/ | 
| -int wholenumber_register(sqlite3 *db){ | 
| -  int rc = SQLITE_OK; | 
| -#ifndef SQLITE_OMIT_VIRTUALTABLE | 
| -  rc = sqlite3_create_module(db, "wholenumber", &wholenumberModule, 0); | 
| -#endif | 
| -  return rc; | 
| -} | 
| - | 
| -#ifdef SQLITE_TEST | 
| -#include <tcl.h> | 
| -/* | 
| -** Decode a pointer to an sqlite3 object. | 
| -*/ | 
| -extern int getDbPointer(Tcl_Interp *interp, const char *zA, sqlite3 **ppDb); | 
| - | 
| -/* | 
| -** Register the echo virtual table module. | 
| -*/ | 
| -static int register_wholenumber_module( | 
| -  ClientData clientData, /* Pointer to sqlite3_enable_XXX function */ | 
| -  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */ | 
| -  int objc,              /* Number of arguments */ | 
| -  Tcl_Obj *CONST objv[]  /* Command arguments */ | 
| -){ | 
| -  sqlite3 *db; | 
| -  if( objc!=2 ){ | 
| -    Tcl_WrongNumArgs(interp, 1, objv, "DB"); | 
| -    return TCL_ERROR; | 
| -  } | 
| -  if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR; | 
| -  wholenumber_register(db); | 
| -  return TCL_OK; | 
| -} | 
| - | 
| - | 
| -/* | 
| -** Register commands with the TCL interpreter. | 
| -*/ | 
| -int Sqlitetestwholenumber_Init(Tcl_Interp *interp){ | 
| -  static struct { | 
| -     char *zName; | 
| -     Tcl_ObjCmdProc *xProc; | 
| -     void *clientData; | 
| -  } aObjCmd[] = { | 
| -     { "register_wholenumber_module",   register_wholenumber_module, 0 }, | 
| -  }; | 
| -  int i; | 
| -  for(i=0; i<sizeof(aObjCmd)/sizeof(aObjCmd[0]); i++){ | 
| -    Tcl_CreateObjCommand(interp, aObjCmd[i].zName, | 
| -        aObjCmd[i].xProc, aObjCmd[i].clientData, 0); | 
| -  } | 
| -  return TCL_OK; | 
| -} | 
| - | 
| -#endif /* SQLITE_TEST */ | 
|  |