aboutsummaryrefslogtreecommitdiff
path: root/src/callback.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2012-10-09 14:58:15 +0000
committerdrh <drh@noemail.net>2012-10-09 14:58:15 +0000
commitd1102b1ec7d50045cbbcf2575eacb2d423361fc7 (patch)
treea586e444e7362a6cf02fa05c85311851e36abb97 /src/callback.c
parentc4645dacfb435002911b187b474fa0788db9cde0 (diff)
parent5a55826bcda624f8fa4a3b7cc0c8845a689d8957 (diff)
downloadsqlite-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.c12
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 );