Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Use the SQLITE_TCLAPI macro in several extensions that were missed in the previous check-in. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | callbackConv |
Files: | files | file ages | folders |
SHA1: |
df2543652b835353c03956dfbd3e35e5 |
User & Date: | mistachkin 2016-07-28 23:54:45.174 |
Context
2016-07-28
| ||
23:58 | Missed a couple Tcl command deletion callbacks. (check-in: fc5c187602 user: mistachkin tags: callbackConv) | |
23:54 | Use the SQLITE_TCLAPI macro in several extensions that were missed in the previous check-in. (check-in: df2543652b user: mistachkin tags: callbackConv) | |
22:53 | More compiler warning fixes for GCC related to the auto-extension mechanism. (check-in: b8218129bc user: mistachkin tags: callbackConv) | |
Changes
Changes to ext/fts5/fts5_tcl.c.
︙ | ︙ | |||
78 79 80 81 82 83 84 | return aErr[i].rc; } } return SQLITE_ERROR; } | | | 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | return aErr[i].rc; } } return SQLITE_ERROR; } static int SQLITE_TCLAPI f5tDbAndApi( Tcl_Interp *interp, Tcl_Obj *pObj, sqlite3 **ppDb, fts5_api **ppApi ){ sqlite3 *db = 0; int rc = f5tDbPointer(interp, pObj, &db); |
︙ | ︙ | |||
209 210 211 212 213 214 215 | } /* ** api sub-command... ** ** Description... */ | | | 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | } /* ** api sub-command... ** ** Description... */ static int SQLITE_TCLAPI xF5tApi( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ struct Sub { const char *zName; |
︙ | ︙ | |||
602 603 604 605 606 607 608 | } /* ** sqlite3_fts5_create_function DB NAME SCRIPT ** ** Description... */ | | | 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 | } /* ** sqlite3_fts5_create_function DB NAME SCRIPT ** ** Description... */ static int SQLITE_TCLAPI f5tCreateFunction( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ char *zName; Tcl_Obj *pScript; |
︙ | ︙ | |||
672 673 674 675 676 677 678 | /* ** sqlite3_fts5_tokenize DB TOKENIZER TEXT ** ** Description... */ | | | 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 | /* ** sqlite3_fts5_tokenize DB TOKENIZER TEXT ** ** Description... */ static int SQLITE_TCLAPI f5tTokenize( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ char *zText; int nText; |
︙ | ︙ | |||
878 879 880 881 882 883 884 | pInst->pContext->xToken = xOldToken; return rc; } /* ** sqlite3_fts5_token ?-colocated? TEXT START END */ | | | 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 | pInst->pContext->xToken = xOldToken; return rc; } /* ** sqlite3_fts5_token ?-colocated? TEXT START END */ static int SQLITE_TCLAPI f5tTokenizerReturn( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ F5tTokenizerContext *p = (F5tTokenizerContext*)clientData; int iStart; |
︙ | ︙ | |||
949 950 951 952 953 954 955 | ** tokenizer instance "returned" by SCRIPT. Specifically, to tokenize ** text SCRIPT2 is invoked with a single argument appended to it - the ** text to tokenize. ** ** SCRIPT2 should invoke the [sqlite3_fts5_token] command once for each ** token within the tokenized text. */ | | | 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 | ** tokenizer instance "returned" by SCRIPT. Specifically, to tokenize ** text SCRIPT2 is invoked with a single argument appended to it - the ** text to tokenize. ** ** SCRIPT2 should invoke the [sqlite3_fts5_token] command once for each ** token within the tokenized text. */ static int SQLITE_TCLAPI f5tCreateTokenizer( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ F5tTokenizerContext *pContext = (F5tTokenizerContext*)clientData; sqlite3 *db; |
︙ | ︙ | |||
1001 1002 1003 1004 1005 1006 1007 | } /* ** sqlite3_fts5_may_be_corrupt BOOLEAN ** ** Set or clear the global "may-be-corrupt" flag. Return the old value. */ | | | 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 | } /* ** sqlite3_fts5_may_be_corrupt BOOLEAN ** ** Set or clear the global "may-be-corrupt" flag. Return the old value. */ static int SQLITE_TCLAPI f5tMayBeCorrupt( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ int bOld = sqlite3_fts5_may_be_corrupt; |
︙ | ︙ | |||
1033 1034 1035 1036 1037 1038 1039 | unsigned int h = 13; for(i=n-1; i>=0; i--){ h = (h << 3) ^ h ^ p[i]; } return (h % nSlot); } | | | 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 | unsigned int h = 13; for(i=n-1; i>=0; i--){ h = (h << 3) ^ h ^ p[i]; } return (h % nSlot); } static int SQLITE_TCLAPI f5tTokenHash( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ char *z; int n; |
︙ | ︙ | |||
1058 1059 1060 1061 1062 1063 1064 | z = Tcl_GetStringFromObj(objv[2], &n); iVal = f5t_fts5HashKey(nSlot, z, n); Tcl_SetObjResult(interp, Tcl_NewIntObj(iVal)); return TCL_OK; } | | | 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 | z = Tcl_GetStringFromObj(objv[2], &n); iVal = f5t_fts5HashKey(nSlot, z, n); Tcl_SetObjResult(interp, Tcl_NewIntObj(iVal)); return TCL_OK; } static int SQLITE_TCLAPI f5tRegisterMatchinfo( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ int rc; sqlite3 *db = 0; |
︙ | ︙ | |||
1083 1084 1085 1086 1087 1088 1089 | if( rc!=SQLITE_OK ){ Tcl_SetResult(interp, (char*)sqlite3ErrName(rc), TCL_VOLATILE); return TCL_ERROR; } return TCL_OK; } | | | 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 | if( rc!=SQLITE_OK ){ Tcl_SetResult(interp, (char*)sqlite3ErrName(rc), TCL_VOLATILE); return TCL_ERROR; } return TCL_OK; } static int SQLITE_TCLAPI f5tRegisterTok( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ int rc; sqlite3 *db = 0; |
︙ | ︙ |
Changes to ext/rbu/test_rbu.c.
︙ | ︙ | |||
49 50 51 52 53 54 55 | Tcl_BackgroundError(interp); } Tcl_DecrRefCount(pScript); } | | | 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | Tcl_BackgroundError(interp); } Tcl_DecrRefCount(pScript); } static int SQLITE_TCLAPI test_sqlite3rbu_cmd( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ int ret = TCL_OK; sqlite3rbu *pRbu = (sqlite3rbu*)clientData; |
︙ | ︙ | |||
192 193 194 195 196 197 198 | return ret; } /* ** Tclcmd: sqlite3rbu CMD <target-db> <rbu-db> ?<state-db>? */ | | | 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | return ret; } /* ** Tclcmd: sqlite3rbu CMD <target-db> <rbu-db> ?<state-db>? */ static int SQLITE_TCLAPI test_sqlite3rbu( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ sqlite3rbu *pRbu = 0; const char *zCmd; |
︙ | ︙ | |||
222 223 224 225 226 227 228 | Tcl_SetObjResult(interp, objv[1]); return TCL_OK; } /* ** Tclcmd: sqlite3rbu_vacuum CMD <target-db> <state-db> */ | | | 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 | Tcl_SetObjResult(interp, objv[1]); return TCL_OK; } /* ** Tclcmd: sqlite3rbu_vacuum CMD <target-db> <state-db> */ static int SQLITE_TCLAPI test_sqlite3rbu_vacuum( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ sqlite3rbu *pRbu = 0; const char *zCmd; |
︙ | ︙ | |||
250 251 252 253 254 255 256 | Tcl_SetObjResult(interp, objv[1]); return TCL_OK; } /* ** Tclcmd: sqlite3rbu_create_vfs ?-default? NAME PARENT */ | | | 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 | Tcl_SetObjResult(interp, objv[1]); return TCL_OK; } /* ** Tclcmd: sqlite3rbu_create_vfs ?-default? NAME PARENT */ static int SQLITE_TCLAPI test_sqlite3rbu_create_vfs( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ const char *zName; const char *zParent; |
︙ | ︙ | |||
285 286 287 288 289 290 291 | Tcl_ResetResult(interp); return TCL_OK; } /* ** Tclcmd: sqlite3rbu_destroy_vfs NAME */ | | | | 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 | Tcl_ResetResult(interp); return TCL_OK; } /* ** Tclcmd: sqlite3rbu_destroy_vfs NAME */ static int SQLITE_TCLAPI test_sqlite3rbu_destroy_vfs( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ const char *zName; if( objc!=2 ){ Tcl_WrongNumArgs(interp, 1, objv, "NAME"); return TCL_ERROR; } zName = Tcl_GetString(objv[1]); sqlite3rbu_destroy_vfs(zName); return TCL_OK; } /* ** Tclcmd: sqlite3rbu_internal_test */ static int SQLITE_TCLAPI test_sqlite3rbu_internal_test( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ sqlite3 *db; |
︙ | ︙ |
Changes to ext/session/test_session.c.
︙ | ︙ | |||
107 108 109 110 111 112 113 | ** $session changeset ** $session delete ** $session enable BOOL ** $session indirect INTEGER ** $session patchset ** $session table_filter SCRIPT */ | | | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | ** $session changeset ** $session delete ** $session enable BOOL ** $session indirect INTEGER ** $session patchset ** $session table_filter SCRIPT */ static int SQLITE_TCLAPI test_session_cmd( void *clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ TestSession *p = (TestSession*)clientData; sqlite3_session *pSession = p->pSession; |
︙ | ︙ | |||
250 251 252 253 254 255 256 | sqlite3session_delete(p->pSession); ckfree((char*)p); } /* ** Tclcmd: sqlite3session CMD DB-HANDLE DB-NAME */ | | | 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 | sqlite3session_delete(p->pSession); ckfree((char*)p); } /* ** Tclcmd: sqlite3session CMD DB-HANDLE DB-NAME */ static int SQLITE_TCLAPI test_sqlite3session( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ sqlite3 *db; Tcl_CmdInfo info; |
︙ | ︙ | |||
606 607 608 609 610 611 612 | return SQLITE_OK; } /* ** sqlite3changeset_apply DB CHANGESET CONFLICT-SCRIPT ?FILTER-SCRIPT? */ | | | 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 | return SQLITE_OK; } /* ** sqlite3changeset_apply DB CHANGESET CONFLICT-SCRIPT ?FILTER-SCRIPT? */ static int SQLITE_TCLAPI test_sqlite3changeset_apply( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ sqlite3 *db; /* Database handle */ Tcl_CmdInfo info; /* Database Tcl command (objv[1]) info */ |
︙ | ︙ | |||
661 662 663 664 665 666 667 | Tcl_ResetResult(interp); return TCL_OK; } /* ** sqlite3changeset_apply_replace_all DB CHANGESET */ | | | 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 | Tcl_ResetResult(interp); return TCL_OK; } /* ** sqlite3changeset_apply_replace_all DB CHANGESET */ static int SQLITE_TCLAPI test_sqlite3changeset_apply_replace_all( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ sqlite3 *db; /* Database handle */ Tcl_CmdInfo info; /* Database Tcl command (objv[1]) info */ |
︙ | ︙ | |||
696 697 698 699 700 701 702 | return TCL_OK; } /* ** sqlite3changeset_invert CHANGESET */ | | | 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 | return TCL_OK; } /* ** sqlite3changeset_invert CHANGESET */ static int SQLITE_TCLAPI test_sqlite3changeset_invert( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ int rc; /* Return code from changeset_invert() */ TestStreamInput sIn; /* Input stream */ |
︙ | ︙ | |||
735 736 737 738 739 740 741 | sqlite3_free(sOut.p); return rc; } /* ** sqlite3changeset_concat LEFT RIGHT */ | | | 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 | sqlite3_free(sOut.p); return rc; } /* ** sqlite3changeset_concat LEFT RIGHT */ static int SQLITE_TCLAPI test_sqlite3changeset_concat( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ int rc; /* Return code from changeset_invert() */ |
︙ | ︙ | |||
783 784 785 786 787 788 789 | sqlite3_free(sOut.p); return rc; } /* ** sqlite3session_foreach VARNAME CHANGESET SCRIPT */ | | | 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 | sqlite3_free(sOut.p); return rc; } /* ** sqlite3session_foreach VARNAME CHANGESET SCRIPT */ static int SQLITE_TCLAPI test_sqlite3session_foreach( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ void *pChangeset; int nChangeset; |
︙ | ︙ |