Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix the implementation of the built-in RTRIM collating sequence so that it works for control characters at the end of the string. Ticket [f1580ba1b574e9e9] |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
86fa0087cd1f5c79ed51b99a226ec2ee |
User & Date: | drh 2019-06-14 13:24:46.956 |
References
2019-06-14
| ||
13:25 | • Fixed ticket [f1580ba1b5]: Built-in RTRIM collating sequence yields incorrect comparisons plus 8 other changes (artifact: 71c96e66f5 user: drh) | |
Context
2019-06-14
| ||
17:37 | Deprecate the SQLITE_ALLOW_COVERING_INDEX_SCAN compile-time option when it is turned off. This probably will impact no-one. If it does, they will get an error message instructing them to contact developers, so that we can get feedback that somebody is actually using this feature. Start-time disabling of covering index scan is not affected. (check-in: 23e49f9984 user: drh tags: trunk) | |
13:24 | Fix the implementation of the built-in RTRIM collating sequence so that it works for control characters at the end of the string. Ticket [f1580ba1b574e9e9] (check-in: 86fa0087cd user: drh tags: trunk) | |
12:28 | Refactor the LIKE optimization decision logic so that it uses sqlite3AtoF() on both boundary keys to determine if the optimization can be used when the LHS is something that might not have TEXT affinity. Ticket [ce8717f0885af975]. See also [c94369cae9b561b1], [b043a54c3de54b28], [fd76310a5e843e07], and [158290c0abafde67]. (check-in: b4a9e09e60 user: drh tags: trunk) | |
Changes
Changes to src/main.c.
︙ | |||
871 872 873 874 875 876 877 | 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 | - - - - - - - - - - - - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - + | break; } } va_end(ap); return rc; } |
︙ | |||
3124 3125 3126 3127 3128 3129 3130 | 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 | - + | ** EVIDENCE-OF: R-52786-44878 SQLite defines three built-in collating ** functions: */ createCollation(db, sqlite3StrBINARY, SQLITE_UTF8, 0, binCollFunc, 0); createCollation(db, sqlite3StrBINARY, SQLITE_UTF16BE, 0, binCollFunc, 0); createCollation(db, sqlite3StrBINARY, SQLITE_UTF16LE, 0, binCollFunc, 0); createCollation(db, "NOCASE", SQLITE_UTF8, 0, nocaseCollatingFunc, 0); |
︙ |
Changes to test/collate1.test.
︙ | |||
396 397 398 399 400 401 402 403 404 | 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 | + + + + + + + + + + + + + + + + | ORDER BY 1 COLLATE nocase COLLATE nocase COLLATE nocase COLLATE binary; } {DEF abc} do_execsql_test 7.2 { SELECT 'abc' UNION ALL SELECT 'DEF' ORDER BY 1 COLLATE binary COLLATE binary COLLATE binary COLLATE nocase; } {abc DEF} # 2019-06-14 # https://sqlite.org/src/info/f1580ba1b574e9e9 # do_execsql_test 8.0 { SELECT ' ' > char(20) COLLATE rtrim; } 0 do_execsql_test 8.1 { SELECT '' < char(20) COLLATE rtrim; } 1 do_execsql_test 8.2 { DROP TABLE IF EXISTS t0; CREATE TABLE t0(c0 COLLATE RTRIM, c1 BLOB UNIQUE, PRIMARY KEY (c0, c1)) WITHOUT ROWID; INSERT INTO t0 VALUES (123, 3), (' ', 1), (' ', 2), ('', 4); SELECT * FROM t0 WHERE c1 = 1; } {{ } 1} finish_test |