Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add comments and testcase() macros to the fix for shared-cache schema default value problem of check-in (6353). (CVS 6356) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
05d8607d44cd3ff262c07cc1192f4471 |
User & Date: | drh 2009-03-18 10:36:13.000 |
Context
2009-03-18
| ||
13:55 | Modify test script backup2.test so that it works on OSX. (CVS 6357) (check-in: d82e8cd43f user: danielk1977 tags: trunk) | |
10:36 | Add comments and testcase() macros to the fix for shared-cache schema default value problem of check-in (6353). (CVS 6356) (check-in: 05d8607d44 user: drh tags: trunk) | |
10:33 | Fix some cases where executing SQL from within a user-function callback could cause problems related to statement-transactions. (CVS 6355) (check-in: a60f419179 user: danielk1977 tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
8 9 10 11 12 13 14 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** ** $Id: expr.c,v 1.420 2009/03/18 10:36:13 drh Exp $ */ #include "sqliteInt.h" /* ** Return the 'affinity' of the expression pExpr if any. ** ** If pExpr is a column, a reference to a column via an 'AS' alias, |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 | ** If so, remove the quotation marks. */ void sqlite3DequoteExpr(sqlite3 *db, Expr *p){ if( ExprHasAnyProperty(p, EP_Dequoted) ){ return; } ExprSetProperty(p, EP_Dequoted); if( p->token.dyn==0 && !ExprHasAnyProperty(p, EP_Reduced|EP_TokenOnly|EP_SpanOnly) ){ sqlite3TokenCopy(db, &p->token, &p->token); } sqlite3Dequote((char*)p->token.z); } /* ** Return the number of bytes allocated for the expression structure ** passed as the first argument. This is always one of EXPR_FULLSIZE, ** EXPR_REDUCEDSIZE or EXPR_TOKENONLYSIZE. | > > > > > > > > > > > | 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 | ** If so, remove the quotation marks. */ void sqlite3DequoteExpr(sqlite3 *db, Expr *p){ if( ExprHasAnyProperty(p, EP_Dequoted) ){ return; } ExprSetProperty(p, EP_Dequoted); /* If p->token.dyn==0 and none of EP_Reduced, EP_TokenOnly, or ** EP_SpanOnly are set, that means that the p->token.z string points ** back to the original SQL statement text. In that case, we need ** to make a copy before modifying the string, otherwise we would ** corrupt the original SQL statement text. */ testcase( p->token.dyn==0 && ExprHasProperty(p, EP_Reduced) ); testcase( p->token.dyn==0 && ExprHasProperty(p, EP_TokenOnly) ); testcase( p->token.dyn==0 && ExprHasProperty(p, EP_SpanOnly) ); if( p->token.dyn==0 && !ExprHasAnyProperty(p, EP_Reduced|EP_TokenOnly|EP_SpanOnly) ){ sqlite3TokenCopy(db, &p->token, &p->token); } sqlite3Dequote((char*)p->token.z); } /* ** Return the number of bytes allocated for the expression structure ** passed as the first argument. This is always one of EXPR_FULLSIZE, ** EXPR_REDUCEDSIZE or EXPR_TOKENONLYSIZE. |
︙ | ︙ |