-C Avoid\sa\sdirect\suse\sof\sabort()\sin\sdebug\sbuilds\sto\sprevent\sa\scompilation\sissue\sfor\sWindows\sCE.
-D 2022-06-02T02:45:59.290
+C Fix\sa\sproblem\swith\sflattening\sand\swindow\sfunctions\scausing\san\s"IS\s<column>"\sto\sbe\stransformed\sto\s"IS\sTRUE"\sor\s"IS\sFALSE"\swhen\s<column>\sis\sa\sview\sor\ssub-select\sexpression\sthat\sis\sthe\sliteral\svalue\s"TRUE"\sor\s"FALSE".
+D 2022-06-02T16:26:21.885
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
F src/resolve.c a4eb3c617027fd049b07432f3b942ea7151fa793a332a11a7d0f58c9539e104f
F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
-F src/select.c 7a4c5023d6c3bcd243546dbe9bbf5b280a60ca565658d037b8c0ec8dd77e1136
+F src/select.c 8b98d3e5511d2789880ea4a12a4637803f69db5df04c81e1e93a5aac75c89b2a
F src/shell.c.in b76e681f9e441928d574f21f9473ef615158bbeab1ae49f05ecab9d81730a51d
F src/sqlite.h.in 172528c287399a34f188154017b7268bf82c6d5b780902e361958d2318c4e37c
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F test/windowA.test 6d63dc1260daa17141a55007600581778523a8b420629f1282d2acfc36af23be
F test/windowB.test f2fb42b864b0cf431c956407583e9478a74c3642bdf8737fdcb6ff4a40298b07
F test/windowC.test 6fd75f5bb2f1343d34e470e36e68f0ff638d8a42f6aa7d99471261b31a0d42f2
+F test/windowD.test 65cf5a765fb8072450e8a0de2979ce7f09a38d87724fe1280c6444073e3da49b
F test/windowerr.tcl f5acd6fbc210d7b5546c0e879d157888455cd4a17a1d3f28f07c1c8a387019e0
F test/windowerr.test a8b752402109c15aa1c5efe1b93ccb0ce1ef84fa964ae1cd6684dd0b3cc1819b
F test/windowfault.test 15094c1529424e62f798bc679e3fe9dfab6e8ba2f7dfe8c923b6248c31660a7c
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 5f0582b90fab9111e4a645c692549c35480e62635c596f8c7fa3466bd22f7235
-R abb395061a642667c1680dd38abf2f31
-U mistachkin
-Z c9fa52bf0a6b4049050e6228e79c8440
+P 8eb9a7dd07afc0aef0b7c67054d73e7e821138867d115407b71c985e90d44d59
+R 4c5fa259f4ddd36065005279bf0ee79e
+U dan
+Z 14eaf4fe1efa1d54560b85e429055931
# Remove this line to create a well-formed Fossil manifest.
-8eb9a7dd07afc0aef0b7c67054d73e7e821138867d115407b71c985e90d44d59
\ No newline at end of file
+2a952c7738d94e70024e06600fee8c3a49f317f2d02774468019bd7cf9488c8b
\ No newline at end of file
}
sqlite3ExprDelete(db, pExpr);
pExpr = pNew;
+ if( pExpr->op==TK_TRUEFALSE ){
+ pExpr->u.iValue = sqlite3ExprTruthValue(pExpr);
+ pExpr->op = TK_INTEGER;
+ ExprSetProperty(pExpr, EP_IntValue);
+ }
/* Ensure that the expression now has an implicit collation sequence,
** just as it did when it was a column of a view or sub-query. */
--- /dev/null
+# 2022 June 2
+#
+# The author disclaims copyright to this source code. In place of
+# a legal notice, here is a blessing:
+#
+# May you do good and not evil.
+# May you find forgiveness for yourself and forgive others.
+# May you share freely, never taking more than you give.
+#
+#***********************************************************************
+#
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+set testprefix windowD
+
+
+do_execsql_test 1.0 {
+ CREATE TABLE t0(c0 TEXT);
+ CREATE VIEW v0(c0, c1)
+ AS SELECT CUME_DIST() OVER (PARTITION BY t0.c0), TRUE FROM t0;
+ INSERT INTO t0 VALUES ('x');
+}
+
+do_execsql_test 1.1 {
+ SELECT ('500') IS (v0.c1) FROM v0;
+} {
+ 0
+}
+
+do_execsql_test 1.2 {
+ SELECT (('500') IS (v0.c1)) FROM v0, t0;
+} {
+ 0
+}
+
+do_execsql_test 1.2 {
+ SELECT (('500') IS (v0.c1)) IS FALSE FROM v0;
+} {
+ 1
+}
+
+do_execsql_test 1.3 {
+ SELECT * FROM v0;
+} {
+ 1.0 1
+}
+
+do_execsql_test 1.4 {
+ SELECT * FROM v0 WHERE ('500' IS v0.c1) IS FALSE;
+} {
+ 1.0 1
+}
+
+#-------------------------------------------------------------------------
+
+reset_db
+do_execsql_test 2.0 {
+ CREATE TABLE t1(x);
+ INSERT INTO t1 VALUES('value');
+ CREATE VIEW v1(a, b, c, d) AS SELECT 1, 2, TRUE, FALSE FROM t1;
+}
+
+do_execsql_test 2.1 {
+ SELECT 500 IS a, 500 IS b, 500 IS c, 500 IS d FROM v1
+} {0 0 0 0}
+
+do_execsql_test 2.2 {
+ SELECT * FROM v1 WHERE 500 IS c;
+} {}
+
+do_execsql_test 2.3 {
+ SELECT * FROM v1 WHERE 500 IS d;
+} {}
+
+do_execsql_test 2.4 {
+ CREATE VIEW v2 AS SELECT max(x) OVER () AS a, TRUE AS c FROM t1;
+}
+
+do_execsql_test 2.5 {
+ SELECT 500 IS c FROM v2;
+} 0
+
+do_execsql_test 2.6 {
+ SELECT * FROM v2 WHERE 500 IS c;
+} {}
+
+
+
+
+
+
+finish_test
+