Fossil SCM

Minor performance optimization on wiki rendering.

drh 2012-10-26 16:45 UTC trunk
Commit 25d99f2698356f0cb470116f1267819771595a29
1 file changed +9 -1
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -1017,14 +1017,22 @@
10171017
** repository.
10181018
*/
10191019
static int in_this_repo(const char *zUuid){
10201020
static Stmt q;
10211021
int rc;
1022
+ int n;
1023
+ char zU2[UUID_SIZE+1];
10221024
db_static_prepare(&q,
1023
- "SELECT 1 FROM blob WHERE uuid>=:u AND +uuid GLOB (:u || '*')"
1025
+ "SELECT 1 FROM blob WHERE uuid>=:u AND uuid<:u2"
10241026
);
10251027
db_bind_text(&q, ":u", zUuid);
1028
+ n = (int)strlen(zUuid);
1029
+ if( n>=sizeof(zU2) ) n = sizeof(zU2)-1;
1030
+ memcpy(zU2, zUuid, n);
1031
+ zU2[n-1]++;
1032
+ zU2[n] = 0;
1033
+ db_bind_text(&q, ":u2", zU2);
10261034
rc = db_step(&q);
10271035
db_reset(&q);
10281036
return rc==SQLITE_ROW;
10291037
}
10301038
10311039
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -1017,14 +1017,22 @@
1017 ** repository.
1018 */
1019 static int in_this_repo(const char *zUuid){
1020 static Stmt q;
1021 int rc;
 
 
1022 db_static_prepare(&q,
1023 "SELECT 1 FROM blob WHERE uuid>=:u AND +uuid GLOB (:u || '*')"
1024 );
1025 db_bind_text(&q, ":u", zUuid);
 
 
 
 
 
 
1026 rc = db_step(&q);
1027 db_reset(&q);
1028 return rc==SQLITE_ROW;
1029 }
1030
1031
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -1017,14 +1017,22 @@
1017 ** repository.
1018 */
1019 static int in_this_repo(const char *zUuid){
1020 static Stmt q;
1021 int rc;
1022 int n;
1023 char zU2[UUID_SIZE+1];
1024 db_static_prepare(&q,
1025 "SELECT 1 FROM blob WHERE uuid>=:u AND uuid<:u2"
1026 );
1027 db_bind_text(&q, ":u", zUuid);
1028 n = (int)strlen(zUuid);
1029 if( n>=sizeof(zU2) ) n = sizeof(zU2)-1;
1030 memcpy(zU2, zUuid, n);
1031 zU2[n-1]++;
1032 zU2[n] = 0;
1033 db_bind_text(&q, ":u2", zU2);
1034 rc = db_step(&q);
1035 db_reset(&q);
1036 return rc==SQLITE_ROW;
1037 }
1038
1039

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button