diff options
author | drh <drh@noemail.net> | 2012-10-09 14:58:15 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2012-10-09 14:58:15 +0000 |
commit | d1102b1ec7d50045cbbcf2575eacb2d423361fc7 (patch) | |
tree | a586e444e7362a6cf02fa05c85311851e36abb97 /src/callback.c | |
parent | c4645dacfb435002911b187b474fa0788db9cde0 (diff) | |
parent | 5a55826bcda624f8fa4a3b7cc0c8845a689d8957 (diff) | |
download | sqlite-d1102b1ec7d50045cbbcf2575eacb2d423361fc7.tar.gz sqlite-d1102b1ec7d50045cbbcf2575eacb2d423361fc7.zip |
Merge the latest trunk changes, especially the ORDER BY optimizer enhancements
but also other fixes, onto the sessions branch.
FossilOrigin-Name: f1fbb8c5bfa84e84e0b8e2872d83b06a0c0d5acc
Diffstat (limited to 'src/callback.c')
-rw-r--r-- | src/callback.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/callback.c b/src/callback.c index a515e05e2..d40c65cb9 100644 --- a/src/callback.c +++ b/src/callback.c @@ -75,17 +75,18 @@ static int synthCollSeq(sqlite3 *db, CollSeq *pColl){ ** ** The return value is either the collation sequence to be used in database ** db for collation type name zName, length nName, or NULL, if no collation -** sequence can be found. +** sequence can be found. If no collation is found, leave an error message. ** ** See also: sqlite3LocateCollSeq(), sqlite3FindCollSeq() */ CollSeq *sqlite3GetCollSeq( - sqlite3* db, /* The database connection */ + Parse *pParse, /* Parsing context */ u8 enc, /* The desired encoding for the collating sequence */ CollSeq *pColl, /* Collating sequence with native encoding, or NULL */ const char *zName /* Collating sequence name */ ){ CollSeq *p; + sqlite3 *db = pParse->db; p = pColl; if( !p ){ @@ -102,6 +103,9 @@ CollSeq *sqlite3GetCollSeq( p = 0; } assert( !p || p->xCmp ); + if( p==0 ){ + sqlite3ErrorMsg(pParse, "no such collation sequence: %s", zName); + } return p; } @@ -120,10 +124,8 @@ int sqlite3CheckCollSeq(Parse *pParse, CollSeq *pColl){ if( pColl ){ const char *zName = pColl->zName; sqlite3 *db = pParse->db; - CollSeq *p = sqlite3GetCollSeq(db, ENC(db), pColl, zName); + CollSeq *p = sqlite3GetCollSeq(pParse, ENC(db), pColl, zName); if( !p ){ - sqlite3ErrorMsg(pParse, "no such collation sequence: %s", zName); - pParse->nErr++; return SQLITE_ERROR; } assert( p==pColl ); |