]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
In the sqlite3_value or Mem object, make the MEM_IntReal type completely
authordrh <drh@noemail.net>
Sat, 4 May 2019 01:41:18 +0000 (01:41 +0000)
committerdrh <drh@noemail.net>
Sat, 4 May 2019 01:41:18 +0000 (01:41 +0000)
independent from MEM_Int and MEM_Real. This helps avoid problems when
inserting non-float values into a "REAL" column.

FossilOrigin-Name: 5a8a23ee5f60a31dbd167a0966d1ab3d0f1c07df2251906cb73f23d1f5466b46

1  2 
manifest
manifest.uuid
src/vdbe.c
src/vdbemem.c

diff --cc manifest
index 6b54f864dea30655c1d4e12cac56c99e48448623,4e83d71d9511ef2948c930d00182e66439892a80..f4b5d2c9bb2d4801eb8f2cf18f00d509247b87a5
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Ensure\sthat\sUTF16\sstrings\sare\sproperly\szero-terminated\sbefore\sreturning\sthem\nin\san\ssqlite3_value_text16()\srequest,\seven\sif\sthe\sstring\sis\sinvalid\sUTF16\nbecause\sit\swas\sformed\sfrom\san\sarbitrary\sand/or\sodd-length\sBLOB.
- D 2019-05-03T19:34:41.227
 -C New\stestcase\smacros\sto\sensure\sthat\sMEM_IntReal\sis\sfully\stested.
 -D 2019-05-04T01:29:13.397
++C In\sthe\ssqlite3_value\sor\sMem\sobject,\smake\sthe\sMEM_IntReal\stype\scompletely\nindependent\sfrom\sMEM_Int\sand\sMEM_Real.\sThis\shelps\savoid\sproblems\swhen\ninserting\snon-float\svalues\sinto\sa\s"REAL"\scolumn.
++D 2019-05-04T01:41:18.778
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@@ -519,12 -519,12 +519,12 @@@ F src/printf.c 67f79227273a9009d86a0176
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
  F src/resolve.c 408632d9531ca8f1df8591f00530797daaa7bde3fe0d3211de4d431cbb99347e
  F src/rowset.c d977b011993aaea002cab3e0bb2ce50cf346000dff94e944d547b989f4b1fe93
 -F src/select.c b7304d2f491c11a03a7fbdf34bc218282ac54052377809d4dc3b4b1e7f4bfc93
 -F src/shell.c.in 567236da9ee68b1dfa363426858ee5e310976ffe422a7b7ae220c0315d7e8c53
 +F src/select.c ef860c7e5882c89c030432a6d2cf13c67d1d51fd511cf45cbdfd5c2faf44d51d
 +F src/shell.c.in 5470f08809ca5d9ac79f782f8f16d96a4299e584dbc456d8ef4aa6ca0824b5b3
- F src/sqlite.h.in 38390767acc1914d58930e03149595ee4710afa4e3c43ab6c3a8aea3f1a6b8cd
+ F src/sqlite.h.in 0605c88d98c85fbcba8bbd9716e7cc10b361e7b21cf2375171130f577388c943
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h 9ecc93b8493bd20c0c07d52e2ac0ed8bab9b549c7f7955b59869597b650dd8b5
- F src/sqliteInt.h 866311ac436c0c2039fccc7ea976fbc79d40c1c2ea687161fa4ba64379b53ae6
+ F src/sqliteInt.h 443270b81c96101914eadd4e649d2f8210f4bbed569a6ff5ca8facfc74e20f26
  F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
  F src/status.c 46e7aec11f79dad50965a5ca5fa9de009f7d6bde08be2156f1538a0a296d4d0e
  F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
@@@ -591,15 -591,15 +591,15 @@@ F src/upsert.c 0dd81b40206841814d46942a
  F src/utf.c 2f0fac345c7660d5c5bd3df9e9d8d33d4c27f366bcfb09e07443064d751a0507
  F src/util.c 5061987401c2e8003177fa30d73196aa036727c8f04bf36a2df0c82b1904a236
  F src/vacuum.c 82dcec9e7b1afa980288718ad11bc499651c722d7b9f32933c4d694d91cb6ebf
- F src/vdbe.c 81aa6fe0b7eb6ecd05b04f7a4097cc188ba3a6b4944e9ff418331d4f026cac69
 -F src/vdbe.c b0c87760d0e2460a48aa7ff70d9e96fb845cd9af02cf7d7a66de4e2ac39a72bc
++F src/vdbe.c 20e6098518581719ffc0ff0f5378d9bf9976fe5e7df029caf2a3d938a7375680
  F src/vdbe.h 712bca562eaed1c25506b9faf9680bdc75fc42e2f4a1cd518d883fa79c7a4237
  F src/vdbeInt.h 3ba14553508d66f58753952d6dd287dce4ec735de02c6440858b4891aed51c17
