Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Begin adding forum artifact parsing code. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | forum-v2 |
Files: | files | file ages | folders |
SHA3-256: |
a2b470f14cd42a053c413f91c65b7b45 |
User & Date: | drh 2018-07-19 22:55:42.146 |
Context
2018-07-21
| ||
16:53 | Merge enhancements from trunk. ... (check-in: 5544931c user: drh tags: forum-v2) | |
2018-07-19
| ||
22:55 | Begin adding forum artifact parsing code. ... (check-in: a2b470f1 user: drh tags: forum-v2) | |
21:31 | Enhance the manifest parser to support parsing of Forum posts artifacts. At the same time, simplify the artifact syntax error detection logic using tables rather than straight code. ... (check-in: e893e9d0 user: drh tags: forum-v2) | |
Changes
Changes to src/manifest.c.
︙ | ︙ | |||
2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 | if( blob_size(&comment)==0 ) blob_append(&comment, " ", 1); db_multi_exec( "REPLACE INTO event(type,mtime,objid,user,comment)" "VALUES('g',%.17g,%d,%Q,%Q)", p->rDate, rid, p->zUser, blob_str(&comment)+1 ); blob_reset(&comment); } db_end_transaction(0); if( permitHooks ){ rc = xfer_run_common_script(); if( rc==TH_OK ){ rc = xfer_run_script(zScript, zUuid, 0); } | > > > > > > > > > > > > | 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 | if( blob_size(&comment)==0 ) blob_append(&comment, " ", 1); db_multi_exec( "REPLACE INTO event(type,mtime,objid,user,comment)" "VALUES('g',%.17g,%d,%Q,%Q)", p->rDate, rid, p->zUser, blob_str(&comment)+1 ); blob_reset(&comment); } if( p->type==CFTYPE_FORUM ){ int froot, fprev, firt; schema_forum(); froot = uuid_to_rid(p->zThreadRoot, 1); fprev = p->nParent ? uuid_to_rid(p->azParent[0],1) : 0; firt = p->zInReplyTo ? uuid_to_rid(p->zInReplyTo,1) : 0; db_multi_exec( "INSERT INTO forumpost(fpid,froot,fprev,firt,fmtime)" "VALUES(%d,%d,nullif(%d,0),nullif(%d,0),%.17g)", p->rid, froot, fprev, firt, p->rDate ); } db_end_transaction(0); if( permitHooks ){ rc = xfer_run_common_script(); if( rc==TH_OK ){ rc = xfer_run_script(zScript, zUuid, 0); } |
︙ | ︙ |
Changes to src/schema.c.
︙ | ︙ | |||
540 541 542 543 544 545 546 | @ UNIQUE(id, merge) @ ); @ @ -- Identifier for this file type. @ -- The integer is the same as 'FSLC'. @ PRAGMA application_id=252006674; ; | > > > > > > > > > > > > > > > > > > > > > > > | 540 541 542 543 544 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 | @ UNIQUE(id, merge) @ ); @ @ -- Identifier for this file type. @ -- The integer is the same as 'FSLC'. @ PRAGMA application_id=252006674; ; /* ** The following table holds information about forum posts. It ** is created on-demand whenever the manifest parser encounters ** a forum-post artifact. */ static const char zForumSchema[] = @ CREATE TABLE repository.forumpost( @ fpid INTEGER PRIMARY KEY; -- BLOB.rid for the artifact @ froot INT; -- fpid of the thread root @ fprev INT; -- Previous version of this same post @ firt INT; -- This post is in-reply-to @ fmtime REAL; -- When posted. Julian day @ ); @ CREATE INDEX repository.forumthread ON forumpost(froot); ; /* Create the forum-post schema if it does not already exist */ void schema_forum(void){ if( !db_table_exists("repository","forumpost") ){ db_multi_exec("%s",zForumSchema/*safe-for-%s*/); } } |