1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-10 01:02:56 +03:00

Fix a bug in the deterministic date/time function logic that can only appear

with STAT3 or STAT4.

FossilOrigin-Name: 1ca707a4fb8db7aa85430413164265607ce727fc8a5afc3424b3abfb59921b39
This commit is contained in:
drh
2017-07-25 01:34:05 +00:00
parent b67abfc463
commit e8cf1ab9aa
3 changed files with 11 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
C Do\snot\sattempt\sto\srun\stest\sfile\sunionvtabfault.test\swith\sSQLITE_OMIT_VIRTUAL_TABLE\sbuilds. C Fix\sa\sbug\sin\sthe\sdeterministic\sdate/time\sfunction\slogic\sthat\scan\sonly\sappear\nwith\sSTAT3\sor\sSTAT4.
D 2017-07-24T20:01:36.136 D 2017-07-25T01:34:05.482
F Makefile.in d9873c9925917cca9990ee24be17eb9613a668012c85a343aef7e5536ae266e8 F Makefile.in d9873c9925917cca9990ee24be17eb9613a668012c85a343aef7e5536ae266e8
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 02b469e9dcd5b7ee63fc1fb05babc174260ee4cfa4e0ef2e48c3c6801567a016 F Makefile.msc 02b469e9dcd5b7ee63fc1fb05babc174260ee4cfa4e0ef2e48c3c6801567a016
@@ -524,7 +524,7 @@ F src/vdbe.c 1e541ec7ff409bbabcc6b4f154957296fff5827c16c2ab0056348acae75685bf
F src/vdbe.h d50cadf12bcf9fb99117ef392ce1ea283aa429270481426b6e8b0280c101fd97 F src/vdbe.h d50cadf12bcf9fb99117ef392ce1ea283aa429270481426b6e8b0280c101fd97
F src/vdbeInt.h 19bd04a4211fe56c712ab35b48be77fd5a0579b851e9dea2cb8deade359b72b9 F src/vdbeInt.h 19bd04a4211fe56c712ab35b48be77fd5a0579b851e9dea2cb8deade359b72b9
F src/vdbeapi.c 52844a5a71712197be45f1c63d730c48a745c7457c959465cfb2b969af40a266 F src/vdbeapi.c 52844a5a71712197be45f1c63d730c48a745c7457c959465cfb2b969af40a266
F src/vdbeaux.c 42e215cc6f69e91eebdd2b886ec1ff2b0d5e44331bd8b88a0a44e78bbeed7133 F src/vdbeaux.c 3fe68bad02b33b09e08bdc0ad90d6b92b3d571f7864c3d047abca1bde050751c
F src/vdbeblob.c 359891617358deefc85bef7bcf787fa6b77facb9 F src/vdbeblob.c 359891617358deefc85bef7bcf787fa6b77facb9
F src/vdbemem.c fe8fce1cdc258320b465934039fe4b1230d63f81d6b81b1eac775b6eec00af0d F src/vdbemem.c fe8fce1cdc258320b465934039fe4b1230d63f81d6b81b1eac775b6eec00af0d
F src/vdbesort.c f512c68d0bf7e0105316a5594c4329358c8ee9cae3b25138df041d97516c0372 F src/vdbesort.c f512c68d0bf7e0105316a5594c4329358c8ee9cae3b25138df041d97516c0372
@@ -1637,7 +1637,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 9a5a3d60a5c6ce23bbdab5832f706bee8acdc4b1767aeed82b1aceb294f050f7 P 1a632a9a6c85b78abe0351ef91c7478b26299c4c1c269d5796afb1e172084517
R 9d8352e83316f08ec12324f403d928f8 R 8215cf089e6d9a2d7dcbd4ee22b67db3
U dan U drh
Z 731268f0f0f5770b6b74b815ab7de998 Z f46d8d102bf3b4a07103f8534020f352

View File

@@ -1 +1 @@
1a632a9a6c85b78abe0351ef91c7478b26299c4c1c269d5796afb1e172084517 1ca707a4fb8db7aa85430413164265607ce727fc8a5afc3424b3abfb59921b39

View File

@@ -4593,6 +4593,9 @@ void sqlite3VdbeSetVarmask(Vdbe *v, int iVar){
** features such as 'now'. ** features such as 'now'.
*/ */
int sqlite3NotPureFunc(sqlite3_context *pCtx){ int sqlite3NotPureFunc(sqlite3_context *pCtx){
#ifdef SQLITE_ENABLE_STAT3_OR_STAT4
if( pCtx->pVdbe==0 ) return 1;
#endif
if( pCtx->pVdbe->aOp[pCtx->iOp].opcode==OP_PureFunc ){ if( pCtx->pVdbe->aOp[pCtx->iOp].opcode==OP_PureFunc ){
sqlite3_result_error(pCtx, sqlite3_result_error(pCtx,
"non-deterministic function in index expression or CHECK constraint", "non-deterministic function in index expression or CHECK constraint",