- F src/vdbeapi.c 5ef992332225d8b6151137fcaf33b4ba4d38db7e7c51f871d2e9ecb960f3709a
- F src/vdbeaux.c f873b5c2efcf8a4d6ecfc5b1a5b06fd810419198f3bd882175d371cc03801873
+ F src/vdbeapi.c f9161e5c77f512fbb80091ce8af621d19c9556bda5e734cffaac1198407400da
+ F src/vdbeaux.c 94f5bea5db40f6c26a2db320788745a3852202a2ab4472928247955619027906
  F src/vdbeblob.c f5c70f973ea3a9e915d1693278a5f890dc78594300cf4d54e64f2b0917c94191
- F src/vdbemem.c 42a33c8f00728fcf141b05f9c4d1bc3a2d34ebc4427b8631898e31fc22ea944d
 -F src/vdbemem.c 81dc93a8b6a02b874920bc20be7d529cfce84229ecbd53a7cd3170a0fa115440
++F src/vdbemem.c b76b42ac9d6a36fc55a0797929fc94cc33e1334eea2792f5ee1eef868ce13320
  F src/vdbesort.c 66592d478dbb46f19aed0b42222325eadb84deb40a90eebe25c6e7c1d8468f47
- F src/vdbetrace.c 79d6dbbc479267b255a7de8080eee6e729928a0ef93ed9b0bfa5618875b48392
+ F src/vdbetrace.c fa3bf238002f0bbbdfb66cc8afb0cea284ff9f148d6439bc1f6f2b4c3b7143f0
  F src/vtab.c 1fa256c6ddad7a81e2a4dc080d015d4b0a7135767717d311298e47f6fca64bb3
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
  F src/wal.c b09a2a9cab50efa08451a8c81d47052120ad5da174048c6d0b08d405384abdf2
@@@ -1822,7 -1823,7 +1823,8 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P a9b90aa12eecdd9f2a8b2d23da8b7cac43d8b1789f5cefa3f4e939d9f2b59269
- R 0f91a6c43eba1f33d4776f7747589015
 -P c9838731325e0ca73bd8784c10c74ae043fed7861e6de269fd90e29fa4a19955
 -R 90de5cd79636b0a1b576e1c339f26a72
++P 3a16ddf91f0c9c516a7fc2a9d4a4f69a8326f9b8ea66421e9ef1a2d663687b70 8b8ef445ccccc148af2cda5975986af0d134352fe16283f65d0f8a91c9ffa932
++R 5ebe49882e1d0bab8f5a82c53795cea5
++T +closed 8b8ef445ccccc148af2cda5975986af0d134352fe16283f65d0f8a91c9ffa932
  U drh
- Z 872a39f55a8963133e9f411eb3938cfd
 -Z bb3da40e826b6604a073d2d31bc7ecda
++Z b24c2d1d6f04cff04fe0a08f3591f34a
diff --cc manifest.uuid
index 450783c9a4d889e6a43b32d15d57155c309bae0d,389d168cc03773a05144a33d112d811b54a08b41..d8c40946252a1fdead3f207401bda14c7bd4806c
@@@ -1,1 -1,1 +1,1 @@@
- 3a16ddf91f0c9c516a7fc2a9d4a4f69a8326f9b8ea66421e9ef1a2d663687b70
 -8b8ef445ccccc148af2cda5975986af0d134352fe16283f65d0f8a91c9ffa932
++5a8a23ee5f60a31dbd167a0966d1ab3d0f1c07df2251906cb73f23d1f5466b46
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbemem.c
index 96edebcdefcbbe2b89f972017dc6e5c51e72444a,d1e6ac4d7700a64e77f654c022e5e5939e6a3f03..34b7c1f840db486ef687a80dfcc024f21108b6f0
@@@ -356,12 -355,12 +361,12 @@@ int sqlite3VdbeMemNulTerminate(Mem *pMe
  }
  
  /*
 -** Add MEM_Str to the set of representations for the given Mem.  Numbers
 -** are converted using sqlite3_snprintf().  Converting a BLOB to a string
 -** is a no-op.
 +** Add MEM_Str to the set of representations for the given Mem.  This
 +** routine is only called if pMem is a number of some kind, not a NULL
 +** or a BLOB.
  **
- ** Existing representations MEM_Int and MEM_Real are invalidated if
- ** bForce is true but are retained if bForce is false.
+ ** Existing representations MEM_Int, MEM_Real, or MEM_IntReal are invalidated
+ ** if bForce is true but are retained if bForce is false.
  **
  ** A MEM_Null value will never be passed to this function. This function is
  ** used for converting values to text for returning to the user (i.e. via