-C Ensure\sthat\ssqlite3RCStr\svalues\sreturned\sby\sjson_group_array()\sand\njson_group_object()\sare\szero-terminated.
-D 2026-03-19T23:49:29.059
+C Ensure\sthat\scollation\ssequences\son\snon-PK\scolumns\sof\sa\sWITHOUT\sROWID\stable\sare\sused\scorrectly\swhen\sthey\sare\spart\sof\sa\srow\svalue\scomparison.\sFix\sfor\sforum\spost\s[forum:7a308e933d\s|\s7a308e933d].
+D 2026-03-20T11:35:15.730
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F src/btree.c fb350c445316c1cc0529703c0b76450770a1de0ab0440641a56b19f05d6fefbe
F src/btree.h e823c46d87f63d904d735a24b76146d19f51f04445ea561f71cc3382fd1307f0
F src/btreeInt.h 9c0f9ea5c9b5f4dcaea18111d43efe95f2ac276cd86d770dce10fd99ccc93886
-F src/build.c b993e4adef4c4cdfd7abf62e2676c467bb1923f25f40c3c7ab2a7bfbace3de7f
+F src/build.c b6efb70b142fd0f6a88ec1d9d43b905f2e38a59973c6f0e329e5cbe376a7f035
F src/callback.c 3605bbf02bd7ed46c79cd48346db4a32fc51d67624400539c0532f4eead804ad
F src/carray.c 3efe3982d5fb323334c29328a4e189ccaef6b95612a6084ad5fa124fd5db1179
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
F test/rowvalue7.test 06ec0aca725bf683313d03793aa2943bc7f45a901848c7056a9665b769c8fc38
F test/rowvalue8.test 5900eddad9e2c3c2e26f1a95f74aafc1232ee5e0
F test/rowvalue9.test 7499a8fd7ca3a3f0e19d94e135355439aa2b596f86b775ca8de79672da2ca378
-F test/rowvalueA.test 1c5ed13f3b0641452ae35e6488d6ecc16cefce99f2adf7c07c513530e2aac6b7
+F test/rowvalueA.test 7d28bf6c2f8a2af8adbba2c4eda9136a4dd36250b8966ba05b34c0954f78efd7
F test/rowvaluefault.test 963ae9cdaed30a85a29668dd514e639f3556cae903ee9f172ea972d511c54fff
F test/rowvaluevtab.test cd9747bb3f308086944c07968f547ad6b05022e698d80b9ffbdfe09ce0b8da6f
F test/rtree.test 0c8d9dd458d6824e59683c19ab2ffa9ef946f798
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 539769b63e4044018be2993894b1962df6a6ae58636682b7fb7a2dd5aaf4075c
-R f204b1ed3a5a1166ad1c711925746777
-U drh
-Z 739be31dd461ba606b382c9fb3f1b390
+P 88a931ea2ae734478928c2a6021b00b0f2be490328260630e176cf3cc7111472
+R 3a8ae62427f2beb0c4936f72e745b41a
+U dan
+Z 3025019227a8a6014385337b8f60a744
# Remove this line to create a well-formed Fossil manifest.
if( !hasColumn(pPk->aiColumn, j, i)
&& (pTab->aCol[i].colFlags & COLFLAG_VIRTUAL)==0
){
+ const char *zColl = sqlite3ColumnColl(&pTab->aCol[i]);
assert( j<pPk->nColumn );
pPk->aiColumn[j] = i;
- pPk->azColl[j] = sqlite3StrBINARY;
+ pPk->azColl[j] = zColl ? zColl : sqlite3StrBINARY;
j++;
}
}
SELECT * FROM x2 CROSS JOIN x1 WHERE (1234, x2.y) > (x1.a, x1.b);
} {1234 abc 1234 ABCD}
+#-------------------------------------------------------------------------
+# Test the fix for forum post https://sqlite.org/forum/forumpost/7a308e933d
+#
+do_execsql_test 4.0 {
+ CREATE TABLE t1 (a PRIMARY KEY, b COLLATE NOCASE) WITHOUT ROWID;
+ INSERT INTO t1 VALUES ('BBB', 'a');
+}
+do_execsql_test 4.1 {
+ SELECT * FROM t1 WHERE (t1.a, t1.b) <= ('BBB', 'CCC');
+} {BBB a}
+
+do_execsql_test 4.2 {
+ DROP TABLE t1;
+ CREATE TABLE t0 (c0);
+ INSERT INTO t0 VALUES ('True');
+
+ CREATE TABLE t1 (c0 COLLATE NOCASE, c1 PRIMARY KEY) WITHOUT ROWID;
+ INSERT INTO t1 VALUES ('a', 1);
+ INSERT INTO t1 VALUES ('a', 'True');
+}
+
+do_execsql_test 4.3 {
+ SELECT * FROM t0, t1 WHERE (t1.c1, t1.c0) <= (t0.c0, t0.c0);
+} {True a 1 True a True}
finish_test