1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-14 00:22:38 +03:00

Use sqlite3XPrintf() instead of sqlite3StrAccumAppend() in a few places

for better performance and a smaller footprint.

FossilOrigin-Name: 82355e41084387fa11b7b531e4d660dd3b4cd984
This commit is contained in:
drh
2015-09-02 15:37:50 +00:00
parent 4ef299a32c
commit d37bea5bdc
5 changed files with 18 additions and 20 deletions

View File

@@ -165,19 +165,18 @@ int sqlite3WhereExplainOneScan(
explainIndexRange(&str, pLoop, pItem->pTab);
}
}else if( (flags & WHERE_IPK)!=0 && (flags & WHERE_CONSTRAINT)!=0 ){
const char *zRange;
const char *zRangeOp;
if( flags&(WHERE_COLUMN_EQ|WHERE_COLUMN_IN) ){
zRange = "(rowid=?)";
zRangeOp = "=";
}else if( (flags&WHERE_BOTH_LIMIT)==WHERE_BOTH_LIMIT ){
zRange = "(rowid>? AND rowid<?)";
zRangeOp = ">? AND rowid<";
}else if( flags&WHERE_BTM_LIMIT ){
zRange = "(rowid>?)";
zRangeOp = ">";
}else{
assert( flags&WHERE_TOP_LIMIT);
zRange = "(rowid<?)";
zRangeOp = "<";
}
sqlite3StrAccumAppendAll(&str, " USING INTEGER PRIMARY KEY ");
sqlite3StrAccumAppendAll(&str, zRange);
sqlite3XPrintf(&str, 0, " USING INTEGER PRIMARY KEY (rowid%s?)",zRangeOp);
}
#ifndef SQLITE_OMIT_VIRTUALTABLE
else if( (flags & WHERE_VIRTUALTABLE)!=0 ){