-C Add\soptions\sto\swapptest.tcl\ssimilar\sto\sthose\ssupported\sby\sreleasetest.tcl.\sAlso\sadd\sthe\s-noui\sswitch,\sfor\srunning\swithout\swapp\saltogether.
-D 2019-05-02T17:06:01.169
+C Ensure\sthat\sthe\stypeof()\sfunction\salways\sreturns\sSQLITE_FLOAT\sfor\sfloating\npoint\svalues\seven\swhen\sthe\svalue\sis\sstored\sas\san\sinteger\sto\ssave\sspace.
+D 2019-05-02T17:45:52.902
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F src/vacuum.c 82dcec9e7b1afa980288718ad11bc499651c722d7b9f32933c4d694d91cb6ebf
F src/vdbe.c 36993059b87e7c2adf671aaa4ef5e0f826b6f4d95be15b019aee14308f0047b5
F src/vdbe.h 712bca562eaed1c25506b9faf9680bdc75fc42e2f4a1cd518d883fa79c7a4237
-F src/vdbeInt.h 0e2c44958fb42d90a4eacb122d77e2d5b89b82f5e2b4b047b422962dc0346357
-F src/vdbeapi.c 2ddd60f4a351f15ee98d841e346af16111ad59dfa4d25d2dd4012e9875bf7d92
+F src/vdbeInt.h 3ba14553508d66f58753952d6dd287dce4ec735de02c6440858b4891aed51c17
+F src/vdbeapi.c 5ef992332225d8b6151137fcaf33b4ba4d38db7e7c51f871d2e9ecb960f3709a
F src/vdbeaux.c f873b5c2efcf8a4d6ecfc5b1a5b06fd810419198f3bd882175d371cc03801873
F src/vdbeblob.c f5c70f973ea3a9e915d1693278a5f890dc78594300cf4d54e64f2b0917c94191
F src/vdbemem.c df36fd36c7585e42869f3a44f5da5dc70e13306bc97ba52eebe069e174ba55db
F test/incrvacuum2.test 7d26cfda66c7e55898d196de54ac4ec7d86a4e3d
F test/incrvacuum3.test 75256fb1377e7c39ef2de62bfc42bbff67be295a
F test/incrvacuum_ioerr.test 6ae2f783424e47a0033304808fe27789cf93e635
-F test/index.test 05414fc7e1e128c327e089c2216d041ae7fb02232571f708f009a79a482cf1a3
+F test/index.test a2e948ed949e575487b5c1d521767d4584ac42d352f2dcd8e48004638e7bc7dc
F test/index2.test f835d5e13ca163bd78c4459ca15fd2e4ed487407
F test/index3.test 51685f39345462b84fcf77eb8537af847fdf438cc96b05c45d6aaca4e473ade0
F test/index4.test ab92e736d5946840236cd61ac3191f91a7856bf6
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P c509d8a8aebe0da4847e95cf737c21313a665de9a540da2db57b8ed22f98a402
-R ae122c629293e3edebd8b79e5ad2d64a
-U dan
-Z 2ff4926d40df66aaffbb2191925f93c2
+P 005a169406ccea6e3cc42271620870d985e8bada1ad49a63656003db4911cb51
+R 1a712fa3e334798d542297677e583b67
+U drh
+Z 11e98b9b34589d0e8654b135f89f5a58
-005a169406ccea6e3cc42271620870d985e8bada1ad49a63656003db4911cb51
\ No newline at end of file
+48889530a9de22fee536edfd1627be62396ed18d842d5fd6d91e010b4337be95
\ No newline at end of file
#define MEM_Int 0x0004 /* Value is an integer */
#define MEM_Real 0x0008 /* Value is a real number */
#define MEM_Blob 0x0010 /* Value is a BLOB */
-#define MEM_AffMask 0x001f /* Mask of affinity bits */
-#define MEM_FromBind 0x0020 /* Value originates from sqlite3_bind() */
-#define MEM_IntReal 0x0040 /* MEM_Int that stringifies like MEM_Real */
+#define MEM_IntReal 0x0020 /* MEM_Int that stringifies like MEM_Real */
+#define MEM_AffMask 0x003f /* Mask of affinity bits */
+#define MEM_FromBind 0x0040 /* Value originates from sqlite3_bind() */
#define MEM_Undefined 0x0080 /* Value is undefined */
#define MEM_Cleared 0x0100 /* NULL set by OP_Null, not from data */
-#define MEM_TypeMask 0xc1df /* Mask of type bits */
+#define MEM_TypeMask 0xc1bf /* Mask of type bits */
/* Whenever Mem contains a valid string or blob representation, one of
SQLITE_NULL, /* 0x1d */
SQLITE_INTEGER, /* 0x1e */
SQLITE_NULL, /* 0x1f */
+ SQLITE_BLOB, /* 0x20 */
+ SQLITE_NULL, /* 0x21 */
+ SQLITE_TEXT, /* 0x22 */
+ SQLITE_NULL, /* 0x23 */
+ SQLITE_FLOAT, /* 0x24 */
+ SQLITE_NULL, /* 0x25 */
+ SQLITE_FLOAT, /* 0x26 */
+ SQLITE_NULL, /* 0x27 */
+ SQLITE_FLOAT, /* 0x28 */
+ SQLITE_NULL, /* 0x29 */
+ SQLITE_FLOAT, /* 0x2a */
+ SQLITE_NULL, /* 0x2b */
+ SQLITE_FLOAT, /* 0x2c */
+ SQLITE_NULL, /* 0x2d */
+ SQLITE_FLOAT, /* 0x2e */
+ SQLITE_NULL, /* 0x2f */
+ SQLITE_BLOB, /* 0x30 */
+ SQLITE_NULL, /* 0x31 */
+ SQLITE_TEXT, /* 0x32 */
+ SQLITE_NULL, /* 0x33 */
+ SQLITE_FLOAT, /* 0x34 */
+ SQLITE_NULL, /* 0x35 */
+ SQLITE_FLOAT, /* 0x36 */
+ SQLITE_NULL, /* 0x37 */
+ SQLITE_FLOAT, /* 0x38 */
+ SQLITE_NULL, /* 0x39 */
+ SQLITE_FLOAT, /* 0x3a */
+ SQLITE_NULL, /* 0x3b */
+ SQLITE_FLOAT, /* 0x3c */
+ SQLITE_NULL, /* 0x3d */
+ SQLITE_FLOAT, /* 0x3e */
+ SQLITE_NULL, /* 0x3f */
};
+#ifdef SQLITE_DEBUG
+ {
+ int eType = SQLITE_BLOB;
+ if( pVal->flags & MEM_Null ){
+ eType = SQLITE_NULL;
+ }else if( pVal->flags & MEM_Int ){
+ eType = (pVal->flags & MEM_IntReal) ? SQLITE_FLOAT : SQLITE_INTEGER;
+ }else if( pVal->flags & MEM_Real ){
+ eType = SQLITE_FLOAT;
+ }else if( pVal->flags & MEM_Str ){
+ eType = SQLITE_TEXT;
+ }
+ assert( eType == aType[pVal->flags&MEM_AffMask] );
+ }
+#endif
return aType[pVal->flags&MEM_AffMask];
}
SELECT * FROM t1;
REINDEX;
} {0.0 1.0 1.0 1.0}
+do_execsql_test index-23.1 {
+ DROP TABLE t1;
+ CREATE TABLE t1(a REAL);
+ CREATE UNIQUE INDEX index_0 ON t1(TYPEOF(a));
+ INSERT OR IGNORE INTO t1(a) VALUES (0.1),(FALSE);
+ SELECT * FROM t1;
+ REINDEX;
+} {0.1}
finish_test