Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/config/database.js

    rba76bf5 ra29c8c8  
    499499    );
    500500    CREATE INDEX IF NOT EXISTS idx_ap_timeline_slug ON ap_timeline(slug, published);
    501     -- canonicalReactionUri herleidt een permalink naar het object-id door op (slug, url)
    502     -- te zoeken. Zonder deze index viel dat terug op idx_ap_timeline_slug, dus een scan
    503     -- van elke rij van die slug. Dat gebeurt PER REACTIE in getInteractions, en de
    504     -- reactie-migratie erft het in haar re-key-join, die synchroon vóór listen draait:
    505     -- de opstartkosten waren reacties maal tijdlijnrijen.
    506     CREATE INDEX IF NOT EXISTS idx_ap_timeline_url ON ap_timeline(slug, url);
    507501    CREATE TABLE IF NOT EXISTS ap_blocks (
    508502      id INTEGER PRIMARY KEY AUTOINCREMENT,
     
    856850    }
    857851    // slug + object_uri verschillen per bron; de rest is voor alle vier gelijk.
    858     const zet = (naam, gebeurtenis, tabel, slug, uri, kind, extra = '', wanneer = '') => `
     852    const zet = (naam, gebeurtenis, tabel, slug, uri, kind, extra = '') => `
    859853      DROP TRIGGER IF EXISTS ${naam};
    860       CREATE TRIGGER ${naam} AFTER ${gebeurtenis} ON ${tabel}${wanneer ? ` WHEN ${wanneer}` : ''} BEGIN
     854      CREATE TRIGGER ${naam} AFTER ${gebeurtenis} ON ${tabel} BEGIN
    861855        UPDATE ap_feed_rev SET n = n + 1;
    862856        INSERT INTO ap_feed_state (slug, object_uri, rev, kind)
     
    880874      // ap_interactions draagt geen slug: die hangt aan de POST. Vandaar de join,
    881875      // en vandaar dat deze drie niet in de gewone vorm passen.
    882       //
    883       // De WHEN op kind='reply' is nodig omdat deze tabel ook likes en announces
    884       // draagt, en die schrijven object_uri = '' (zie recordInteraction). Zonder de
    885       // WHEN bumpte elke inkomende like de rev, werd elke wachter gewekt en kreeg
    886       // die de hele collectie opnieuw terwijl er niets aan veranderd was: precies de
    887       // kosten die de 304 moest wegnemen. Bovendien belandde er dan een rij op de
    888       // lege string in ap_feed_state, die feedChangesSince vervolgens uitdeelt.
    889       // De oude cursor filterde hier wel op kind; bij ap_timeline is dit ook gedaan
    890       // (de UPDATE OF sluit liked/boosted uit) en één tabel verder vergeten.
    891       zet('trg_feed_ia_ins', 'INSERT', 'ap_interactions', '', '', '', `${joinPosts('NEW.object_uri', 'new')} WHERE p.id = NEW.post_id`, "NEW.kind = 'reply'"),
    892       zet('trg_feed_ia_upd', 'UPDATE OF content, media_json, quote_json, embed_json', 'ap_interactions', '', '', '', `${joinPosts('NEW.object_uri', 'updated')} WHERE p.id = NEW.post_id`, "NEW.kind = 'reply'"),
    893       zet('trg_feed_ia_del', 'DELETE', 'ap_interactions', '', '', '', `${joinPosts('OLD.object_uri', 'deleted')} WHERE p.id = OLD.post_id`, "OLD.kind = 'reply'"),
     876      zet('trg_feed_ia_ins', 'INSERT', 'ap_interactions', '', '', '', `${joinPosts('NEW.object_uri', 'new')} WHERE p.id = NEW.post_id`),
     877      zet('trg_feed_ia_upd', 'UPDATE OF content, media_json, quote_json, embed_json', 'ap_interactions', '', '', '', `${joinPosts('NEW.object_uri', 'updated')} WHERE p.id = NEW.post_id`),
     878      zet('trg_feed_ia_del', 'DELETE', 'ap_interactions', '', '', '', `${joinPosts('OLD.object_uri', 'deleted')} WHERE p.id = OLD.post_id`),
    894879    ].join('\n'));
    895880  } catch (e) {
Note: See TracChangeset for help on using the changeset viewer.