| Index: third_party/sqlite/sqlite-src-3080704/ext/misc/wholenumber.c
|
| diff --git a/third_party/sqlite/src/src/test_wholenumber.c b/third_party/sqlite/sqlite-src-3080704/ext/misc/wholenumber.c
|
| similarity index 82%
|
| copy from third_party/sqlite/src/src/test_wholenumber.c
|
| copy to third_party/sqlite/sqlite-src-3080704/ext/misc/wholenumber.c
|
| index 150dc95ac49ee64d859950df0cbc229644a57a87..63369c6ac474e1cae1b4309f78536166ebc716a5 100644
|
| --- a/third_party/sqlite/src/src/test_wholenumber.c
|
| +++ b/third_party/sqlite/sqlite-src-3080704/ext/misc/wholenumber.c
|
| @@ -22,7 +22,8 @@
|
| **
|
| ** 1 2 3 4 5 6 7 8 9
|
| */
|
| -#include "sqlite3.h"
|
| +#include "sqlite3ext.h"
|
| +SQLITE_EXTENSION_INIT1
|
| #include <assert.h>
|
| #include <string.h>
|
|
|
| @@ -33,8 +34,8 @@
|
| 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 */
|
| + sqlite3_int64 iValue; /* Current value */
|
| + sqlite3_int64 mxValue; /* Maximum value */
|
| };
|
|
|
| /* Methods for the wholenumber module */
|
| @@ -217,7 +218,13 @@ static int wholenumberBestIndex(
|
| ){
|
| pIdxInfo->orderByConsumed = 1;
|
| }
|
| - pIdxInfo->estimatedCost = (double)1;
|
| + if( (idxNum & 12)==0 ){
|
| + pIdxInfo->estimatedCost = (double)100000000;
|
| + }else if( (idxNum & 3)==0 ){
|
| + pIdxInfo->estimatedCost = (double)5;
|
| + }else{
|
| + pIdxInfo->estimatedCost = (double)1;
|
| + }
|
| return SQLITE_OK;
|
| }
|
|
|
| @@ -250,62 +257,18 @@ static sqlite3_module wholenumberModule = {
|
|
|
| #endif /* SQLITE_OMIT_VIRTUALTABLE */
|
|
|
| -
|
| -/*
|
| -** Register the wholenumber virtual table
|
| -*/
|
| -int wholenumber_register(sqlite3 *db){
|
| +#ifdef _WIN32
|
| +__declspec(dllexport)
|
| +#endif
|
| +int sqlite3_wholenumber_init(
|
| + sqlite3 *db,
|
| + char **pzErrMsg,
|
| + const sqlite3_api_routines *pApi
|
| +){
|
| int rc = SQLITE_OK;
|
| + SQLITE_EXTENSION_INIT2(pApi);
|
| #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 */
|
|
|