Fossil SCM
Use NULL rather than 0 for values in the MLINK table that are empty.
Commit
19844445d0bd8fcb7330bd603cfd53687f367b36
Parent
558a17a686249c7…
2 files changed
+5
+4
-3
M
src/db.c
+5
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -332,10 +332,15 @@ | ||
| 332 | 332 | */ |
| 333 | 333 | int db_bind_str(Stmt *pStmt, const char *zParamName, Blob *pBlob){ |
| 334 | 334 | return sqlite3_bind_text(pStmt->pStmt, paramIdx(pStmt, zParamName), |
| 335 | 335 | blob_buffer(pBlob), blob_size(pBlob), SQLITE_STATIC); |
| 336 | 336 | } |
| 337 | + | |
| 338 | +/* Clear all bindings */ | |
| 339 | +int db_clear_bindings(Stmt *pStmt){ | |
| 340 | + return sqlite3_clear_bindings(pStmt->pStmt); | |
| 341 | +} | |
| 337 | 342 | |
| 338 | 343 | /* |
| 339 | 344 | ** Step the SQL statement. Return either SQLITE_ROW or an error code |
| 340 | 345 | ** or SQLITE_OK if the statement finishes successfully. |
| 341 | 346 | */ |
| 342 | 347 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -332,10 +332,15 @@ | |
| 332 | */ |
| 333 | int db_bind_str(Stmt *pStmt, const char *zParamName, Blob *pBlob){ |
| 334 | return sqlite3_bind_text(pStmt->pStmt, paramIdx(pStmt, zParamName), |
| 335 | blob_buffer(pBlob), blob_size(pBlob), SQLITE_STATIC); |
| 336 | } |
| 337 | |
| 338 | /* |
| 339 | ** Step the SQL statement. Return either SQLITE_ROW or an error code |
| 340 | ** or SQLITE_OK if the statement finishes successfully. |
| 341 | */ |
| 342 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -332,10 +332,15 @@ | |
| 332 | */ |
| 333 | int db_bind_str(Stmt *pStmt, const char *zParamName, Blob *pBlob){ |
| 334 | return sqlite3_bind_text(pStmt->pStmt, paramIdx(pStmt, zParamName), |
| 335 | blob_buffer(pBlob), blob_size(pBlob), SQLITE_STATIC); |
| 336 | } |
| 337 | |
| 338 | /* Clear all bindings */ |
| 339 | int db_clear_bindings(Stmt *pStmt){ |
| 340 | return sqlite3_clear_bindings(pStmt->pStmt); |
| 341 | } |
| 342 | |
| 343 | /* |
| 344 | ** Step the SQL statement. Return either SQLITE_ROW or an error code |
| 345 | ** or SQLITE_OK if the statement finishes successfully. |
| 346 | */ |
| 347 |
+4
-3
| --- src/manifest.c | ||
| +++ src/manifest.c | ||
| @@ -1184,15 +1184,16 @@ | ||
| 1184 | 1184 | } |
| 1185 | 1185 | db_static_prepare(&s1, |
| 1186 | 1186 | "INSERT INTO mlink(mid,pid,fid,fnid,pfnid,mperm)" |
| 1187 | 1187 | "VALUES(:m,:p,:f,:n,:pfn,:mp)" |
| 1188 | 1188 | ); |
| 1189 | + db_clear_bindings(&s1); | |
| 1189 | 1190 | db_bind_int(&s1, ":m", mid); |
| 1190 | - db_bind_int(&s1, ":p", pid); | |
| 1191 | - db_bind_int(&s1, ":f", fid); | |
| 1191 | + if( pid ) db_bind_int(&s1, ":p", pid); | |
| 1192 | + if( fid ) db_bind_int(&s1, ":f", fid); | |
| 1192 | 1193 | db_bind_int(&s1, ":n", fnid); |
| 1193 | - db_bind_int(&s1, ":pfn", pfnid); | |
| 1194 | + if( pfnid) db_bind_int(&s1, ":pfn", pfnid); | |
| 1194 | 1195 | db_bind_int(&s1, ":mp", mperm); |
| 1195 | 1196 | db_exec(&s1); |
| 1196 | 1197 | if( pid && fid ){ |
| 1197 | 1198 | content_deltify(pid, fid, 0); |
| 1198 | 1199 | } |
| 1199 | 1200 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -1184,15 +1184,16 @@ | |
| 1184 | } |
| 1185 | db_static_prepare(&s1, |
| 1186 | "INSERT INTO mlink(mid,pid,fid,fnid,pfnid,mperm)" |
| 1187 | "VALUES(:m,:p,:f,:n,:pfn,:mp)" |
| 1188 | ); |
| 1189 | db_bind_int(&s1, ":m", mid); |
| 1190 | db_bind_int(&s1, ":p", pid); |
| 1191 | db_bind_int(&s1, ":f", fid); |
| 1192 | db_bind_int(&s1, ":n", fnid); |
| 1193 | db_bind_int(&s1, ":pfn", pfnid); |
| 1194 | db_bind_int(&s1, ":mp", mperm); |
| 1195 | db_exec(&s1); |
| 1196 | if( pid && fid ){ |
| 1197 | content_deltify(pid, fid, 0); |
| 1198 | } |
| 1199 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -1184,15 +1184,16 @@ | |
| 1184 | } |
| 1185 | db_static_prepare(&s1, |
| 1186 | "INSERT INTO mlink(mid,pid,fid,fnid,pfnid,mperm)" |
| 1187 | "VALUES(:m,:p,:f,:n,:pfn,:mp)" |
| 1188 | ); |
| 1189 | db_clear_bindings(&s1); |
| 1190 | db_bind_int(&s1, ":m", mid); |
| 1191 | if( pid ) db_bind_int(&s1, ":p", pid); |
| 1192 | if( fid ) db_bind_int(&s1, ":f", fid); |
| 1193 | db_bind_int(&s1, ":n", fnid); |
| 1194 | if( pfnid) db_bind_int(&s1, ":pfn", pfnid); |
| 1195 | db_bind_int(&s1, ":mp", mperm); |
| 1196 | db_exec(&s1); |
| 1197 | if( pid && fid ){ |
| 1198 | content_deltify(pid, fid, 0); |
| 1199 | } |
| 1200 |