Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Candidate fix for [d666d600a6]. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
781592f32c8e1dcd59954c17211cf613 |
User & Date: | dan 2013-08-21 12:04:32.485 |
Context
2013-08-21
| ||
15:45 | Fix an FTS4 problem introduced by [361084e1eb]. (check-in: 5f35c8cb8f user: dan tags: trunk) | |
12:04 | Candidate fix for [d666d600a6]. (check-in: 781592f32c user: dan tags: trunk) | |
07:25 | Fix a minor problem in progress.test. No code changes. (check-in: a95ae93b32 user: dan tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
110 111 112 113 114 115 116 | Expr *p = pExpr; while( p ){ int op = p->op; if( op==TK_CAST || op==TK_UPLUS ){ p = p->pLeft; continue; } | < | | 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | Expr *p = pExpr; while( p ){ int op = p->op; if( op==TK_CAST || op==TK_UPLUS ){ p = p->pLeft; continue; } if( op==TK_COLLATE || (op==TK_REGISTER && p->op2==TK_COLLATE) ){ pColl = sqlite3GetCollSeq(pParse, ENC(db), 0, p->u.zToken); break; } if( p->pTab!=0 && (op==TK_AGG_COLUMN || op==TK_COLUMN || op==TK_REGISTER || op==TK_TRIGGER) ){ |
︙ | ︙ | |||
3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 | compLeft.op = TK_GE; compLeft.pLeft = &exprX; compLeft.pRight = pExpr->x.pList->a[0].pExpr; compRight.op = TK_LE; compRight.pLeft = &exprX; compRight.pRight = pExpr->x.pList->a[1].pExpr; exprX.iTable = sqlite3ExprCodeTemp(pParse, &exprX, ®Free1); exprX.op = TK_REGISTER; if( jumpIfTrue ){ sqlite3ExprIfTrue(pParse, &exprAnd, dest, jumpIfNull); }else{ sqlite3ExprIfFalse(pParse, &exprAnd, dest, jumpIfNull); } sqlite3ReleaseTempReg(pParse, regFree1); | > | 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 | compLeft.op = TK_GE; compLeft.pLeft = &exprX; compLeft.pRight = pExpr->x.pList->a[0].pExpr; compRight.op = TK_LE; compRight.pLeft = &exprX; compRight.pRight = pExpr->x.pList->a[1].pExpr; exprX.iTable = sqlite3ExprCodeTemp(pParse, &exprX, ®Free1); exprX.op2 = exprX.op; exprX.op = TK_REGISTER; if( jumpIfTrue ){ sqlite3ExprIfTrue(pParse, &exprAnd, dest, jumpIfNull); }else{ sqlite3ExprIfFalse(pParse, &exprAnd, dest, jumpIfNull); } sqlite3ReleaseTempReg(pParse, regFree1); |
︙ | ︙ |
Changes to test/collate2.test.
︙ | ︙ | |||
13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # focus of this script is page cache subsystem. # # $Id: collate2.test,v 1.6 2008/08/20 16:35:10 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # # Tests are organised as follows: # # collate2-1.* WHERE <expr> expressions (sqliteExprIfTrue). # collate2-2.* WHERE NOT <expr> expressions (sqliteExprIfFalse). # collate2-3.* SELECT <expr> expressions (sqliteExprCode). # collate2-4.* Precedence of collation/data types in binary comparisons | > > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # focus of this script is page cache subsystem. # # $Id: collate2.test,v 1.6 2008/08/20 16:35:10 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl set ::testprefix collate2 # # Tests are organised as follows: # # collate2-1.* WHERE <expr> expressions (sqliteExprIfTrue). # collate2-2.* WHERE NOT <expr> expressions (sqliteExprIfFalse). # collate2-3.* SELECT <expr> expressions (sqliteExprCode). # collate2-4.* Precedence of collation/data types in binary comparisons |
︙ | ︙ | |||
688 689 690 691 692 693 694 695 696 | } } {{} aa {} {} {} aa {} {} {} aa {} {} {} aa {} {} {}} do_test collate2-5.5 { execsql { SELECT collate2t1.b, collate2t2.b FROM collate2t2 LEFT OUTER JOIN collate2t1 USING (b); } } {aa aa} finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 | } } {{} aa {} {} {} aa {} {} {} aa {} {} {} aa {} {} {}} do_test collate2-5.5 { execsql { SELECT collate2t1.b, collate2t2.b FROM collate2t2 LEFT OUTER JOIN collate2t1 USING (b); } } {aa aa} do_execsql_test 6.1 { CREATE TABLE t1(x); INSERT INTO t1 VALUES('b'); INSERT INTO t1 VALUES('B'); } do_execsql_test 6.2 { SELECT * FROM t1 WHERE x COLLATE nocase BETWEEN 'a' AND 'c'; } {b B} do_execsql_test 6.3 { SELECT * FROM t1 WHERE x BETWEEN 'a' COLLATE nocase AND 'c' COLLATE nocase; } {b B} do_execsql_test 6.4 { SELECT * FROM t1 WHERE x COLLATE nocase BETWEEN 'a' COLLATE nocase AND 'c' COLLATE nocase; } {b B} do_execsql_test 6.5 { SELECT * FROM t1 WHERE +x COLLATE nocase BETWEEN 'a' AND 'c'; } {b B} do_execsql_test 6.6 { SELECT * FROM t1 WHERE +x BETWEEN 'a' COLLATE nocase AND 'c' COLLATE nocase; } {b B} do_execsql_test 6.7 { SELECT * FROM t1 WHERE +x COLLATE nocase BETWEEN 'a' COLLATE nocase AND 'c' COLLATE nocase; } {b B} finish_test finish_test |