/ Check-in [ec70a67e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix to the vector less-than operator. All legacy tests passing now.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | vector-compare
Files: files | file ages | folders
SHA1: ec70a67ebc997f457be4d52d8affc37e142dc3ff
User & Date: drh 2016-08-13 12:37:47
Context
2016-08-13
13:03
Improvements to commits. No code changes. check-in: 18f5a3be user: drh tags: vector-compare
12:37
Fix to the vector less-than operator. All legacy tests passing now. check-in: ec70a67e user: drh tags: vector-compare
10:02
Attempt to simplify the logic and generated code for vector comparisons. Basic comparison operators are working, but there are many indexing test failures still to be worked through. check-in: dfc028cf user: drh tags: vector-compare
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/expr.c.

   481    481         }
   482    482         if( opx==TK_EQ ){
   483    483           sqlite3VdbeAddOp2(v, OP_IfNot, dest, addrDone); VdbeCoverage(v);
   484    484           p5 |= SQLITE_KEEPNULL;
   485    485         }else if( opx==TK_NE ){
   486    486           sqlite3VdbeAddOp2(v, OP_If, dest, addrDone); VdbeCoverage(v);
   487    487           p5 |= SQLITE_KEEPNULL;
   488         -      }else if( opx==op ){
   489         -        assert( op==TK_LT || op==TK_GT );
   490         -        sqlite3VdbeAddOp3(v, OP_If, dest, addrDone, 1);
          488  +      }else{
          489  +        assert( op==TK_LT || op==TK_GT || op==TK_LE || op==TK_GE );
          490  +        sqlite3VdbeAddOp2(v, OP_ElseNotEq, 0, addrDone);
   491    491           VdbeCoverageIf(v, op==TK_LT);
   492    492           VdbeCoverageIf(v, op==TK_GT);
   493         -      }else{
   494         -        assert( op==TK_LE || op==TK_GE );
   495         -        sqlite3VdbeAddOp2(v, OP_ElseNotEq, 0, addrDone);
   496    493           VdbeCoverageIf(v, op==TK_LE);
   497    494           VdbeCoverageIf(v, op==TK_GE);
   498    495           if( i==nLeft-2 ) opx = op;
   499    496         }
   500    497       }
   501    498       sqlite3VdbeResolveLabel(v, addrDone);
   502    499     }

Changes to test/rowvalue2.test.

   245    245         ]
   246    246       }
   247    247     }
   248    248   }
   249    249   
   250    250   
   251    251   finish_test
   252         -