Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merge with [4bd4330709]. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | fts3-refactor |
Files: | files | file ages | folders |
SHA1: |
7a46d1ebe348ce9f1e8732617a8e280f |
User & Date: | dan 2009-11-19 14:57:14.000 |
Context
2009-11-19
| ||
15:25 | Fix some fts3 related issues with the autoconf and amalgamation build systems. (Closed-Leaf check-in: 3b17924754 user: dan) | |
14:57 | Merge with [4bd4330709]. (check-in: 7a46d1ebe3 user: dan tags: fts3-refactor) | |
14:52 | Merge the fts3-refactor branch with the trunk. (check-in: c8d2bd37a4 user: dan tags: fts3-refactor) | |
14:48 | Fix a bug introduced with recent optimizations: The unary minus operator is TK_UMINUS, not TK_MINUS. (check-in: 4bd4330709 user: drh tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
1270 1271 1272 1273 1274 1275 1276 | ** be a small performance hit but is otherwise harmless. On the other ** hand, a false negative (returning FALSE when the result could be NULL) ** will likely result in an incorrect answer. So when in doubt, return ** TRUE. */ int sqlite3ExprCanBeNull(const Expr *p){ u8 op; | | | 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 | ** be a small performance hit but is otherwise harmless. On the other ** hand, a false negative (returning FALSE when the result could be NULL) ** will likely result in an incorrect answer. So when in doubt, return ** TRUE. */ int sqlite3ExprCanBeNull(const Expr *p){ u8 op; while( p->op==TK_UPLUS || p->op==TK_UMINUS ){ p = p->pLeft; } op = p->op; if( op==TK_REGISTER ) op = p->op2; switch( op ){ case TK_INTEGER: case TK_STRING: case TK_FLOAT: case TK_BLOB: |
︙ | ︙ | |||
1315 1316 1317 1318 1319 1320 1321 | ** can be omitted. When in doubt return FALSE. A false negative ** is harmless. A false positive, however, can result in the wrong ** answer. */ int sqlite3ExprNeedsNoAffinityChange(const Expr *p, char aff){ u8 op; if( aff==SQLITE_AFF_NONE ) return 1; | | | 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 | ** can be omitted. When in doubt return FALSE. A false negative ** is harmless. A false positive, however, can result in the wrong ** answer. */ int sqlite3ExprNeedsNoAffinityChange(const Expr *p, char aff){ u8 op; if( aff==SQLITE_AFF_NONE ) return 1; while( p->op==TK_UPLUS || p->op==TK_UMINUS ){ p = p->pLeft; } op = p->op; if( op==TK_REGISTER ) op = p->op2; switch( op ){ case TK_INTEGER: { return aff==SQLITE_AFF_INTEGER || aff==SQLITE_AFF_NUMERIC; } case TK_FLOAT: { |
︙ | ︙ |