Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch size_t-rcvid Excluding Merge-Ins
This is equivalent to a diff from 928b26ab to e1cb483a
2013-06-21
| ||
07:25 | Allow i64 type to be used in JSON in more places, mainly for time values and file sizes. ... (check-in: f89a32d7 user: jan.nijtmans tags: trunk) | |
2013-06-20
| ||
14:18 | Update the built-in SQLite to a version that never uses posix_fallocate(). ... (check-in: d637c4d2 user: drh tags: trunk) | |
13:56 | Change return type of db_last_insert_rowid() to size_t. ... (Closed-Leaf check-in: e1cb483a user: jan.nijtmans tags: size_t-rcvid) | |
13:34 | Allow 64-bit integers to be used in JSON on win32/win64. ... (check-in: 928b26ab user: jan.nijtmans tags: trunk) | |
13:22 | Allow 64-bit integers to be used in JSON on win32/64 ... (Closed-Leaf check-in: 50e8847d user: jan.nijtmans tags: 64bit-int-on-win) | |
13:18 | Fixed modulo/divide by 0 in TH1, per ML bug report from Eduardo Morras. ... (check-in: fded1d05 user: stephan tags: trunk) | |
Changes to src/content.c.
︙ | ︙ | |||
545 546 547 548 549 550 551 | }else{ blob_compress(pBlob, &cmpr); } if( rid>0 ){ /* We are just adding data to a phantom */ db_prepare(&s1, "UPDATE blob SET rcvid=%d, size=%d, content=:data WHERE rid=%d", | | | | | 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 | }else{ blob_compress(pBlob, &cmpr); } if( rid>0 ){ /* We are just adding data to a phantom */ db_prepare(&s1, "UPDATE blob SET rcvid=%d, size=%d, content=:data WHERE rid=%d", (int) g.rcvid, size, rid ); db_bind_blob(&s1, ":data", &cmpr); db_exec(&s1); db_multi_exec("DELETE FROM phantom WHERE rid=%d", rid); if( srcId==0 || content_is_available(srcId) ){ isDephantomize = 1; content_mark_available(rid); } }else{ /* We are creating a new entry */ db_prepare(&s1, "INSERT INTO blob(rcvid,size,uuid,content)" "VALUES(%d,%d,'%b',:data)", (int) g.rcvid, size, &hash ); db_bind_blob(&s1, ":data", &cmpr); db_exec(&s1); rid = (int) db_last_insert_rowid(); if( !pBlob ){ db_multi_exec("INSERT OR IGNORE INTO phantom VALUES(%d)", rid); } if( g.markPrivate || isPrivate ){ db_multi_exec("INSERT INTO private VALUES(%d)", rid); markAsUnclustered = 0; } |
︙ | ︙ | |||
641 642 643 644 645 646 647 | } db_static_prepare(&s1, "INSERT INTO blob(rcvid,size,uuid,content)" "VALUES(0,-1,:uuid,NULL)" ); db_bind_text(&s1, ":uuid", zUuid); db_exec(&s1); | | | 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 | } db_static_prepare(&s1, "INSERT INTO blob(rcvid,size,uuid,content)" "VALUES(0,-1,:uuid,NULL)" ); db_bind_text(&s1, ":uuid", zUuid); db_exec(&s1); rid = (int) db_last_insert_rowid(); db_static_prepare(&s2, "INSERT INTO phantom VALUES(:rid)" ); db_bind_int(&s2, ":rid", rid); db_exec(&s2); if( g.markPrivate || isPrivate ){ db_multi_exec("INSERT INTO private VALUES(%d)", rid); |
︙ | ︙ |
Changes to src/db.c.
︙ | ︙ | |||
397 398 399 400 401 402 403 | pStmt->pPrev = 0; return rc; } /* ** Return the rowid of the most recent insert */ | | | | 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 | pStmt->pPrev = 0; return rc; } /* ** Return the rowid of the most recent insert */ size_t db_last_insert_rowid(void){ return (size_t) sqlite3_last_insert_rowid(g.db); } /* ** Return the number of rows that were changed by the most recent ** INSERT, UPDATE, or DELETE. Auxiliary changes caused by triggers ** or other side effects are not counted. */ |
︙ | ︙ |
Changes to src/import.c.
︙ | ︙ | |||
145 146 147 148 149 150 151 | db_bind_text(&ins, ":uuid", blob_str(&hash)); db_bind_int(&ins, ":size", gg.nData); blob_compress(pContent, &cmpr); db_bind_blob(&ins, ":content", &cmpr); db_step(&ins); db_reset(&ins); blob_reset(&cmpr); | | | 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | db_bind_text(&ins, ":uuid", blob_str(&hash)); db_bind_int(&ins, ":size", gg.nData); blob_compress(pContent, &cmpr); db_bind_blob(&ins, ":content", &cmpr); db_step(&ins); db_reset(&ins); blob_reset(&cmpr); rid = (int) db_last_insert_rowid(); } if( zMark ){ db_multi_exec( "INSERT OR IGNORE INTO xmark(tname, trid, tuuid)" "VALUES(%Q,%d,%B)", zMark, rid, &hash ); |
︙ | ︙ |
Changes to src/json.c.
︙ | ︙ | |||
265 266 267 268 269 270 271 | zStr = vmprintf(fmt,vargs); va_end(vargs); v = cson_value_new_string(zStr, strlen(zStr)); free(zStr); return v; } | | | 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 | zStr = vmprintf(fmt,vargs); va_end(vargs); v = cson_value_new_string(zStr, strlen(zStr)); free(zStr); return v; } cson_value * json_new_int( i64 v ){ return cson_value_new_integer((cson_int_t)v); } /* ** Gets a POST/POST.payload/GET/COOKIE/ENV value. The returned memory ** is owned by the g.json object (one of its sub-objects). Returns ** NULL if no match is found. |
︙ | ︙ | |||
1245 1246 1247 1248 1249 1250 1251 | ** Returned value is owned by the caller. */ cson_value * json_g_to_json(){ cson_object * o = NULL; cson_object * pay = NULL; pay = o = cson_new_object(); | | | 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 | ** Returned value is owned by the caller. */ cson_value * json_g_to_json(){ cson_object * o = NULL; cson_object * pay = NULL; pay = o = cson_new_object(); #define INT(OBJ,K) cson_object_set(o, #K, json_new_int((i64)OBJ.K)) #define CSTR(OBJ,K) cson_object_set(o, #K, OBJ.K ? json_new_string(OBJ.K) : cson_value_null()) #define VAL(K,V) cson_object_set(o, #K, (V) ? (V) : cson_value_null()) VAL(capabilities, json_cap_value()); INT(g, argc); INT(g, isConst); INT(g, useAttach); CSTR(g, zConfigDbName); |
︙ | ︙ |
Changes to src/main.c.
︙ | ︙ | |||
183 184 185 186 187 188 189 | const char *zSSLIdentity; /* Value of --ssl-identity option, filename of ** SSL client identity */ int useLocalauth; /* No login required if from 127.0.0.1 */ int noPswd; /* Logged in without password (on 127.0.0.1) */ int userUid; /* Integer user id */ /* Information used to populate the RCVFROM table */ | | | 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | const char *zSSLIdentity; /* Value of --ssl-identity option, filename of ** SSL client identity */ int useLocalauth; /* No login required if from 127.0.0.1 */ int noPswd; /* Logged in without password (on 127.0.0.1) */ int userUid; /* Integer user id */ /* Information used to populate the RCVFROM table */ size_t rcvid; /* The rcvid. 0 if not yet defined. */ char *zIpAddr; /* The remote IP address */ char *zNonce; /* The nonce used for login */ /* permissions used by the server */ struct FossilUserPerms perm; #ifdef FOSSIL_ENABLE_TCL |
︙ | ︙ |
Changes to src/manifest.c.
︙ | ︙ | |||
1142 1143 1144 1145 1146 1147 1148 | fnid = db_column_int(&q1, 0); } db_reset(&q1); if( fnid==0 ){ db_static_prepare(&s1, "INSERT INTO filename(name) VALUES(:fn)"); db_bind_text(&s1, ":fn", zFilename); db_exec(&s1); | | | 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 | fnid = db_column_int(&q1, 0); } db_reset(&q1); if( fnid==0 ){ db_static_prepare(&s1, "INSERT INTO filename(name) VALUES(:fn)"); db_bind_text(&s1, ":fn", zFilename); db_exec(&s1); fnid = (int) db_last_insert_rowid(); } return fnid; } /* ** Compute an appropriate mlink.mperm integer for the permission string ** of a file. |
︙ | ︙ |
Changes to src/merge.c.
︙ | ︙ | |||
435 436 437 438 439 440 441 | const char *zName; char *zFullName; db_multi_exec( "INSERT INTO vfile(vid,chnged,deleted,rid,mrid,isexe,islink,pathname)" " SELECT %d,3,0,rid,mrid,isexe,islink,pathname FROM vfile WHERE id=%d", vid, idm ); | | | 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 | const char *zName; char *zFullName; db_multi_exec( "INSERT INTO vfile(vid,chnged,deleted,rid,mrid,isexe,islink,pathname)" " SELECT %d,3,0,rid,mrid,isexe,islink,pathname FROM vfile WHERE id=%d", vid, idm ); idv = (int) db_last_insert_rowid(); db_multi_exec("UPDATE fv SET idv=%d WHERE rowid=%d", idv, rowid); zName = db_column_text(&q, 2); zFullName = mprintf("%s%s", g.zLocalRoot, zName); if( file_wd_isfile_or_link(zFullName) ){ fossil_print("ADDED %s (overwrites an unmanaged file)\n", zName); nOverwrite++; }else{ |
︙ | ︙ |
Changes to src/report.c.
︙ | ︙ | |||
389 390 391 392 393 394 395 | db_multi_exec("UPDATE reportfmt SET title=%Q, sqlcode=%Q," " owner=%Q, cols=%Q, mtime=now() WHERE rn=%d", zTitle, zSQL, zOwner, zClrKey, rn); }else{ db_multi_exec("INSERT INTO reportfmt(title,sqlcode,owner,cols,mtime) " "VALUES(%Q,%Q,%Q,%Q,now())", zTitle, zSQL, zOwner, zClrKey); | | | 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 | db_multi_exec("UPDATE reportfmt SET title=%Q, sqlcode=%Q," " owner=%Q, cols=%Q, mtime=now() WHERE rn=%d", zTitle, zSQL, zOwner, zClrKey, rn); }else{ db_multi_exec("INSERT INTO reportfmt(title,sqlcode,owner,cols,mtime) " "VALUES(%Q,%Q,%Q,%Q,now())", zTitle, zSQL, zOwner, zClrKey); rn = (int) db_last_insert_rowid(); } cgi_redirect(mprintf("rptview?rn=%d", rn)); return; } }else if( rn==0 ){ zTitle = ""; zSQL = ticket_report_template(); |
︙ | ︙ |
Changes to src/tag.c.
︙ | ︙ | |||
139 140 141 142 143 144 145 | ** if createFlag is 1. */ int tag_findid(const char *zTag, int createFlag){ int id; id = db_int(0, "SELECT tagid FROM tag WHERE tagname=%Q", zTag); if( id==0 && createFlag ){ db_multi_exec("INSERT INTO tag(tagname) VALUES(%Q)", zTag); | | | 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | ** if createFlag is 1. */ int tag_findid(const char *zTag, int createFlag){ int id; id = db_int(0, "SELECT tagid FROM tag WHERE tagname=%Q", zTag); if( id==0 && createFlag ){ db_multi_exec("INSERT INTO tag(tagname) VALUES(%Q)", zTag); id = (int) db_last_insert_rowid(); } return id; } /* ** Insert a tag into the database. */ |
︙ | ︙ |
Changes to src/tkt.c.
︙ | ︙ | |||
195 196 197 198 199 200 201 | Stmt q; int i, j; char *aUsed; if( tktid==0 ){ db_multi_exec("INSERT INTO ticket(tkt_uuid, tkt_mtime) " "VALUES(%Q, 0)", p->zTicketUuid); | | | 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | Stmt q; int i, j; char *aUsed; if( tktid==0 ){ db_multi_exec("INSERT INTO ticket(tkt_uuid, tkt_mtime) " "VALUES(%Q, 0)", p->zTicketUuid); tktid = (int) db_last_insert_rowid(); } blob_zero(&sql1); blob_zero(&sql2); blob_zero(&sql3); blob_appendf(&sql1, "UPDATE OR REPLACE ticket SET tkt_mtime=:mtime"); if( haveTicketCTime ){ blob_appendf(&sql1, ", tkt_ctime=coalesce(tkt_ctime,:mtime)"); |
︙ | ︙ |