]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Update the FTS3 extension to use sqlite3_result_pointer() and
authordrh <drh@noemail.net>
Thu, 13 Jul 2017 17:48:14 +0000 (17:48 +0000)
committerdrh <drh@noemail.net>
Thu, 13 Jul 2017 17:48:14 +0000 (17:48 +0000)
sqlite3_value_pointer() for passing FTS3 cursor objects from the table
into functions such as snippet().

FossilOrigin-Name: 0fa2e170e5e078d155c98b212ade36bd8424502ae07f2d82ebf77a76f57586ba

ext/fts3/fts3.c
manifest
manifest.uuid

index 31dbefa63b9cf174a3d4819ff965398532246def..7f59e331ebf725c1aa106ec24da7a3016bedb36c 100644 (file)
@@ -3353,8 +3353,7 @@ static int fts3ColumnMethod(
   switch( iCol-p->nColumn ){
     case 0:
       /* The special 'table-name' column */
-      sqlite3_result_blob(pCtx, &pCsr, sizeof(Fts3Cursor*), SQLITE_TRANSIENT);
-      sqlite3_result_subtype(pCtx, SQLITE_BLOB);
+      sqlite3_result_pointer(pCtx, pCsr);
       break;
 
     case 1:
@@ -3572,9 +3571,10 @@ static int fts3FunctionArg(
   sqlite3_value *pVal,            /* argv[0] passed to function */
   Fts3Cursor **ppCsr              /* OUT: Store cursor handle here */
 ){
-  int rc = SQLITE_OK;
-  if( sqlite3_value_subtype(pVal)==SQLITE_BLOB ){
-    *ppCsr = *(Fts3Cursor**)sqlite3_value_blob(pVal);
+  int rc;
+  *ppCsr = (Fts3Cursor*)sqlite3_value_pointer(pVal);
+  if( (*ppCsr)!=0 ){
+    rc = SQLITE_OK;
   }else{
     char *zErr = sqlite3_mprintf("illegal first argument to %s", zFunc);
     sqlite3_result_error(pContext, zErr, -1);
index 8f0c798822e7975e01b038657dce6fa4c21d262d..cb473d27b60b22040844705f9623dbf944b1006b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Merge\sthe\slatest\schanges\sfrom\strunk.
-D 2017-07-13T17:34:46.253
+C Update\sthe\sFTS3\sextension\sto\suse\ssqlite3_result_pointer()\sand\nsqlite3_value_pointer()\sfor\spassing\sFTS3\scursor\sobjects\sfrom\sthe\stable\ninto\sfunctions\ssuch\sas\ssnippet().
+D 2017-07-13T17:48:14.032
 F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 20850e3e8d4d4791e0531955852d768eb06f24138214870d543abb1a47346fba
@@ -70,7 +70,7 @@ F ext/fts3/README.content fdc666a70d5257a64fee209f97cf89e0e6e32b51
 F ext/fts3/README.syntax a19711dc5458c20734b8e485e75fb1981ec2427a
 F ext/fts3/README.tokenizers e0a8b81383ea60d0334d274fadf305ea14a8c314
 F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
-F ext/fts3/fts3.c b47d3ba5c00f550d1f436e62017264fed818665819471b4699aac9527906459b
+F ext/fts3/fts3.c 02fbd2215309a7a73cbf29045897344987b6e17bb0b1685d13155f8b29768a50
 F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe
 F ext/fts3/fts3Int.h eb2502000148e80913b965db3e59f29251266d0a
 F ext/fts3/fts3_aux.c 9edc3655fcb287f0467d0a4b886a01c6185fe9f1
@@ -1631,7 +1631,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 73d0fc027ddcc24e55cdc8c54443a96083cc9a29e57c0abe97e8586ff8a7f4c5 0c80593520d30958231be41fc443209eb39e0b3ee0e66308c3ef3a0f4cb8ea66
-R 24fe995205a9d315b689d2540b0fa4a9
+P a54be6e041a9185787a22b86603dcb0654e5e4af71225b556d1b6279f8520ad8
+R 06f4e52cc42a344de01e760ac4095fb4
 U drh
-Z cbf44fd2ddc942904c634ff7c93b4cf7
+Z 339b64dea01a24343c82d73c9da8b215
index 3b20dfa83ba4ce53605d82f142e324cd31015d1f..05788fb77c175f745a96c621ef5894e3e47a1efc 100644 (file)
@@ -1 +1 @@
-a54be6e041a9185787a22b86603dcb0654e5e4af71225b556d1b6279f8520ad8
\ No newline at end of file
+0fa2e170e5e078d155c98b212ade36bd8424502ae07f2d82ebf77a76f57586ba
\ No newline at end of file